From 148d0b8e3fd412fa6a666e75484fe6b7e0465f5a Mon Sep 17 00:00:00 2001 From: zafir Date: Wed, 8 Jul 2015 16:12:02 -0700 Subject: [PATCH] Launch PermissionsActivity if CameraActivity resume is called without critical permissions. Bug: 22358833 Change-Id: I5c189d4976b9355d531e028ecc163bb67bae6987 --- src/com/android/camera/CameraActivity.java | 15 +++++++-------- src/com/android/camera/PermissionsActivity.java | 4 ++-- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/com/android/camera/CameraActivity.java b/src/com/android/camera/CameraActivity.java index e4da8fafb..1897b289b 100644 --- a/src/com/android/camera/CameraActivity.java +++ b/src/com/android/camera/CameraActivity.java @@ -193,8 +193,8 @@ public class CameraActivity extends QuickActivity /** Load metadata for 10 items ahead of our current. */ private static final int FILMSTRIP_PRELOAD_AHEAD_ITEMS = 10; private static final int PERMISSIONS_ACTIVITY_REQUEST_CODE = 1; - private static final int PERMISSIONS_RESULT_CODE_OK = 0; - private static final int PERMISSIONS_RESULT_CODE_FAILED = 1; + private static final int PERMISSIONS_RESULT_CODE_OK = 1; + private static final int PERMISSIONS_RESULT_CODE_FAILED = 2; /** Should be used wherever a context is needed. */ private Context mAppContext; @@ -1440,7 +1440,6 @@ public class CameraActivity extends QuickActivity mFeatureConfig = OneCameraFeatureConfigCreator.createDefault(getContentResolver(), getServices().getMemoryManager()); mFatalErrorHandler = new FatalErrorHandlerImpl(this); - checkPermissions(); profile.mark(); if (!Glide.isSetup()) { Context context = getAndroidContext(); @@ -1849,6 +1848,11 @@ public class CameraActivity extends QuickActivity @Override public void onResumeTasks() { mPaused = false; + checkPermissions(); + if (!mHasCriticalPermissions) { + Log.v(TAG, "Missing critical permissions."); + return; + } if (!mSecureCamera) { // Show the dialog if necessary. The rest resume logic will be invoked // at the onFirstRunStateReady() callback. @@ -1900,7 +1904,6 @@ public class CameraActivity extends QuickActivity @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); - // Close the app if critical permissions are missing. if (requestCode == PERMISSIONS_ACTIVITY_REQUEST_CODE && resultCode == PERMISSIONS_RESULT_CODE_FAILED) { finish(); @@ -1961,10 +1964,6 @@ public class CameraActivity extends QuickActivity Profile profile = mProfiler.create("CameraActivity.resume").start(); CameraPerformanceTracker.onEvent(CameraPerformanceTracker.ACTIVITY_RESUME); Log.v(TAG, "Build info: " + Build.DISPLAY); - if (!mHasCriticalPermissions) { - Log.v(TAG, "Missing critical permissions."); - return; - } preloadFilmstripItems(); updateStorageSpaceAndHint(null); diff --git a/src/com/android/camera/PermissionsActivity.java b/src/com/android/camera/PermissionsActivity.java index af223d53f..5824fd5de 100644 --- a/src/com/android/camera/PermissionsActivity.java +++ b/src/com/android/camera/PermissionsActivity.java @@ -19,8 +19,8 @@ public class PermissionsActivity extends Activity { private static final Log.Tag TAG = new Log.Tag("PermissionsActivity"); private static int PERMISSION_REQUEST_CODE = 1; - private static int RESULT_CODE_OK = 0; - private static int RESULT_CODE_FAILED = 1; + private static int RESULT_CODE_OK = 1; + private static int RESULT_CODE_FAILED = 2; private int mIndexPermissionRequestCamera; private int mIndexPermissionRequestMicrophone; -- 2.11.0