diff options
-rw-r--r-- | src/com/android/settings/SettingsActivity.java | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java index 29cd77ade6..3bfafbb19a 100644 --- a/src/com/android/settings/SettingsActivity.java +++ b/src/com/android/settings/SettingsActivity.java @@ -234,6 +234,12 @@ public class SettingsActivity extends SettingsDrawerActivity protected void onCreate(Bundle savedState) { super.onCreate(savedState); Log.d(LOG_TAG, "Starting onCreate"); + + if (isLockTaskModePinned() && !isSettingsRunOnTop()) { + Log.w(LOG_TAG, "Devices lock task mode pinned."); + finish(); + } + long startTime = System.currentTimeMillis(); final FeatureFactory factory = FeatureFactory.getFactory(this); @@ -810,4 +816,18 @@ public class SettingsActivity extends SettingsDrawerActivity return bitmap; } + + 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); + } } |