From 8349f6d380a1a54576b34c08bc5b95f6324413f2 Mon Sep 17 00:00:00 2001 From: Adeel Zafar Date: Fri, 31 May 2019 17:18:09 +0500 Subject: [PATCH] Add location permissions --- .../java/org/kiwix/kiwixmobile/main/MainActivity.java | 10 ++++++++++ .../kiwixmobile/wifi_hotspot/WifiHotspotManager.java | 3 +++ 2 files changed, 13 insertions(+) diff --git a/app/src/main/java/org/kiwix/kiwixmobile/main/MainActivity.java b/app/src/main/java/org/kiwix/kiwixmobile/main/MainActivity.java index 3c4687df8..09f2ecf25 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/main/MainActivity.java +++ b/app/src/main/java/org/kiwix/kiwixmobile/main/MainActivity.java @@ -241,6 +241,7 @@ public class MainActivity extends BaseActivity implements WebViewCallback, private CompatFindActionModeCallback compatCallback; private TabsAdapter tabsAdapter; private int currentWebViewIndex = 0; + private final int MY_PERMISSIONS_ACCESS_FINE_LOCATION = 102; private File file; private ActionMode actionMode = null; private KiwixWebView tempForUndo; @@ -931,7 +932,16 @@ public class MainActivity extends BaseActivity implements WebViewCallback, case R.id.menu_wifi_hotspot: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) + == PackageManager.PERMISSION_GRANTED) { wifiHotspotManager.turnOnHotspot(); + } else { + //Show rationale and request permission. + //No explanation needed; request the permission + ActivityCompat.requestPermissions(this, + new String[] { Manifest.permission.ACCESS_FINE_LOCATION }, + MY_PERMISSIONS_ACCESS_FINE_LOCATION); + } } else { if (wifiHotspotManager.isWifiApEnabled()) { wifiHotspotManager.setWifiEnabled(null, false); diff --git a/app/src/main/java/org/kiwix/kiwixmobile/wifi_hotspot/WifiHotspotManager.java b/app/src/main/java/org/kiwix/kiwixmobile/wifi_hotspot/WifiHotspotManager.java index 44129f074..b2e211433 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/wifi_hotspot/WifiHotspotManager.java +++ b/app/src/main/java/org/kiwix/kiwixmobile/wifi_hotspot/WifiHotspotManager.java @@ -22,6 +22,7 @@ public class WifiHotspotManager { private WifiManager wifiManager; private Context context; private WifiManager.LocalOnlyHotspotReservation hotspotReservation; + private boolean oreoenabled = false; public WifiHotspotManager(Context context) { this.context = context; @@ -64,6 +65,7 @@ public class WifiHotspotManager { public void onStarted(WifiManager.LocalOnlyHotspotReservation reservation) { super.onStarted(reservation); //hotspotReservation = reservation; + oreoenabled = true; } @Override @@ -85,6 +87,7 @@ public class WifiHotspotManager { public void turnOffHotspot() { if (hotspotReservation != null) { hotspotReservation.close(); + oreoenabled = false; } }