From c2c97f1edec9dad338e293dfaafd3fd70150e8b9 Mon Sep 17 00:00:00 2001 From: Suphon Thanakornpakapong Date: Sun, 5 Sep 2021 23:11:52 +0700 Subject: [PATCH] Move drawer opacity code to lawnchair sourceset --- .../preferences/PreferenceManager.kt | 5 +--- .../app/lawnchair/views/LawnchairScrimView.kt | 24 ++++++++++++++++ quickstep/res/layout/scrim_view.xml | 2 +- .../quickstep/views/ShelfScrimView.java | 28 ++----------------- .../android/launcher3/views/ScrimView.java | 9 ------ 5 files changed, 28 insertions(+), 40 deletions(-) create mode 100644 lawnchair/src/app/lawnchair/views/LawnchairScrimView.kt diff --git a/lawnchair/src/app/lawnchair/preferences/PreferenceManager.kt b/lawnchair/src/app/lawnchair/preferences/PreferenceManager.kt index a3aceb5f43..356abf639e 100644 --- a/lawnchair/src/app/lawnchair/preferences/PreferenceManager.kt +++ b/lawnchair/src/app/lawnchair/preferences/PreferenceManager.kt @@ -75,10 +75,7 @@ class PreferenceManager private constructor(private val context: Context) : Base // TODO: Add the ability to manually delete empty pages. val allowEmptyPages = BoolPref("pref_allowEmptyPages", false) - val drawerOpacity = FloatPref("pref_drawerOpacity", 1F) { - LawnchairLauncher.instance?.scrimView?.refreshScrimAlpha() - reloadGrid() - } + val drawerOpacity = FloatPref("pref_drawerOpacity", 1F, reloadGrid) val coloredBackgroundLightness = FloatPref("pref_coloredBackgroundLightness", 0.9F, reloadIcons) val feedProvider = StringPref("pref_feedProvider", "") val ignoreFeedWhitelist = BoolPref("pref_ignoreFeedWhitelist", false) diff --git a/lawnchair/src/app/lawnchair/views/LawnchairScrimView.kt b/lawnchair/src/app/lawnchair/views/LawnchairScrimView.kt new file mode 100644 index 0000000000..21c7caccd8 --- /dev/null +++ b/lawnchair/src/app/lawnchair/views/LawnchairScrimView.kt @@ -0,0 +1,24 @@ +package app.lawnchair.views + +import android.content.Context +import android.util.AttributeSet +import androidx.core.graphics.ColorUtils +import app.lawnchair.preferences.PreferenceManager +import com.android.launcher3.R +import com.android.launcher3.util.Themes +import com.android.quickstep.views.ShelfScrimView + +class LawnchairScrimView(context: Context, attrs: AttributeSet?) : ShelfScrimView(context, attrs) { + + init { + val prefs = PreferenceManager.getInstance(context) + prefs.drawerOpacity.subscribeValues(this) { opacity -> + mEndAlpha = (opacity * 255).toInt() + mIsScrimDark = if (opacity <= 0.3f) { + !Themes.getAttrBoolean(getContext(), R.attr.isWorkspaceDarkText) + } else { + ColorUtils.calculateLuminance(mEndScrim) < 0.5f + } + } + } +} diff --git a/quickstep/res/layout/scrim_view.xml b/quickstep/res/layout/scrim_view.xml index 2cc37f9cc4..6c55be7f16 100644 --- a/quickstep/res/layout/scrim_view.xml +++ b/quickstep/res/layout/scrim_view.xml @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. --> - private boolean mDrawingFlatColor; // For shelf mode - private int mEndAlpha; + protected int mEndAlpha; private final float mRadius; private final int mMaxScrimAlpha; private final Paint mPaint; @@ -115,14 +109,13 @@ public class ShelfScrimView extends ScrimView super(context, attrs); mMaxScrimAlpha = Math.round(OVERVIEW.getOverviewScrimAlpha(mLauncher) * 255); + mEndAlpha = Color.alpha(mEndScrim); mRadius = BOTTOM_CORNER_RADIUS_RATIO * Themes.getDialogCornerRadius(context); mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); mOnboardingPrefs = mLauncher.getOnboardingPrefs(); // Just assume the easiest UI for now, until we have the proper layout information. mDrawingFlatColor = true; - - refreshScrimAlpha(); } @Override @@ -323,21 +316,4 @@ public class ShelfScrimView extends ScrimView public float getVisualTop() { return mShelfTop; } - - @Override - public void refreshScrimAlpha() { - PreferenceManager prefs = PreferenceManager.getInstance(getContext()); - float opacity = prefs.getDrawerOpacity().get(); - mEndAlpha = (int) (opacity * 255); - if (opacity <= 0.3f) { - mIsScrimDark = !Themes.getAttrBoolean(getContext(), R.attr.isWorkspaceDarkText); - } else { - mIsScrimDark = ColorUtils.calculateLuminance(mEndScrim) < 0.5f; - } - } - - @Override - public int getScrimAlpha() { - return mEndAlpha; - } } diff --git a/src/com/android/launcher3/views/ScrimView.java b/src/com/android/launcher3/views/ScrimView.java index f3233a7a75..2a97fef0d2 100644 --- a/src/com/android/launcher3/views/ScrimView.java +++ b/src/com/android/launcher3/views/ScrimView.java @@ -544,13 +544,4 @@ public class ScrimView extends View implements Insettable, O public float getVisualTop() { return Float.MAX_VALUE; } - - public void refreshScrimAlpha() { - // Override in inheriting classes - } - - public int getScrimAlpha() { - // Override in inheriting classes - return 255; - } }