diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherController.java b/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherController.java index d14a9b1144a..d1d8b12eea0 100644 --- a/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherController.java +++ b/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherController.java @@ -56,19 +56,25 @@ public class BluetoothDetailsPairOtherController extends BluetoothDetailsControl @Override protected void init(PreferenceScreen screen) { - final int side = mCachedDevice.getDeviceSide(); - final int stringRes = (side == HearingAidProfile.DeviceSide.SIDE_LEFT) - ? R.string.bluetooth_pair_right_ear_button - : R.string.bluetooth_pair_left_ear_button; - mPreference = screen.findPreference(getPreferenceKey()); - mPreference.setTitle(stringRes); + updateButtonPreferenceTitle(mPreference); mPreference.setOnClickListener(v -> launchPairingDetail()); } @Override protected void refresh() { + updateButtonPreferenceTitle(mPreference); mPreference.setVisible(getButtonPreferenceVisibility(mCachedDevice)); + + } + + private void updateButtonPreferenceTitle(ButtonPreference preference) { + final int side = mCachedDevice.getDeviceSide(); + final int stringRes = (side == HearingAidProfile.DeviceSide.SIDE_LEFT) + ? R.string.bluetooth_pair_right_ear_button + : R.string.bluetooth_pair_left_ear_button; + + preference.setTitle(stringRes); } private boolean getButtonPreferenceVisibility(CachedBluetoothDevice cachedDevice) { diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherControllerTest.java index cfa6d41e0d7..d01e3ac4d58 100644 --- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherControllerTest.java +++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherControllerTest.java @@ -56,7 +56,7 @@ public class BluetoothDetailsPairOtherControllerTest extends BluetoothDetailsCon } @Test - public void init_leftSideDevice_expectedTitle() { + public void init_leftSideDevice_rightSideButtonTitle() { when(mCachedDevice.getDeviceSide()).thenReturn(HearingAidProfile.DeviceSide.SIDE_LEFT); mController.init(mScreen); @@ -66,7 +66,7 @@ public class BluetoothDetailsPairOtherControllerTest extends BluetoothDetailsCon } @Test - public void init_rightSideDevice_expectedTitle() { + public void init_rightSideDevice_leftSideButtonTitle() { when(mCachedDevice.getDeviceSide()).thenReturn(HearingAidProfile.DeviceSide.SIDE_RIGHT); mController.init(mScreen); @@ -118,4 +118,15 @@ public class BluetoothDetailsPairOtherControllerTest extends BluetoothDetailsCon assertThat(mController.isAvailable()).isTrue(); } + + @Test + public void refresh_leftSideDevice_leftSideButtonTitle() { + when(mCachedDevice.getDeviceSide()).thenReturn(HearingAidProfile.DeviceSide.SIDE_RIGHT); + mController.init(mScreen); + + mController.refresh(); + + assertThat(mPreference.getTitle().toString()).isEqualTo( + mContext.getString(R.string.bluetooth_pair_left_ear_button)); + } }