diff --git a/res/xml/bluetooth_device_details_fragment.xml b/res/xml/bluetooth_device_details_fragment.xml index efb2bf7036b..0528973d676 100644 --- a/res/xml/bluetooth_device_details_fragment.xml +++ b/res/xml/bluetooth_device_details_fragment.xml @@ -46,6 +46,7 @@ android:key="hearing_aid_pair_other_button" android:gravity="center" /> launchPairingDetail()); } @Override protected void refresh() { updateButtonPreferenceTitle(mPreference); - mPreference.setVisible(getButtonPreferenceVisibility(mCachedDevice)); + setPreferencesVisibility(getButtonPreferenceVisibility(mCachedDevice)); } @@ -77,6 +85,11 @@ public class BluetoothDetailsPairOtherController extends BluetoothDetailsControl preference.setTitle(stringRes); } + private void setPreferencesVisibility(boolean visible) { + mPreference.setVisible(visible); + mSpacePreference.setVisible(visible); + } + private boolean getButtonPreferenceVisibility(CachedBluetoothDevice cachedDevice) { return isBinauralMode(cachedDevice) && isOnlyOneSideConnected(cachedDevice); } diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherControllerTest.java index d01e3ac4d58..ae47698f3a9 100644 --- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherControllerTest.java +++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherControllerTest.java @@ -21,6 +21,7 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.when; import com.android.settings.R; +import com.android.settings.applications.SpacePreference; import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.bluetooth.HearingAidProfile; import com.android.settingslib.widget.ButtonPreference; @@ -43,6 +44,7 @@ public class BluetoothDetailsPairOtherControllerTest extends BluetoothDetailsCon private CachedBluetoothDevice mSubCachedDevice; private BluetoothDetailsPairOtherController mController; private ButtonPreference mPreference; + private SpacePreference mSpacePreference; @Override public void setUp() { @@ -51,8 +53,11 @@ public class BluetoothDetailsPairOtherControllerTest extends BluetoothDetailsCon mController = new BluetoothDetailsPairOtherController(mContext, mFragment, mCachedDevice, mLifecycle); mPreference = new ButtonPreference(mContext); + mSpacePreference = new SpacePreference(mContext, null); mPreference.setKey(mController.getPreferenceKey()); + mSpacePreference.setKey(BluetoothDetailsPairOtherController.KEY_SPACE); mScreen.addPreference(mPreference); + mScreen.addPreference(mSpacePreference); } @Test @@ -76,7 +81,17 @@ public class BluetoothDetailsPairOtherControllerTest extends BluetoothDetailsCon } @Test - public void isAvailable_isConnectedHearingAidDevice_available() { + public void init_isNotConnectedHearingAidDevice_notVisiblePreference() { + when(mCachedDevice.isConnectedHearingAidDevice()).thenReturn(false); + + mController.init(mScreen); + + assertThat(mPreference.isVisible()).isFalse(); + assertThat(mSpacePreference.isVisible()).isFalse(); + } + + @Test + public void isAvailable_isNotConnectedHearingAidDevice_notAvailable() { when(mCachedDevice.isConnectedHearingAidDevice()).thenReturn(false); assertThat(mController.isAvailable()).isFalse(); @@ -129,4 +144,15 @@ public class BluetoothDetailsPairOtherControllerTest extends BluetoothDetailsCon assertThat(mPreference.getTitle().toString()).isEqualTo( mContext.getString(R.string.bluetooth_pair_left_ear_button)); } + + @Test + public void refresh_isNotConnectedHearingAidDevice_notVisiblePreference() { + when(mCachedDevice.isConnectedHearingAidDevice()).thenReturn(false); + mController.init(mScreen); + + mController.refresh(); + + assertThat(mPreference.isVisible()).isFalse(); + assertThat(mSpacePreference.isVisible()).isFalse(); + } }