Android-x86
Fork
Spenden

  • R/O
  • HTTP
  • SSH
  • HTTPS

packages-apps-Settings: Commit

packages/apps/Settings


Commit MetaInfo

Revision65e18e18ebccd397ff379ea374ad50e35953fc82 (tree)
Zeit2019-12-17 05:40:03
AutorMill Chen <millchen@goog...>
CommiterManjae Park

Log Message

Prevent accounts page directly opening in screen pinning mode

In Settings there is no auth mechanism to prevent accounts page being
opened in screen pinning mode. This CL makes it so that when users are
trying to navigate to any pages in Settings from other apps in screen
pinning mode, Settings app will directly close its page.

Bug: 137015265
Bug: 135604684
Test: manual
Change-Id: If26eda408a9ef6fa03ad82e5bee51bb7185950d6
Merged-In: If26eda408a9ef6fa03ad82e5bee51bb7185950d6
(cherry picked from commit f3242dab3546c019d4b79c502f7b8850d36123a5)
(cherry picked from commit ad2502a91a6d0814396b2d26a7270e8cbdb2ed38)

Ändern Zusammenfassung

Diff

--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -234,6 +234,12 @@ public class SettingsActivity extends SettingsDrawerActivity
234234 protected void onCreate(Bundle savedState) {
235235 super.onCreate(savedState);
236236 Log.d(LOG_TAG, "Starting onCreate");
237+
238+ if (isLockTaskModePinned() && !isSettingsRunOnTop()) {
239+ Log.w(LOG_TAG, "Devices lock task mode pinned.");
240+ finish();
241+ }
242+
237243 long startTime = System.currentTimeMillis();
238244
239245 final FeatureFactory factory = FeatureFactory.getFactory(this);
@@ -810,4 +816,18 @@ public class SettingsActivity extends SettingsDrawerActivity
810816
811817 return bitmap;
812818 }
819+
820+ private boolean isLockTaskModePinned() {
821+ final ActivityManager activityManager =
822+ getApplicationContext().getSystemService(ActivityManager.class);
823+ return activityManager.getLockTaskModeState() == ActivityManager.LOCK_TASK_MODE_PINNED;
824+ }
825+
826+ private boolean isSettingsRunOnTop() {
827+ final ActivityManager activityManager =
828+ getApplicationContext().getSystemService(ActivityManager.class);
829+ final String taskPkgName = activityManager.getRunningTasks(1 /* maxNum */)
830+ .get(0 /* index */).baseActivity.getPackageName();
831+ return TextUtils.equals(getPackageName(), taskPkgName);
832+ }
813833 }
Show on old repository browser