OSDN Git Service

Merge remote-tracking branch 'cm/cm-14.1' into cm-14.1-x86
authorChih-Wei Huang <cwhuang@linux.org.tw>
Wed, 20 May 2020 13:48:00 +0000 (21:48 +0800)
committerChih-Wei Huang <cwhuang@linux.org.tw>
Wed, 20 May 2020 13:48:00 +0000 (21:48 +0800)
src/com/android/settings/SettingsActivity.java

index b315092..8db6261 100755 (executable)
@@ -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);
+    }
 }