diff --git a/src/com/android/settings/bluetooth/BluetoothSwitchPreferenceController.java b/src/com/android/settings/bluetooth/BluetoothSwitchPreferenceController.java index 48376a779af..5b74ce707a4 100644 --- a/src/com/android/settings/bluetooth/BluetoothSwitchPreferenceController.java +++ b/src/com/android/settings/bluetooth/BluetoothSwitchPreferenceController.java @@ -46,6 +46,9 @@ public class BluetoothSwitchPreferenceController private Context mContext; private FooterPreference mFooterPreference; + @VisibleForTesting + AlwaysDiscoverable mAlwaysDiscoverable; + public BluetoothSwitchPreferenceController(Context context, SwitchWidgetController switchController, FooterPreference footerPreference) { @@ -69,11 +72,13 @@ public class BluetoothSwitchPreferenceController SettingsEnums.ACTION_SETTINGS_MASTER_SWITCH_BLUETOOTH_TOGGLE, mRestrictionUtils); mBluetoothEnabler.setToggleCallback(this); + mAlwaysDiscoverable = new AlwaysDiscoverable(context); } @Override public void onStart() { mBluetoothEnabler.resume(mContext); + mAlwaysDiscoverable.start(); if (mSwitch != null) { updateText(mSwitch.isChecked()); } @@ -82,6 +87,7 @@ public class BluetoothSwitchPreferenceController @Override public void onStop() { mBluetoothEnabler.pause(); + mAlwaysDiscoverable.stop(); } @Override diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothSwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothSwitchPreferenceControllerTest.java index f40cc69c523..3c5a91d2188 100644 --- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothSwitchPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothSwitchPreferenceControllerTest.java @@ -19,6 +19,7 @@ package com.android.settings.bluetooth; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.verify; import android.content.Context; import android.provider.Settings; @@ -47,6 +48,8 @@ public class BluetoothSwitchPreferenceControllerTest { private RestrictionUtils mRestrictionUtils; @Mock private SwitchWidgetController mSwitchController; + @Mock + private AlwaysDiscoverable mAlwaysDiscoverable; private FooterPreference mFooterPreference; private Context mContext; @@ -62,6 +65,7 @@ public class BluetoothSwitchPreferenceControllerTest { mController = new BluetoothSwitchPreferenceController(mContext, mRestrictionUtils, mSwitchController, mFooterPreference); + mController.mAlwaysDiscoverable = mAlwaysDiscoverable; } @Test @@ -103,4 +107,18 @@ public class BluetoothSwitchPreferenceControllerTest { assertThat(mFooterPreference.getTitle()).isEqualTo(BLUETOOTH_INFO_STRING); } + + @Test + public void onStart_shouldStartAlwaysDiscoverable() { + mController.onStart(); + + verify(mAlwaysDiscoverable).start(); + } + + @Test + public void onStop_shouldStopAlwaysDiscoverable() { + mController.onStop(); + + verify(mAlwaysDiscoverable).stop(); + } }