From 5ccc566161095cee5d5624ed35ebca0973843559 Mon Sep 17 00:00:00 2001 From: Angela Wang Date: Thu, 19 Dec 2024 11:29:33 +0000 Subject: [PATCH] Migrate SeekBarPreference to SliderPreference Flag: EXEMPT flag by System prop Bug: 349675952 Bug: 384648854 Test: manually check the UI Test: atest AmbientVolumePreferenceTest Change-Id: Ibe8ba3f8e46337b9771fd4921aee4dea21612e06 --- .../bluetooth/AmbientVolumePreference.java | 32 +++++++++---------- .../BluetoothDeviceDetailsFragment.java | 1 + .../AmbientVolumePreferenceTest.java | 10 +++--- 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/src/com/android/settings/bluetooth/AmbientVolumePreference.java b/src/com/android/settings/bluetooth/AmbientVolumePreference.java index 8196edf0bd8..4f89007cf5f 100644 --- a/src/com/android/settings/bluetooth/AmbientVolumePreference.java +++ b/src/com/android/settings/bluetooth/AmbientVolumePreference.java @@ -37,8 +37,8 @@ import androidx.preference.PreferenceGroup; import androidx.preference.PreferenceViewHolder; import com.android.settings.R; -import com.android.settings.widget.SeekBarPreference; import com.android.settingslib.bluetooth.AmbientVolumeUi; +import com.android.settingslib.widget.SliderPreference; import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; @@ -68,12 +68,12 @@ public class AmbientVolumePreference extends PreferenceGroup implements AmbientV private boolean mExpanded = false; private boolean mMutable = false; private boolean mMuted = false; - private final BiMap mSideToSliderMap = HashBiMap.create(); + private final BiMap mSideToSliderMap = HashBiMap.create(); private int mVolumeLevel = AMBIENT_VOLUME_LEVEL_DEFAULT; private final OnPreferenceChangeListener mPreferenceChangeListener = (slider, v) -> { - if (slider instanceof SeekBarPreference && v instanceof final Integer value) { + if (slider instanceof SliderPreference && v instanceof final Integer value) { final Integer side = mSideToSliderMap.inverse().get(slider); if (mListener != null && side != null) { mListener.onSliderValueChange(side, value); @@ -173,8 +173,8 @@ public class AmbientVolumePreference extends PreferenceGroup implements AmbientV } mMuted = muted; if (mMutable && mMuted) { - for (SeekBarPreference slider : mSideToSliderMap.values()) { - slider.setProgress(slider.getMin()); + for (SliderPreference slider : mSideToSliderMap.values()) { + slider.setValue(slider.getMin()); } } updateVolumeIcon(); @@ -198,7 +198,7 @@ public class AmbientVolumePreference extends PreferenceGroup implements AmbientV if (!mSideToSliderMap.isEmpty()) { for (int side : VALID_SIDES) { - final SeekBarPreference slider = mSideToSliderMap.get(side); + final SliderPreference slider = mSideToSliderMap.get(side); if (slider != null && findPreference(slider.getKey()) == null) { addPreference(slider); } @@ -209,7 +209,7 @@ public class AmbientVolumePreference extends PreferenceGroup implements AmbientV @Override public void setSliderEnabled(int side, boolean enabled) { - SeekBarPreference slider = mSideToSliderMap.get(side); + SliderPreference slider = mSideToSliderMap.get(side); if (slider != null && slider.isEnabled() != enabled) { slider.setEnabled(enabled); updateLayout(); @@ -218,16 +218,16 @@ public class AmbientVolumePreference extends PreferenceGroup implements AmbientV @Override public void setSliderValue(int side, int value) { - SeekBarPreference slider = mSideToSliderMap.get(side); - if (slider != null && slider.getProgress() != value) { - slider.setProgress(value); + SliderPreference slider = mSideToSliderMap.get(side); + if (slider != null && slider.getValue() != value) { + slider.setValue(value); updateVolumeLevel(); } } @Override public void setSliderRange(int side, int min, int max) { - SeekBarPreference slider = mSideToSliderMap.get(side); + SliderPreference slider = mSideToSliderMap.get(side); if (slider != null) { slider.setMin(min); slider.setMax(max); @@ -243,7 +243,7 @@ public class AmbientVolumePreference extends PreferenceGroup implements AmbientV slider.setVisible(mExpanded); } if (!slider.isEnabled()) { - slider.setProgress(slider.getMin()); + slider.setValue(slider.getMin()); } }); updateVolumeLevel(); @@ -265,14 +265,14 @@ public class AmbientVolumePreference extends PreferenceGroup implements AmbientV } private int getVolumeLevel(int side) { - SeekBarPreference slider = mSideToSliderMap.get(side); + SliderPreference slider = mSideToSliderMap.get(side); if (slider == null || !slider.isEnabled()) { return 0; } final double min = slider.getMin(); final double max = slider.getMax(); final double levelGap = (max - min) / 4.0; - final int value = slider.getProgress(); + final int value = slider.getValue(); return (int) Math.ceil((value - min) / levelGap); } @@ -311,7 +311,7 @@ public class AmbientVolumePreference extends PreferenceGroup implements AmbientV if (mSideToSliderMap.containsKey(side)) { return; } - SeekBarPreference slider = new SeekBarPreference(getContext()); + SliderPreference slider = new SliderPreference(getContext()); slider.setKey(KEY_AMBIENT_VOLUME_SLIDER + "_" + side); slider.setOrder(order); slider.setOnPreferenceChangeListener(mPreferenceChangeListener); @@ -326,7 +326,7 @@ public class AmbientVolumePreference extends PreferenceGroup implements AmbientV } @VisibleForTesting - Map getSliders() { + Map getSliders() { return mSideToSliderMap; } } diff --git a/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java b/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java index 403a82429cc..f7829b1eb43 100644 --- a/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java +++ b/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java @@ -373,6 +373,7 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment } mFormatter.updateLayout(FragmentTypeModel.DeviceDetailsMainFragment.INSTANCE); } + setDivider(null); } @Override diff --git a/tests/robotests/src/com/android/settings/bluetooth/AmbientVolumePreferenceTest.java b/tests/robotests/src/com/android/settings/bluetooth/AmbientVolumePreferenceTest.java index 115f642d19b..d8c09786a5d 100644 --- a/tests/robotests/src/com/android/settings/bluetooth/AmbientVolumePreferenceTest.java +++ b/tests/robotests/src/com/android/settings/bluetooth/AmbientVolumePreferenceTest.java @@ -41,8 +41,8 @@ import androidx.preference.PreferenceViewHolder; import androidx.test.core.app.ApplicationProvider; import com.android.settings.R; -import com.android.settings.widget.SeekBarPreference; import com.android.settingslib.bluetooth.AmbientVolumeUi; +import com.android.settingslib.widget.SliderPreference; import org.junit.Before; import org.junit.Rule; @@ -99,13 +99,13 @@ public class AmbientVolumePreferenceTest { slider.setMax(4); if (side == SIDE_LEFT) { slider.setKey(KEY_LEFT_SLIDER); - slider.setProgress(TEST_LEFT_VOLUME_LEVEL); + slider.setValue(TEST_LEFT_VOLUME_LEVEL); } else if (side == SIDE_RIGHT) { slider.setKey(KEY_RIGHT_SLIDER); - slider.setProgress(TEST_RIGHT_VOLUME_LEVEL); + slider.setValue(TEST_RIGHT_VOLUME_LEVEL); } else { slider.setKey(KEY_UNIFIED_SLIDER); - slider.setProgress(TEST_UNIFIED_VOLUME_LEVEL); + slider.setValue(TEST_UNIFIED_VOLUME_LEVEL); } }); @@ -223,7 +223,7 @@ public class AmbientVolumePreferenceTest { private void assertControlUiCorrect() { final boolean expanded = mPreference.isExpanded(); - Map sliders = mPreference.getSliders(); + Map sliders = mPreference.getSliders(); assertThat(sliders.get(SIDE_UNIFIED).isVisible()).isEqualTo(!expanded); assertThat(sliders.get(SIDE_LEFT).isVisible()).isEqualTo(expanded); assertThat(sliders.get(SIDE_RIGHT).isVisible()).isEqualTo(expanded);