diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java index ea7874c6257..5c671206e98 100644 --- a/src/com/android/settings/SettingsActivity.java +++ b/src/com/android/settings/SettingsActivity.java @@ -277,6 +277,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(); final FeatureFactory factory = FeatureFactory.getFactory(this); @@ -939,4 +945,19 @@ 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); + } } \ No newline at end of file