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 68cd5c5040..c88dc50449 100644 --- a/app/src/main/java/com/mogo/launcher/lancet/ViewPressedStateLancet.java +++ b/app/src/main/java/com/mogo/launcher/lancet/ViewPressedStateLancet.java @@ -214,6 +214,41 @@ public class ViewPressedStateLancet { } } + @TargetClass(value = "android.view.View", scope = Scope.ALL) + @TargetMethod(methodName = "setBackgroundResource") + @ReplaceInvoke + public static void setBackgroundResource(View view, int resId) { + if (view == null) { + return; + } + if (!view.isLongClickable() && !view.isClickable()) { + view.setBackgroundResource(resId); + return; + } + float alpha = getAlpha(view); + if (alpha >= 0) { + Drawable drawable = null; + try { + drawable = ContextCompat.getDrawable(view.getContext(), resId); + } catch (Throwable ignore) {} + 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.setBackgroundResource(resId); + } + } + + @TargetClass(value = "android.widget.ImageView", scope = Scope.ALL) @TargetMethod(methodName = "setImageDrawable") @ReplaceInvoke