Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 841adb56 authored by Jeff DeCew's avatar Jeff DeCew
Browse files

Nearly remove NotificationSectionsFeatureManager

This class used to provide a filtered list of sections (and the resulting count) but it has not done anything since the PriorityPeopleSection flag launched, which made the list of sections it returned static.

Change-Id: If8843faff0a5659b81eddbb9cbe4bd5e9badf8e2
Flag: com.android.systemui.priority_people_section
Bug: 340294566
Test: atest NotificationSectionsManagerTest
parent 2922eb65
Loading
Loading
Loading
Loading
+0 −18
Original line number Diff line number Diff line
@@ -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;
@@ -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;
@@ -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,
+1 −83
Original line number Diff line number Diff line
@@ -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!!
}
+3 −4
Original line number Diff line number Diff line
@@ -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
@@ -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
@@ -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,
@@ -120,8 +119,8 @@ internal constructor(
    }

    fun createSectionsForBuckets(): Array<NotificationSection> =
        sectionsFeatureManager
            .getNotificationBuckets()
        PriorityBucket
            .getAllInOrder()
            .map { NotificationSection(it) }
            .toTypedArray()