Removed deprecated permission request handler

This commit is contained in:
Arty Bishop committed 2021-02-27 11:44:41 +00:00
1 parent f6ca069896
commit 7be9965352
1 file changed
+12 -12
@@ -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<out String>, result: IntArray) {
if (code == locPermReqCode) {
if (result.isNotEmpty() && result[0] == PackageManager.PERMISSION_GRANTED) {
setPositionFromGPS()
} else showSnack(getString(R.string.pref_pos_gps_error))
}
}
}