Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 70b783c2 authored by Haijie Hong's avatar Haijie Hong
Browse files

Set title for SliderPreference

Bug: 409185858
Test: local tested
Flag: com.android.settings.flags.enable_bluetooth_settings_expressive_design
Change-Id: I7891d5b0b1c72cca567a34b9b5e01ac3b369116f
parent 63f3ebd0
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import android.util.Log;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.android.settings.R;
import com.android.settings.bluetooth.Utils;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.bluetooth.BluetoothUtils;
@@ -76,6 +77,7 @@ public class AudioSharingDeviceVolumeSliderPreference extends SliderPreference {
                    return true;
                }
        );
        refreshPreference();
    }

    @Override
@@ -105,9 +107,17 @@ public class AudioSharingDeviceVolumeSliderPreference extends SliderPreference {
    }

    void onPreferenceAttributesChanged() {
        refreshPreference();
    }

    private void refreshPreference() {
        var unused = ThreadUtils.postOnBackgroundThread(() -> {
            String name = mCachedDevice.getName();
            AudioSharingUtils.postOnMainThread(mContext, () -> setTitle(name));
            AudioSharingUtils.postOnMainThread(mContext, () -> {
                setTitle(name);
                setSliderContentDescription(
                        mContext.getString(R.string.audio_sharing_device_volume_description, name));
            });
        });
    }

+8 −5
Original line number Diff line number Diff line
@@ -373,8 +373,10 @@ public class AudioSharingDeviceVolumeControlUpdaterTest {

        verify(mDevicePreferenceCallback).onDeviceAdded(captor.capture());
        assertThat(captor.getValue() instanceof AudioSharingDeviceVolumeSliderPreference).isTrue();
        assertThat(((AudioSharingDeviceVolumeSliderPreference) captor.getValue()).getCachedDevice())
                .isEqualTo(mCachedDevice);
        AudioSharingDeviceVolumeSliderPreference preference =
                (AudioSharingDeviceVolumeSliderPreference) captor.getValue();
        assertThat(preference.getCachedDevice()).isEqualTo(mCachedDevice);
        assertThat(preference.getTitle().toString()).isEqualTo(TEST_DEVICE_NAME);
    }

    @Test
@@ -407,9 +409,10 @@ public class AudioSharingDeviceVolumeControlUpdaterTest {
        shadowOf(Looper.getMainLooper()).idle();

        verify(mDevicePreferenceCallback).onDeviceAdded(captor.capture());
        assertThat(captor.getValue() instanceof AudioSharingDeviceVolumeSliderPreference).isTrue();
        assertThat(((AudioSharingDeviceVolumeSliderPreference) captor.getValue()).getCachedDevice())
                .isEqualTo(mCachedDevice);
        AudioSharingDeviceVolumeSliderPreference preference =
                (AudioSharingDeviceVolumeSliderPreference) captor.getValue();
        assertThat(preference.getCachedDevice()).isEqualTo(mCachedDevice);
        assertThat(preference.getTitle().toString()).isEqualTo(TEST_DEVICE_NAME);
    }

    @Test
+12 −0
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ import android.widget.SeekBar;

import androidx.test.core.app.ApplicationProvider;

import com.android.settings.R;
import com.android.settings.bluetooth.Utils;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
@@ -124,10 +125,18 @@ public class AudioSharingDeviceVolumeSliderPreferenceTest {

    @Test
    public void initialize_setupMaxMin() {
        mPreference = spy(mPreference);
        mPreference.initialize();
        shadowOf(Looper.getMainLooper()).idle();

        assertThat(mPreference.getMax())
                .isEqualTo(AudioSharingDeviceVolumeSliderPreference.MAX_VOLUME);
        assertThat(mPreference.getMin())
                .isEqualTo(AudioSharingDeviceVolumeSliderPreference.MIN_VOLUME);
        assertThat(mPreference.getTitle().toString()).isEqualTo(TEST_DEVICE_NAME);
        verify(mPreference).setSliderContentDescription(
                mContext.getString(R.string.audio_sharing_device_volume_description,
                        TEST_DEVICE_NAME));
    }

    @Test
@@ -252,10 +261,13 @@ public class AudioSharingDeviceVolumeSliderPreferenceTest {

    @Test
    public void onPreferenceAttributesChanged_nameChanged_updatePreference() {
        mPreference = spy(mPreference);
        when(mCachedDevice.getName()).thenReturn("new");
        mPreference.onPreferenceAttributesChanged();
        shadowOf(Looper.getMainLooper()).idle();

        assertThat(mPreference.getTitle().toString()).isEqualTo("new");
        verify(mPreference).setSliderContentDescription(
                mContext.getString(R.string.audio_sharing_device_volume_description, "new"));
    }
}