Merge "[Audiosharing] Avoid popup dialog when broadcast start in SysUI" into main

This commit is contained in:
Yiyi Shen
2025-01-22 00:02:30 -08:00
committed by Android (Google) Code Review
2 changed files with 13 additions and 26 deletions

View File

@@ -128,6 +128,7 @@ public class AudioSharingSwitchBarController extends BasePreferenceController
// join the audio sharing, we will wait for the process complete for this list of sinks and then
// popup audio sharing dialog with options to pair new device.
private CopyOnWriteArrayList<BluetoothDevice> mSinksToWaitFor = new CopyOnWriteArrayList<>();
private AtomicBoolean mStartingSharing = new AtomicBoolean(false);
private AtomicBoolean mStoppingSharing = new AtomicBoolean(false);
@VisibleForTesting
@@ -160,6 +161,7 @@ public class AudioSharingSwitchBarController extends BasePreferenceController
@Override
public void onBroadcastStartFailed(int reason) {
Log.d(TAG, "onBroadcastStartFailed(), reason = " + reason);
mStartingSharing.compareAndSet(true, false);
updateSwitch();
showErrorDialog();
mMetricsFeatureProvider.action(
@@ -177,16 +179,8 @@ public class AudioSharingSwitchBarController extends BasePreferenceController
+ broadcastId
+ ", metadata = "
+ metadata.getBroadcastName());
if (mAssistant == null
|| mAssistant.getAllConnectedDevices().stream()
.anyMatch(
device -> BluetoothUtils
.hasActiveLocalBroadcastSourceForBtDevice(
device, mBtManager))) {
Log.d(
TAG,
"Skip handleOnBroadcastReady: null assistant or "
+ "sink has active local source.");
if (!mStartingSharing.compareAndSet(true, false)) {
Log.d(TAG, "Skip handleOnBroadcastReady, not in starting process");
return;
}
handleOnBroadcastReady();
@@ -213,6 +207,7 @@ public class AudioSharingSwitchBarController extends BasePreferenceController
@Override
public void onBroadcastStopFailed(int reason) {
Log.d(TAG, "onBroadcastStopFailed(), reason = " + reason);
mStoppingSharing.compareAndSet(true, false);
updateSwitch();
mMetricsFeatureProvider.action(
mContext,
@@ -565,6 +560,7 @@ public class AudioSharingSwitchBarController extends BasePreferenceController
mDeviceItemsForSharing.remove(0);
}
if (mBroadcast != null) {
mStartingSharing.set(true);
mBroadcast.startPrivateBroadcast();
mSinksInAdding.clear();
AudioSharingUtils.postOnMainThread(mContext,
@@ -583,7 +579,7 @@ public class AudioSharingSwitchBarController extends BasePreferenceController
int broadcastId = mBroadcast.getLatestBroadcastId();
if (broadcastId != -1) {
mBroadcast.stopBroadcast(broadcastId);
mStoppingSharing.compareAndSet(false, true);
mStoppingSharing.set(true);
mSinksInAdding.clear();
mSinksToWaitFor.clear();
}