Merge cherrypicks of [7995446, 7995447, 7996042, 7996138, 7995448, 7995449, 7995789, 7995790, 7995450, 7996029, 7996030, 7996139, 7996140, 7996141, 7996142, 7996143, 7996144, 7995544, 7995545, 7995546, 7995547, 7995548, 7995549, 7995550, 7996145, 7996146, 7996032, 7996147, 7996148, 7996149, 7996150, 7994747, 7994748, 7995451, 7994749, 7994750, 7995966, 7995967, 7994751, 7996151, 7996152, 7996153] into pi-qpr3-b-release
Change-Id: I99e4df5bf4f3ea4e98672611976292174b53f507
diff --git a/src/com/android/settings/notification/AppNotificationSettings.java b/src/com/android/settings/notification/AppNotificationSettings.java
index 99e9458..bbfbe5e 100644
--- a/src/com/android/settings/notification/AppNotificationSettings.java
+++ b/src/com/android/settings/notification/AppNotificationSettings.java
@@ -16,6 +16,8 @@
package com.android.settings.notification;
+import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
+
import android.app.NotificationChannel;
import android.app.NotificationChannelGroup;
import android.content.Context;
@@ -28,6 +30,8 @@
import android.support.v7.preference.PreferenceScreen;
import android.text.TextUtils;
import android.util.Log;
+import android.view.Window;
+import android.view.WindowManager;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.internal.widget.LockPatternUtils;
@@ -81,6 +85,9 @@
public void onResume() {
super.onResume();
+ getActivity().getWindow().addPrivateFlags(PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
+ android.util.EventLog.writeEvent(0x534e4554, "119115683", -1, "");
+
if (mUid < 0 || TextUtils.isEmpty(mPkg) || mPkgInfo == null) {
Log.w(TAG, "Missing package or uid or packageinfo");
finish();
@@ -115,6 +122,15 @@
}
@Override
+ public void onPause() {
+ super.onPause();
+ final Window window = getActivity().getWindow();
+ final WindowManager.LayoutParams attrs = window.getAttributes();
+ attrs.privateFlags &= ~PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
+ window.setAttributes(attrs);
+ }
+
+ @Override
protected String getLogTag() {
return TAG;
}
diff --git a/src/com/android/settings/security/ScreenPinningSettings.java b/src/com/android/settings/security/ScreenPinningSettings.java
index 6e4856e..0af7b72 100644
--- a/src/com/android/settings/security/ScreenPinningSettings.java
+++ b/src/com/android/settings/security/ScreenPinningSettings.java
@@ -115,9 +115,13 @@
}
private boolean isScreenLockUsed() {
- int def = getCurrentSecurityTitle() != R.string.screen_pinning_unlock_none ? 1 : 0;
- return Settings.Secure.getInt(getContentResolver(),
- Settings.Secure.LOCK_TO_APP_EXIT_LOCKED, def) != 0;
+ // This functionality should be kept consistent with
+ // com.android.server.wm.LockTaskController (see b/127605586)
+ int defaultValueIfSettingNull = mLockPatternUtils.isSecure(UserHandle.myUserId()) ? 1 : 0;
+ return Settings.Secure.getInt(
+ getContentResolver(),
+ Settings.Secure.LOCK_TO_APP_EXIT_LOCKED,
+ defaultValueIfSettingNull) != 0;
}
private boolean setScreenLockUsed(boolean isEnabled) {