Loading res/xml/bluetooth_device_details_fragment.xml +1 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ android:key="hearing_aid_pair_other_button" android:gravity="center" /> <com.android.settings.applications.SpacePreference android:key="hearing_aid_space_layout" android:layout_height="8dp" /> <com.android.settingslib.widget.ActionButtonsPreference Loading src/com/android/settings/bluetooth/BluetoothDetailsPairOtherController.java +14 −1 Original line number Diff line number Diff line Loading @@ -22,19 +22,25 @@ import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.applications.SpacePreference; import com.android.settings.core.SubSettingLauncher; import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.bluetooth.HearingAidProfile; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.widget.ButtonPreference; import com.google.common.annotations.VisibleForTesting; /** * This class handles button preference logic to display for hearing aid device. */ public class BluetoothDetailsPairOtherController extends BluetoothDetailsController { private static final String KEY_PAIR_OTHER = "hearing_aid_pair_other_button"; @VisibleForTesting static final String KEY_SPACE = "hearing_aid_space_layout"; private ButtonPreference mPreference; private SpacePreference mSpacePreference; public BluetoothDetailsPairOtherController(Context context, PreferenceFragmentCompat fragment, Loading Loading @@ -62,13 +68,20 @@ public class BluetoothDetailsPairOtherController extends BluetoothDetailsControl : R.string.bluetooth_pair_left_ear_button; mPreference = screen.findPreference(getPreferenceKey()); mSpacePreference = screen.findPreference(KEY_SPACE); mPreference.setTitle(stringRes); setPreferencesVisibility(getButtonPreferenceVisibility(mCachedDevice)); mPreference.setOnClickListener(v -> launchPairingDetail()); } @Override protected void refresh() { mPreference.setVisible(getButtonPreferenceVisibility(mCachedDevice)); setPreferencesVisibility(getButtonPreferenceVisibility(mCachedDevice)); } private void setPreferencesVisibility(boolean visible) { mPreference.setVisible(visible); mSpacePreference.setVisible(visible); } private boolean getButtonPreferenceVisibility(CachedBluetoothDevice cachedDevice) { Loading tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherControllerTest.java +27 −1 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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() { Loading @@ -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 Loading @@ -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(); Loading Loading @@ -118,4 +133,15 @@ public class BluetoothDetailsPairOtherControllerTest extends BluetoothDetailsCon assertThat(mController.isAvailable()).isTrue(); } @Test public void refresh_isNotConnectedHearingAidDevice_notVisiblePreference() { when(mCachedDevice.isConnectedHearingAidDevice()).thenReturn(false); mController.init(mScreen); mController.refresh(); assertThat(mPreference.isVisible()).isFalse(); assertThat(mSpacePreference.isVisible()).isFalse(); } } Loading
res/xml/bluetooth_device_details_fragment.xml +1 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ android:key="hearing_aid_pair_other_button" android:gravity="center" /> <com.android.settings.applications.SpacePreference android:key="hearing_aid_space_layout" android:layout_height="8dp" /> <com.android.settingslib.widget.ActionButtonsPreference Loading
src/com/android/settings/bluetooth/BluetoothDetailsPairOtherController.java +14 −1 Original line number Diff line number Diff line Loading @@ -22,19 +22,25 @@ import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.applications.SpacePreference; import com.android.settings.core.SubSettingLauncher; import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.bluetooth.HearingAidProfile; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.widget.ButtonPreference; import com.google.common.annotations.VisibleForTesting; /** * This class handles button preference logic to display for hearing aid device. */ public class BluetoothDetailsPairOtherController extends BluetoothDetailsController { private static final String KEY_PAIR_OTHER = "hearing_aid_pair_other_button"; @VisibleForTesting static final String KEY_SPACE = "hearing_aid_space_layout"; private ButtonPreference mPreference; private SpacePreference mSpacePreference; public BluetoothDetailsPairOtherController(Context context, PreferenceFragmentCompat fragment, Loading Loading @@ -62,13 +68,20 @@ public class BluetoothDetailsPairOtherController extends BluetoothDetailsControl : R.string.bluetooth_pair_left_ear_button; mPreference = screen.findPreference(getPreferenceKey()); mSpacePreference = screen.findPreference(KEY_SPACE); mPreference.setTitle(stringRes); setPreferencesVisibility(getButtonPreferenceVisibility(mCachedDevice)); mPreference.setOnClickListener(v -> launchPairingDetail()); } @Override protected void refresh() { mPreference.setVisible(getButtonPreferenceVisibility(mCachedDevice)); setPreferencesVisibility(getButtonPreferenceVisibility(mCachedDevice)); } private void setPreferencesVisibility(boolean visible) { mPreference.setVisible(visible); mSpacePreference.setVisible(visible); } private boolean getButtonPreferenceVisibility(CachedBluetoothDevice cachedDevice) { Loading
tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherControllerTest.java +27 −1 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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() { Loading @@ -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 Loading @@ -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(); Loading Loading @@ -118,4 +133,15 @@ public class BluetoothDetailsPairOtherControllerTest extends BluetoothDetailsCon assertThat(mController.isAvailable()).isTrue(); } @Test public void refresh_isNotConnectedHearingAidDevice_notVisiblePreference() { when(mCachedDevice.isConnectedHearingAidDevice()).thenReturn(false); mController.init(mScreen); mController.refresh(); assertThat(mPreference.isVisible()).isFalse(); assertThat(mSpacePreference.isVisible()).isFalse(); } }