Merge "[Audiosharing] Route to audio sharing page to start broadcast." into main

This commit is contained in:
Yiyi Shen
2024-08-28 01:56:09 +00:00
committed by Android (Google) Code Review
2 changed files with 47 additions and 87 deletions

View File

@@ -16,7 +16,7 @@
package com.android.settings.connecteddevice.audiosharing;
import static java.util.stream.Collectors.toList;
import static com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast.EXTRA_START_LE_AUDIO_SHARING;
import android.app.settings.SettingsEnums;
import android.bluetooth.BluetoothCsipSetCoordinator;
@@ -25,6 +25,7 @@ import android.bluetooth.BluetoothLeBroadcast;
import android.bluetooth.BluetoothLeBroadcastMetadata;
import android.bluetooth.BluetoothLeBroadcastReceiveState;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.util.Pair;
@@ -34,6 +35,7 @@ import androidx.annotation.VisibleForTesting;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.Fragment;
import com.android.settings.R;
import com.android.settings.bluetooth.Utils;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.dashboard.DashboardFragment;
@@ -63,8 +65,6 @@ public class AudioSharingDialogHandler {
@Nullable private final LocalBluetoothLeBroadcast mBroadcast;
@Nullable private final LocalBluetoothLeBroadcastAssistant mAssistant;
private final MetricsFeatureProvider mMetricsFeatureProvider;
// The target sinks to join broadcast onPlaybackStarted
@Nullable private List<BluetoothDevice> mTargetSinks;
private boolean mIsStoppingBroadcast = false;
@VisibleForTesting
@@ -83,15 +83,6 @@ public class AudioSharingDialogHandler {
@Override
public void onBroadcastStartFailed(int reason) {
Log.d(TAG, "onBroadcastStartFailed(), reason = " + reason);
if (mTargetSinks != null) {
mMetricsFeatureProvider.action(
mContext,
SettingsEnums.ACTION_AUDIO_SHARING_START_FAILED,
SettingsEnums.SETTINGS_CONNECTED_DEVICE_CATEGORY);
AudioSharingUtils.toastMessage(
mContext, "Fail to start broadcast, reason " + reason);
mTargetSinks = null;
}
}
@Override
@@ -113,6 +104,9 @@ public class AudioSharingDialogHandler {
+ reason
+ ", broadcastId = "
+ broadcastId);
AudioSharingUtils.toastMessage(
mContext,
mContext.getString(R.string.audio_sharing_sharing_stopped_label));
mIsStoppingBroadcast = false;
}
@@ -144,18 +138,6 @@ public class AudioSharingDialogHandler {
+ reason
+ ", broadcastId = "
+ broadcastId);
if (mTargetSinks != null) {
AudioSharingUtils.addSourceToTargetSinks(mTargetSinks, mLocalBtManager);
new SubSettingLauncher(mContext)
.setDestination(AudioSharingDashboardFragment.class.getName())
.setSourceMetricsCategory(
(mHostFragment instanceof DashboardFragment)
? ((DashboardFragment) mHostFragment)
.getMetricsCategory()
: SettingsEnums.PAGE_UNKNOWN)
.launch();
mTargetSinks = null;
}
}
@Override
@@ -375,14 +357,18 @@ public class AudioSharingDialogHandler {
new AudioSharingJoinDialogFragment.DialogEventListener() {
@Override
public void onShareClick() {
mTargetSinks =
groupedDevices.values().stream()
.flatMap(items -> items.stream())
.collect(toList());
Log.d(TAG, "Start broadcast with sinks = " + mTargetSinks.size());
if (mBroadcast != null) {
mBroadcast.startPrivateBroadcast();
}
Bundle args = new Bundle();
args.putBoolean(EXTRA_START_LE_AUDIO_SHARING, true);
new SubSettingLauncher(mContext)
.setDestination(
AudioSharingDashboardFragment.class.getName())
.setSourceMetricsCategory(
(mHostFragment instanceof DashboardFragment)
? ((DashboardFragment) mHostFragment)
.getMetricsCategory()
: SettingsEnums.PAGE_UNKNOWN)
.setArguments(args)
.launch();
}
@Override