From a969df9d3877aedcbfc0c5cdedc4b93b9b78048d Mon Sep 17 00:00:00 2001 From: Erwan Finot Date: Thu, 5 Aug 2021 18:18:36 +0200 Subject: [PATCH] Add option to disable wallpaper scrolling (#2197) Signed-off-by: Till Kottmann Co-authored-by: Till Kottmann --- lawnchair/res/values/strings.xml | 1 + .../src/app/lawnchair/preferences/PreferenceManager.kt | 1 + .../lawnchair/ui/preferences/HomeScreenPreferences.kt | 4 ++++ .../launcher3/util/WallpaperOffsetInterpolator.java | 9 +++++++-- 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/lawnchair/res/values/strings.xml b/lawnchair/res/values/strings.xml index ad46bb48e2..a57eb0a190 100644 --- a/lawnchair/res/values/strings.xml +++ b/lawnchair/res/values/strings.xml @@ -108,5 +108,6 @@ Custom Custom Color Clear All Button, Corner Radius + Wallpaper scrolling Show Top Shadow diff --git a/lawnchair/src/app/lawnchair/preferences/PreferenceManager.kt b/lawnchair/src/app/lawnchair/preferences/PreferenceManager.kt index 2884831922..d444141873 100644 --- a/lawnchair/src/app/lawnchair/preferences/PreferenceManager.kt +++ b/lawnchair/src/app/lawnchair/preferences/PreferenceManager.kt @@ -88,6 +88,7 @@ class PreferenceManager private constructor(private val context: Context) : Base val autoLaunchRoot = BoolPref("pref_autoLaunchRoot", false) val useSystemAccent = BoolPref("pref_useSystemAccent", Utilities.ATLEAST_S, recreate) val accentColor = IntPref("pref_accentColor", LAWNCHAIR_BLUE.toInt(), recreate) + val wallpaperScrolling = BoolPref("pref_wallpaperScrolling", true) val showSysUiScrim = BoolPref("pref_showSysUiScrim", true) init { diff --git a/lawnchair/src/app/lawnchair/ui/preferences/HomeScreenPreferences.kt b/lawnchair/src/app/lawnchair/ui/preferences/HomeScreenPreferences.kt index f8155a164c..4970e48f50 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/HomeScreenPreferences.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/HomeScreenPreferences.kt @@ -58,6 +58,10 @@ fun HomeScreenPreferences() { prefs.smartSpaceEnable.getAdapter(), label = stringResource(id = R.string.smart_space_enable), ) + SwitchPreference( + prefs.wallpaperScrolling.getAdapter(), + label = stringResource(id = R.string.wallpaper_scrolling_label), + ) SwitchPreference( prefs.workspaceDt2s.getAdapter(), label = stringResource(id = R.string.workspace_dt2s), diff --git a/src/com/android/launcher3/util/WallpaperOffsetInterpolator.java b/src/com/android/launcher3/util/WallpaperOffsetInterpolator.java index 2ad80cf665..665365fecf 100644 --- a/src/com/android/launcher3/util/WallpaperOffsetInterpolator.java +++ b/src/com/android/launcher3/util/WallpaperOffsetInterpolator.java @@ -14,6 +14,8 @@ import android.os.SystemClock; import android.util.Log; import android.view.animation.Interpolator; +import app.lawnchair.preferences.PreferenceManager; + import com.android.launcher3.Utilities; import com.android.launcher3.Workspace; import com.android.launcher3.anim.Interpolators; @@ -41,10 +43,13 @@ public class WallpaperOffsetInterpolator extends BroadcastReceiver { private boolean mLockedToDefaultPage; private int mNumScreens; + private PreferenceManager prefs; + public WallpaperOffsetInterpolator(Workspace workspace) { mWorkspace = workspace; mIsRtl = Utilities.isRtl(workspace.getResources()); mHandler = new OffsetHandler(workspace.getContext()); + prefs = PreferenceManager.getInstance(workspace.getContext()); } /** @@ -68,7 +73,7 @@ public class WallpaperOffsetInterpolator extends BroadcastReceiver { // To match the default wallpaper behavior in the system, we default to either the left // or right edge on initialization - if (mLockedToDefaultPage || numScrollingPages <= 1) { + if (!prefs.getWallpaperScrolling().get() || mLockedToDefaultPage || numScrollingPages <= 1) { out[0] = mIsRtl ? 1 : 0; return; } @@ -273,4 +278,4 @@ public class WallpaperOffsetInterpolator extends BroadcastReceiver { } } } -} \ No newline at end of file +}