Невозможно ограничить параметр функции только двумя типами, но вы все равно можете решить проблему дублирования кода с перегрузкой метода.
fun requestLocationPermission(fragment: Fragment) {
requestLocationPermission(RxPermissions(fragment), fragment.getActivity())
}
fun requestLocationPermission(activity: FragmentActivity) {
requestLocationPermission(RxPermissions(activity), activity)
}
private fun requestLocationPermission(rx: RxPermissions, context: Context) {
rx.request(android.Manifest.permission.ACCESS_FINE_LOCATION)
.subscribeBy(onNext = { granted ->
if (!granted) Toast.make(context,
location_message_locationPermissionRequired,
Toast.LENGTH_SHORT).show()
})
}