From 0ccc9eefc4d31db7540bb45f88788fc2363f6518 Mon Sep 17 00:00:00 2001 From: Yiyi Shen Date: Wed, 19 Feb 2025 13:19:22 +0800 Subject: [PATCH] [Audiosharing] Handle cancel notification in receiver Test: atest Bug: 395786392 Flag: com.android.settingslib.flags.enable_le_audio_sharing Change-Id: Ib4b8ed3eff1df01819b37be2c1334abeae00ea2c --- .../audiosharing/AudioSharingReceiver.java | 6 ++++++ .../audiosharing/AudioSharingReceiverTest.java | 16 ++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingReceiver.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingReceiver.java index 43f6a5eaf82..c070e6ce0fc 100644 --- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingReceiver.java +++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingReceiver.java @@ -141,6 +141,12 @@ public class AudioSharingReceiver extends BroadcastReceiver { showAddSourceNotification(context, device); } break; + case ACTION_LE_AUDIO_SHARING_CANCEL_NOTIF: + int notifId = intent.getIntExtra(EXTRA_NOTIF_ID, -1); + if (notifId != -1) { + cancelSharingNotification(context, notifId); + } + break; default: Log.w(TAG, "Received unexpected intent " + intent.getAction()); } diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingReceiverTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingReceiverTest.java index 9bda070dc40..6b8ec727a1c 100644 --- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingReceiverTest.java +++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingReceiverTest.java @@ -82,6 +82,9 @@ import java.util.stream.Collectors; public class AudioSharingReceiverTest { private static final String ACTION_LE_AUDIO_SHARING_STOP = "com.android.settings.action.BLUETOOTH_LE_AUDIO_SHARING_STOP"; + private static final String ACTION_LE_AUDIO_SHARING_CANCEL_NOTIF = + "com.android.settings.action.BLUETOOTH_LE_AUDIO_SHARING_CANCEL_NOTIF"; + private static final String EXTRA_NOTIF_ID = "NOTIF_ID"; private static final String TEST_DEVICE_NAME = "test"; @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule(); @@ -343,6 +346,19 @@ public class AudioSharingReceiverTest { any(Notification.class)); } + @Test + @EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING) + public void broadcastReceiver_receiveAudioSharingCancelNotif_cancel() { + Intent intent = new Intent(ACTION_LE_AUDIO_SHARING_CANCEL_NOTIF); + intent.setPackage(mContext.getPackageName()); + intent.putExtra(EXTRA_NOTIF_ID, + com.android.settings.R.string.share_audio_notification_title); + AudioSharingReceiver audioSharingReceiver = getAudioSharingReceiver(intent); + audioSharingReceiver.onReceive(mContext, intent); + + verify(mNm).cancel(com.android.settings.R.string.share_audio_notification_title); + } + private AudioSharingReceiver getAudioSharingReceiver(Intent intent) { assertThat(mShadowApplication.hasReceiverForIntent(intent)).isTrue(); List receiversForIntent =