diff options
Diffstat (limited to 'src')
3 files changed, 38 insertions, 3 deletions
diff --git a/src/com/android/camera/CameraActivity.java b/src/com/android/camera/CameraActivity.java index 18d87bf24..6b81641e9 100644 --- a/src/com/android/camera/CameraActivity.java +++ b/src/com/android/camera/CameraActivity.java @@ -22,6 +22,7 @@ import android.animation.Animator; import android.app.ActionBar; import android.app.Activity; import android.app.Dialog; +import android.app.KeyguardManager.KeyguardDismissCallback; import android.content.ActivityNotFoundException; import android.content.BroadcastReceiver; import android.content.ContentResolver; @@ -2513,7 +2514,32 @@ public class CameraActivity extends QuickActivity UsageStatistics.instance().controlUsed( eventprotos.ControlEvent.ControlType.OVERALL_SETTINGS); Intent intent = new Intent(this, CameraSettingsActivity.class); - startActivity(intent); + if (!isKeyguardLocked()) { + startActivity(intent); + } else { + /* Need to explicitly request keyguard dismissal for PIN/pattern + * entry to show up directly. */ + requestDismissKeyguard( + /* requesting Activity: */ CameraActivity.this, + new KeyguardDismissCallback() { + @Override + public void onDismissSucceeded() { + /* Need to use launchActivityByIntent() so that going + * back from settings after unlock leads to main + * activity instead of dismissing camera entirely. */ + launchActivityByIntent(intent); + } + @Override + public void onDismissError() { + Log.e(TAG, "Keyguard dismissal failed."); + } + @Override + public void onDismissCancelled() { + Log.d(TAG, "Keyguard dismissal canceled."); + } + } + ); + } } @Override diff --git a/src/com/android/camera/processing/imagebackend/TaskCompressImageToJpeg.java b/src/com/android/camera/processing/imagebackend/TaskCompressImageToJpeg.java index c87eab8e8..7a2caf9fb 100644 --- a/src/com/android/camera/processing/imagebackend/TaskCompressImageToJpeg.java +++ b/src/com/android/camera/processing/imagebackend/TaskCompressImageToJpeg.java @@ -96,8 +96,7 @@ public class TaskCompressImageToJpeg extends TaskJpegEncode { */ public Map<Integer, Integer> exifGetMinimalTags(ExifInterface exif) { Map<Integer, Integer> map = new HashMap<>(); - map.put(ExifInterface.TAG_ORIENTATION, - ExifInterface.getRotationForOrientationValue((short) Exif.getOrientation(exif))); + map.put(ExifInterface.TAG_ORIENTATION, Exif.getOrientation(exif)); map.put(ExifInterface.TAG_PIXEL_X_DIMENSION, exif.getTagIntValue( ExifInterface.TAG_PIXEL_X_DIMENSION)); map.put(ExifInterface.TAG_PIXEL_Y_DIMENSION, exif.getTagIntValue( diff --git a/src/com/android/camera/util/QuickActivity.java b/src/com/android/camera/util/QuickActivity.java index 18ea25368..5122255e1 100644 --- a/src/com/android/camera/util/QuickActivity.java +++ b/src/com/android/camera/util/QuickActivity.java @@ -224,6 +224,16 @@ public abstract class QuickActivity extends Activity { return false; } + protected void requestDismissKeyguard(Activity activity, + @Nullable KeyguardManager.KeyguardDismissCallback callback) { + if (mKeyguardManager == null) { + mKeyguardManager = AndroidServices.instance().provideKeyguardManager(); + } + if (mKeyguardManager != null) { + mKeyguardManager.requestDismissKeyguard(activity, callback); + } + } + /** * Subclasses should override this in place of {@link Activity#onNewIntent}. */ |