OSDN Git Service

Merge tag 'android-9.0.0_r53' into pie-x86
authorChih-Wei Huang <cwhuang@linux.org.tw>
Tue, 11 Feb 2020 02:01:27 +0000 (10:01 +0800)
committerChih-Wei Huang <cwhuang@linux.org.tw>
Tue, 11 Feb 2020 02:01:27 +0000 (10:01 +0800)
Android 9.0.0 Release 53 (6107734)

src/com/android/settings/SettingsActivity.java

index 06eda8d..014a780 100644 (file)
@@ -235,6 +235,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);
@@ -816,4 +822,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);
+    }
 }