Loading packages/SettingsLib/aconfig/settingslib.aconfig +0 −10 Original line number Diff line number Diff line Loading @@ -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" Loading packages/SettingsLib/src/com/android/settingslib/notification/data/repository/ZenModeRepository.kt +11 −19 Original line number Diff line number Diff line Loading @@ -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) Loading Loading @@ -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) } } Loading packages/SettingsLib/tests/robotests/src/com/android/settingslib/notification/data/repository/ZenModeRepositoryTest.kt +2 −23 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 { Loading @@ -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 { Loading Loading
packages/SettingsLib/aconfig/settingslib.aconfig +0 −10 Original line number Diff line number Diff line Loading @@ -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" Loading
packages/SettingsLib/src/com/android/settingslib/notification/data/repository/ZenModeRepository.kt +11 −19 Original line number Diff line number Diff line Loading @@ -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) Loading Loading @@ -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) } } Loading
packages/SettingsLib/tests/robotests/src/com/android/settingslib/notification/data/repository/ZenModeRepositoryTest.kt +2 −23 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 { Loading @@ -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 { Loading