Merge "[Audiosharing] Avoid popup dialog when broadcast start in SysUI" into main
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user