Merge "Replaces binary flag for new interruption model with secure setting."
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index 3b5dca9..61d08a3 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -8201,6 +8201,12 @@
"packages_to_clear_data_before_full_restore";
/**
+ * Setting to determine whether to use the new notification priority handling features.
+ * @hide
+ */
+ public static final String NOTIFICATION_NEW_INTERRUPTION_MODEL = "new_interruption_model";
+
+ /**
* This are the settings to be backed up.
*
* NOTE: Settings are backed up and restored in the order they appear
@@ -8314,6 +8320,7 @@
CHARGING_VIBRATION_ENABLED,
ACCESSIBILITY_MINIMUM_UI_TIMEOUT_ENABLED,
ACCESSIBILITY_MINIMUM_UI_TIMEOUT_MS,
+ NOTIFICATION_NEW_INTERRUPTION_MODEL,
};
/**
@@ -8473,6 +8480,7 @@
VALIDATORS.put(ACCESSIBILITY_MINIMUM_UI_TIMEOUT_MS, NON_NEGATIVE_INTEGER_VALIDATOR);
VALIDATORS.put(USER_SETUP_COMPLETE, BOOLEAN_VALIDATOR);
VALIDATORS.put(ASSIST_GESTURE_SETUP_COMPLETE, BOOLEAN_VALIDATOR);
+ VALIDATORS.put(NOTIFICATION_NEW_INTERRUPTION_MODEL, BOOLEAN_VALIDATOR);
}
/**
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManager.java
index 8994568..bc662e3 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManager.java
@@ -15,7 +15,6 @@
package com.android.systemui.statusbar;
import android.content.pm.UserInfo;
-import android.os.SystemProperties;
import android.service.notification.StatusBarNotification;
import android.util.SparseArray;
@@ -26,8 +25,6 @@
String NOTIFICATION_UNLOCKED_BY_WORK_CHALLENGE_ACTION
= "com.android.systemui.statusbar.work_challenge_unlocked_notification_action";
- boolean AUTO_DEMOTE_NOTIFICATIONS = SystemProperties.getBoolean("debug.demote_notifs", false);
-
boolean shouldAllowLockscreenRemoteInput();
/**
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java
index 0108469..e3bc5b9 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java
@@ -49,6 +49,7 @@
import com.android.systemui.statusbar.StatusBarStateController.StateListener;
import com.android.systemui.statusbar.notification.NotificationData;
import com.android.systemui.statusbar.notification.NotificationEntryManager;
+import com.android.systemui.statusbar.notification.NotificationUtils;
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
import com.android.systemui.statusbar.policy.KeyguardMonitor;
@@ -293,7 +294,7 @@
return false;
}
boolean exceedsPriorityThreshold;
- if (AUTO_DEMOTE_NOTIFICATIONS) {
+ if (NotificationUtils.useNewInterruptionModel(mContext)) {
exceedsPriorityThreshold =
getEntryManager().getNotificationData().getImportance(sbn.getKey())
>= IMPORTANCE_DEFAULT;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationUtils.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationUtils.java
index 66ba9e9..7850075 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationUtils.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationUtils.java
@@ -16,8 +16,11 @@
package com.android.systemui.statusbar.notification;
+import static android.provider.Settings.Secure.NOTIFICATION_NEW_INTERRUPTION_MODEL;
+
import android.content.Context;
import android.graphics.Color;
+import android.provider.Settings;
import android.view.View;
import android.widget.ImageView;
@@ -68,4 +71,10 @@
context.getResources().getDisplayMetrics().density);
return (int) (dimensionPixelSize * factor);
}
+
+ /** Returns the value of the new interruption model setting. */
+ public static boolean useNewInterruptionModel(Context context) {
+ return Settings.System.getInt(context.getContentResolver(),
+ NOTIFICATION_NEW_INTERRUPTION_MODEL, 0) != 0;
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconAreaController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconAreaController.java
index f50e9a2..8e90f98 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconAreaController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconAreaController.java
@@ -20,7 +20,6 @@
import com.android.internal.widget.ViewClippingUtil;
import com.android.systemui.Dependency;
import com.android.systemui.R;
-import com.android.systemui.statusbar.NotificationLockscreenUserManager;
import com.android.systemui.statusbar.NotificationShelf;
import com.android.systemui.statusbar.StatusBarIconView;
import com.android.systemui.statusbar.notification.NotificationData;
@@ -50,7 +49,7 @@
public void onTuningChanged(String key, String newValue) {
if (key.equals(LOW_PRIORITY)) {
mShowLowPriority = "1".equals(newValue)
- || !NotificationLockscreenUserManager.AUTO_DEMOTE_NOTIFICATIONS;
+ || !NotificationUtils.useNewInterruptionModel(mContext);
if (mNotificationScrollLayout != null) {
updateStatusBarIcons();
}