From 77960dced162b9942d158e06a87d5156eca9959d Mon Sep 17 00:00:00 2001 From: oliexdev Date: Fri, 12 Nov 2021 20:28:11 +0100 Subject: [PATCH] fixed Android 12 installation errors and crashes --- android_app/app/src/main/AndroidManifest.xml | 13 +++++++------ .../gui/preferences/BluetoothSettingsFragment.java | 8 ++++++++ .../openscale/gui/utils/PermissionHelper.java | 3 +-- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/android_app/app/src/main/AndroidManifest.xml b/android_app/app/src/main/AndroidManifest.xml index 87a030ef8..f877960cb 100644 --- a/android_app/app/src/main/AndroidManifest.xml +++ b/android_app/app/src/main/AndroidManifest.xml @@ -33,23 +33,24 @@ + android:theme="@style/AppTheme.NoActionBar" + android:exported="true"> - - + + - + - + @@ -57,7 +58,7 @@ android:resource="@xml/widget_info" /> - + diff --git a/android_app/app/src/main/java/com/health/openscale/gui/preferences/BluetoothSettingsFragment.java b/android_app/app/src/main/java/com/health/openscale/gui/preferences/BluetoothSettingsFragment.java index adc5c2df6..ba8cf4534 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/preferences/BluetoothSettingsFragment.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/preferences/BluetoothSettingsFragment.java @@ -102,6 +102,7 @@ public void onResume() { if (PermissionHelper.requestBluetoothPermission(this)) { startBluetoothDiscovery(); } + super.onResume(); } @@ -404,6 +405,13 @@ public void onRequestPermissionsResult(int requestCode, String permissions[], in } else { Timber.d("At least one Bluetooth permission was not granted"); Toast.makeText(requireContext(), R.string.permission_not_granted, Toast.LENGTH_SHORT).show(); + + if (getActivity().findViewById(R.id.nav_host_fragment) != null){ + Navigation.findNavController(requireActivity(), R.id.nav_host_fragment).getPreviousBackStackEntry().getSavedStateHandle().set("update", true); + Navigation.findNavController(requireActivity(), R.id.nav_host_fragment).navigateUp(); + } else { + getActivity().finish(); + } } break; } diff --git a/android_app/app/src/main/java/com/health/openscale/gui/utils/PermissionHelper.java b/android_app/app/src/main/java/com/health/openscale/gui/utils/PermissionHelper.java index 61be37291..7962e78e4 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/utils/PermissionHelper.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/utils/PermissionHelper.java @@ -72,6 +72,7 @@ public static boolean requestBluetoothPermission(final Fragment fragment) { Timber.d("SDK >= 31 request for Bluetooth Scan and Bluetooth connect permissions"); requiredPermissions = new String[]{Manifest.permission.BLUETOOTH_SCAN, Manifest.permission.BLUETOOTH_CONNECT}; fragment.requestPermissions(requiredPermissions, PERMISSIONS_REQUEST_ACCESS_BLUETOOTH); + return false; } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && targetSdkVersion >= Build.VERSION_CODES.Q) { Timber.d("SDK >= 29 request for Access fine location permission"); return requestLocationPermission(fragment, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}); @@ -79,8 +80,6 @@ public static boolean requestBluetoothPermission(final Fragment fragment) { Timber.d("SDK < 29 request for coarse location permission"); return requestLocationPermission(fragment, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}); } - - return true; } private static boolean requestLocationPermission(final Fragment fragment, String[] requiredPermissions) {