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

Commit c7de74ac authored by Piotr Wilczyński's avatar Piotr Wilczyński Committed by Android (Google) Code Review
Browse files

Merge "Don't back up Smooth Display if feature flag off" into main

parents 7c8a83dd 369cfd8e
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import androidx.preference.TwoStatePreference;

import com.android.server.display.feature.flags.Flags;
import com.android.settings.R;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -95,7 +96,9 @@ public class ForcePeakRefreshRatePreferenceController extends DeveloperOptionsPr

    @VisibleForTesting
    void forcePeakRefreshRate(boolean enable) {
        final float peakRefreshRate = enable ? Float.POSITIVE_INFINITY : NO_CONFIG;
        final float valueIfEnabled = Flags.backUpSmoothDisplayAndForcePeakRefreshRate()
                ? Float.POSITIVE_INFINITY : mPeakRefreshRate;
        final float peakRefreshRate = enable ? valueIfEnabled : NO_CONFIG;
        Settings.System.putFloat(mContext.getContentResolver(),
            Settings.System.MIN_REFRESH_RATE, peakRefreshRate);
    }
+4 −1
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;

import com.android.server.display.feature.flags.Flags;
import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
@@ -107,7 +108,9 @@ public class PeakRefreshRatePreferenceController extends TogglePreferenceControl

    @Override
    public boolean setChecked(boolean isChecked) {
        final float peakRefreshRate = isChecked ? Float.POSITIVE_INFINITY : DEFAULT_REFRESH_RATE;
        final float valueIfChecked = Flags.backUpSmoothDisplayAndForcePeakRefreshRate()
                ? Float.POSITIVE_INFINITY : mPeakRefreshRate;
        final float peakRefreshRate = isChecked ? valueIfChecked : DEFAULT_REFRESH_RATE;
        Log.d(TAG, "setChecked to : " + peakRefreshRate);

        return Settings.System.putFloat(
+25 −1
Original line number Diff line number Diff line
@@ -25,12 +25,19 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import android.content.Context;
import android.platform.test.annotations.RequiresFlagsDisabled;
import android.platform.test.annotations.RequiresFlagsEnabled;
import android.platform.test.flag.junit.CheckFlagsRule;
import android.platform.test.flag.junit.DeviceFlagsValueProvider;
import android.provider.Settings;

import androidx.preference.PreferenceScreen;
import androidx.preference.SwitchPreference;

import com.android.server.display.feature.flags.Flags;

import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -50,6 +57,9 @@ public class ForcePeakRefreshRatePreferenceControllerTest {
    private Context mContext;
    private ForcePeakRefreshRatePreferenceController mController;

    @Rule
    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();

    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
@@ -61,7 +71,19 @@ public class ForcePeakRefreshRatePreferenceControllerTest {
    }

    @Test
    public void onPreferenceChange_preferenceChecked_shouldEnableForcePeak() {
    @RequiresFlagsDisabled(Flags.FLAG_BACK_UP_SMOOTH_DISPLAY_AND_FORCE_PEAK_REFRESH_RATE)
    public void onPreferenceChange_preferenceChecked_shouldEnableForcePeak_featureFlagOff() {
        mController.mPeakRefreshRate = 88f;

        mController.onPreferenceChange(mPreference, true);

        assertThat(Settings.System.getFloat(mContext.getContentResolver(),
                Settings.System.MIN_REFRESH_RATE, NO_CONFIG)).isEqualTo(88f);
    }

    @Test
    @RequiresFlagsEnabled(Flags.FLAG_BACK_UP_SMOOTH_DISPLAY_AND_FORCE_PEAK_REFRESH_RATE)
    public void onPreferenceChange_preferenceChecked_shouldEnableForcePeak_featureFlagOn() {
        mController.mPeakRefreshRate = 88f;

        mController.onPreferenceChange(mPreference, true);
@@ -88,6 +110,7 @@ public class ForcePeakRefreshRatePreferenceControllerTest {
        mController.updateState(mPreference);

        verify(mPreference).setChecked(true);
        assertThat(mController.isForcePeakRefreshRateEnabled()).isTrue();
    }

    @Test
@@ -98,6 +121,7 @@ public class ForcePeakRefreshRatePreferenceControllerTest {
        mController.updateState(mPreference);

        verify(mPreference).setChecked(false);
        assertThat(mController.isForcePeakRefreshRateEnabled()).isFalse();
    }

    @Test
+27 −21
Original line number Diff line number Diff line
@@ -25,11 +25,18 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.when;

import android.content.Context;
import android.platform.test.annotations.RequiresFlagsDisabled;
import android.platform.test.annotations.RequiresFlagsEnabled;
import android.platform.test.flag.junit.CheckFlagsRule;
import android.platform.test.flag.junit.DeviceFlagsValueProvider;
import android.provider.Settings;

import androidx.preference.SwitchPreference;

import com.android.server.display.feature.flags.Flags;

import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -49,6 +56,9 @@ public class PeakRefreshRatePreferenceControllerTest {
    private PeakRefreshRatePreferenceController.DeviceConfigDisplaySettings
            mDeviceConfigDisplaySettings;

    @Rule
    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();

    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
@@ -79,7 +89,19 @@ public class PeakRefreshRatePreferenceControllerTest {
    }

    @Test
    public void setChecked_enableSmoothDisplay_setRefreshRateToInfinity() {
    @RequiresFlagsDisabled(Flags.FLAG_BACK_UP_SMOOTH_DISPLAY_AND_FORCE_PEAK_REFRESH_RATE)
    public void setChecked_enableSmoothDisplay_featureFlagOff() {
        mController.mPeakRefreshRate = 88f;
        mController.setChecked(true);

        assertThat(Settings.System.getFloat(mContext.getContentResolver(),
                Settings.System.PEAK_REFRESH_RATE, DEFAULT_REFRESH_RATE))
                .isEqualTo(88f);
    }

    @Test
    @RequiresFlagsEnabled(Flags.FLAG_BACK_UP_SMOOTH_DISPLAY_AND_FORCE_PEAK_REFRESH_RATE)
    public void setChecked_enableSmoothDisplay_featureFlagOn() {
        mController.mPeakRefreshRate = 88f;
        mController.setChecked(true);

@@ -100,14 +122,16 @@ public class PeakRefreshRatePreferenceControllerTest {

    @Test
    public void isChecked_enableSmoothDisplay_returnTrue() {
        enableSmoothDisplayPreference();
        mController.mPeakRefreshRate = 88f;
        mController.setChecked(true);

        assertThat(mController.isChecked()).isTrue();
    }

    @Test
    public void isChecked_disableSmoothDisplay_returnFalse() {
        disableSmoothDisplayPreference();
        mController.mPeakRefreshRate = 88f;
        mController.setChecked(false);

        assertThat(mController.isChecked()).isFalse();
    }
@@ -128,22 +152,4 @@ public class PeakRefreshRatePreferenceControllerTest {

        assertThat(mController.isChecked()).isFalse();
    }

    private void enableSmoothDisplayPreference() {
        mController.mPeakRefreshRate = 88f;

        Settings.System.putFloat(
                mContext.getContentResolver(),
                Settings.System.PEAK_REFRESH_RATE,
                mController.mPeakRefreshRate);
    }

    private void disableSmoothDisplayPreference() {
        mController.mPeakRefreshRate = 88f;

        Settings.System.putFloat(
                mContext.getContentResolver(),
                Settings.System.PEAK_REFRESH_RATE,
                DEFAULT_REFRESH_RATE);
    }
}