[Audiosharing] Add audio sharing section to Connected devices page.

The section will show up during a sharing session.

Flagged with enable_le_audio_sharing

Bug: 305620450
Test: Manual
Change-Id: I59cf81b35dcbf328b253d72d7fdc86af450251ee
This commit is contained in:
Yiyi Shen
2023-11-07 18:15:00 +08:00
parent 87372de071
commit 2f2afa22fd
5 changed files with 428 additions and 21 deletions

View File

@@ -27,8 +27,10 @@ import androidx.annotation.VisibleForTesting;
import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.Utils;
import com.android.settings.connecteddevice.audiosharing.AudioSharingDevicePreferenceController;
import com.android.settings.core.SettingsUIDeviceConfig;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.flags.Flags;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.overlay.SurveyFeatureProvider;
import com.android.settings.search.BaseSearchIndexProvider;
@@ -43,10 +45,8 @@ public class ConnectedDeviceDashboardFragment extends DashboardFragment {
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
private static final String SLICE_ACTION = "com.android.settings.SEARCH_RESULT_TRAMPOLINE";
@VisibleForTesting
static final String KEY_CONNECTED_DEVICES = "connected_device_list";
@VisibleForTesting
static final String KEY_AVAILABLE_DEVICES = "available_device_list";
@VisibleForTesting static final String KEY_CONNECTED_DEVICES = "connected_device_list";
@VisibleForTesting static final String KEY_AVAILABLE_DEVICES = "available_device_list";
@Override
public int getMetricsCategory() {
@@ -71,21 +71,33 @@ public class ConnectedDeviceDashboardFragment extends DashboardFragment {
@Override
public void onAttach(Context context) {
super.onAttach(context);
final boolean nearbyEnabled = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SETTINGS_UI,
SettingsUIDeviceConfig.BT_NEAR_BY_SUGGESTION_ENABLED, true);
String callingAppPackageName = ((SettingsActivity) getActivity())
.getInitialCallingPackage();
final boolean nearbyEnabled =
DeviceConfig.getBoolean(
DeviceConfig.NAMESPACE_SETTINGS_UI,
SettingsUIDeviceConfig.BT_NEAR_BY_SUGGESTION_ENABLED,
true);
String callingAppPackageName =
((SettingsActivity) getActivity()).getInitialCallingPackage();
String action = getIntent() != null ? getIntent().getAction() : "";
if (DEBUG) {
Log.d(TAG, "onAttach() calling package name is : " + callingAppPackageName
+ ", action : " + action);
Log.d(
TAG,
"onAttach() calling package name is : "
+ callingAppPackageName
+ ", action : "
+ action);
}
if (Flags.enableLeAudioSharing()) {
use(AudioSharingDevicePreferenceController.class).init(this);
}
use(AvailableMediaDeviceGroupController.class).init(this);
use(ConnectedDeviceGroupController.class).init(this);
use(PreviouslyConnectedDevicePreferenceController.class).init(this);
use(SlicePreferenceController.class).setSliceUri(nearbyEnabled
? Uri.parse(getString(R.string.config_nearby_devices_slice_uri))
: null);
use(SlicePreferenceController.class)
.setSliceUri(
nearbyEnabled
? Uri.parse(getString(R.string.config_nearby_devices_slice_uri))
: null);
use(DiscoverableFooterPreferenceController.class)
.setAlwaysDiscoverable(isAlwaysDiscoverable(callingAppPackageName, action));
@@ -102,14 +114,13 @@ public class ConnectedDeviceDashboardFragment extends DashboardFragment {
@VisibleForTesting
boolean isAlwaysDiscoverable(String callingAppPackageName, String action) {
return TextUtils.equals(SLICE_ACTION, action) ? false
return TextUtils.equals(SLICE_ACTION, action)
? false
: TextUtils.equals(Utils.SETTINGS_PACKAGE_NAME, callingAppPackageName)
|| TextUtils.equals(Utils.SYSTEMUI_PACKAGE_NAME, callingAppPackageName);
|| TextUtils.equals(Utils.SYSTEMUI_PACKAGE_NAME, callingAppPackageName);
}
/**
* For Search.
*/
/** For Search. */
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider(R.xml.connected_devices);
}