diff options
author | mingwax <mingwax@codeaurora.org> | 2016-11-07 11:07:37 +0800 |
---|---|---|
committer | mingwax <mingwax@codeaurora.org> | 2016-11-10 08:44:54 +0800 |
commit | f5b99060843d791ece129463dcc5e377cd89c072 (patch) | |
tree | 6bd22d238260235b7a2c799dc30cd3474ba436b4 /src/com/android/camera/SceneModeActivity.java | |
parent | fa36a1cc7d1252854751c9340ccba6e9de806255 (diff) | |
download | android_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.java | 23 |
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 { |