From 7be9965352d92eab96b86bc045645bc344309f13 Mon Sep 17 00:00:00 2001 From: Arty Bishop Date: Sat, 27 Feb 2021 11:44:41 +0000 Subject: [PATCH] Removed deprecated permission request handler --- .../look4sat/ui/mainScreen/PrefsFragment.kt | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/mainScreen/PrefsFragment.kt b/app/src/main/java/com/rtbishop/look4sat/ui/mainScreen/PrefsFragment.kt index 242793fb..4e351346 100644 --- a/app/src/main/java/com/rtbishop/look4sat/ui/mainScreen/PrefsFragment.kt +++ b/app/src/main/java/com/rtbishop/look4sat/ui/mainScreen/PrefsFragment.kt @@ -24,6 +24,7 @@ import android.content.pm.PackageManager import android.location.LocationManager import android.os.Bundle import android.view.View +import androidx.activity.result.contract.ActivityResultContracts import androidx.core.content.ContextCompat import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat @@ -38,9 +39,6 @@ import javax.inject.Inject @AndroidEntryPoint class PrefsFragment : PreferenceFragmentCompat() { - private val locPermReqCode = 1000 - private val locPermString = Manifest.permission.ACCESS_FINE_LOCATION - @Inject lateinit var locationManager: LocationManager @@ -50,6 +48,15 @@ class PrefsFragment : PreferenceFragmentCompat() { @Inject lateinit var qthConverter: QthConverter + private val requestPermissionLauncher = + registerForActivityResult(ActivityResultContracts.RequestPermission()) { isGranted -> + if (isGranted) { + setPositionFromGPS() + } else { + showSnack(getString(R.string.pref_pos_gps_error)) + } + } + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.preference, rootKey) } @@ -84,6 +91,7 @@ class PrefsFragment : PreferenceFragmentCompat() { } private fun setPositionFromGPS() { + val locPermString = Manifest.permission.ACCESS_FINE_LOCATION val locPermResult = ContextCompat.checkSelfPermission(requireContext(), locPermString) if (locPermResult == PackageManager.PERMISSION_GRANTED) { val location = locationManager.getLastKnownLocation(LocationManager.PASSIVE_PROVIDER) @@ -94,7 +102,7 @@ class PrefsFragment : PreferenceFragmentCompat() { prefsManager.setStationPosition(latitude, longitude, altitude) showSnack(getString(R.string.pref_pos_success)) } else showSnack(getString(R.string.pref_pos_gps_null)) - } else requestPermissions(arrayOf(locPermString), locPermReqCode) + } else requestPermissionLauncher.launch(locPermString) } private fun showSnack(message: String) { @@ -102,12 +110,4 @@ class PrefsFragment : PreferenceFragmentCompat() { .setAnchorView(R.id.nav_bottom) .show() } - - override fun onRequestPermissionsResult(code: Int, perms: Array, result: IntArray) { - if (code == locPermReqCode) { - if (result.isNotEmpty() && result[0] == PackageManager.PERMISSION_GRANTED) { - setPositionFromGPS() - } else showSnack(getString(R.string.pref_pos_gps_error)) - } - } }