Merge "Fix corss-link hearing device settings" into main

This commit is contained in:
Jason Hsu
2024-02-03 09:57:04 +00:00
committed by Android (Google) Code Review
3 changed files with 59 additions and 3 deletions

View File

@@ -18,6 +18,8 @@ package com.android.settings.bluetooth;
import static android.bluetooth.BluetoothDevice.BOND_NONE;
import static com.android.settings.bluetooth.BluetoothDetailsHearingDeviceControlsController.KEY_DEVICE_CONTROLS_GENERAL_GROUP;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
@@ -29,8 +31,10 @@ import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.app.settings.SettingsEnums;
import android.companion.CompanionDeviceManager;
import android.content.Context;
import android.content.Intent;
import android.hardware.input.InputManager;
import android.os.Bundle;
import android.os.UserManager;
@@ -49,6 +53,8 @@ import com.android.settings.R;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.google.common.collect.ImmutableList;
@@ -65,6 +71,8 @@ import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.fakes.RoboMenu;
import java.util.List;
@RunWith(RobolectricTestRunner.class)
@Config(shadows = {
com.android.settings.testutils.shadow.ShadowUserManager.class,
@@ -216,6 +224,38 @@ public class BluetoothDeviceDetailsFragmentTest {
verify(mFragment).finish();
}
@Test
public void createPreferenceControllers_launchFromHAPage_deviceControllerNotExist() {
BluetoothDeviceDetailsFragment fragment = setupFragment();
Intent intent = fragment.getActivity().getIntent();
intent.putExtra(MetricsFeatureProvider.EXTRA_SOURCE_METRICS_CATEGORY,
SettingsEnums.ACCESSIBILITY_HEARING_AID_SETTINGS);
fragment.onAttach(mContext);
List<AbstractPreferenceController> controllerList = fragment.createPreferenceControllers(
mContext);
assertThat(controllerList.stream()
.anyMatch(controller -> controller.getPreferenceKey().equals(
KEY_DEVICE_CONTROLS_GENERAL_GROUP))).isFalse();
}
@Test
public void createPreferenceControllers_notLaunchFromHAPage_deviceControllerExist() {
BluetoothDeviceDetailsFragment fragment = setupFragment();
Intent intent = fragment.getActivity().getIntent();
intent.putExtra(MetricsFeatureProvider.EXTRA_SOURCE_METRICS_CATEGORY,
SettingsEnums.PAGE_UNKNOWN);
fragment.onAttach(mContext);
List<AbstractPreferenceController> controllerList = fragment.createPreferenceControllers(
mContext);
assertThat(controllerList.stream()
.anyMatch(controller -> controller.getPreferenceKey().equals(
KEY_DEVICE_CONTROLS_GENERAL_GROUP))).isTrue();
}
private InputDevice createInputDeviceWithMatchingBluetoothAddress() {
doReturn(new int[]{0}).when(mInputManager).getInputDeviceIds();
InputDevice device = mock(InputDevice.class);