summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/com/android/camera/CameraActivity.java28
-rw-r--r--src/com/android/camera/processing/imagebackend/TaskCompressImageToJpeg.java3
-rw-r--r--src/com/android/camera/util/QuickActivity.java10
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}.
*/