From 19c0a4e74d82020f1fdfccd90a64351ddca6c4ed Mon Sep 17 00:00:00 2001 From: renwj Date: Mon, 25 Dec 2023 19:29:45 +0800 Subject: [PATCH] =?UTF-8?q?[6.2.6][View=E7=82=B9=E5=87=BB=E6=80=81]=20?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E8=83=8C=E6=99=AF=E5=A2=9E=E5=8A=A0=E5=BA=9F?= =?UTF-8?q?=E5=BC=83=E5=85=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lancet/ViewPressedStateLancet.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/app/src/main/java/com/mogo/launcher/lancet/ViewPressedStateLancet.java b/app/src/main/java/com/mogo/launcher/lancet/ViewPressedStateLancet.java index a69d72ae8f..28787e7f64 100644 --- a/app/src/main/java/com/mogo/launcher/lancet/ViewPressedStateLancet.java +++ b/app/src/main/java/com/mogo/launcher/lancet/ViewPressedStateLancet.java @@ -153,6 +153,36 @@ public class ViewPressedStateLancet { view.setOnLongClickListener(listener); } + @TargetClass(value = "android.view.View", scope = Scope.ALL) + @TargetMethod(methodName = "setBackgroundDrawable") + @ReplaceInvoke + public static void setBackgroundDrawable(View view, Drawable drawable) { + if (view == null) { + return; + } + if (!view.isLongClickable() && !view.isClickable()) { + view.setBackground(drawable); + return; + } + float alpha = getAlpha(view); + if (alpha >= 0) { + Drawable replaced = checkAndReplaceDrawable(drawable, alpha); + if (replaced != null) { + view.setTag(R.id.click_pressed_attr_replaced, drawable); + int paddingLeft = view.getPaddingLeft(); + int paddingRight = view.getPaddingRight(); + int paddingTop = view.getPaddingTop(); + int paddingBottom = view.getPaddingBottom(); + view.setBackground(replaced); + view.setPadding(paddingLeft, paddingTop, paddingRight, paddingBottom); + } else { + view.setBackground(drawable); + } + } else { + view.setBackground(drawable); + } + } + @TargetClass(value = "android.view.View", scope = Scope.ALL) @TargetMethod(methodName = "setBackground")