Merge "Back up peak refresh rate and min refresh rate" into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
3a9777c8e8
@@ -16,11 +16,12 @@
|
||||
|
||||
package com.android.settings.development;
|
||||
|
||||
import static com.android.internal.display.RefreshRateSettingsUtils.DEFAULT_REFRESH_RATE;
|
||||
import static com.android.internal.display.RefreshRateSettingsUtils.findHighestRefreshRateForDefaultDisplay;
|
||||
|
||||
import android.content.Context;
|
||||
import android.hardware.display.DisplayManager;
|
||||
import android.provider.Settings;
|
||||
import android.util.Log;
|
||||
import android.view.Display;
|
||||
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
import androidx.preference.Preference;
|
||||
@@ -34,9 +35,6 @@ import com.android.settingslib.development.DeveloperOptionsPreferenceController;
|
||||
public class ForcePeakRefreshRatePreferenceController extends DeveloperOptionsPreferenceController
|
||||
implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin {
|
||||
|
||||
@VisibleForTesting
|
||||
static float DEFAULT_REFRESH_RATE = 60f;
|
||||
|
||||
@VisibleForTesting
|
||||
static float NO_CONFIG = 0f;
|
||||
|
||||
@@ -48,17 +46,7 @@ public class ForcePeakRefreshRatePreferenceController extends DeveloperOptionsPr
|
||||
|
||||
public ForcePeakRefreshRatePreferenceController(Context context) {
|
||||
super(context);
|
||||
|
||||
final DisplayManager dm = context.getSystemService(DisplayManager.class);
|
||||
final Display display = dm.getDisplay(Display.DEFAULT_DISPLAY);
|
||||
|
||||
if (display == null) {
|
||||
Log.w(TAG, "No valid default display device");
|
||||
mPeakRefreshRate = DEFAULT_REFRESH_RATE;
|
||||
} else {
|
||||
mPeakRefreshRate = findPeakRefreshRate(display.getSupportedModes());
|
||||
}
|
||||
|
||||
mPeakRefreshRate = findHighestRefreshRateForDefaultDisplay(context);
|
||||
Log.d(TAG, "DEFAULT_REFRESH_RATE : " + DEFAULT_REFRESH_RATE
|
||||
+ " mPeakRefreshRate : " + mPeakRefreshRate);
|
||||
}
|
||||
@@ -107,7 +95,7 @@ public class ForcePeakRefreshRatePreferenceController extends DeveloperOptionsPr
|
||||
|
||||
@VisibleForTesting
|
||||
void forcePeakRefreshRate(boolean enable) {
|
||||
final float peakRefreshRate = enable ? mPeakRefreshRate : NO_CONFIG;
|
||||
final float peakRefreshRate = enable ? Float.POSITIVE_INFINITY : NO_CONFIG;
|
||||
Settings.System.putFloat(mContext.getContentResolver(),
|
||||
Settings.System.MIN_REFRESH_RATE, peakRefreshRate);
|
||||
}
|
||||
@@ -116,17 +104,7 @@ public class ForcePeakRefreshRatePreferenceController extends DeveloperOptionsPr
|
||||
final float peakRefreshRate = Settings.System.getFloat(mContext.getContentResolver(),
|
||||
Settings.System.MIN_REFRESH_RATE, NO_CONFIG);
|
||||
|
||||
return peakRefreshRate >= mPeakRefreshRate;
|
||||
}
|
||||
|
||||
private float findPeakRefreshRate(Display.Mode[] modes) {
|
||||
float peakRefreshRate = DEFAULT_REFRESH_RATE;
|
||||
for (Display.Mode mode : modes) {
|
||||
if (Math.round(mode.getRefreshRate()) > peakRefreshRate) {
|
||||
peakRefreshRate = mode.getRefreshRate();
|
||||
}
|
||||
}
|
||||
|
||||
return peakRefreshRate;
|
||||
return Math.round(peakRefreshRate) == Math.round(mPeakRefreshRate)
|
||||
|| Float.isInfinite(peakRefreshRate);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,13 +16,15 @@
|
||||
|
||||
package com.android.settings.display;
|
||||
|
||||
import static com.android.internal.display.RefreshRateSettingsUtils.DEFAULT_REFRESH_RATE;
|
||||
import static com.android.internal.display.RefreshRateSettingsUtils.findHighestRefreshRateForDefaultDisplay;
|
||||
|
||||
import android.content.Context;
|
||||
import android.hardware.display.DisplayManager;
|
||||
import android.os.Handler;
|
||||
import android.provider.DeviceConfig;
|
||||
import android.provider.Settings;
|
||||
import android.util.Log;
|
||||
import android.view.Display;
|
||||
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
import androidx.preference.Preference;
|
||||
@@ -39,8 +41,6 @@ import java.util.concurrent.Executor;
|
||||
public class PeakRefreshRatePreferenceController extends TogglePreferenceController
|
||||
implements LifecycleObserver, OnStart, OnStop {
|
||||
|
||||
@VisibleForTesting static float DEFAULT_REFRESH_RATE = 60f;
|
||||
|
||||
@VisibleForTesting float mPeakRefreshRate;
|
||||
|
||||
private static final String TAG = "RefreshRatePrefCtr";
|
||||
@@ -48,7 +48,7 @@ public class PeakRefreshRatePreferenceController extends TogglePreferenceControl
|
||||
|
||||
private final Handler mHandler;
|
||||
private final IDeviceConfigChange mOnDeviceConfigChange;
|
||||
private final DeviceConfigDisplaySettings mDeviceConfigDisplaySettings;
|
||||
private DeviceConfigDisplaySettings mDeviceConfigDisplaySettings;
|
||||
private Preference mPreference;
|
||||
|
||||
private interface IDeviceConfigChange {
|
||||
@@ -65,17 +65,7 @@ public class PeakRefreshRatePreferenceController extends TogglePreferenceControl
|
||||
updateState(mPreference);
|
||||
}
|
||||
};
|
||||
|
||||
final DisplayManager dm = mContext.getSystemService(DisplayManager.class);
|
||||
final Display display = dm.getDisplay(Display.DEFAULT_DISPLAY);
|
||||
|
||||
if (display == null) {
|
||||
Log.w(TAG, "No valid default display device");
|
||||
mPeakRefreshRate = DEFAULT_REFRESH_RATE;
|
||||
} else {
|
||||
mPeakRefreshRate = findPeakRefreshRate(display.getSupportedModes());
|
||||
}
|
||||
|
||||
mPeakRefreshRate = findHighestRefreshRateForDefaultDisplay(context);
|
||||
Log.d(
|
||||
TAG,
|
||||
"DEFAULT_REFRESH_RATE : "
|
||||
@@ -111,12 +101,13 @@ public class PeakRefreshRatePreferenceController extends TogglePreferenceControl
|
||||
mContext.getContentResolver(),
|
||||
Settings.System.PEAK_REFRESH_RATE,
|
||||
getDefaultPeakRefreshRate());
|
||||
return Math.round(peakRefreshRate) == Math.round(mPeakRefreshRate);
|
||||
return Math.round(peakRefreshRate) == Math.round(mPeakRefreshRate)
|
||||
|| Float.isInfinite(peakRefreshRate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setChecked(boolean isChecked) {
|
||||
final float peakRefreshRate = isChecked ? mPeakRefreshRate : DEFAULT_REFRESH_RATE;
|
||||
final float peakRefreshRate = isChecked ? Float.POSITIVE_INFINITY : DEFAULT_REFRESH_RATE;
|
||||
Log.d(TAG, "setChecked to : " + peakRefreshRate);
|
||||
|
||||
return Settings.System.putFloat(
|
||||
@@ -139,17 +130,13 @@ public class PeakRefreshRatePreferenceController extends TogglePreferenceControl
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
float findPeakRefreshRate(Display.Mode[] modes) {
|
||||
float peakRefreshRate = DEFAULT_REFRESH_RATE;
|
||||
for (Display.Mode mode : modes) {
|
||||
if (Math.round(mode.getRefreshRate()) > peakRefreshRate) {
|
||||
peakRefreshRate = mode.getRefreshRate();
|
||||
}
|
||||
}
|
||||
return peakRefreshRate;
|
||||
void injectDeviceConfigDisplaySettings(
|
||||
DeviceConfigDisplaySettings deviceConfigDisplaySettings) {
|
||||
mDeviceConfigDisplaySettings = deviceConfigDisplaySettings;
|
||||
}
|
||||
|
||||
private class DeviceConfigDisplaySettings
|
||||
@VisibleForTesting
|
||||
class DeviceConfigDisplaySettings
|
||||
implements DeviceConfig.OnPropertiesChangedListener, Executor {
|
||||
public void startListening() {
|
||||
DeviceConfig.addOnPropertiesChangedListener(
|
||||
|
||||
Reference in New Issue
Block a user