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

Commit fbaa9f3f authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix transparency seekbar is enabled while fade feature is disabled." into tm-dev

parents b1bdc42d 7ae0b641
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -51,9 +51,7 @@ public class FloatingMenuTransparencyPreferenceController extends SliderPreferen
    private final ContentResolver mContentResolver;
    @VisibleForTesting
    final ContentObserver mContentObserver;

    @VisibleForTesting
    SeekBarPreference mPreference;
    private SeekBarPreference mPreference;

    public FloatingMenuTransparencyPreferenceController(Context context,
            String preferenceKey) {
@@ -83,6 +81,7 @@ public class FloatingMenuTransparencyPreferenceController extends SliderPreferen
        mPreference.setMin(getMin());
        mPreference.setHapticFeedbackMode(SeekBarPreference.HAPTIC_FEEDBACK_MODE_ON_ENDS);

        updateAvailabilityStatus();
        updateState(mPreference);
    }

+65 −3
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import static com.android.settings.core.BasePreferenceController.DISABLED_DEPEND

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

@@ -34,6 +35,7 @@ import android.content.ContentResolver;
import android.content.Context;
import android.provider.Settings;

import androidx.preference.PreferenceScreen;
import androidx.test.core.app.ApplicationProvider;

import com.android.settings.widget.SeekBarPreference;
@@ -60,11 +62,18 @@ public class FloatingMenuTransparencyPreferenceControllerTest {
    @Mock
    private ContentResolver mContentResolver;
    private FloatingMenuTransparencyPreferenceController mController;
    private SeekBarPreference mSeekBarPreference;

    @Mock
    private PreferenceScreen mScreen;

    @Before
    public void setUp() {
        when(mContext.getContentResolver()).thenReturn(mContentResolver);
        mController = new FloatingMenuTransparencyPreferenceController(mContext, "test_key");

        mSeekBarPreference = new SeekBarPreference(mContext);
        doReturn(mSeekBarPreference).when(mScreen).findPreference("test_key");
    }

    @Test
@@ -84,14 +93,67 @@ public class FloatingMenuTransparencyPreferenceControllerTest {
    }

    @Test
    public void onChange_a11yBtnModeChangeToNavigationBar_preferenceDisabled() {
        mController.mPreference = new SeekBarPreference(mContext);
    public void displayPreference_floatingMenuMode_fadeEnabled_preferenceEnabled() {
        Settings.Secure.putInt(mContentResolver, Settings.Secure.ACCESSIBILITY_BUTTON_MODE,
                ACCESSIBILITY_BUTTON_MODE_FLOATING_MENU);
        Settings.Secure.putInt(mContentResolver,
                Settings.Secure.ACCESSIBILITY_FLOATING_MENU_FADE_ENABLED, /* ON */ 1);

        mController.displayPreference(mScreen);

        assertThat(mSeekBarPreference.isEnabled()).isTrue();
    }

    @Test
    public void displayPreference_floatingMenuMode_fadeDisabled_preferenceDisabled() {
        Settings.Secure.putInt(mContentResolver, Settings.Secure.ACCESSIBILITY_BUTTON_MODE,
                ACCESSIBILITY_BUTTON_MODE_FLOATING_MENU);
        Settings.Secure.putInt(mContentResolver,
                Settings.Secure.ACCESSIBILITY_FLOATING_MENU_FADE_ENABLED, /* OFF */ 0);

        mController.displayPreference(mScreen);

        assertThat(mSeekBarPreference.isEnabled()).isFalse();
    }

    @Test
    public void displayPreference_navigationBarMode_preferenceDisabled() {
        Settings.Secure.putInt(mContentResolver, Settings.Secure.ACCESSIBILITY_BUTTON_MODE,
                ACCESSIBILITY_BUTTON_MODE_NAVIGATION_BAR);

        mController.displayPreference(mScreen);

        assertThat(mSeekBarPreference.isEnabled()).isFalse();
    }

    @Test
    public void onChange_floatingMenuModeChangeToNavigationBar_preferenceDisabled() {
        Settings.Secure.putInt(mContentResolver, Settings.Secure.ACCESSIBILITY_BUTTON_MODE,
                ACCESSIBILITY_BUTTON_MODE_FLOATING_MENU);
        Settings.Secure.putInt(mContentResolver,
                Settings.Secure.ACCESSIBILITY_FLOATING_MENU_FADE_ENABLED, /* ON */ 1);
        mController.displayPreference(mScreen);

        Settings.Secure.putInt(mContentResolver, Settings.Secure.ACCESSIBILITY_BUTTON_MODE,
                ACCESSIBILITY_BUTTON_MODE_NAVIGATION_BAR);
        mController.mContentObserver.onChange(false);

        assertThat(mSeekBarPreference.isEnabled()).isFalse();
    }

    @Test
    public void onChange_navigationBarModeChangeToFloatingMenu_preferenceDisabled() {
        Settings.Secure.putInt(mContentResolver, Settings.Secure.ACCESSIBILITY_BUTTON_MODE,
                ACCESSIBILITY_BUTTON_MODE_NAVIGATION_BAR);
        Settings.Secure.putInt(mContentResolver,
                Settings.Secure.ACCESSIBILITY_FLOATING_MENU_FADE_ENABLED, /* ON */ 1);
        mController.displayPreference(mScreen);

        Settings.Secure.putInt(mContentResolver, Settings.Secure.ACCESSIBILITY_BUTTON_MODE,
                ACCESSIBILITY_BUTTON_MODE_FLOATING_MENU);
        mController.mContentObserver.onChange(false);

        assertThat(mController.mPreference.isEnabled()).isFalse();
        assertThat(mSeekBarPreference.isEnabled()).isTrue();
    }

    @Test