packages/apps/Settings
Revision | b1d3a6f5ca9a5013a6e7f2890353ec437e48523d (tree) |
---|---|
Zeit | 2020-03-16 19:39:20 |
Autor | Chih-Wei Huang <cwhuang@linu...> |
Commiter | Chih-Wei Huang |
Merge tag 'android-8.1.0_r74' into oreo-x86
Android 8.1.0 release 74
@@ -254,6 +254,12 @@ public class SettingsActivity extends SettingsDrawerActivity | ||
254 | 254 | @Override |
255 | 255 | protected void onCreate(Bundle savedState) { |
256 | 256 | super.onCreate(savedState); |
257 | + | |
258 | + if (isLockTaskModePinned() && !isSettingsRunOnTop()) { | |
259 | + Log.w(LOG_TAG, "Devices lock task mode pinned."); | |
260 | + finish(); | |
261 | + } | |
262 | + | |
257 | 263 | long startTime = System.currentTimeMillis(); |
258 | 264 | |
259 | 265 | final FeatureFactory factory = FeatureFactory.getFactory(this); |
@@ -962,4 +968,18 @@ public class SettingsActivity extends SettingsDrawerActivity | ||
962 | 968 | Intent intent = new Intent(this, SearchActivity.class); |
963 | 969 | startActivity(intent); |
964 | 970 | } |
971 | + | |
972 | + private boolean isLockTaskModePinned() { | |
973 | + final ActivityManager activityManager = | |
974 | + getApplicationContext().getSystemService(ActivityManager.class); | |
975 | + return activityManager.getLockTaskModeState() == ActivityManager.LOCK_TASK_MODE_PINNED; | |
976 | + } | |
977 | + | |
978 | + private boolean isSettingsRunOnTop() { | |
979 | + final ActivityManager activityManager = | |
980 | + getApplicationContext().getSystemService(ActivityManager.class); | |
981 | + final String taskPkgName = activityManager.getRunningTasks(1 /* maxNum */) | |
982 | + .get(0 /* index */).baseActivity.getPackageName(); | |
983 | + return TextUtils.equals(getPackageName(), taskPkgName); | |
984 | + } | |
965 | 985 | } |