From edc5c080f6571cf348f65cfd72b8545ba738f45e Mon Sep 17 00:00:00 2001 From: Suphon Thanakornpakapong Date: Mon, 23 May 2022 00:20:21 +0700 Subject: [PATCH] Disable live tile if recents has blur --- .../src/app/lawnchair/config/DynamicFlag.kt | 22 +++++++++++++++++++ .../launcher3/config/FeatureFlags.java | 10 +++++++-- 2 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 lawnchair/src/app/lawnchair/config/DynamicFlag.kt diff --git a/lawnchair/src/app/lawnchair/config/DynamicFlag.kt b/lawnchair/src/app/lawnchair/config/DynamicFlag.kt new file mode 100644 index 0000000000..b01876bf8d --- /dev/null +++ b/lawnchair/src/app/lawnchair/config/DynamicFlag.kt @@ -0,0 +1,22 @@ +package app.lawnchair.config + +import android.content.Context +import android.util.Log +import app.lawnchair.LawnchairApp +import com.android.launcher3.config.FeatureFlags.BooleanFlag + +class DynamicFlag( + key: String, + private val getValue: (Context?) -> Boolean, + defaultValue: Boolean +) : BooleanFlag(key, defaultValue) { + + override fun get(): Boolean { + return try { + getValue(LawnchairApp.instance) + } catch (t: Throwable) { + Log.d("DynamicFlag", "failed to get value for $key", t) + super.get() + } + } +} diff --git a/src/com/android/launcher3/config/FeatureFlags.java b/src/com/android/launcher3/config/FeatureFlags.java index 89f08a0a03..58b02291e7 100644 --- a/src/com/android/launcher3/config/FeatureFlags.java +++ b/src/com/android/launcher3/config/FeatureFlags.java @@ -21,12 +21,14 @@ import android.content.Context; import com.android.launcher3.BuildConfig; import com.android.launcher3.Utilities; import com.android.launcher3.uioverrides.DeviceFlag; +import com.android.systemui.shared.system.BlurUtils; import com.patrykmichalik.preferencemanager.PreferenceExtensionsKt; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; +import app.lawnchair.config.DynamicFlag; import app.lawnchair.preferences.PreferenceManager; import app.lawnchair.preferences2.PreferenceManager2; @@ -89,8 +91,12 @@ public final class FeatureFlags { public static final BooleanFlag ADAPTIVE_ICON_WINDOW_ANIM = getDebugFlag( "ADAPTIVE_ICON_WINDOW_ANIM", true, "Use adaptive icons for window animations."); - public static final BooleanFlag ENABLE_QUICKSTEP_LIVE_TILE = getDebugFlag( - "ENABLE_QUICKSTEP_LIVE_TILE", Utilities.ATLEAST_S, "Enable live tile in Quickstep overview"); + public static final BooleanFlag ENABLE_QUICKSTEP_LIVE_TILE = new DynamicFlag("ENABLE_QUICKSTEP_LIVE_TILE", context -> { + if (!Utilities.ATLEAST_S) return false; + if (!BlurUtils.supportsBlursOnWindows()) return true; + if (context == null) return true; + return !PreferenceManager.getInstance(context).getRecentsTranslucentBackground().get(); + }, Utilities.ATLEAST_S); public static final BooleanFlag ENABLE_QUICKSTEP_WIDGET_APP_START = getDebugFlag( "ENABLE_QUICKSTEP_WIDGET_APP_START", Utilities.ATLEAST_S,