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

Commit 62c65c6b authored by chelseahao's avatar chelseahao Committed by Chelsea Hao
Browse files

Show audio sharing button and qs dialog improvement when preview enabled

Also listen to `onBroadcastMetadataChanged` instead of `onPlaybackStarted` for hysteresis mode

Test: atest
Bug: 368401233
Flag: com.android.settingslib.flags.audio_sharing_developer_option
Change-Id: I9b99a5a5f3c00cf72e2204d6d3398bfe82019015
parent d44e0ba4
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -69,8 +69,8 @@ val LocalBluetoothLeBroadcast.onBroadcastStartedOrStopped: Flow<Unit>
            }
            .buffer(capacity = Channel.CONFLATED)

/** [Flow] for [BluetoothLeBroadcast.Callback] onPlaybackStarted event */
val LocalBluetoothLeBroadcast.onPlaybackStarted: Flow<Unit>
/** [Flow] for [BluetoothLeBroadcast.Callback] onBroadcastMetadataChanged event */
val LocalBluetoothLeBroadcast.onBroadcastMetadataChanged: Flow<Unit>
    get() =
        callbackFlow {
            val listener =
@@ -87,7 +87,6 @@ val LocalBluetoothLeBroadcast.onPlaybackStarted: Flow<Unit>
                    }

                    override fun onPlaybackStarted(reason: Int, broadcastId: Int) {
                        launch { trySend(Unit) }
                    }

                    override fun onPlaybackStopped(reason: Int, broadcastId: Int) {
@@ -100,7 +99,9 @@ val LocalBluetoothLeBroadcast.onPlaybackStarted: Flow<Unit>
                    override fun onBroadcastMetadataChanged(
                        broadcastId: Int,
                        metadata: BluetoothLeBroadcastMetadata
                    ) {}
                    ) {
                        trySend(Unit)
                    }
                }
            registerServiceCallBack(
                ConcurrentUtils.DIRECT_EXECUTOR,
+3 −1
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.systemui.bluetooth.qsdialog

import android.bluetooth.BluetoothLeBroadcast
import android.bluetooth.BluetoothLeBroadcastMetadata
import android.testing.TestableLooper
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
@@ -50,6 +51,7 @@ class AudioSharingInteractorTest : SysuiTestCase() {
    @get:Rule val mockito: MockitoRule = MockitoJUnit.rule()
    private val kosmos = testKosmos()
    @Mock private lateinit var localBluetoothLeBroadcast: LocalBluetoothLeBroadcast
    @Mock private lateinit var bluetoothLeBroadcastMetadata: BluetoothLeBroadcastMetadata
    @Captor private lateinit var callbackCaptor: ArgumentCaptor<BluetoothLeBroadcast.Callback>
    private lateinit var underTest: AudioSharingInteractor

@@ -202,7 +204,7 @@ class AudioSharingInteractorTest : SysuiTestCase() {
                verify(localBluetoothLeBroadcast)
                    .registerServiceCallBack(any(), callbackCaptor.capture())
                runCurrent()
                callbackCaptor.value.onPlaybackStarted(0, 0)
                callbackCaptor.value.onBroadcastMetadataChanged(0, bluetoothLeBroadcastMetadata)
                runCurrent()

                assertThat(bluetoothTileDialogAudioSharingRepository.sourceAdded).isTrue()
+2 −2
Original line number Diff line number Diff line
@@ -84,7 +84,7 @@
        android:id="@+id/share_audio_button"
        style="@style/SettingsLibActionButton"
        android:textColor="?androidprv:attr/textColorOnAccent"
        android:background="@drawable/audio_sharing_rounded_bg_ripple"
        android:background="@drawable/audio_sharing_rounded_bg_ripple_top"
        android:layout_marginBottom="4dp"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
@@ -101,7 +101,7 @@
        android:id="@+id/switch_active_button"
        style="@style/SettingsLibActionButton"
        android:textColor="?androidprv:attr/textColorOnAccent"
        android:background="@drawable/audio_sharing_rounded_bg_ripple"
        android:background="@drawable/audio_sharing_rounded_bg_ripple_bottom"
        android:layout_marginBottom="20dp"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
+1 −1
Original line number Diff line number Diff line
@@ -753,7 +753,7 @@
    <!-- QuickSettings: Bluetooth dialog device in audio sharing default summary [CHAR LIMIT=50]-->
    <string name="quick_settings_bluetooth_device_audio_sharing">Audio Sharing</string>
    <!-- QuickSettings: Bluetooth dialog device summary for devices that are capable of audio sharing and switching to active[CHAR LIMIT=NONE]-->
    <string name="quick_settings_bluetooth_device_audio_sharing_or_switch_active">Tap to switch or share audio</string>
    <string name="quick_settings_bluetooth_device_audio_sharing_or_switch_active">Supports audio sharing</string>
    <!-- QuickSettings: Bluetooth dialog device saved default summary [CHAR LIMIT=NONE]-->
    <string name="quick_settings_bluetooth_device_saved">Saved</string>
    <!-- QuickSettings: Accessibility label to disconnect a device [CHAR LIMIT=NONE]-->
+1 −2
Original line number Diff line number Diff line
@@ -27,7 +27,6 @@ import com.android.settingslib.bluetooth.HearingAidProfile
import com.android.settingslib.bluetooth.LeAudioProfile
import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast
import com.android.settingslib.bluetooth.LocalBluetoothManager
import com.android.settingslib.flags.Flags.audioSharingQsDialogImprovement
import com.android.systemui.animation.DialogTransitionAnimator
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Background
@@ -69,7 +68,7 @@ constructor(
                }
                deviceItem.type ==
                    DeviceItemType.AVAILABLE_AUDIO_SHARING_MEDIA_BLUETOOTH_DEVICE -> {
                    if (audioSharingQsDialogImprovement()) {
                    if (audioSharingInteractor.qsDialogImprovementAvailable()) {
                        withContext(mainDispatcher) {
                            delegateFactory
                                .create(deviceItem.cachedBluetoothDevice)
Loading