From 14e56a3f02dbce1931c1d225c876097acec4d3a4 Mon Sep 17 00:00:00 2001 From: Raff Tsai Date: Fri, 8 Mar 2019 16:19:30 +0800 Subject: [PATCH] Do not allow draw on top for App notification settings Fixes: 119115683 Test: manual Change-Id: Ib7b878a23b4a99171c58b5de992fb87feca8a28a Merged-In: Ib7b878a23b4a99171c58b5de992fb87feca8a28a (cherry picked from commit fe86a2a51f0b8e01e5f595bd60edc594eef58aba) (cherry picked from commit e4800786cff0df47392d0954d700743a1f6cfc8f) --- .../notification/AppNotificationSettings.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/com/android/settings/notification/AppNotificationSettings.java b/src/com/android/settings/notification/AppNotificationSettings.java index 72a4cc1a604..c2402a4d9c1 100644 --- a/src/com/android/settings/notification/AppNotificationSettings.java +++ b/src/com/android/settings/notification/AppNotificationSettings.java @@ -17,6 +17,8 @@ package com.android.settings.notification; import android.app.Activity; +import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS; + import android.app.NotificationChannel; import android.app.NotificationChannelGroup; import android.app.NotificationManager; @@ -33,6 +35,8 @@ import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.widget.Switch; +import android.view.Window; +import android.view.WindowManager; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.R; @@ -76,6 +80,9 @@ public class AppNotificationSettings extends NotificationSettingsBase { 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(); @@ -125,6 +132,15 @@ public class AppNotificationSettings extends NotificationSettingsBase { updateDependents(mAppRow.banned); } + @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); + } + private void addHeaderPref() { ArrayMap rows = new ArrayMap<>(); rows.put(mAppRow.pkg, mAppRow); -- GitLab