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

Commit 589f1f09 authored by Ioana Alexandru's avatar Ioana Alexandru Committed by Android (Google) Code Review
Browse files

Merge "Remove volumePanelBroadcastFix flag" into main

parents c0a14d62 2a8cc306
Loading
Loading
Loading
Loading
+0 −10
Original line number Diff line number Diff line
@@ -73,16 +73,6 @@ flag {
    }
}

flag {
    name: "volume_panel_broadcast_fix"
    namespace: "systemui"
    description: "Make the volume panel's repository listen for the new ACTION_CONSOLIDATED_NOTIFICATION_POLICY_CHANGED broadcast instead of ACTION_NOTIFICATION_POLICY_CHANGED"
    bug: "347707024"
    metadata {
        purpose: PURPOSE_BUGFIX
    }
}

flag {
    name: "volume_dialog_audio_sharing_fix"
    namespace: "cross_device_experiences"
+11 −19
Original line number Diff line number Diff line
@@ -93,33 +93,23 @@ class ZenModeRepositoryImpl(
                    IntentFilter().apply {
                        addAction(NotificationManager.ACTION_INTERRUPTION_FILTER_CHANGED)
                        addAction(NotificationManager.ACTION_NOTIFICATION_POLICY_CHANGED)
                        if (Flags.volumePanelBroadcastFix() && android.app.Flags.modesApi())
                        if (android.app.Flags.modesApi())
                            addAction(
                                NotificationManager.ACTION_CONSOLIDATED_NOTIFICATION_POLICY_CHANGED)
                                NotificationManager.ACTION_CONSOLIDATED_NOTIFICATION_POLICY_CHANGED
                            )
                    },
                    /* broadcastPermission = */ null,
                    /* scheduler = */ if (Flags.volumePanelBroadcastFix()) {
                        backgroundHandler
                    } else {
                        null
                    },
                    /* scheduler = */ backgroundHandler,
                )

                awaitClose { context.unregisterReceiver(receiver) }
            }
            .let {
                if (Flags.volumePanelBroadcastFix()) {
                    // Share the flow to avoid having multiple broadcasts.
                    it.flowOn(backgroundCoroutineContext)
            .flowOn(backgroundCoroutineContext)
            .shareIn(started = SharingStarted.WhileSubscribed(), scope = scope)
                } else {
                    it.shareIn(started = SharingStarted.WhileSubscribed(), scope = scope)
                }
            }
    }

    override val consolidatedNotificationPolicy: StateFlow<NotificationManager.Policy?> by lazy {
        if (Flags.volumePanelBroadcastFix() && android.app.Flags.modesApi())
        if (android.app.Flags.modesApi())
            flowFromBroadcast(NotificationManager.ACTION_CONSOLIDATED_NOTIFICATION_POLICY_CHANGED) {
                // If available, get the value from extras to avoid a potential binder call.
                it?.extras?.getParcelable(EXTRA_NOTIFICATION_POLICY)
@@ -161,11 +151,13 @@ class ZenModeRepositoryImpl(
                    contentResolver.registerContentObserver(
                        Settings.Global.getUriFor(Settings.Global.ZEN_MODE),
                        /* notifyForDescendants= */ false,
                        observer)
                        observer,
                    )
                    contentResolver.registerContentObserver(
                        Settings.Global.getUriFor(Settings.Global.ZEN_MODE_CONFIG_ETAG),
                        /* notifyForDescendants= */ false,
                        observer)
                        observer,
                    )

                    awaitClose { contentResolver.unregisterContentObserver(observer) }
                }
+2 −23
Original line number Diff line number Diff line
@@ -23,12 +23,10 @@ import android.content.Context
import android.content.Intent
import android.database.ContentObserver
import android.os.Parcelable
import android.platform.test.annotations.DisableFlags
import android.platform.test.annotations.EnableFlags
import android.platform.test.flag.junit.SetFlagsRule
import android.provider.Settings.Global
import androidx.test.filters.SmallTest
import com.android.settingslib.flags.Flags
import com.android.settingslib.notification.modes.TestModeBuilder
import com.android.settingslib.notification.modes.ZenMode
import com.android.settingslib.notification.modes.ZenModesBackend
@@ -93,26 +91,7 @@ class ZenModeRepositoryTest {
            )
    }

    @DisableFlags(Flags.FLAG_VOLUME_PANEL_BROADCAST_FIX)
    @Test
    fun consolidatedPolicyChanges_repositoryEmits_flagsOff() {
        testScope.runTest {
            val values = mutableListOf<NotificationManager.Policy?>()
            `when`(notificationManager.consolidatedNotificationPolicy).thenReturn(testPolicy1)
            underTest.consolidatedNotificationPolicy
                .onEach { values.add(it) }
                .launchIn(backgroundScope)
            runCurrent()

            `when`(notificationManager.consolidatedNotificationPolicy).thenReturn(testPolicy2)
            triggerIntent(NotificationManager.ACTION_NOTIFICATION_POLICY_CHANGED)
            runCurrent()

            assertThat(values).containsExactly(null, testPolicy1, testPolicy2).inOrder()
        }
    }

    @EnableFlags(android.app.Flags.FLAG_MODES_API, Flags.FLAG_VOLUME_PANEL_BROADCAST_FIX)
    @EnableFlags(android.app.Flags.FLAG_MODES_API)
    @Test
    fun consolidatedPolicyChanges_repositoryEmits_flagsOn() {
        testScope.runTest {
@@ -131,7 +110,7 @@ class ZenModeRepositoryTest {
        }
    }

    @EnableFlags(android.app.Flags.FLAG_MODES_API, Flags.FLAG_VOLUME_PANEL_BROADCAST_FIX)
    @EnableFlags(android.app.Flags.FLAG_MODES_API)
    @Test
    fun consolidatedPolicyChanges_repositoryEmitsFromExtras() {
        testScope.runTest {