diff --git a/OpenPods/app/src/main/java/com/dosse/airpods/IntroActivity.java b/OpenPods/app/src/main/java/com/dosse/airpods/IntroActivity.java index 65303e5..98a4f8e 100644 --- a/OpenPods/app/src/main/java/com/dosse/airpods/IntroActivity.java +++ b/OpenPods/app/src/main/java/com/dosse/airpods/IntroActivity.java @@ -23,7 +23,7 @@ public class IntroActivity extends AppCompatActivity { private TextView msg; private Button btn; - private static final int STEP_PERMISSION_BLUETOOTH_SCAN = 1, STEP_PERMISSION_BLUETOOTH_CONNECT = 2, STEP_PERMISSION_BATTERY_OPTIMIZATION = 3, STEP_PERMISSION_LOCATION = 4, STEP_PERMISSION_BACKGROUND_LOCATION = 5; + private static final int STEP_PERMISSION_BLUETOOTH = 1, STEP_PERMISSION_BATTERY_OPTIMIZATION = 2, STEP_PERMISSION_LOCATION = 3, STEP_PERMISSION_BACKGROUND_LOCATION = 4; @Override protected void onCreate (Bundle savedInstanceState) { @@ -60,10 +60,8 @@ public class IntroActivity extends AppCompatActivity { } private int getPermissionState () { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) if (!PermissionUtils.getBluetoothScanPermission(this)) - return STEP_PERMISSION_BLUETOOTH_SCAN; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) if (!PermissionUtils.getBluetoothConnectPermission(this)) - return STEP_PERMISSION_BLUETOOTH_CONNECT; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) if (!PermissionUtils.getBluetoothPermissions(this)) + return STEP_PERMISSION_BLUETOOTH; if (!PermissionUtils.getBatteryOptimizationsPermission(this)) return STEP_PERMISSION_BATTERY_OPTIMIZATION; if (!PermissionUtils.getFineLocationPermission(this)) @@ -76,20 +74,15 @@ public class IntroActivity extends AppCompatActivity { @SuppressLint("BatteryLife") private void initScreen () { - int currentStep = getPermissionState() - ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) ? 0 : 2); - int numOfSteps = (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) ? ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) ? 5 : 3) : 2; + int currentStep = getPermissionState() - ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) ? 0 : 1); + int numOfSteps = (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) ? ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) ? 4 : 3) : 2; switch (getPermissionState()) { - case STEP_PERMISSION_BLUETOOTH_SCAN: - msg.setText(String.format(Locale.getDefault(), "%s %d/%d: %s", getString(R.string.intro_step), currentStep, numOfSteps, getString(R.string.intro_bt1_perm))); + case STEP_PERMISSION_BLUETOOTH: + msg.setText(String.format(Locale.getDefault(), "%s %d/%d: %s", getString(R.string.intro_step), currentStep, numOfSteps, getString(R.string.intro_bt_perm))); btn.setOnClickListener(view -> { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) requestPermissions(new String[] {Manifest.permission.BLUETOOTH_SCAN}, 101); - }); - break; - case STEP_PERMISSION_BLUETOOTH_CONNECT: - msg.setText(String.format(Locale.getDefault(), "%s %d/%d: %s", getString(R.string.intro_step), currentStep, numOfSteps, getString(R.string.intro_bt2_perm))); - btn.setOnClickListener(view -> { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) requestPermissions(new String[] {Manifest.permission.BLUETOOTH_CONNECT}, 102); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) + requestPermissions(new String[] {Manifest.permission.BLUETOOTH_SCAN, Manifest.permission.BLUETOOTH_CONNECT}, 101); }); break; case STEP_PERMISSION_BATTERY_OPTIMIZATION: @@ -104,12 +97,12 @@ public class IntroActivity extends AppCompatActivity { break; case STEP_PERMISSION_LOCATION: msg.setText(String.format(Locale.getDefault(), "%s %d/%d: %s", getString(R.string.intro_step), currentStep, numOfSteps, getString(R.string.intro_loc1_perm))); - btn.setOnClickListener(view -> requestPermissions(new String[] {Manifest.permission.ACCESS_FINE_LOCATION}, 103)); // Location (for BLE) + btn.setOnClickListener(view -> requestPermissions(new String[] {Manifest.permission.ACCESS_FINE_LOCATION}, 102)); // Location (for BLE) break; case STEP_PERMISSION_BACKGROUND_LOCATION: msg.setText(String.format(Locale.getDefault(), "%s %d/%d: %s", getString(R.string.intro_step), currentStep, numOfSteps, getString(R.string.intro_loc2_perm))); btn.setOnClickListener(view -> { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) requestPermissions(new String[] {Manifest.permission.ACCESS_BACKGROUND_LOCATION}, 104); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) requestPermissions(new String[] {Manifest.permission.ACCESS_BACKGROUND_LOCATION}, 103); }); break; } diff --git a/OpenPods/app/src/main/java/com/dosse/airpods/PermissionUtils.java b/OpenPods/app/src/main/java/com/dosse/airpods/PermissionUtils.java index b777f98..ca693bd 100644 --- a/OpenPods/app/src/main/java/com/dosse/airpods/PermissionUtils.java +++ b/OpenPods/app/src/main/java/com/dosse/airpods/PermissionUtils.java @@ -22,13 +22,9 @@ public class PermissionUtils { } @RequiresApi(api = Build.VERSION_CODES.S) - public static boolean getBluetoothScanPermission (Context context) { - return ContextCompat.checkSelfPermission(context, Manifest.permission.BLUETOOTH_SCAN) == PackageManager.PERMISSION_GRANTED; - } - - @RequiresApi(api = Build.VERSION_CODES.S) - public static boolean getBluetoothConnectPermission (Context context) { - return ContextCompat.checkSelfPermission(context, Manifest.permission.BLUETOOTH_CONNECT) == PackageManager.PERMISSION_GRANTED; + public static boolean getBluetoothPermissions (Context context) { + return ContextCompat.checkSelfPermission(context, Manifest.permission.BLUETOOTH_SCAN) == PackageManager.PERMISSION_GRANTED + && ContextCompat.checkSelfPermission(context, Manifest.permission.BLUETOOTH_CONNECT) == PackageManager.PERMISSION_GRANTED; } public static boolean getFineLocationPermission (Context context) { @@ -42,7 +38,7 @@ public class PermissionUtils { public static boolean checkAllPermissions (Context context) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) - return getBatteryOptimizationsPermission(context) && getFineLocationPermission(context) && getBackgroundLocationPermission(context) && getBluetoothScanPermission(context) && getBluetoothConnectPermission(context); + return getBatteryOptimizationsPermission(context) && getFineLocationPermission(context) && getBackgroundLocationPermission(context) && getBluetoothPermissions(context); else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) return getBatteryOptimizationsPermission(context) && getFineLocationPermission(context) && getBackgroundLocationPermission(context); else diff --git a/OpenPods/app/src/main/res/values/strings.xml b/OpenPods/app/src/main/res/values/strings.xml index 8baf15a..829ff83 100644 --- a/OpenPods/app/src/main/res/values/strings.xml +++ b/OpenPods/app/src/main/res/values/strings.xml @@ -10,8 +10,7 @@ To operate, we need permission to use Bluetooth LE (Location) and permission to run in background Allow Step - Bluetooth Scan Permission - Bluetooth Connect Permission + Bluetooth Permissions Battery Optimization Location Permission Background Location Permission