Loading core/java/com/android/internal/notification/SystemNotificationChannels.java +1 −20 Original line number Diff line number Diff line Loading @@ -59,7 +59,6 @@ public class SystemNotificationChannels { VIRTUAL_KEYBOARD, context.getString(R.string.notification_channel_virtual_keyboard), NotificationManager.IMPORTANCE_LOW); keyboard.setBypassDnd(true); keyboard.setBlockableSystem(true); channelsList.add(keyboard); Loading @@ -76,7 +75,6 @@ public class SystemNotificationChannels { SECURITY, context.getString(R.string.notification_channel_security), NotificationManager.IMPORTANCE_LOW); security.setBypassDnd(true); channelsList.add(security); final NotificationChannel car = new NotificationChannel( Loading @@ -84,7 +82,6 @@ public class SystemNotificationChannels { context.getString(R.string.notification_channel_car_mode), NotificationManager.IMPORTANCE_LOW); car.setBlockableSystem(true); car.setBypassDnd(true); channelsList.add(car); channelsList.add(newAccountChannel(context)); Loading @@ -93,7 +90,6 @@ public class SystemNotificationChannels { DEVELOPER, context.getString(R.string.notification_channel_developer), NotificationManager.IMPORTANCE_LOW); developer.setBypassDnd(true); developer.setBlockableSystem(true); channelsList.add(developer); Loading @@ -101,21 +97,18 @@ public class SystemNotificationChannels { UPDATES, context.getString(R.string.notification_channel_updates), NotificationManager.IMPORTANCE_LOW); updates.setBypassDnd(true); channelsList.add(updates); final NotificationChannel network = new NotificationChannel( NETWORK_STATUS, context.getString(R.string.notification_channel_network_status), NotificationManager.IMPORTANCE_LOW); network.setBypassDnd(true); channelsList.add(network); final NotificationChannel networkAlertsChannel = new NotificationChannel( NETWORK_ALERTS, context.getString(R.string.notification_channel_network_alerts), NotificationManager.IMPORTANCE_HIGH); networkAlertsChannel.setBypassDnd(true); networkAlertsChannel.setBlockableSystem(true); channelsList.add(networkAlertsChannel); Loading @@ -124,42 +117,36 @@ public class SystemNotificationChannels { context.getString(R.string.notification_channel_network_available), NotificationManager.IMPORTANCE_LOW); networkAvailable.setBlockableSystem(true); networkAvailable.setBypassDnd(true); channelsList.add(networkAvailable); final NotificationChannel vpn = new NotificationChannel( VPN, context.getString(R.string.notification_channel_vpn), NotificationManager.IMPORTANCE_LOW); vpn.setBypassDnd(true); channelsList.add(vpn); final NotificationChannel deviceAdmin = new NotificationChannel( DEVICE_ADMIN, context.getString(R.string.notification_channel_device_admin), NotificationManager.IMPORTANCE_LOW); deviceAdmin.setBypassDnd(true); channelsList.add(deviceAdmin); final NotificationChannel alertsChannel = new NotificationChannel( ALERTS, context.getString(R.string.notification_channel_alerts), NotificationManager.IMPORTANCE_DEFAULT); alertsChannel.setBypassDnd(true); channelsList.add(alertsChannel); final NotificationChannel retail = new NotificationChannel( RETAIL_MODE, context.getString(R.string.notification_channel_retail_mode), NotificationManager.IMPORTANCE_LOW); retail.setBypassDnd(true); channelsList.add(retail); final NotificationChannel usb = new NotificationChannel( USB, context.getString(R.string.notification_channel_usb), NotificationManager.IMPORTANCE_MIN); usb.setBypassDnd(true); channelsList.add(usb); NotificationChannel foregroundChannel = new NotificationChannel( Loading @@ -167,7 +154,6 @@ public class SystemNotificationChannels { context.getString(R.string.notification_channel_foreground_service), NotificationManager.IMPORTANCE_LOW); foregroundChannel.setBlockableSystem(true); foregroundChannel.setBypassDnd(true); channelsList.add(foregroundChannel); NotificationChannel heavyWeightChannel = new NotificationChannel( Loading @@ -179,19 +165,16 @@ public class SystemNotificationChannels { .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION) .setUsage(AudioAttributes.USAGE_NOTIFICATION_EVENT) .build()); heavyWeightChannel.setBypassDnd(true); channelsList.add(heavyWeightChannel); NotificationChannel systemChanges = new NotificationChannel(SYSTEM_CHANGES, context.getString(R.string.notification_channel_system_changes), NotificationManager.IMPORTANCE_LOW); systemChanges.setBypassDnd(true); channelsList.add(systemChanges); NotificationChannel dndChanges = new NotificationChannel(DO_NOT_DISTURB, context.getString(R.string.notification_channel_do_not_disturb), NotificationManager.IMPORTANCE_LOW); dndChanges.setBypassDnd(true); channelsList.add(dndChanges); nm.createNotificationChannels(channelsList); Loading @@ -208,12 +191,10 @@ public class SystemNotificationChannels { } private static NotificationChannel newAccountChannel(Context context) { final NotificationChannel acct = new NotificationChannel( return new NotificationChannel( ACCOUNT, context.getString(R.string.notification_channel_account), NotificationManager.IMPORTANCE_LOW); acct.setBypassDnd(true); return acct; } private SystemNotificationChannels() {} Loading packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java +8 −11 Original line number Diff line number Diff line Loading @@ -179,11 +179,6 @@ public class ExpandableNotificationRow extends ActivatableNotificationView private NotificationGuts mGuts; private NotificationData.Entry mEntry; private StatusBarNotification mStatusBarNotification; /** * Whether or not this row represents a system notification. Note that if this is {@code null}, * that means we were either unable to retrieve the info or have yet to retrieve the info. */ private Boolean mIsSystemNotification; private String mAppName; private boolean mIsHeadsUp; private boolean mLastChronometerRunning = true; Loading Loading @@ -426,7 +421,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView * once per notification as the packageInfo can't technically change for a notification row. */ private void cacheIsSystemNotification() { if (mIsSystemNotification == null) { if (mEntry != null && mEntry.mIsSystemNotification == null) { if (mSystemNotificationAsyncTask.getStatus() == AsyncTask.Status.PENDING) { // Run async task once, only if it hasn't already been executed. Note this is // executed in serial - no need to parallelize this small task. Loading @@ -445,16 +440,16 @@ public class ExpandableNotificationRow extends ActivatableNotificationView // If the SystemNotifAsyncTask hasn't finished running or retrieved a value, we'll try once // again, but in-place on the main thread this time. This should rarely ever get called. if (mIsSystemNotification == null) { if (mEntry != null && mEntry.mIsSystemNotification == null) { if (DEBUG) { Log.d(TAG, "Retrieving isSystemNotification on main thread"); } mSystemNotificationAsyncTask.cancel(true /* mayInterruptIfRunning */); mIsSystemNotification = isSystemNotification(mContext, mStatusBarNotification); mEntry.mIsSystemNotification = isSystemNotification(mContext, mStatusBarNotification); } if (!isNonblockable && mIsSystemNotification != null) { if (mIsSystemNotification) { if (!isNonblockable && mEntry != null && mEntry.mIsSystemNotification != null) { if (mEntry.mIsSystemNotification) { if (mEntry.channel != null && !mEntry.channel.isBlockableSystem()) { isNonblockable = true; Loading Loading @@ -2875,7 +2870,9 @@ public class ExpandableNotificationRow extends ActivatableNotificationView @Override protected void onPostExecute(Boolean result) { mIsSystemNotification = result; if (mEntry != null) { mEntry.mIsSystemNotification = result; } } } } packages/SystemUI/src/com/android/systemui/statusbar/NotificationData.java +31 −22 Original line number Diff line number Diff line Loading @@ -103,6 +103,12 @@ public class NotificationData { public ArraySet<Integer> mActiveAppOps = new ArraySet<>(3); public CharSequence headsUpStatusBarText; public CharSequence headsUpStatusBarTextPublic; /** * Whether or not this row represents a system notification. Note that if this is * {@code null}, that means we were either unable to retrieve the info or have yet to * retrieve the info. */ public Boolean mIsSystemNotification; public Entry(StatusBarNotification n) { this.key = n.getKey(); Loading Loading @@ -435,31 +441,31 @@ public class NotificationData { return Ranking.VISIBILITY_NO_OVERRIDE; } public boolean shouldSuppressFullScreenIntent(StatusBarNotification sbn) { return shouldSuppressVisualEffect(sbn, SUPPRESSED_EFFECT_FULL_SCREEN_INTENT); public boolean shouldSuppressFullScreenIntent(Entry entry) { return shouldSuppressVisualEffect(entry, SUPPRESSED_EFFECT_FULL_SCREEN_INTENT); } public boolean shouldSuppressPeek(StatusBarNotification sbn) { return shouldSuppressVisualEffect(sbn, SUPPRESSED_EFFECT_PEEK); public boolean shouldSuppressPeek(Entry entry) { return shouldSuppressVisualEffect(entry, SUPPRESSED_EFFECT_PEEK); } public boolean shouldSuppressStatusBar(StatusBarNotification sbn) { return shouldSuppressVisualEffect(sbn, SUPPRESSED_EFFECT_STATUS_BAR); public boolean shouldSuppressStatusBar(Entry entry) { return shouldSuppressVisualEffect(entry, SUPPRESSED_EFFECT_STATUS_BAR); } public boolean shouldSuppressAmbient(StatusBarNotification sbn) { return shouldSuppressVisualEffect(sbn, SUPPRESSED_EFFECT_AMBIENT); public boolean shouldSuppressAmbient(Entry entry) { return shouldSuppressVisualEffect(entry, SUPPRESSED_EFFECT_AMBIENT); } public boolean shouldSuppressNotificationList(StatusBarNotification sbn) { return shouldSuppressVisualEffect(sbn, SUPPRESSED_EFFECT_NOTIFICATION_LIST); public boolean shouldSuppressNotificationList(Entry entry) { return shouldSuppressVisualEffect(entry, SUPPRESSED_EFFECT_NOTIFICATION_LIST); } private boolean shouldSuppressVisualEffect(StatusBarNotification sbn, int effect) { if (isExemptFromDndVisualSuppression(sbn)) { private boolean shouldSuppressVisualEffect(Entry entry, int effect) { if (isExemptFromDndVisualSuppression(entry)) { return false; } String key = sbn.getKey(); String key = entry.key; if (mRankingMap != null) { getRanking(key, mTmpRanking); return (mTmpRanking.getSuppressedVisualEffects() & effect) != 0; Loading @@ -467,11 +473,15 @@ public class NotificationData { return false; } protected boolean isExemptFromDndVisualSuppression(StatusBarNotification sbn) { if ((sbn.getNotification().flags & Notification.FLAG_FOREGROUND_SERVICE) != 0) { protected boolean isExemptFromDndVisualSuppression(Entry entry) { if ((entry.notification.getNotification().flags & Notification.FLAG_FOREGROUND_SERVICE) != 0) { return true; } if (entry.notification.getNotification().isMediaNotification()) { return true; } if (sbn.getNotification().isMediaNotification()) { if (entry.mIsSystemNotification != null && entry.mIsSystemNotification) { return true; } return false; Loading Loading @@ -564,9 +574,8 @@ public class NotificationData { final int N = mEntries.size(); for (int i = 0; i < N; i++) { Entry entry = mEntries.valueAt(i); StatusBarNotification sbn = entry.notification; if (shouldFilterOut(sbn)) { if (shouldFilterOut(entry)) { continue; } Loading @@ -578,10 +587,10 @@ public class NotificationData { } /** * @param sbn * @return true if this notification should NOT be shown right now */ public boolean shouldFilterOut(StatusBarNotification sbn) { public boolean shouldFilterOut(Entry entry) { final StatusBarNotification sbn = entry.notification; if (!(mEnvironment.isDeviceProvisioned() || showNotificationEvenIfUnprovisioned(sbn))) { return true; Loading @@ -598,11 +607,11 @@ public class NotificationData { return true; } if (mEnvironment.isDozing() && shouldSuppressAmbient(sbn)) { if (mEnvironment.isDozing() && shouldSuppressAmbient(entry)) { return true; } if (!mEnvironment.isDozing() && shouldSuppressNotificationList(sbn)) { if (!mEnvironment.isDozing() && shouldSuppressNotificationList(entry)) { return true; } Loading packages/SystemUI/src/com/android/systemui/statusbar/NotificationEntryManager.java +6 −6 Original line number Diff line number Diff line Loading @@ -300,12 +300,12 @@ public class NotificationEntryManager implements Dumpable, NotificationInflater. updateNotifications(); } private boolean shouldSuppressFullScreenIntent(StatusBarNotification sbn) { private boolean shouldSuppressFullScreenIntent(NotificationData.Entry entry) { if (mPresenter.isDeviceInVrMode()) { return true; } return mNotificationData.shouldSuppressFullScreenIntent(sbn); return mNotificationData.shouldSuppressFullScreenIntent(entry); } private void inflateViews(NotificationData.Entry entry, ViewGroup parent) { Loading Loading @@ -692,7 +692,7 @@ public class NotificationEntryManager implements Dumpable, NotificationInflater. NotificationData.Entry shadeEntry = createNotificationViews(notification); boolean isHeadsUped = shouldPeek(shadeEntry); if (!isHeadsUped && notification.getNotification().fullScreenIntent != null) { if (shouldSuppressFullScreenIntent(notification)) { if (shouldSuppressFullScreenIntent(shadeEntry)) { if (DEBUG) { Log.d(TAG, "No Fullscreen intent: suppressed by DND: " + key); } Loading Loading @@ -848,7 +848,7 @@ public class NotificationEntryManager implements Dumpable, NotificationInflater. return false; } if (mNotificationData.shouldFilterOut(sbn)) { if (mNotificationData.shouldFilterOut(entry)) { if (DEBUG) Log.d(TAG, "No peeking: filtered notification: " + sbn.getKey()); return false; } Loading @@ -862,13 +862,13 @@ public class NotificationEntryManager implements Dumpable, NotificationInflater. return false; } if (!mPresenter.isDozing() && mNotificationData.shouldSuppressPeek(sbn)) { if (!mPresenter.isDozing() && mNotificationData.shouldSuppressPeek(entry)) { if (DEBUG) Log.d(TAG, "No peeking: suppressed by DND: " + sbn.getKey()); return false; } // Peeking triggers an ambient display pulse, so disable peek is ambient is active if (mPresenter.isDozing() && mNotificationData.shouldSuppressAmbient(sbn)) { if (mPresenter.isDozing() && mNotificationData.shouldSuppressAmbient(entry)) { if (DEBUG) Log.d(TAG, "No peeking: suppressed by DND: " + sbn.getKey()); return false; } Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconAreaController.java +1 −2 Original line number Diff line number Diff line Loading @@ -156,8 +156,7 @@ public class NotificationIconAreaController implements DarkReceiver { } // showAmbient == show in shade but not shelf if (!showAmbient && mEntryManager.getNotificationData().shouldSuppressStatusBar( entry.notification)) { if (!showAmbient && mEntryManager.getNotificationData().shouldSuppressStatusBar(entry)) { return false; } Loading Loading
core/java/com/android/internal/notification/SystemNotificationChannels.java +1 −20 Original line number Diff line number Diff line Loading @@ -59,7 +59,6 @@ public class SystemNotificationChannels { VIRTUAL_KEYBOARD, context.getString(R.string.notification_channel_virtual_keyboard), NotificationManager.IMPORTANCE_LOW); keyboard.setBypassDnd(true); keyboard.setBlockableSystem(true); channelsList.add(keyboard); Loading @@ -76,7 +75,6 @@ public class SystemNotificationChannels { SECURITY, context.getString(R.string.notification_channel_security), NotificationManager.IMPORTANCE_LOW); security.setBypassDnd(true); channelsList.add(security); final NotificationChannel car = new NotificationChannel( Loading @@ -84,7 +82,6 @@ public class SystemNotificationChannels { context.getString(R.string.notification_channel_car_mode), NotificationManager.IMPORTANCE_LOW); car.setBlockableSystem(true); car.setBypassDnd(true); channelsList.add(car); channelsList.add(newAccountChannel(context)); Loading @@ -93,7 +90,6 @@ public class SystemNotificationChannels { DEVELOPER, context.getString(R.string.notification_channel_developer), NotificationManager.IMPORTANCE_LOW); developer.setBypassDnd(true); developer.setBlockableSystem(true); channelsList.add(developer); Loading @@ -101,21 +97,18 @@ public class SystemNotificationChannels { UPDATES, context.getString(R.string.notification_channel_updates), NotificationManager.IMPORTANCE_LOW); updates.setBypassDnd(true); channelsList.add(updates); final NotificationChannel network = new NotificationChannel( NETWORK_STATUS, context.getString(R.string.notification_channel_network_status), NotificationManager.IMPORTANCE_LOW); network.setBypassDnd(true); channelsList.add(network); final NotificationChannel networkAlertsChannel = new NotificationChannel( NETWORK_ALERTS, context.getString(R.string.notification_channel_network_alerts), NotificationManager.IMPORTANCE_HIGH); networkAlertsChannel.setBypassDnd(true); networkAlertsChannel.setBlockableSystem(true); channelsList.add(networkAlertsChannel); Loading @@ -124,42 +117,36 @@ public class SystemNotificationChannels { context.getString(R.string.notification_channel_network_available), NotificationManager.IMPORTANCE_LOW); networkAvailable.setBlockableSystem(true); networkAvailable.setBypassDnd(true); channelsList.add(networkAvailable); final NotificationChannel vpn = new NotificationChannel( VPN, context.getString(R.string.notification_channel_vpn), NotificationManager.IMPORTANCE_LOW); vpn.setBypassDnd(true); channelsList.add(vpn); final NotificationChannel deviceAdmin = new NotificationChannel( DEVICE_ADMIN, context.getString(R.string.notification_channel_device_admin), NotificationManager.IMPORTANCE_LOW); deviceAdmin.setBypassDnd(true); channelsList.add(deviceAdmin); final NotificationChannel alertsChannel = new NotificationChannel( ALERTS, context.getString(R.string.notification_channel_alerts), NotificationManager.IMPORTANCE_DEFAULT); alertsChannel.setBypassDnd(true); channelsList.add(alertsChannel); final NotificationChannel retail = new NotificationChannel( RETAIL_MODE, context.getString(R.string.notification_channel_retail_mode), NotificationManager.IMPORTANCE_LOW); retail.setBypassDnd(true); channelsList.add(retail); final NotificationChannel usb = new NotificationChannel( USB, context.getString(R.string.notification_channel_usb), NotificationManager.IMPORTANCE_MIN); usb.setBypassDnd(true); channelsList.add(usb); NotificationChannel foregroundChannel = new NotificationChannel( Loading @@ -167,7 +154,6 @@ public class SystemNotificationChannels { context.getString(R.string.notification_channel_foreground_service), NotificationManager.IMPORTANCE_LOW); foregroundChannel.setBlockableSystem(true); foregroundChannel.setBypassDnd(true); channelsList.add(foregroundChannel); NotificationChannel heavyWeightChannel = new NotificationChannel( Loading @@ -179,19 +165,16 @@ public class SystemNotificationChannels { .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION) .setUsage(AudioAttributes.USAGE_NOTIFICATION_EVENT) .build()); heavyWeightChannel.setBypassDnd(true); channelsList.add(heavyWeightChannel); NotificationChannel systemChanges = new NotificationChannel(SYSTEM_CHANGES, context.getString(R.string.notification_channel_system_changes), NotificationManager.IMPORTANCE_LOW); systemChanges.setBypassDnd(true); channelsList.add(systemChanges); NotificationChannel dndChanges = new NotificationChannel(DO_NOT_DISTURB, context.getString(R.string.notification_channel_do_not_disturb), NotificationManager.IMPORTANCE_LOW); dndChanges.setBypassDnd(true); channelsList.add(dndChanges); nm.createNotificationChannels(channelsList); Loading @@ -208,12 +191,10 @@ public class SystemNotificationChannels { } private static NotificationChannel newAccountChannel(Context context) { final NotificationChannel acct = new NotificationChannel( return new NotificationChannel( ACCOUNT, context.getString(R.string.notification_channel_account), NotificationManager.IMPORTANCE_LOW); acct.setBypassDnd(true); return acct; } private SystemNotificationChannels() {} Loading
packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java +8 −11 Original line number Diff line number Diff line Loading @@ -179,11 +179,6 @@ public class ExpandableNotificationRow extends ActivatableNotificationView private NotificationGuts mGuts; private NotificationData.Entry mEntry; private StatusBarNotification mStatusBarNotification; /** * Whether or not this row represents a system notification. Note that if this is {@code null}, * that means we were either unable to retrieve the info or have yet to retrieve the info. */ private Boolean mIsSystemNotification; private String mAppName; private boolean mIsHeadsUp; private boolean mLastChronometerRunning = true; Loading Loading @@ -426,7 +421,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView * once per notification as the packageInfo can't technically change for a notification row. */ private void cacheIsSystemNotification() { if (mIsSystemNotification == null) { if (mEntry != null && mEntry.mIsSystemNotification == null) { if (mSystemNotificationAsyncTask.getStatus() == AsyncTask.Status.PENDING) { // Run async task once, only if it hasn't already been executed. Note this is // executed in serial - no need to parallelize this small task. Loading @@ -445,16 +440,16 @@ public class ExpandableNotificationRow extends ActivatableNotificationView // If the SystemNotifAsyncTask hasn't finished running or retrieved a value, we'll try once // again, but in-place on the main thread this time. This should rarely ever get called. if (mIsSystemNotification == null) { if (mEntry != null && mEntry.mIsSystemNotification == null) { if (DEBUG) { Log.d(TAG, "Retrieving isSystemNotification on main thread"); } mSystemNotificationAsyncTask.cancel(true /* mayInterruptIfRunning */); mIsSystemNotification = isSystemNotification(mContext, mStatusBarNotification); mEntry.mIsSystemNotification = isSystemNotification(mContext, mStatusBarNotification); } if (!isNonblockable && mIsSystemNotification != null) { if (mIsSystemNotification) { if (!isNonblockable && mEntry != null && mEntry.mIsSystemNotification != null) { if (mEntry.mIsSystemNotification) { if (mEntry.channel != null && !mEntry.channel.isBlockableSystem()) { isNonblockable = true; Loading Loading @@ -2875,7 +2870,9 @@ public class ExpandableNotificationRow extends ActivatableNotificationView @Override protected void onPostExecute(Boolean result) { mIsSystemNotification = result; if (mEntry != null) { mEntry.mIsSystemNotification = result; } } } }
packages/SystemUI/src/com/android/systemui/statusbar/NotificationData.java +31 −22 Original line number Diff line number Diff line Loading @@ -103,6 +103,12 @@ public class NotificationData { public ArraySet<Integer> mActiveAppOps = new ArraySet<>(3); public CharSequence headsUpStatusBarText; public CharSequence headsUpStatusBarTextPublic; /** * Whether or not this row represents a system notification. Note that if this is * {@code null}, that means we were either unable to retrieve the info or have yet to * retrieve the info. */ public Boolean mIsSystemNotification; public Entry(StatusBarNotification n) { this.key = n.getKey(); Loading Loading @@ -435,31 +441,31 @@ public class NotificationData { return Ranking.VISIBILITY_NO_OVERRIDE; } public boolean shouldSuppressFullScreenIntent(StatusBarNotification sbn) { return shouldSuppressVisualEffect(sbn, SUPPRESSED_EFFECT_FULL_SCREEN_INTENT); public boolean shouldSuppressFullScreenIntent(Entry entry) { return shouldSuppressVisualEffect(entry, SUPPRESSED_EFFECT_FULL_SCREEN_INTENT); } public boolean shouldSuppressPeek(StatusBarNotification sbn) { return shouldSuppressVisualEffect(sbn, SUPPRESSED_EFFECT_PEEK); public boolean shouldSuppressPeek(Entry entry) { return shouldSuppressVisualEffect(entry, SUPPRESSED_EFFECT_PEEK); } public boolean shouldSuppressStatusBar(StatusBarNotification sbn) { return shouldSuppressVisualEffect(sbn, SUPPRESSED_EFFECT_STATUS_BAR); public boolean shouldSuppressStatusBar(Entry entry) { return shouldSuppressVisualEffect(entry, SUPPRESSED_EFFECT_STATUS_BAR); } public boolean shouldSuppressAmbient(StatusBarNotification sbn) { return shouldSuppressVisualEffect(sbn, SUPPRESSED_EFFECT_AMBIENT); public boolean shouldSuppressAmbient(Entry entry) { return shouldSuppressVisualEffect(entry, SUPPRESSED_EFFECT_AMBIENT); } public boolean shouldSuppressNotificationList(StatusBarNotification sbn) { return shouldSuppressVisualEffect(sbn, SUPPRESSED_EFFECT_NOTIFICATION_LIST); public boolean shouldSuppressNotificationList(Entry entry) { return shouldSuppressVisualEffect(entry, SUPPRESSED_EFFECT_NOTIFICATION_LIST); } private boolean shouldSuppressVisualEffect(StatusBarNotification sbn, int effect) { if (isExemptFromDndVisualSuppression(sbn)) { private boolean shouldSuppressVisualEffect(Entry entry, int effect) { if (isExemptFromDndVisualSuppression(entry)) { return false; } String key = sbn.getKey(); String key = entry.key; if (mRankingMap != null) { getRanking(key, mTmpRanking); return (mTmpRanking.getSuppressedVisualEffects() & effect) != 0; Loading @@ -467,11 +473,15 @@ public class NotificationData { return false; } protected boolean isExemptFromDndVisualSuppression(StatusBarNotification sbn) { if ((sbn.getNotification().flags & Notification.FLAG_FOREGROUND_SERVICE) != 0) { protected boolean isExemptFromDndVisualSuppression(Entry entry) { if ((entry.notification.getNotification().flags & Notification.FLAG_FOREGROUND_SERVICE) != 0) { return true; } if (entry.notification.getNotification().isMediaNotification()) { return true; } if (sbn.getNotification().isMediaNotification()) { if (entry.mIsSystemNotification != null && entry.mIsSystemNotification) { return true; } return false; Loading Loading @@ -564,9 +574,8 @@ public class NotificationData { final int N = mEntries.size(); for (int i = 0; i < N; i++) { Entry entry = mEntries.valueAt(i); StatusBarNotification sbn = entry.notification; if (shouldFilterOut(sbn)) { if (shouldFilterOut(entry)) { continue; } Loading @@ -578,10 +587,10 @@ public class NotificationData { } /** * @param sbn * @return true if this notification should NOT be shown right now */ public boolean shouldFilterOut(StatusBarNotification sbn) { public boolean shouldFilterOut(Entry entry) { final StatusBarNotification sbn = entry.notification; if (!(mEnvironment.isDeviceProvisioned() || showNotificationEvenIfUnprovisioned(sbn))) { return true; Loading @@ -598,11 +607,11 @@ public class NotificationData { return true; } if (mEnvironment.isDozing() && shouldSuppressAmbient(sbn)) { if (mEnvironment.isDozing() && shouldSuppressAmbient(entry)) { return true; } if (!mEnvironment.isDozing() && shouldSuppressNotificationList(sbn)) { if (!mEnvironment.isDozing() && shouldSuppressNotificationList(entry)) { return true; } Loading
packages/SystemUI/src/com/android/systemui/statusbar/NotificationEntryManager.java +6 −6 Original line number Diff line number Diff line Loading @@ -300,12 +300,12 @@ public class NotificationEntryManager implements Dumpable, NotificationInflater. updateNotifications(); } private boolean shouldSuppressFullScreenIntent(StatusBarNotification sbn) { private boolean shouldSuppressFullScreenIntent(NotificationData.Entry entry) { if (mPresenter.isDeviceInVrMode()) { return true; } return mNotificationData.shouldSuppressFullScreenIntent(sbn); return mNotificationData.shouldSuppressFullScreenIntent(entry); } private void inflateViews(NotificationData.Entry entry, ViewGroup parent) { Loading Loading @@ -692,7 +692,7 @@ public class NotificationEntryManager implements Dumpable, NotificationInflater. NotificationData.Entry shadeEntry = createNotificationViews(notification); boolean isHeadsUped = shouldPeek(shadeEntry); if (!isHeadsUped && notification.getNotification().fullScreenIntent != null) { if (shouldSuppressFullScreenIntent(notification)) { if (shouldSuppressFullScreenIntent(shadeEntry)) { if (DEBUG) { Log.d(TAG, "No Fullscreen intent: suppressed by DND: " + key); } Loading Loading @@ -848,7 +848,7 @@ public class NotificationEntryManager implements Dumpable, NotificationInflater. return false; } if (mNotificationData.shouldFilterOut(sbn)) { if (mNotificationData.shouldFilterOut(entry)) { if (DEBUG) Log.d(TAG, "No peeking: filtered notification: " + sbn.getKey()); return false; } Loading @@ -862,13 +862,13 @@ public class NotificationEntryManager implements Dumpable, NotificationInflater. return false; } if (!mPresenter.isDozing() && mNotificationData.shouldSuppressPeek(sbn)) { if (!mPresenter.isDozing() && mNotificationData.shouldSuppressPeek(entry)) { if (DEBUG) Log.d(TAG, "No peeking: suppressed by DND: " + sbn.getKey()); return false; } // Peeking triggers an ambient display pulse, so disable peek is ambient is active if (mPresenter.isDozing() && mNotificationData.shouldSuppressAmbient(sbn)) { if (mPresenter.isDozing() && mNotificationData.shouldSuppressAmbient(entry)) { if (DEBUG) Log.d(TAG, "No peeking: suppressed by DND: " + sbn.getKey()); return false; } Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconAreaController.java +1 −2 Original line number Diff line number Diff line Loading @@ -156,8 +156,7 @@ public class NotificationIconAreaController implements DarkReceiver { } // showAmbient == show in shade but not shelf if (!showAmbient && mEntryManager.getNotificationData().shouldSuppressStatusBar( entry.notification)) { if (!showAmbient && mEntryManager.getNotificationData().shouldSuppressStatusBar(entry)) { return false; } Loading