Refine permission handling

This commit is contained in:
Mygod
2020-06-29 02:39:04 +08:00
parent 78b7621845
commit 0f547e6750
2 changed files with 12 additions and 5 deletions

View File

@@ -1,5 +1,6 @@
package be.mygod.vpnhotspot.manage
import android.Manifest
import android.annotation.TargetApi
import android.content.*
import android.os.Build
@@ -9,6 +10,7 @@ import android.view.LayoutInflater
import android.view.MenuItem
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.activity.result.contract.ActivityResultContracts
import androidx.annotation.RequiresApi
import androidx.appcompat.widget.Toolbar
@@ -118,11 +120,15 @@ class TetheringFragment : Fragment(), ServiceConnection, Toolbar.OnMenuItemClick
@RequiresApi(29)
val startRepeater = registerForActivityResult(ActivityResultContracts.RequestPermission()) { granted ->
if (granted) requireContext().apply { startForegroundService(Intent(this, RepeaterService::class.java)) }
val activity = requireActivity()
if (granted) activity.startForegroundService(Intent(activity, RepeaterService::class.java))
else if (!activity.shouldShowRequestPermissionRationale(Manifest.permission.ACCESS_FINE_LOCATION)) {
Toast.makeText(activity, "Repeater requires LOCATION permission", Toast.LENGTH_SHORT).show()
}
}
@RequiresApi(26)
val startLocalOnlyHotspot = registerForActivityResult(ActivityResultContracts.RequestPermission()) { granted ->
if (granted) adapter.localOnlyHotspotManager.start(requireContext())
val startLocalOnlyHotspot = registerForActivityResult(ActivityResultContracts.RequestPermission()) {
adapter.localOnlyHotspotManager.start(requireContext())
}
var ifaceLookup: Map<String, NetworkInterface> = emptyMap()