summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/SceneModeActivity.java
diff options
context:
space:
mode:
authormingwax <mingwax@codeaurora.org>2016-11-07 11:07:37 +0800
committermingwax <mingwax@codeaurora.org>2016-11-10 08:44:54 +0800
commitf5b99060843d791ece129463dcc5e377cd89c072 (patch)
tree6bd22d238260235b7a2c799dc30cd3474ba436b4 /src/com/android/camera/SceneModeActivity.java
parentfa36a1cc7d1252854751c9340ccba6e9de806255 (diff)
downloadandroid_packages_apps_Snap-f5b99060843d791ece129463dcc5e377cd89c072.tar.gz
android_packages_apps_Snap-f5b99060843d791ece129463dcc5e377cd89c072.tar.bz2
android_packages_apps_Snap-f5b99060843d791ece129463dcc5e377cd89c072.zip
SnapdragonCamera: Fix camera can`t enter setting in pattern lock
RootCause: Missing flag of WindowManager.LayoutParames in SettingsActivity.java and SceneModeActivity.java. Solution: (1) Add windowManager.LayoutParams.FLAG_SHOW_WHEN _LOCKED in SettingsActivity.java and SceneModeActivity.java. (2) Change SettingsManager`s single instance, and guarantee SettingsManager only one instance. (3) When SettingsActivity.java and SceneModeActivity.java is invisible status, finish them and ensure data is updated in a timely manner. Change-Id: I3ac24b9b181055382849550e585d3be726e71595 CRs-Fixed: 1084871
Diffstat (limited to 'src/com/android/camera/SceneModeActivity.java')
-rw-r--r--src/com/android/camera/SceneModeActivity.java23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/com/android/camera/SceneModeActivity.java b/src/com/android/camera/SceneModeActivity.java
index 09ad391c1..9e0e59506 100644
--- a/src/com/android/camera/SceneModeActivity.java
+++ b/src/com/android/camera/SceneModeActivity.java
@@ -38,6 +38,8 @@ import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.view.Window;
+import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.GridView;
@@ -49,6 +51,7 @@ import org.codeaurora.snapcam.R;
import com.android.camera.ui.DotsView;
import com.android.camera.ui.DotsViewItem;
import com.android.camera.ui.RotateImageView;
+import com.android.camera.util.CameraUtil;
public class SceneModeActivity extends Activity {
private ViewPager mPager;
@@ -86,6 +89,11 @@ public class SceneModeActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ final boolean isSecureCamera = getIntent().getBooleanExtra(
+ CameraUtil.KEY_IS_SECURE_CAMERA, false);
+ if (isSecureCamera) {
+ setShowInLockScreen();
+ }
setContentView(R.layout.scene_mode_menu_layout);
mSettingsManager = SettingsManager.getInstance();
@@ -137,6 +145,7 @@ public class SceneModeActivity extends Activity {
@Override
public void onClick(View v) {
Intent intent = new Intent(getBaseContext(), SettingsActivity.class);
+ intent.putExtra(CameraUtil.KEY_IS_SECURE_CAMERA, isSecureCamera);
startActivity(intent);
finish();
}
@@ -171,6 +180,20 @@ public class SceneModeActivity extends Activity {
public int getCurrentScene() {
return mCurrentScene;
}
+
+ private void setShowInLockScreen() {
+ // Change the window flags so that secure camera can show when locked
+ Window win = getWindow();
+ WindowManager.LayoutParams params = win.getAttributes();
+ params.flags |= WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED;
+ win.setAttributes(params);
+ }
+
+ @Override
+ protected void onStop() {
+ super.onStop();
+ finish();
+ }
}
class MyPagerAdapter extends PagerAdapter {