diff --git a/lawnchair/res/values/config.xml b/lawnchair/res/values/config.xml
index 992164ce52..92871b975c 100644
--- a/lawnchair/res/values/config.xml
+++ b/lawnchair/res/values/config.xml
@@ -23,6 +23,8 @@
app.lawnchair.LawnchairProcessInitializer
app.lawnchair.overview.TaskOverlayFactoryImpl
+ true
+
- com.google.android.googlequicksearchbox/.VoiceSearchActivity
diff --git a/lawnchair/src/app/lawnchair/allapps/AllAppsSearchInput.kt b/lawnchair/src/app/lawnchair/allapps/AllAppsSearchInput.kt
index b04a8d9cc5..8ec9936818 100644
--- a/lawnchair/src/app/lawnchair/allapps/AllAppsSearchInput.kt
+++ b/lawnchair/src/app/lawnchair/allapps/AllAppsSearchInput.kt
@@ -228,4 +228,12 @@ class AllAppsSearchInput(context: Context, attrs: AttributeSet?) : LinearLayout(
}
override fun getEditText() = input
+
+ override fun setBackgroundVisibility(visible: Boolean, maxAlpha: Float) {
+ input.setBackgroundVisibility(visible, maxAlpha)
+ }
+
+ override fun getBackgroundVisibility(): Boolean {
+ return input.getBackgroundVisibility()
+ }
}
diff --git a/lawnchair/src/app/lawnchair/allapps/FallbackSearchInputView.kt b/lawnchair/src/app/lawnchair/allapps/FallbackSearchInputView.kt
index 03a815cb4f..dcf4d208d9 100644
--- a/lawnchair/src/app/lawnchair/allapps/FallbackSearchInputView.kt
+++ b/lawnchair/src/app/lawnchair/allapps/FallbackSearchInputView.kt
@@ -1,5 +1,6 @@
package app.lawnchair.allapps
+import android.animation.ValueAnimator
import android.annotation.SuppressLint
import android.content.Context
import android.graphics.Rect
@@ -11,19 +12,16 @@ import app.lawnchair.theme.drawable.DrawableTokens
import app.lawnchair.util.EditTextExtensions.setCursorColor
import app.lawnchair.util.EditTextExtensions.setTextSelectHandleColor
import com.android.launcher3.ExtendedEditText
+import com.android.launcher3.Utilities
import com.android.launcher3.allapps.AllAppsContainerView
class FallbackSearchInputView(context: Context, attrs: AttributeSet?) : ExtendedEditText(context, attrs) {
private var appsView: AllAppsContainerView? = null
- private var shown = true
- set(value) {
- if (field != value) {
- field = value
- updateBackground()
- }
- }
private val bg = DrawableTokens.SearchInputFg.resolve(context)
+ private val bgAlphaAnimator = ValueAnimator.ofFloat(0f, 1f).apply { duration = 300 }
+ private var bgVisible = true
+ private var bgAlpha = 1f
init {
background = bg
@@ -32,27 +30,24 @@ class FallbackSearchInputView(context: Context, attrs: AttributeSet?) : Extended
setCursorColor(accentColor)
setTextSelectHandleColor(accentColor)
highlightColor = ColorUtils.setAlphaComponent(accentColor, 82)
+
+ bgAlphaAnimator.addUpdateListener { updateBgAlpha() }
+ }
+
+ private fun updateBgAlpha() {
+ val fraction = bgAlphaAnimator.animatedFraction
+ bg.alpha = (Utilities.mapRange(fraction, 0f, bgAlpha) * 255).toInt()
}
fun initialize(appsView: AllAppsContainerView) {
this.appsView = appsView
}
- private fun updateBackground() {
- val showBackground = shown && !isFocused
- background = if (showBackground) bg else null
- }
-
override fun hideKeyboard() {
super.hideKeyboard()
this.appsView?.requestFocus()
}
- override fun onFocusChanged(focused: Boolean, direction: Int, previouslyFocusedRect: Rect?) {
- super.onFocusChanged(focused, direction, previouslyFocusedRect)
- updateBackground()
- }
-
override fun onAttachedToWindow() {
super.onAttachedToWindow()
if (layoutDirection == LAYOUT_DIRECTION_RTL) {
@@ -60,4 +55,24 @@ class FallbackSearchInputView(context: Context, attrs: AttributeSet?) : Extended
gravity = Gravity.RIGHT or Gravity.CENTER
}
}
+
+ fun setBackgroundVisibility(visible: Boolean, maxAlpha: Float) {
+ if (bgVisible != visible) {
+ bgVisible = visible
+ bgAlpha = maxAlpha
+ if (visible) {
+ bgAlphaAnimator.start()
+ } else {
+ bgAlphaAnimator.reverse()
+ }
+ } else if (bgAlpha != maxAlpha && !bgAlphaAnimator.isRunning && visible) {
+ bgAlpha = maxAlpha
+ bgAlphaAnimator.setCurrentFraction(maxAlpha)
+ updateBgAlpha()
+ }
+ }
+
+ fun getBackgroundVisibility(): Boolean {
+ return bgVisible
+ }
}