From a82779917454269c99b490dc1e2e6c9efafa2e9e Mon Sep 17 00:00:00 2001 From: Tobrun Date: Thu, 30 Mar 2017 13:31:04 +0200 Subject: [PATCH] [android] - fixup location permissions in test app pre Android Marshmallow (#8559) --- .../testapp/activity/FeatureOverviewActivity.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/FeatureOverviewActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/FeatureOverviewActivity.java index e8e1c1781..074be98f5 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/FeatureOverviewActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/FeatureOverviewActivity.java @@ -8,6 +8,7 @@ import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.res.Resources; import android.os.AsyncTask; +import android.os.Build; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.StringRes; @@ -132,7 +133,7 @@ public class FeatureOverviewActivity extends AppCompatActivity { @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { - if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { + if (!isRuntimePermissionsRequired() || isPermissionAccepted(grantResults)) { startFeature(features.get(requestCode)); } else { Snackbar.make( @@ -142,6 +143,14 @@ public class FeatureOverviewActivity extends AppCompatActivity { } } + private boolean isRuntimePermissionsRequired() { + return android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M; + } + + private boolean isPermissionAccepted(@NonNull int[] grantResults) { + return grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED; + } + @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState);