Loading core/java/android/app/Notification.java +2 −2 Original line number Original line Diff line number Diff line Loading @@ -5754,8 +5754,8 @@ public class Notification implements Parcelable private boolean isSnoozeSettingEnabled() { private boolean isSnoozeSettingEnabled() { try { try { return Settings.Secure.getInt(mContext.getContentResolver(), return Settings.Secure.getIntForUser(mContext.getContentResolver(), Settings.Secure.SHOW_NOTIFICATION_SNOOZE, 0) == 1; Settings.Secure.SHOW_NOTIFICATION_SNOOZE, 0, UserHandle.USER_CURRENT) == 1; } catch (SecurityException ex) { } catch (SecurityException ex) { // Most 3p apps can't access this snooze setting, so their NotificationListeners // Most 3p apps can't access this snooze setting, so their NotificationListeners // would be unable to create notification views if we propagated this exception. // would be unable to create notification views if we propagated this exception. Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinator.java +2 −1 Original line number Original line Diff line number Diff line Loading @@ -359,7 +359,8 @@ public class PreparationCoordinator implements Coordinator { } } NotifInflater.Params getInflaterParams(NotifUiAdjustment adjustment, String reason) { NotifInflater.Params getInflaterParams(NotifUiAdjustment adjustment, String reason) { return new NotifInflater.Params(adjustment.isMinimized(), reason); return new NotifInflater.Params(adjustment.isMinimized(), reason, adjustment.isSnoozeEnabled()); } } private void abortInflation(NotificationEntry entry, String reason) { private void abortInflation(NotificationEntry entry, String reason) { Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/inflation/NotifInflater.kt +1 −1 Original line number Original line Diff line number Diff line Loading @@ -61,5 +61,5 @@ interface NotifInflater { /** /** * A class holding parameters used when inflating the notification row * A class holding parameters used when inflating the notification row */ */ class Params(val isLowPriority: Boolean, val reason: String) class Params(val isLowPriority: Boolean, val reason: String, val showSnooze: Boolean) } } packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/inflation/NotifUiAdjustmentProvider.kt +20 −2 Original line number Original line Diff line number Diff line Loading @@ -16,12 +16,15 @@ package com.android.systemui.statusbar.notification.collection.inflation package com.android.systemui.statusbar.notification.collection.inflation import android.content.Context import android.database.ContentObserver import android.database.ContentObserver import android.os.Handler import android.os.Handler import android.os.HandlerExecutor import android.os.UserHandle import android.os.UserHandle import android.provider.Settings.Secure.SHOW_NOTIFICATION_SNOOZE import android.provider.Settings.Secure.SHOW_NOTIFICATION_SNOOZE import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.settings.UserTracker import com.android.systemui.statusbar.NotificationLockscreenUserManager import com.android.systemui.statusbar.NotificationLockscreenUserManager import com.android.systemui.statusbar.notification.collection.GroupEntry import com.android.systemui.statusbar.notification.collection.GroupEntry import com.android.systemui.statusbar.notification.collection.NotificationEntry import com.android.systemui.statusbar.notification.collection.NotificationEntry Loading @@ -39,11 +42,25 @@ class NotifUiAdjustmentProvider @Inject constructor( @Main private val handler: Handler, @Main private val handler: Handler, private val secureSettings: SecureSettings, private val secureSettings: SecureSettings, private val lockscreenUserManager: NotificationLockscreenUserManager, private val lockscreenUserManager: NotificationLockscreenUserManager, private val sectionStyleProvider: SectionStyleProvider private val sectionStyleProvider: SectionStyleProvider, private val userTracker: UserTracker ) { ) { private val dirtyListeners = ListenerSet<Runnable>() private val dirtyListeners = ListenerSet<Runnable>() private var isSnoozeEnabled = false private var isSnoozeEnabled = false /** * Update the snooze enabled value on user switch */ private val userTrackerCallback = object : UserTracker.Callback { override fun onUserChanged(newUser: Int, userContext: Context) { updateSnoozeEnabled() } } init { userTracker.addCallback(userTrackerCallback, HandlerExecutor(handler)) } fun addDirtyListener(listener: Runnable) { fun addDirtyListener(listener: Runnable) { if (dirtyListeners.isEmpty()) { if (dirtyListeners.isEmpty()) { lockscreenUserManager.addNotificationStateChangedListener(notifStateChangedListener) lockscreenUserManager.addNotificationStateChangedListener(notifStateChangedListener) Loading Loading @@ -78,7 +95,8 @@ class NotifUiAdjustmentProvider @Inject constructor( } } private fun updateSnoozeEnabled() { private fun updateSnoozeEnabled() { isSnoozeEnabled = secureSettings.getInt(SHOW_NOTIFICATION_SNOOZE, 0) == 1 isSnoozeEnabled = secureSettings.getIntForUser(SHOW_NOTIFICATION_SNOOZE, 0, UserHandle.USER_CURRENT) == 1 } } private fun isEntryMinimized(entry: NotificationEntry): Boolean { private fun isEntryMinimized(entry: NotificationEntry): Boolean { Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/inflation/NotificationRowBinderImpl.java +3 −0 Original line number Original line Diff line number Diff line Loading @@ -212,6 +212,9 @@ public class NotificationRowBinderImpl implements NotificationRowBinder { mMessagingUtil.isImportantMessaging(entry.getSbn(), entry.getImportance()); mMessagingUtil.isImportantMessaging(entry.getSbn(), entry.getImportance()); final boolean isLowPriority = inflaterParams.isLowPriority(); final boolean isLowPriority = inflaterParams.isLowPriority(); // Set show snooze action row.setShowSnooze(inflaterParams.getShowSnooze()); RowContentBindParams params = mRowContentBindStage.getStageParams(entry); RowContentBindParams params = mRowContentBindStage.getStageParams(entry); params.requireContentViews(FLAG_CONTENT_VIEW_CONTRACTED); params.requireContentViews(FLAG_CONTENT_VIEW_CONTRACTED); params.requireContentViews(FLAG_CONTENT_VIEW_EXPANDED); params.requireContentViews(FLAG_CONTENT_VIEW_EXPANDED); Loading Loading
core/java/android/app/Notification.java +2 −2 Original line number Original line Diff line number Diff line Loading @@ -5754,8 +5754,8 @@ public class Notification implements Parcelable private boolean isSnoozeSettingEnabled() { private boolean isSnoozeSettingEnabled() { try { try { return Settings.Secure.getInt(mContext.getContentResolver(), return Settings.Secure.getIntForUser(mContext.getContentResolver(), Settings.Secure.SHOW_NOTIFICATION_SNOOZE, 0) == 1; Settings.Secure.SHOW_NOTIFICATION_SNOOZE, 0, UserHandle.USER_CURRENT) == 1; } catch (SecurityException ex) { } catch (SecurityException ex) { // Most 3p apps can't access this snooze setting, so their NotificationListeners // Most 3p apps can't access this snooze setting, so their NotificationListeners // would be unable to create notification views if we propagated this exception. // would be unable to create notification views if we propagated this exception. Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinator.java +2 −1 Original line number Original line Diff line number Diff line Loading @@ -359,7 +359,8 @@ public class PreparationCoordinator implements Coordinator { } } NotifInflater.Params getInflaterParams(NotifUiAdjustment adjustment, String reason) { NotifInflater.Params getInflaterParams(NotifUiAdjustment adjustment, String reason) { return new NotifInflater.Params(adjustment.isMinimized(), reason); return new NotifInflater.Params(adjustment.isMinimized(), reason, adjustment.isSnoozeEnabled()); } } private void abortInflation(NotificationEntry entry, String reason) { private void abortInflation(NotificationEntry entry, String reason) { Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/inflation/NotifInflater.kt +1 −1 Original line number Original line Diff line number Diff line Loading @@ -61,5 +61,5 @@ interface NotifInflater { /** /** * A class holding parameters used when inflating the notification row * A class holding parameters used when inflating the notification row */ */ class Params(val isLowPriority: Boolean, val reason: String) class Params(val isLowPriority: Boolean, val reason: String, val showSnooze: Boolean) } }
packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/inflation/NotifUiAdjustmentProvider.kt +20 −2 Original line number Original line Diff line number Diff line Loading @@ -16,12 +16,15 @@ package com.android.systemui.statusbar.notification.collection.inflation package com.android.systemui.statusbar.notification.collection.inflation import android.content.Context import android.database.ContentObserver import android.database.ContentObserver import android.os.Handler import android.os.Handler import android.os.HandlerExecutor import android.os.UserHandle import android.os.UserHandle import android.provider.Settings.Secure.SHOW_NOTIFICATION_SNOOZE import android.provider.Settings.Secure.SHOW_NOTIFICATION_SNOOZE import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.settings.UserTracker import com.android.systemui.statusbar.NotificationLockscreenUserManager import com.android.systemui.statusbar.NotificationLockscreenUserManager import com.android.systemui.statusbar.notification.collection.GroupEntry import com.android.systemui.statusbar.notification.collection.GroupEntry import com.android.systemui.statusbar.notification.collection.NotificationEntry import com.android.systemui.statusbar.notification.collection.NotificationEntry Loading @@ -39,11 +42,25 @@ class NotifUiAdjustmentProvider @Inject constructor( @Main private val handler: Handler, @Main private val handler: Handler, private val secureSettings: SecureSettings, private val secureSettings: SecureSettings, private val lockscreenUserManager: NotificationLockscreenUserManager, private val lockscreenUserManager: NotificationLockscreenUserManager, private val sectionStyleProvider: SectionStyleProvider private val sectionStyleProvider: SectionStyleProvider, private val userTracker: UserTracker ) { ) { private val dirtyListeners = ListenerSet<Runnable>() private val dirtyListeners = ListenerSet<Runnable>() private var isSnoozeEnabled = false private var isSnoozeEnabled = false /** * Update the snooze enabled value on user switch */ private val userTrackerCallback = object : UserTracker.Callback { override fun onUserChanged(newUser: Int, userContext: Context) { updateSnoozeEnabled() } } init { userTracker.addCallback(userTrackerCallback, HandlerExecutor(handler)) } fun addDirtyListener(listener: Runnable) { fun addDirtyListener(listener: Runnable) { if (dirtyListeners.isEmpty()) { if (dirtyListeners.isEmpty()) { lockscreenUserManager.addNotificationStateChangedListener(notifStateChangedListener) lockscreenUserManager.addNotificationStateChangedListener(notifStateChangedListener) Loading Loading @@ -78,7 +95,8 @@ class NotifUiAdjustmentProvider @Inject constructor( } } private fun updateSnoozeEnabled() { private fun updateSnoozeEnabled() { isSnoozeEnabled = secureSettings.getInt(SHOW_NOTIFICATION_SNOOZE, 0) == 1 isSnoozeEnabled = secureSettings.getIntForUser(SHOW_NOTIFICATION_SNOOZE, 0, UserHandle.USER_CURRENT) == 1 } } private fun isEntryMinimized(entry: NotificationEntry): Boolean { private fun isEntryMinimized(entry: NotificationEntry): Boolean { Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/inflation/NotificationRowBinderImpl.java +3 −0 Original line number Original line Diff line number Diff line Loading @@ -212,6 +212,9 @@ public class NotificationRowBinderImpl implements NotificationRowBinder { mMessagingUtil.isImportantMessaging(entry.getSbn(), entry.getImportance()); mMessagingUtil.isImportantMessaging(entry.getSbn(), entry.getImportance()); final boolean isLowPriority = inflaterParams.isLowPriority(); final boolean isLowPriority = inflaterParams.isLowPriority(); // Set show snooze action row.setShowSnooze(inflaterParams.getShowSnooze()); RowContentBindParams params = mRowContentBindStage.getStageParams(entry); RowContentBindParams params = mRowContentBindStage.getStageParams(entry); params.requireContentViews(FLAG_CONTENT_VIEW_CONTRACTED); params.requireContentViews(FLAG_CONTENT_VIEW_CONTRACTED); params.requireContentViews(FLAG_CONTENT_VIEW_EXPANDED); params.requireContentViews(FLAG_CONTENT_VIEW_EXPANDED); Loading