Selects presets in device details page (1/2)

Enables users to select their presets in Bluetooth device details page if the device supports HAP.

This CL only contains the UI elements. The full functionality will be introduce in the next CL.

Bug: 300015207
Test: atest BluetoothDetailsHearingDeviceControllerTest
Test: atest BluetoothDetailsHearingAidsPresetsControllerTest
Change-Id: I1ab4781191b0c9e1033a29c30ca61671878bb7e1
This commit is contained in:
Angela Wang
2024-02-27 13:41:56 +00:00
parent 4af270b231
commit 82e4ed3bd1
7 changed files with 403 additions and 6 deletions

View File

@@ -22,7 +22,9 @@ import androidx.annotation.NonNull;
import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceScreen;
import com.android.settings.accessibility.Flags;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.google.common.annotations.VisibleForTesting;
@@ -37,24 +39,32 @@ import java.util.List;
* category controller.
*/
public class BluetoothDetailsHearingDeviceController extends BluetoothDetailsController {
public static final int ORDER_HEARING_DEVICE_SETTINGS = 1;
public static final int ORDER_HEARING_AIDS_PRESETS = 2;
static final String KEY_HEARING_DEVICE_GROUP = "hearing_device_group";
private final List<BluetoothDetailsController> mControllers = new ArrayList<>();
private Lifecycle mLifecycle;
private LocalBluetoothManager mManager;
public BluetoothDetailsHearingDeviceController(@NonNull Context context,
@NonNull PreferenceFragmentCompat fragment,
@NonNull LocalBluetoothManager manager,
@NonNull CachedBluetoothDevice device,
@NonNull Lifecycle lifecycle) {
super(context, fragment, device, lifecycle);
mManager = manager;
mLifecycle = lifecycle;
}
@VisibleForTesting
void setSubControllers(
BluetoothDetailsHearingDeviceSettingsController hearingDeviceSettingsController) {
BluetoothDetailsHearingDeviceSettingsController hearingDeviceSettingsController,
BluetoothDetailsHearingAidsPresetsController presetsController) {
mControllers.clear();
mControllers.add(hearingDeviceSettingsController);
mControllers.add(presetsController);
}
@Override
@@ -93,6 +103,10 @@ public class BluetoothDetailsHearingDeviceController extends BluetoothDetailsCon
mControllers.add(new BluetoothDetailsHearingDeviceSettingsController(mContext,
mFragment, mCachedDevice, mLifecycle));
}
if (Flags.enableHearingAidPresetControl()) {
mControllers.add(new BluetoothDetailsHearingAidsPresetsController(mContext, mFragment,
mManager, mCachedDevice, mLifecycle));
}
}
@NonNull