diff options
| author | Ralf Luther <luther.ralf@gmail.com> | 2020-12-21 21:17:48 +0100 |
|---|---|---|
| committer | Ralf Luther <luther.ralf@gmail.com> | 2020-12-21 21:17:48 +0100 |
| commit | 121dcdb419a2e09d7bb8f8a7e50cb7d0be7b3326 (patch) | |
| tree | 5f52e0b97dc8078ee213005c1caa852c6f52e6ed | |
| parent | aed46156da174916b653fdecf448831d78424af3 (diff) | |
PartsBin 1/2: Make Refreshrate switching use integer values...
... and change the icons, so that devices with other peak rates can use this to adapt to their displays (and do not get annoyed by QS tiles displaying "60" or "90"Hz only).
I chose to use integer values and convert them to float, after using some "existing" strings, as that cluttered the code more as it uses float values by default on OMNI.
Change-Id: I6609892ba80ad08c8847d7cca10632f363cf8da0
| -rw-r--r-- | res/values/config.xml | 2 | ||||
| -rw-r--r-- | src/com/aicp/device/AutoRefreshRateSwitch.java | 8 | ||||
| -rw-r--r-- | src/com/aicp/device/RefreshRateSwitch.java | 14 | ||||
| -rw-r--r-- | src/com/aicp/device/RefreshRateTileService.java | 12 |
4 files changed, 25 insertions, 11 deletions
diff --git a/res/values/config.xml b/res/values/config.xml index 78fdcac..e102e44 100644 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -20,6 +20,8 @@ <bool name="config_device_has_hw_nav_buttons">false</bool> <bool name="config_device_supports_switch_refreshrate">false</bool> + <integer name="BaseRefresh"></integer> + <integer name="PeakRefresh"></integer> <bool name="config_device_supports_soundtuner">false</bool> diff --git a/src/com/aicp/device/AutoRefreshRateSwitch.java b/src/com/aicp/device/AutoRefreshRateSwitch.java index 6ef7f42..213c1a5 100644 --- a/src/com/aicp/device/AutoRefreshRateSwitch.java +++ b/src/com/aicp/device/AutoRefreshRateSwitch.java @@ -28,9 +28,13 @@ public class AutoRefreshRateSwitch implements OnPreferenceChangeListener { public static final String SETTINGS_KEY = DeviceSettings.KEY_SETTINGS_PREFIX + DeviceSettings.KEY_AUTO_REFRESH_RATE; private Context mContext; + protected static float mBaseRefresh; + protected static float mPeakRefresh; public AutoRefreshRateSwitch(Context context) { mContext = context; + mBaseRefresh = (float) context.getResources().getInteger(R.integer.BaseRefresh); + mPeakRefresh = (float) context.getResources().getInteger(R.integer.PeakRefresh); } public static boolean isCurrentlyEnabled(Context context) { @@ -41,9 +45,9 @@ public class AutoRefreshRateSwitch implements OnPreferenceChangeListener { public boolean onPreferenceChange(Preference preference, Object newValue) { Boolean enabled = (Boolean) newValue; Settings.System.putFloat(mContext.getContentResolver(), - Settings.System.PEAK_REFRESH_RATE, 90f); + Settings.System.PEAK_REFRESH_RATE, mPeakRefresh); Settings.System.putFloat(mContext.getContentResolver(), - Settings.System.MIN_REFRESH_RATE, 60f); + Settings.System.MIN_REFRESH_RATE, mBaseRefresh); Settings.System.putInt(mContext.getContentResolver(), SETTINGS_KEY, enabled ? 1 : 0); return true; } diff --git a/src/com/aicp/device/RefreshRateSwitch.java b/src/com/aicp/device/RefreshRateSwitch.java index 9d52565..33ab336 100644 --- a/src/com/aicp/device/RefreshRateSwitch.java +++ b/src/com/aicp/device/RefreshRateSwitch.java @@ -28,30 +28,34 @@ public class RefreshRateSwitch implements OnPreferenceChangeListener { public static final String SETTINGS_KEY = DeviceSettings.KEY_SETTINGS_PREFIX + DeviceSettings.KEY_REFRESH_RATE; private Context mContext; + protected static float mBaseRefresh; + protected static float mPeakRefresh; public RefreshRateSwitch(Context context) { mContext = context; + mBaseRefresh = (float) context.getResources().getInteger(R.integer.BaseRefresh); + mPeakRefresh = (float) context.getResources().getInteger(R.integer.PeakRefresh); } public static boolean isCurrentlyEnabled(Context context) { return Settings.System.getFloat(context.getContentResolver(), - Settings.System.PEAK_REFRESH_RATE, 90f) == 90f; + Settings.System.PEAK_REFRESH_RATE, mPeakRefresh) == mPeakRefresh; } public static void setPeakRefresh (Context context, boolean enabled) { Settings.System.putFloat(context.getContentResolver(), - Settings.System.PEAK_REFRESH_RATE, enabled ? 90f : 60f); + Settings.System.PEAK_REFRESH_RATE, enabled ? mPeakRefresh : mBaseRefresh); Settings.System.putFloat(context.getContentResolver(), - Settings.System.MIN_REFRESH_RATE, enabled ? 90f : 60f); + Settings.System.MIN_REFRESH_RATE, enabled ? mPeakRefresh : mBaseRefresh); } @Override public boolean onPreferenceChange(Preference preference, Object newValue) { Boolean enabled = (Boolean) newValue; Settings.System.putFloat(mContext.getContentResolver(), - Settings.System.PEAK_REFRESH_RATE, enabled ? 90f : 60f); + Settings.System.PEAK_REFRESH_RATE, enabled ? mPeakRefresh : mBaseRefresh); Settings.System.putFloat(mContext.getContentResolver(), - Settings.System.MIN_REFRESH_RATE, enabled ? 90f : 60f); + Settings.System.MIN_REFRESH_RATE, enabled ? mPeakRefresh : mBaseRefresh); return true; } } diff --git a/src/com/aicp/device/RefreshRateTileService.java b/src/com/aicp/device/RefreshRateTileService.java index c4d4a9e..e407340 100644 --- a/src/com/aicp/device/RefreshRateTileService.java +++ b/src/com/aicp/device/RefreshRateTileService.java @@ -31,6 +31,8 @@ import androidx.preference.PreferenceManager; public class RefreshRateTileService extends TileService { private boolean enabled = false; private boolean autoRefreshEnabled; + protected static float mBaseRefresh; + protected static float mPeakRefresh; @Override public void onDestroy() { @@ -50,6 +52,8 @@ public class RefreshRateTileService extends TileService { @Override public void onStartListening() { super.onStartListening(); + mBaseRefresh = (float) this.getResources().getInteger(R.integer.BaseRefresh); + mPeakRefresh = (float) this.getResources().getInteger(R.integer.PeakRefresh); autoRefreshEnabled = Settings.System.getInt(this.getContentResolver(), AutoRefreshRateSwitch.SETTINGS_KEY, 1) == 1; if (autoRefreshEnabled) { @@ -59,7 +63,7 @@ public class RefreshRateTileService extends TileService { RefreshRateSwitch.setPeakRefresh(this, enabled); getQsTile().setIcon(Icon.createWithResource(this, - enabled ? R.drawable.ic_refresh_tile_90 : R.drawable.ic_refresh_tile_60)); + enabled ? R.drawable.ic_refresh_tile_peak : R.drawable.ic_refresh_tile_base)); getQsTile().setState(enabled ? Tile.STATE_ACTIVE : Tile.STATE_INACTIVE); } getQsTile().updateTile(); @@ -79,11 +83,11 @@ public class RefreshRateTileService extends TileService { RefreshRateSwitch.setPeakRefresh(this, enabled); sharedPrefs.edit().putBoolean(DeviceSettings.KEY_REFRESH_RATE, enabled ? false : true).commit(); Settings.System.putFloat(this.getContentResolver(), - Settings.System.PEAK_REFRESH_RATE, enabled ? 60f : 90f); + Settings.System.PEAK_REFRESH_RATE, enabled ? mBaseRefresh : mPeakRefresh); Settings.System.putFloat(this.getContentResolver(), - Settings.System.MIN_REFRESH_RATE, enabled ? 60f : 90f); + Settings.System.MIN_REFRESH_RATE, enabled ? mBaseRefresh : mPeakRefresh); getQsTile().setIcon(Icon.createWithResource(this, - enabled ? R.drawable.ic_refresh_tile_60 : R.drawable.ic_refresh_tile_90)); + enabled ? R.drawable.ic_refresh_tile_base : R.drawable.ic_refresh_tile_peak)); getQsTile().setState(enabled ? Tile.STATE_INACTIVE : Tile.STATE_ACTIVE); getQsTile().updateTile(); } |
