Restore original preference background after highlight animation (fixes #5094)

(cherry picked from commit ab021c1302dddedac8bfda5beb2402d7eb74ed0a)
This commit is contained in:
arkon 2021-05-17 17:32:10 -04:00 committed by Jobobby04
parent 7d49479783
commit 584f7b516f

View File

@ -11,6 +11,7 @@ import android.view.View
import android.view.ViewGroup
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.view.ContextThemeWrapper
import androidx.core.animation.doOnEnd
import androidx.core.view.updatePadding
import androidx.preference.PreferenceController
import androidx.preference.PreferenceGroup
@ -98,6 +99,7 @@ abstract class SettingsController : PreferenceController() {
abstract fun setupPreferenceScreen(screen: PreferenceScreen): PreferenceScreen
private fun animatePreferenceHighlight(view: View) {
val origBackground = view.background
ValueAnimator
.ofObject(ArgbEvaluator(), Color.TRANSPARENT, view.context.getResourceColor(R.attr.rippleColor))
.apply {
@ -106,6 +108,10 @@ abstract class SettingsController : PreferenceController() {
addUpdateListener { animator -> view.setBackgroundColor(animator.animatedValue as Int) }
reverse()
}
.doOnEnd {
// Restore original ripple
view.background = origBackground
}
}
open fun getTitle(): String? {