[hearing devices page] Launch 'Hearing decice controls' to Accessibility hearing device page.

Bug: 237625815
Test: make RunSettingsRoboTests ROBOTEST_FILTER=BluetoothDetailsHearingDeviceControlsControllerTest
Change-Id: I14cdc8f91f1a6212ab98081eddd15e6a1eb5db50
This commit is contained in:
jasonwshsu
2022-12-10 19:26:36 +08:00
parent a7fd647ef7
commit 9cb33c1315
2 changed files with 62 additions and 3 deletions

View File

@@ -19,6 +19,7 @@ package com.android.settings.bluetooth;
import static com.android.settings.bluetooth.BluetoothDeviceDetailsFragment.FEATURE_HEARING_DEVICE_CONTROLS_ORDER;
import android.content.Context;
import android.text.TextUtils;
import android.util.FeatureFlagUtils;
import androidx.preference.Preference;
@@ -27,16 +28,22 @@ import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.accessibility.AccessibilityHearingAidsFragment;
import com.android.settings.core.SubSettingLauncher;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.google.common.annotations.VisibleForTesting;
/**
* The controller of the hearing device controls in the bluetooth detail settings.
*/
public class BluetoothDetailsHearingDeviceControlsController extends BluetoothDetailsController {
public class BluetoothDetailsHearingDeviceControlsController extends BluetoothDetailsController
implements Preference.OnPreferenceClickListener {
private static final String KEY_FEATURE_CONTROLS_GROUP = "feature_controls_group";
private static final String KEY_HEARING_DEVICE_CONTROLS = "hearing_device_controls";
@VisibleForTesting
static final String KEY_HEARING_DEVICE_CONTROLS = "hearing_device_controls";
public BluetoothDetailsHearingDeviceControlsController(Context context,
PreferenceFragmentCompat fragment, CachedBluetoothDevice device, Lifecycle lifecycle) {
@@ -70,12 +77,30 @@ public class BluetoothDetailsHearingDeviceControlsController extends BluetoothDe
return KEY_FEATURE_CONTROLS_GROUP;
}
@Override
public boolean onPreferenceClick(Preference preference) {
if (TextUtils.equals(preference.getKey(), KEY_HEARING_DEVICE_CONTROLS)) {
launchAccessibilityHearingDeviceSettings();
return true;
}
return false;
}
private Preference createHearingDeviceControlsPreference(Context context) {
final Preference preference = new Preference(context);
preference.setKey(KEY_HEARING_DEVICE_CONTROLS);
preference.setTitle(context.getString(R.string.bluetooth_device_controls_title));
preference.setSummary(context.getString(R.string.bluetooth_device_controls_summary));
preference.setOnPreferenceClickListener(this);
return preference;
}
private void launchAccessibilityHearingDeviceSettings() {
new SubSettingLauncher(mContext)
.setDestination(AccessibilityHearingAidsFragment.class.getName())
.setSourceMetricsCategory(
((BluetoothDeviceDetailsFragment) mFragment).getMetricsCategory())
.launch();
}
}