diff --git a/res/values/evolution_arrays.xml b/res/values/evolution_arrays.xml index 151fb4d..b0dd560 100644 --- a/res/values/evolution_arrays.xml +++ b/res/values/evolution_arrays.xml @@ -679,4 +679,39 @@ 1 2 + + + + @string/quick_settings_tile_animation_style_off + @string/quick_settings_tile_animation_style_rotate + @string/quick_settings_tile_animation_style_flip + + + + 0 + 1 + 2 + + + + @string/quick_settings_tile_animation_interpolator_linear + @string/quick_settings_tile_animation_interpolator_accelerate + @string/quick_settings_tile_animation_interpolator_decelerate + @string/quick_settings_tile_animation_interpolator_accelerateDecelerate + @string/quick_settings_tile_animation_interpolator_bounce + @string/quick_settings_tile_animation_interpolator_overshoot + @string/quick_settings_tile_animation_interpolator_anticipate + @string/quick_settings_tile_animation_interpolator_anticipateOvershoot + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + diff --git a/res/values/evolution_strings.xml b/res/values/evolution_strings.xml index e817d6e..e6d8e46 100644 --- a/res/values/evolution_strings.xml +++ b/res/values/evolution_strings.xml @@ -370,6 +370,21 @@ Show icon toggle for adaptive brightness next to the slider Haptic feedback Provide haptic feedback on changing brightness using slider + Animations + Tiles animation style + Animation duration + Animation interpolator + No animation + Flip + Rotate + Linear + Accelerate + Decelerate + Accelerate decelerate + Bounce + Overshoot + Anticipate + Anticipate overshoot Lock screen Hide on secure lock screen Hide all quick settings in the notification shade while the device is locked diff --git a/res/xml/evolution_settings_quick_settings.xml b/res/xml/evolution_settings_quick_settings.xml index a905806..da1f4ae 100644 --- a/res/xml/evolution_settings_quick_settings.xml +++ b/res/xml/evolution_settings_quick_settings.xml @@ -111,6 +111,37 @@ android:fragment="org.evolution.settings.fragments.quicksettings.LayoutSettings" /> + + + + + + + + + + + + diff --git a/src/org/evolution/settings/fragments/quicksettings/QuickSettings.java b/src/org/evolution/settings/fragments/quicksettings/QuickSettings.java index 9f8ed56..d427f27 100644 --- a/src/org/evolution/settings/fragments/quicksettings/QuickSettings.java +++ b/src/org/evolution/settings/fragments/quicksettings/QuickSettings.java @@ -33,6 +33,7 @@ import lineageos.preference.LineageSecureSettingSwitchPreference; import lineageos.providers.LineageSettings; import org.evolution.settings.preferences.SystemSettingListPreference; +import org.evolution.settings.preferences.SystemSettingSeekBarPreference; import org.evolution.settings.preferences.SystemSettingSwitchPreference; import org.evolution.settings.utils.DeviceUtils; @@ -53,6 +54,9 @@ public class QuickSettings extends SettingsPreferenceFragment implements private static final String KEY_QS_UI_STYLE = "qs_tile_ui_style"; private static final String KEY_SHOW_BRIGHTNESS_SLIDER = "qs_show_brightness_slider"; private static final String KEY_SHOW_AUTO_BRIGHTNESS = "qs_show_auto_brightness"; + private static final String KEY_TILE_ANIM_STYLE = "qs_tile_animation_style"; + private static final String KEY_TILE_ANIM_DURATION = "qs_tile_animation_duration"; + private static final String KEY_TILE_ANIM_INTERPOLATOR = "qs_tile_animation_interpolator"; private static final int BATTERY_STYLE_PORTRAIT = 0; private static final int BATTERY_STYLE_TEXT = 4; @@ -67,6 +71,9 @@ public class QuickSettings extends SettingsPreferenceFragment implements private LineageSecureSettingSwitchPreference mShowAutoBrightness; private SystemSettingListPreference mBatteryStyle; private SystemSettingListPreference mBatteryPercent; + private SystemSettingListPreference mTileAnimationInterpolator; + private SystemSettingListPreference mTileAnimationStyle; + private SystemSettingSeekBarPreference mTileAnimationDuration; private SystemSettingSwitchPreference mBrightnessSliderHaptic; private static ThemeUtils mThemeUtils; @@ -114,6 +121,15 @@ public class QuickSettings extends SettingsPreferenceFragment implements prefScreen.removePreference(mShowAutoBrightness); } + mTileAnimationStyle = (SystemSettingListPreference) findPreference(KEY_TILE_ANIM_STYLE); + mTileAnimationDuration = (SystemSettingSeekBarPreference) findPreference(KEY_TILE_ANIM_DURATION); + mTileAnimationInterpolator = (SystemSettingListPreference) findPreference(KEY_TILE_ANIM_INTERPOLATOR); + mTileAnimationStyle.setOnPreferenceChangeListener(this); + + int tileAnimationStyle = Settings.System.getIntForUser(getContentResolver(), + Settings.System.QS_TILE_ANIMATION_STYLE, 0, UserHandle.USER_CURRENT); + updateTileAnimStyle(tileAnimationStyle); + mMiscellaneousCategory = (PreferenceCategory) findPreference(KEY_MISCELLANEOUS_CATEGORY); if (!DeviceUtils.deviceSupportsBluetooth(mContext)) { @@ -159,10 +175,19 @@ public class QuickSettings extends SettingsPreferenceFragment implements updateQsPanelStyle(getContext()); checkQSOverlays(getContext()); return true; + } else if (preference == mTileAnimationStyle) { + int value = Integer.parseInt((String) newValue); + updateTileAnimStyle(value); + return true; } return false; } + private void updateTileAnimStyle(int tileAnimationStyle) { + mTileAnimationDuration.setEnabled(tileAnimationStyle != 0); + mTileAnimationInterpolator.setEnabled(tileAnimationStyle != 0); + } + private static void updateQsStyle(Context context) { ContentResolver resolver = context.getContentResolver();