diff options
Diffstat (limited to 'src/com/android/camera/PermissionsActivity.java')
-rw-r--r-- | src/com/android/camera/PermissionsActivity.java | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/src/com/android/camera/PermissionsActivity.java b/src/com/android/camera/PermissionsActivity.java index c720d2106..e623be281 100644 --- a/src/com/android/camera/PermissionsActivity.java +++ b/src/com/android/camera/PermissionsActivity.java @@ -33,16 +33,20 @@ public class PermissionsActivity extends Activity { private boolean mFlagHasMicrophonePermission; private boolean mFlagHasStoragePermission; private boolean mCriticalPermissionDenied; + private Intent mIntent; + private boolean mIsReturnResult; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + mIntent = getIntent(); + mIsReturnResult = false; } @Override protected void onResume() { super.onResume(); - if (!mCriticalPermissionDenied) { + if (!mCriticalPermissionDenied && !mIsReturnResult) { mNumPermissionsToRequest = 0; checkPermissions(); } else { @@ -164,9 +168,16 @@ public class PermissionsActivity extends Activity { } private void handlePermissionsSuccess() { - Intent intent = new Intent(this, CameraActivity.class); - startActivity(intent); - finish(); + if (mIntent != null) { + mIsReturnResult = true; + mIntent.setClass(this, CameraActivity.class); + startActivityForResult(mIntent, 1); + } else { + mIsReturnResult = false; + Intent intent = new Intent(this, CameraActivity.class); + startActivity(intent); + finish(); + } } private void handlePermissionsFailure() { @@ -192,4 +203,11 @@ public class PermissionsActivity extends Activity { }) .show(); } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + setResult(resultCode, data); + finish(); + } } |