From: Chih-Wei Huang Date: Wed, 20 May 2020 13:48:00 +0000 (+0800) Subject: Merge remote-tracking branch 'cm/cm-14.1' into cm-14.1-x86 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=c92ac15e06b042383a454669f2b39f33a3a724a2;hp=5fca2016fee019bfa142e8397f9b269d506abee2;p=android-x86%2Fpackages-apps-Settings.git Merge remote-tracking branch 'cm/cm-14.1' into cm-14.1-x86 --- diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java index b315092d3d..8db6261a5e 100755 --- a/src/com/android/settings/SettingsActivity.java +++ b/src/com/android/settings/SettingsActivity.java @@ -536,6 +536,12 @@ public class SettingsActivity extends SettingsDrawerActivity @Override protected void onCreate(Bundle savedState) { super.onCreate(savedState); + + if (isLockTaskModePinned() && !isSettingsRunOnTop()) { + Log.w(LOG_TAG, "Devices lock task mode pinned."); + finish(); + } + long startTime = System.currentTimeMillis(); // Should happen before any call to getIntent() @@ -1349,4 +1355,16 @@ public class SettingsActivity extends SettingsDrawerActivity } super.onActivityResult(requestCode, resultCode, data); } + private boolean isLockTaskModePinned() { + final ActivityManager activityManager = + getApplicationContext().getSystemService(ActivityManager.class); + return activityManager.getLockTaskModeState() == ActivityManager.LOCK_TASK_MODE_PINNED; + } + private boolean isSettingsRunOnTop() { + final ActivityManager activityManager = + getApplicationContext().getSystemService(ActivityManager.class); + final String taskPkgName = activityManager.getRunningTasks(1 /* maxNum */) + .get(0 /* index */).baseActivity.getPackageName(); + return TextUtils.equals(getPackageName(), taskPkgName); + } }