diff options
author | zafir <zafir@google.com> | 2015-07-15 01:14:10 -0700 |
---|---|---|
committer | Jay Wang <jaywang@codeaurora.org> | 2016-06-02 16:47:25 -0700 |
commit | 7c97b9156018f544361c2d1685072f1a3d47251a (patch) | |
tree | 2f353bec36a9ae1b5cf444bf4d17633d11314708 /src/com/android/camera/PermissionsActivity.java | |
parent | f6ced59d086a755d6f720600181c023c29d202ca (diff) | |
download | android_packages_apps_Snap-7c97b9156018f544361c2d1685072f1a3d47251a.tar.gz android_packages_apps_Snap-7c97b9156018f544361c2d1685072f1a3d47251a.tar.bz2 android_packages_apps_Snap-7c97b9156018f544361c2d1685072f1a3d47251a.zip |
Fixes to M permissions.
Previously, we called PermissionsActivity with startActivityForResult().
However, this creates race conditions as we check for permissions
and the CameraActivity continues to operate. Now, we end CameraActivity
and launch a new instance upon successful permissions resolution.
We can also put the preload filmstrip logic back in its original
place in onCreate. The checks for permissions happen in both
onCreate and onResume.
Bug: 22442745, 22478144, 22497152
CRs-Fixed: 1019847
Change-Id: I82e9125a46581db44aa61d4ee94aec5a820e9df0
(cherry picked from commit ac0e2425e77a9b69e76d2f31876798825ea44584)
Diffstat (limited to 'src/com/android/camera/PermissionsActivity.java')
-rw-r--r-- | src/com/android/camera/PermissionsActivity.java | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/src/com/android/camera/PermissionsActivity.java b/src/com/android/camera/PermissionsActivity.java index f2d907c68..a55bdb258 100644 --- a/src/com/android/camera/PermissionsActivity.java +++ b/src/com/android/camera/PermissionsActivity.java @@ -2,10 +2,13 @@ package com.android.camera; import android.Manifest; import android.app.Activity; +import android.app.Dialog; import android.app.AlertDialog; import android.content.DialogInterface; +import android.content.Intent; import android.content.pm.PackageManager; import android.os.Bundle; +import android.view.KeyEvent; import org.codeaurora.snapcam.R; /** @@ -148,17 +151,28 @@ public class PermissionsActivity extends Activity { } private void handlePermissionsSuccess() { - setResult(RESULT_CODE_OK, null); + Intent intent = new Intent(this, CameraActivity.class); + startActivity(intent); finish(); } private void handlePermissionsFailure() { new AlertDialog.Builder(this).setTitle(getResources().getString(R.string.camera_error_title)) .setMessage(getResources().getString(R.string.error_permissions)) - .setPositiveButton(getResources().getString(R.string.dialog_dismiss), new DialogInterface.OnClickListener() { + .setCancelable(false) + .setOnKeyListener(new Dialog.OnKeyListener() { + @Override + public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_BACK) { + finish(); + } + return true; + } + }) + .setPositiveButton(getResources().getString(R.string.dialog_dismiss), + new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - setResult(RESULT_CODE_FAILED, null); finish(); } }) |