Evolver: Add animations to quick settings tiles [2/2]

Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: AnierinB <anierin@evolution-x.org>
This commit is contained in:
Pranav Vashi
2024-05-21 16:11:44 +09:00
committed by Joey Huab
parent 3246d43d03
commit 14340bea72
4 changed files with 106 additions and 0 deletions

View File

@@ -679,4 +679,39 @@
<item>1</item>
<item>2</item>
</string-array>
<!-- Quick settings - Tiles animation -->
<string-array name="quick_settings_tile_animation_style_entries" translatable="false">
<item>@string/quick_settings_tile_animation_style_off</item>
<item>@string/quick_settings_tile_animation_style_rotate</item>
<item>@string/quick_settings_tile_animation_style_flip</item>
</string-array>
<string-array name="quick_settings_tile_animation_style_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
<string-array name="quick_settings_tile_animation_interpolator_entries" translatable="false">
<item>@string/quick_settings_tile_animation_interpolator_linear</item>
<item>@string/quick_settings_tile_animation_interpolator_accelerate</item>
<item>@string/quick_settings_tile_animation_interpolator_decelerate</item>
<item>@string/quick_settings_tile_animation_interpolator_accelerateDecelerate</item>
<item>@string/quick_settings_tile_animation_interpolator_bounce</item>
<item>@string/quick_settings_tile_animation_interpolator_overshoot</item>
<item>@string/quick_settings_tile_animation_interpolator_anticipate</item>
<item>@string/quick_settings_tile_animation_interpolator_anticipateOvershoot</item>
</string-array>
<string-array name="quick_settings_tile_animation_interpolator_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
<item>6</item>
<item>7</item>
</string-array>
</resources>

View File

@@ -370,6 +370,21 @@
<string name="quick_settings_auto_brightness_icon_summary">Show icon toggle for adaptive brightness next to the slider</string>
<string name="quick_settings_brightness_slider_haptic_title">Haptic feedback</string>
<string name="quick_settings_brightness_slider_haptic_summary">Provide haptic feedback on changing brightness using slider</string>
<string name="quick_settings_animations_category">Animations</string>
<string name="quick_settings_tile_animation_style_title">Tiles animation style</string>
<string name="quick_settings_tile_animation_duration_title">Animation duration</string>
<string name="quick_settings_tile_animation_interpolator_title">Animation interpolator</string>
<string name="quick_settings_tile_animation_style_off">No animation</string>
<string name="quick_settings_tile_animation_style_flip">Flip</string>
<string name="quick_settings_tile_animation_style_rotate">Rotate</string>
<string name="quick_settings_tile_animation_interpolator_linear">Linear</string>
<string name="quick_settings_tile_animation_interpolator_accelerate">Accelerate</string>
<string name="quick_settings_tile_animation_interpolator_decelerate">Decelerate</string>
<string name="quick_settings_tile_animation_interpolator_accelerateDecelerate">Accelerate decelerate</string>
<string name="quick_settings_tile_animation_interpolator_bounce">Bounce</string>
<string name="quick_settings_tile_animation_interpolator_overshoot">Overshoot</string>
<string name="quick_settings_tile_animation_interpolator_anticipate">Anticipate</string>
<string name="quick_settings_tile_animation_interpolator_anticipateOvershoot">Anticipate overshoot</string>
<string name="quick_settings_lock_screen_category">Lock screen</string>
<string name="quick_settings_secure_lock_screen_title">Hide on secure lock screen</string>
<string name="quick_settings_secure_lock_screen_summary">Hide all quick settings in the notification shade while the device is locked</string>

View File

@@ -111,6 +111,37 @@
android:fragment="org.evolution.settings.fragments.quicksettings.LayoutSettings" />
</PreferenceCategory>
<PreferenceCategory
android:key="quick_settings_animations_category"
android:title="@string/quick_settings_animations_category">
<!-- Tiles animation style -->
<org.evolution.settings.preferences.SystemSettingListPreference
android:key="qs_tile_animation_style"
android:title="@string/quick_settings_tile_animation_style_title"
android:entries="@array/quick_settings_tile_animation_style_entries"
android:entryValues="@array/quick_settings_tile_animation_style_values"
android:defaultValue="0" />
<!-- Animation duration -->
<org.evolution.settings.preferences.SystemSettingSeekBarPreference
android:key="qs_tile_animation_duration"
android:title="@string/quick_settings_tile_animation_duration_title"
android:defaultValue="1"
settings:interval="1"
settings:units="@string/unit_seconds"
android:max="5"
android:min="1" />
<!-- Animation interpolator -->
<org.evolution.settings.preferences.SystemSettingListPreference
android:key="qs_tile_animation_interpolator"
android:title="@string/quick_settings_tile_animation_interpolator_title"
android:entries="@array/quick_settings_tile_animation_interpolator_entries"
android:entryValues="@array/quick_settings_tile_animation_interpolator_values"
android:defaultValue="0" />
</PreferenceCategory>
<PreferenceCategory
android:key="quick_settings_lock_screen_category"
android:title="@string/quick_settings_lock_screen_category">

View File

@@ -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();