OSDN Git Service

Launch PermissionsActivity if CameraActivity resume is called without critical permis...
authorzafir <zafir@google.com>
Wed, 8 Jul 2015 23:12:02 +0000 (16:12 -0700)
committerzafir <zafir@google.com>
Thu, 9 Jul 2015 00:51:53 +0000 (17:51 -0700)
Bug: 22358833
Change-Id: I5c189d4976b9355d531e028ecc163bb67bae6987

src/com/android/camera/CameraActivity.java
src/com/android/camera/PermissionsActivity.java

index e4da8fa..1897b28 100644 (file)
@@ -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);
 
index af223d5..5824fd5 100644 (file)
@@ -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;