diff --git a/mobile/src/main/java/be/mygod/vpnhotspot/manage/LocalOnlyHotspotManager.kt b/mobile/src/main/java/be/mygod/vpnhotspot/manage/LocalOnlyHotspotManager.kt index 09596037..c2d7d51e 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/manage/LocalOnlyHotspotManager.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/manage/LocalOnlyHotspotManager.kt @@ -23,8 +23,9 @@ import java.net.NetworkInterface @TargetApi(26) class LocalOnlyHotspotManager(private val parent: TetheringFragment) : Manager(), ServiceConnection { companion object { - val permission = if (Build.VERSION.SDK_INT >= 29) - Manifest.permission.ACCESS_FINE_LOCATION else Manifest.permission.ACCESS_COARSE_LOCATION + val permission = if (Build.VERSION.SDK_INT >= 29) { + Manifest.permission.ACCESS_FINE_LOCATION + } else Manifest.permission.ACCESS_COARSE_LOCATION } class ViewHolder(val binding: ListitemInterfaceBinding) : RecyclerView.ViewHolder(binding.root), diff --git a/mobile/src/main/java/be/mygod/vpnhotspot/manage/TetheringFragment.kt b/mobile/src/main/java/be/mygod/vpnhotspot/manage/TetheringFragment.kt index bd1d6c43..e8a96cc9 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/manage/TetheringFragment.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/manage/TetheringFragment.kt @@ -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 = emptyMap()