X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altosdroid%2Fapp%2Fsrc%2Fmain%2Fjava%2Forg%2Faltusmetrum%2FAltosDroid%2FAltosDroid.java;fp=altosdroid%2Fapp%2Fsrc%2Fmain%2Fjava%2Forg%2Faltusmetrum%2FAltosDroid%2FAltosDroid.java;h=cf54aad059de146b74e9aecb92d33b051cbf88eb;hp=05a023acde3d60f51d27b3caddc1043291336b3c;hb=b140da92536d7c48ba37868f1c2afce7bb86dfdb;hpb=1d208c9509f03f7e2c913abe5c0dd78ef0083c0f diff --git a/altosdroid/app/src/main/java/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/app/src/main/java/org/altusmetrum/AltosDroid/AltosDroid.java index 05a023ac..cf54aad0 100644 --- a/altosdroid/app/src/main/java/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/app/src/main/java/org/altusmetrum/AltosDroid/AltosDroid.java @@ -793,8 +793,12 @@ public class AltosDroid extends FragmentActivity implements AltosUnitsListener, public boolean have_location_permission = false; public boolean have_storage_permission = false; + public boolean have_bluetooth_permission = false; + public boolean have_bluetooth_connect_permission = false; public boolean asked_permission = false; + static final String BLUETOOTH_CONNECT = "android.permission.BLUETOOTH_CONNECT"; + AltosMapOnline map_online; void @@ -817,6 +821,12 @@ public class AltosDroid extends FragmentActivity implements AltosUnitsListener, if (permissions[i].equals(Manifest.permission.WRITE_EXTERNAL_STORAGE)) { have_storage_permission = true; } + if (permissions[i].equals(Manifest.permission.BLUETOOTH)) { + have_bluetooth_permission = true; + } + if (permissions[i].equals(BLUETOOTH_CONNECT)) { + have_bluetooth_connect_permission = true; + } } } } @@ -842,15 +852,39 @@ public class AltosDroid extends FragmentActivity implements AltosUnitsListener, { have_storage_permission = true; } - int count = (have_location_permission ? 0 : 1) + (have_storage_permission ? 0 : 1); + if (ActivityCompat.checkSelfPermission(this, + Manifest.permission.BLUETOOTH) + == PackageManager.PERMISSION_GRANTED) + { + have_bluetooth_permission = true; + } + if (ActivityCompat.checkSelfPermission(this, + BLUETOOTH_CONNECT) + == PackageManager.PERMISSION_GRANTED) + { + have_bluetooth_connect_permission = true; + } + int count = 0; + if (!have_location_permission) + count += 1; + if (!have_storage_permission) + count += 1; + if (!have_bluetooth_permission) + count += 1; + if (!have_bluetooth_connect_permission) + count += 1; if (count > 0) { String[] permissions = new String[count]; int i = 0; if (!have_location_permission) permissions[i++] = Manifest.permission.ACCESS_FINE_LOCATION; - if (!have_location_permission) + if (!have_storage_permission) permissions[i++] = Manifest.permission.WRITE_EXTERNAL_STORAGE; + if (!have_bluetooth_permission) + permissions[i++] = Manifest.permission.BLUETOOTH; + if (!have_bluetooth_connect_permission) + permissions[i++] = BLUETOOTH_CONNECT; ActivityCompat.requestPermissions(this, permissions, MY_PERMISSION_REQUEST); } }