Loading res/xml/hearing_device_pairing_fragment.xml +4 −2 Original line number Diff line number Diff line Loading @@ -32,9 +32,11 @@ <PreferenceCategory android:key="more_devices_category" android:title="@string/accessibility_found_all_devices"> <com.android.settings.accessibility.ArrowPreference <com.android.settingslib.widget.ButtonPreference android:key="more_devices" android:title="@string/accessibility_list_all_devices_title" settings:buttonPreferenceSize="extra" settings:buttonPreferenceType="tonal" settings:searchable="false" settings:userRestriction="no_config_bluetooth" settings:useAdminDisabledSummary="true" Loading src/com/android/settings/accessibility/ViewAllBluetoothDevicesPreferenceController.java +16 −14 Original line number Diff line number Diff line Loading @@ -17,16 +17,17 @@ package com.android.settings.accessibility; import android.content.Context; import android.text.TextUtils; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment; import com.android.settings.core.BasePreferenceController; import com.android.settings.core.SubSettingLauncher; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.widget.ButtonPreference; /** Preference controller for all bluetooth device preference. */ public class ViewAllBluetoothDevicesPreferenceController extends BasePreferenceController { Loading @@ -36,6 +37,19 @@ public class ViewAllBluetoothDevicesPreferenceController extends BasePreferenceC super(context, preferenceKey); } @Override public void displayPreference(@NonNull PreferenceScreen screen) { super.displayPreference(screen); ButtonPreference preference = screen.findPreference(getPreferenceKey()); if (preference != null) { preference.setOnClickListener(view -> { FeatureFactory.getFeatureFactory().getMetricsFeatureProvider().clicked( getMetricsCategory(), getPreferenceKey()); launchConnectedDevicePage(); }); } } /** * Initializes objects in this controller. Needs to call this before using the controller. * Loading @@ -50,18 +64,6 @@ public class ViewAllBluetoothDevicesPreferenceController extends BasePreferenceC return AVAILABLE; } @Override public boolean handlePreferenceTreeClick(Preference preference) { if (TextUtils.equals(preference.getKey(), getPreferenceKey())) { FeatureFactory.getFeatureFactory().getMetricsFeatureProvider().clicked( getMetricsCategory(), getPreferenceKey()); launchConnectedDevicePage(); return true; } return false; } @VisibleForTesting void launchConnectedDevicePage() { new SubSettingLauncher(mContext) Loading tests/robotests/src/com/android/settings/accessibility/ViewAllBluetoothDevicesPreferenceControllerTest.java +12 −8 Original line number Diff line number Diff line Loading @@ -16,20 +16,21 @@ package com.android.settings.accessibility; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.Context; import android.view.View; import androidx.fragment.app.FragmentActivity; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceViewHolder; import androidx.test.core.app.ApplicationProvider; import com.android.settingslib.widget.ButtonPreference; import org.junit.Before; import org.junit.Rule; import org.junit.Test; Loading @@ -52,7 +53,6 @@ public class ViewAllBluetoothDevicesPreferenceControllerTest { @Rule public MockitoRule mocks = MockitoJUnit.rule(); private final Context mContext = ApplicationProvider.getApplicationContext(); private final Preference mPreference = new Preference(mContext); private final String TEST_KEY = "test_key"; @Spy Loading @@ -61,12 +61,18 @@ public class ViewAllBluetoothDevicesPreferenceControllerTest { @Mock private PreferenceScreen mScreen; private ViewAllBluetoothDevicesPreferenceController mController; private ButtonPreference mPreference = new ButtonPreference(mContext); @Before public void setUp() { mActivity = Robolectric.setupActivity(FragmentActivity.class); when(mFragment.getContext()).thenReturn(mContext); when(mFragment.getActivity()).thenReturn(mActivity); View rootView = View.inflate(mContext, mPreference.getLayoutResource(), null); mPreference.setKey(TEST_KEY); mPreference.onBindViewHolder(PreferenceViewHolder.createInstanceForTests(rootView)); when(mScreen.findPreference(TEST_KEY)).thenReturn(mPreference); mController = spy(new ViewAllBluetoothDevicesPreferenceController(mActivity, TEST_KEY)); mController.init(mFragment); Loading @@ -74,13 +80,11 @@ public class ViewAllBluetoothDevicesPreferenceControllerTest { } @Test public void handlePreferenceTreeClick_expectedPreference_launchConnectedDevicePage() { public void buttonPreferenceOnClick_launchConnectedDevicePage() { doNothing().when(mController).launchConnectedDevicePage(); mPreference.setKey(TEST_KEY); boolean status = mController.handlePreferenceTreeClick(mPreference); mPreference.getButton().callOnClick(); verify(mController).launchConnectedDevicePage(); assertThat(status).isTrue(); } } Loading
res/xml/hearing_device_pairing_fragment.xml +4 −2 Original line number Diff line number Diff line Loading @@ -32,9 +32,11 @@ <PreferenceCategory android:key="more_devices_category" android:title="@string/accessibility_found_all_devices"> <com.android.settings.accessibility.ArrowPreference <com.android.settingslib.widget.ButtonPreference android:key="more_devices" android:title="@string/accessibility_list_all_devices_title" settings:buttonPreferenceSize="extra" settings:buttonPreferenceType="tonal" settings:searchable="false" settings:userRestriction="no_config_bluetooth" settings:useAdminDisabledSummary="true" Loading
src/com/android/settings/accessibility/ViewAllBluetoothDevicesPreferenceController.java +16 −14 Original line number Diff line number Diff line Loading @@ -17,16 +17,17 @@ package com.android.settings.accessibility; import android.content.Context; import android.text.TextUtils; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment; import com.android.settings.core.BasePreferenceController; import com.android.settings.core.SubSettingLauncher; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.widget.ButtonPreference; /** Preference controller for all bluetooth device preference. */ public class ViewAllBluetoothDevicesPreferenceController extends BasePreferenceController { Loading @@ -36,6 +37,19 @@ public class ViewAllBluetoothDevicesPreferenceController extends BasePreferenceC super(context, preferenceKey); } @Override public void displayPreference(@NonNull PreferenceScreen screen) { super.displayPreference(screen); ButtonPreference preference = screen.findPreference(getPreferenceKey()); if (preference != null) { preference.setOnClickListener(view -> { FeatureFactory.getFeatureFactory().getMetricsFeatureProvider().clicked( getMetricsCategory(), getPreferenceKey()); launchConnectedDevicePage(); }); } } /** * Initializes objects in this controller. Needs to call this before using the controller. * Loading @@ -50,18 +64,6 @@ public class ViewAllBluetoothDevicesPreferenceController extends BasePreferenceC return AVAILABLE; } @Override public boolean handlePreferenceTreeClick(Preference preference) { if (TextUtils.equals(preference.getKey(), getPreferenceKey())) { FeatureFactory.getFeatureFactory().getMetricsFeatureProvider().clicked( getMetricsCategory(), getPreferenceKey()); launchConnectedDevicePage(); return true; } return false; } @VisibleForTesting void launchConnectedDevicePage() { new SubSettingLauncher(mContext) Loading
tests/robotests/src/com/android/settings/accessibility/ViewAllBluetoothDevicesPreferenceControllerTest.java +12 −8 Original line number Diff line number Diff line Loading @@ -16,20 +16,21 @@ package com.android.settings.accessibility; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.Context; import android.view.View; import androidx.fragment.app.FragmentActivity; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceViewHolder; import androidx.test.core.app.ApplicationProvider; import com.android.settingslib.widget.ButtonPreference; import org.junit.Before; import org.junit.Rule; import org.junit.Test; Loading @@ -52,7 +53,6 @@ public class ViewAllBluetoothDevicesPreferenceControllerTest { @Rule public MockitoRule mocks = MockitoJUnit.rule(); private final Context mContext = ApplicationProvider.getApplicationContext(); private final Preference mPreference = new Preference(mContext); private final String TEST_KEY = "test_key"; @Spy Loading @@ -61,12 +61,18 @@ public class ViewAllBluetoothDevicesPreferenceControllerTest { @Mock private PreferenceScreen mScreen; private ViewAllBluetoothDevicesPreferenceController mController; private ButtonPreference mPreference = new ButtonPreference(mContext); @Before public void setUp() { mActivity = Robolectric.setupActivity(FragmentActivity.class); when(mFragment.getContext()).thenReturn(mContext); when(mFragment.getActivity()).thenReturn(mActivity); View rootView = View.inflate(mContext, mPreference.getLayoutResource(), null); mPreference.setKey(TEST_KEY); mPreference.onBindViewHolder(PreferenceViewHolder.createInstanceForTests(rootView)); when(mScreen.findPreference(TEST_KEY)).thenReturn(mPreference); mController = spy(new ViewAllBluetoothDevicesPreferenceController(mActivity, TEST_KEY)); mController.init(mFragment); Loading @@ -74,13 +80,11 @@ public class ViewAllBluetoothDevicesPreferenceControllerTest { } @Test public void handlePreferenceTreeClick_expectedPreference_launchConnectedDevicePage() { public void buttonPreferenceOnClick_launchConnectedDevicePage() { doNothing().when(mController).launchConnectedDevicePage(); mPreference.setKey(TEST_KEY); boolean status = mController.handlePreferenceTreeClick(mPreference); mPreference.getButton().callOnClick(); verify(mController).launchConnectedDevicePage(); assertThat(status).isTrue(); } }