Loading packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsManagerTest.java +0 −18 Original line number Diff line number Diff line Loading @@ -33,7 +33,6 @@ import com.android.systemui.SysuiTestCase; import com.android.systemui.media.controls.ui.controller.KeyguardMediaController; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.statusbar.StatusBarState; import com.android.systemui.statusbar.notification.NotificationSectionsFeatureManager; import com.android.systemui.statusbar.notification.collection.render.MediaContainerController; import com.android.systemui.statusbar.notification.collection.render.SectionHeaderController; import com.android.systemui.statusbar.policy.ConfigurationController; Loading @@ -57,7 +56,6 @@ public class NotificationSectionsManagerTest extends SysuiTestCase { @Mock private StatusBarStateController mStatusBarStateController; @Mock private ConfigurationController mConfigurationController; @Mock private KeyguardMediaController mKeyguardMediaController; @Mock private NotificationSectionsFeatureManager mSectionsFeatureManager; @Mock private MediaContainerController mMediaContainerController; @Mock private NotificationRoundnessManager mNotificationRoundnessManager; @Mock private SectionHeaderController mIncomingHeaderController; Loading @@ -73,26 +71,10 @@ public class NotificationSectionsManagerTest extends SysuiTestCase { @Before public void setUp() { when(mSectionsFeatureManager.getNumberOfBuckets()).thenAnswer( invocation -> { int count = 2; if (mSectionsFeatureManager.isFilteringEnabled()) { count = 5; } if (mSectionsFeatureManager.isMediaControlsEnabled()) { if (!mSectionsFeatureManager.isFilteringEnabled()) { count = 5; } else { count += 1; } } return count; }); mSectionsManager = new NotificationSectionsManager( mConfigurationController, mKeyguardMediaController, mSectionsFeatureManager, mMediaContainerController, mNotificationRoundnessManager, mIncomingHeaderController, Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationSectionsFeatureManager.kt +1 −83 Original line number Diff line number Diff line Loading @@ -17,98 +17,16 @@ package com.android.systemui.statusbar.notification import android.content.Context import android.provider.DeviceConfig import com.android.internal.annotations.VisibleForTesting import com.android.internal.config.sysui.SystemUiDeviceConfigFlags.NOTIFICATIONS_USE_PEOPLE_FILTERING import com.android.systemui.dagger.SysUISingleton import com.android.systemui.statusbar.notification.collection.NotificationClassificationFlag import com.android.systemui.statusbar.notification.shared.NotificationMinimalism import com.android.systemui.statusbar.notification.shared.PriorityPeopleSection import com.android.systemui.statusbar.notification.stack.BUCKET_ALERTING import com.android.systemui.statusbar.notification.stack.BUCKET_FOREGROUND_SERVICE import com.android.systemui.statusbar.notification.stack.BUCKET_HEADS_UP import com.android.systemui.statusbar.notification.stack.BUCKET_MEDIA_CONTROLS import com.android.systemui.statusbar.notification.stack.BUCKET_PEOPLE import com.android.systemui.statusbar.notification.stack.BUCKET_SILENT import com.android.systemui.statusbar.notification.stack.PriorityBucket import com.android.systemui.util.DeviceConfigProxy import com.android.systemui.util.Utils import javax.inject.Inject private var sUsePeopleFiltering: Boolean? = null /** Feature controller for the NOTIFICATIONS_USE_PEOPLE_FILTERING config. */ @SysUISingleton class NotificationSectionsFeatureManager @Inject constructor(val proxy: DeviceConfigProxy, val context: Context) { fun isFilteringEnabled(): Boolean { return usePeopleFiltering(proxy) } constructor(val context: Context) { fun isMediaControlsEnabled(): Boolean { return Utils.useQsMediaPlayer(context) } fun getNotificationBuckets(): IntArray { if ( PriorityPeopleSection.isEnabled || NotificationMinimalism.isEnabled || NotificationClassificationFlag.isEnabled ) { // We don't need this list to be adaptive, it can be the superset of all features. return PriorityBucket.getAllInOrder() } return when { isFilteringEnabled() && isMediaControlsEnabled() -> intArrayOf( BUCKET_HEADS_UP, BUCKET_FOREGROUND_SERVICE, BUCKET_MEDIA_CONTROLS, BUCKET_PEOPLE, BUCKET_ALERTING, BUCKET_SILENT ) !isFilteringEnabled() && isMediaControlsEnabled() -> intArrayOf( BUCKET_HEADS_UP, BUCKET_FOREGROUND_SERVICE, BUCKET_MEDIA_CONTROLS, BUCKET_ALERTING, BUCKET_SILENT ) isFilteringEnabled() && !isMediaControlsEnabled() -> intArrayOf( BUCKET_HEADS_UP, BUCKET_FOREGROUND_SERVICE, BUCKET_PEOPLE, BUCKET_ALERTING, BUCKET_SILENT ) else -> intArrayOf(BUCKET_ALERTING, BUCKET_SILENT) } } fun getNumberOfBuckets(): Int { return getNotificationBuckets().size } @VisibleForTesting fun clearCache() { sUsePeopleFiltering = null } } private fun usePeopleFiltering(proxy: DeviceConfigProxy): Boolean { if (sUsePeopleFiltering == null) { sUsePeopleFiltering = proxy.getBoolean( DeviceConfig.NAMESPACE_SYSTEMUI, NOTIFICATIONS_USE_PEOPLE_FILTERING, true ) } return sUsePeopleFiltering!! } packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsManager.kt +3 −4 Original line number Diff line number Diff line Loading @@ -21,7 +21,6 @@ import android.view.View import com.android.internal.annotations.VisibleForTesting import com.android.systemui.media.controls.ui.controller.KeyguardMediaController import com.android.systemui.shade.ShadeDisplayAware import com.android.systemui.statusbar.notification.NotificationSectionsFeatureManager import com.android.systemui.statusbar.notification.SourceType import com.android.systemui.statusbar.notification.collection.NotificationClassificationFlag import com.android.systemui.statusbar.notification.collection.render.MediaContainerController Loading @@ -36,6 +35,7 @@ import com.android.systemui.statusbar.notification.dagger.SilentHeader import com.android.systemui.statusbar.notification.dagger.SocialHeader import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow import com.android.systemui.statusbar.notification.row.ExpandableView import com.android.systemui.statusbar.notification.stack.PriorityBucket import com.android.systemui.statusbar.notification.stack.StackScrollAlgorithm.SectionProvider import com.android.systemui.statusbar.policy.ConfigurationController import com.android.systemui.util.foldToSparseArray Loading @@ -51,7 +51,6 @@ class NotificationSectionsManager internal constructor( @ShadeDisplayAware private val configurationController: ConfigurationController, private val keyguardMediaController: KeyguardMediaController, private val sectionsFeatureManager: NotificationSectionsFeatureManager, private val mediaContainerController: MediaContainerController, private val notificationRoundnessManager: NotificationRoundnessManager, @IncomingHeader private val incomingHeaderController: SectionHeaderController, Loading Loading @@ -120,8 +119,8 @@ internal constructor( } fun createSectionsForBuckets(): Array<NotificationSection> = sectionsFeatureManager .getNotificationBuckets() PriorityBucket .getAllInOrder() .map { NotificationSection(it) } .toTypedArray() Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsManagerTest.java +0 −18 Original line number Diff line number Diff line Loading @@ -33,7 +33,6 @@ import com.android.systemui.SysuiTestCase; import com.android.systemui.media.controls.ui.controller.KeyguardMediaController; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.statusbar.StatusBarState; import com.android.systemui.statusbar.notification.NotificationSectionsFeatureManager; import com.android.systemui.statusbar.notification.collection.render.MediaContainerController; import com.android.systemui.statusbar.notification.collection.render.SectionHeaderController; import com.android.systemui.statusbar.policy.ConfigurationController; Loading @@ -57,7 +56,6 @@ public class NotificationSectionsManagerTest extends SysuiTestCase { @Mock private StatusBarStateController mStatusBarStateController; @Mock private ConfigurationController mConfigurationController; @Mock private KeyguardMediaController mKeyguardMediaController; @Mock private NotificationSectionsFeatureManager mSectionsFeatureManager; @Mock private MediaContainerController mMediaContainerController; @Mock private NotificationRoundnessManager mNotificationRoundnessManager; @Mock private SectionHeaderController mIncomingHeaderController; Loading @@ -73,26 +71,10 @@ public class NotificationSectionsManagerTest extends SysuiTestCase { @Before public void setUp() { when(mSectionsFeatureManager.getNumberOfBuckets()).thenAnswer( invocation -> { int count = 2; if (mSectionsFeatureManager.isFilteringEnabled()) { count = 5; } if (mSectionsFeatureManager.isMediaControlsEnabled()) { if (!mSectionsFeatureManager.isFilteringEnabled()) { count = 5; } else { count += 1; } } return count; }); mSectionsManager = new NotificationSectionsManager( mConfigurationController, mKeyguardMediaController, mSectionsFeatureManager, mMediaContainerController, mNotificationRoundnessManager, mIncomingHeaderController, Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationSectionsFeatureManager.kt +1 −83 Original line number Diff line number Diff line Loading @@ -17,98 +17,16 @@ package com.android.systemui.statusbar.notification import android.content.Context import android.provider.DeviceConfig import com.android.internal.annotations.VisibleForTesting import com.android.internal.config.sysui.SystemUiDeviceConfigFlags.NOTIFICATIONS_USE_PEOPLE_FILTERING import com.android.systemui.dagger.SysUISingleton import com.android.systemui.statusbar.notification.collection.NotificationClassificationFlag import com.android.systemui.statusbar.notification.shared.NotificationMinimalism import com.android.systemui.statusbar.notification.shared.PriorityPeopleSection import com.android.systemui.statusbar.notification.stack.BUCKET_ALERTING import com.android.systemui.statusbar.notification.stack.BUCKET_FOREGROUND_SERVICE import com.android.systemui.statusbar.notification.stack.BUCKET_HEADS_UP import com.android.systemui.statusbar.notification.stack.BUCKET_MEDIA_CONTROLS import com.android.systemui.statusbar.notification.stack.BUCKET_PEOPLE import com.android.systemui.statusbar.notification.stack.BUCKET_SILENT import com.android.systemui.statusbar.notification.stack.PriorityBucket import com.android.systemui.util.DeviceConfigProxy import com.android.systemui.util.Utils import javax.inject.Inject private var sUsePeopleFiltering: Boolean? = null /** Feature controller for the NOTIFICATIONS_USE_PEOPLE_FILTERING config. */ @SysUISingleton class NotificationSectionsFeatureManager @Inject constructor(val proxy: DeviceConfigProxy, val context: Context) { fun isFilteringEnabled(): Boolean { return usePeopleFiltering(proxy) } constructor(val context: Context) { fun isMediaControlsEnabled(): Boolean { return Utils.useQsMediaPlayer(context) } fun getNotificationBuckets(): IntArray { if ( PriorityPeopleSection.isEnabled || NotificationMinimalism.isEnabled || NotificationClassificationFlag.isEnabled ) { // We don't need this list to be adaptive, it can be the superset of all features. return PriorityBucket.getAllInOrder() } return when { isFilteringEnabled() && isMediaControlsEnabled() -> intArrayOf( BUCKET_HEADS_UP, BUCKET_FOREGROUND_SERVICE, BUCKET_MEDIA_CONTROLS, BUCKET_PEOPLE, BUCKET_ALERTING, BUCKET_SILENT ) !isFilteringEnabled() && isMediaControlsEnabled() -> intArrayOf( BUCKET_HEADS_UP, BUCKET_FOREGROUND_SERVICE, BUCKET_MEDIA_CONTROLS, BUCKET_ALERTING, BUCKET_SILENT ) isFilteringEnabled() && !isMediaControlsEnabled() -> intArrayOf( BUCKET_HEADS_UP, BUCKET_FOREGROUND_SERVICE, BUCKET_PEOPLE, BUCKET_ALERTING, BUCKET_SILENT ) else -> intArrayOf(BUCKET_ALERTING, BUCKET_SILENT) } } fun getNumberOfBuckets(): Int { return getNotificationBuckets().size } @VisibleForTesting fun clearCache() { sUsePeopleFiltering = null } } private fun usePeopleFiltering(proxy: DeviceConfigProxy): Boolean { if (sUsePeopleFiltering == null) { sUsePeopleFiltering = proxy.getBoolean( DeviceConfig.NAMESPACE_SYSTEMUI, NOTIFICATIONS_USE_PEOPLE_FILTERING, true ) } return sUsePeopleFiltering!! }
packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsManager.kt +3 −4 Original line number Diff line number Diff line Loading @@ -21,7 +21,6 @@ import android.view.View import com.android.internal.annotations.VisibleForTesting import com.android.systemui.media.controls.ui.controller.KeyguardMediaController import com.android.systemui.shade.ShadeDisplayAware import com.android.systemui.statusbar.notification.NotificationSectionsFeatureManager import com.android.systemui.statusbar.notification.SourceType import com.android.systemui.statusbar.notification.collection.NotificationClassificationFlag import com.android.systemui.statusbar.notification.collection.render.MediaContainerController Loading @@ -36,6 +35,7 @@ import com.android.systemui.statusbar.notification.dagger.SilentHeader import com.android.systemui.statusbar.notification.dagger.SocialHeader import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow import com.android.systemui.statusbar.notification.row.ExpandableView import com.android.systemui.statusbar.notification.stack.PriorityBucket import com.android.systemui.statusbar.notification.stack.StackScrollAlgorithm.SectionProvider import com.android.systemui.statusbar.policy.ConfigurationController import com.android.systemui.util.foldToSparseArray Loading @@ -51,7 +51,6 @@ class NotificationSectionsManager internal constructor( @ShadeDisplayAware private val configurationController: ConfigurationController, private val keyguardMediaController: KeyguardMediaController, private val sectionsFeatureManager: NotificationSectionsFeatureManager, private val mediaContainerController: MediaContainerController, private val notificationRoundnessManager: NotificationRoundnessManager, @IncomingHeader private val incomingHeaderController: SectionHeaderController, Loading Loading @@ -120,8 +119,8 @@ internal constructor( } fun createSectionsForBuckets(): Array<NotificationSection> = sectionsFeatureManager .getNotificationBuckets() PriorityBucket .getAllInOrder() .map { NotificationSection(it) } .toTypedArray() Loading