From 3e395dd003c2119a9599a72b4df19a621de9993c Mon Sep 17 00:00:00 2001 From: renwj Date: Fri, 8 Mar 2024 16:46:45 +0800 Subject: [PATCH] =?UTF-8?q?[6.3.0][View=E7=82=B9=E5=87=BB=E6=80=81]=20?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E7=94=B1=E4=BA=8E=E5=A4=96=E9=83=A8=E8=BE=93?= =?UTF-8?q?=E5=85=A5=E8=AE=BE=E5=A4=87(=E8=98=91=E6=96=B9)=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E5=90=8E=EF=BC=8C=E7=95=8C=E9=9D=A2=E9=83=A8=E5=88=86?= =?UTF-8?q?=E6=8E=A7=E4=BB=B6=E5=B1=95=E7=A4=BA=E9=98=B4=E5=BD=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../taxi_operation_status_bg_selector.xml | 5 +---- .../res/drawable/bad_case_selector_och.xml | 5 +---- .../taxi_operation_status_bg_selector.xml | 5 +---- .../lancet/ViewPressedStateLancet.java | 20 +++++++++++++++---- 4 files changed, 19 insertions(+), 16 deletions(-) diff --git a/OCH/taxi/driver/src/main/res/drawable/taxi_operation_status_bg_selector.xml b/OCH/taxi/driver/src/main/res/drawable/taxi_operation_status_bg_selector.xml index 15d6e4cec9..59e4fdbb8b 100755 --- a/OCH/taxi/driver/src/main/res/drawable/taxi_operation_status_bg_selector.xml +++ b/OCH/taxi/driver/src/main/res/drawable/taxi_operation_status_bg_selector.xml @@ -1,8 +1,5 @@ - - - - + \ No newline at end of file diff --git a/OCH/taxi/unmanned-driver/src/main/res/drawable/bad_case_selector_och.xml b/OCH/taxi/unmanned-driver/src/main/res/drawable/bad_case_selector_och.xml index fbc6c83a08..99dcc2e56b 100755 --- a/OCH/taxi/unmanned-driver/src/main/res/drawable/bad_case_selector_och.xml +++ b/OCH/taxi/unmanned-driver/src/main/res/drawable/bad_case_selector_och.xml @@ -1,8 +1,5 @@ - - - - + \ No newline at end of file diff --git a/OCH/taxi/unmanned-driver/src/main/res/drawable/taxi_operation_status_bg_selector.xml b/OCH/taxi/unmanned-driver/src/main/res/drawable/taxi_operation_status_bg_selector.xml index 15d6e4cec9..f73bd7c49e 100755 --- a/OCH/taxi/unmanned-driver/src/main/res/drawable/taxi_operation_status_bg_selector.xml +++ b/OCH/taxi/unmanned-driver/src/main/res/drawable/taxi_operation_status_bg_selector.xml @@ -1,8 +1,5 @@ - - - - + \ No newline at end of file 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 8b7ec56d8e..950f0e4a47 100644 --- a/app/src/main/java/com/mogo/launcher/lancet/ViewPressedStateLancet.java +++ b/app/src/main/java/com/mogo/launcher/lancet/ViewPressedStateLancet.java @@ -6,6 +6,7 @@ import android.content.res.TypedArray; import android.graphics.Color; import android.graphics.drawable.Drawable; import android.graphics.drawable.StateListDrawable; +import android.os.Build; import android.util.AttributeSet; import android.util.StateSet; import android.view.LayoutInflater; @@ -513,7 +514,7 @@ public class ViewPressedStateLancet { } int[][] states = new int[size][1]; int[] colors = new int[size]; - states[0] = new int[] { android.R.attr.state_pressed, -android.R.attr.state_focused }; + states[0] = new int[] { android.R.attr.state_pressed, -android.R.attr.state_focused, -android.R.attr.state_active }; colors[0] = pressedColor; if (size > 2) { states[1] = new int[] { -android.R.attr.state_enabled }; @@ -581,8 +582,19 @@ public class ViewPressedStateLancet { int[] states = drawable.getState(); boolean hasPressed = false; for (int state : states) { - if (state == android.R.attr.state_pressed) { + if ((state & android.R.attr.state_pressed) != 0) { hasPressed = true; + Drawable pressed = null; + try { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + int index = drawable.findStateDrawableIndex(new int[] { android.R.attr.state_pressed }); + pressed = drawable.getStateDrawable(index); + } + } catch (Throwable ignore) {} + + if (pressed != null) { + drawable.addState(new int[] { -android.R.attr.state_active, -android.R.attr.state_focused }, pressed); + } break; } } @@ -594,7 +606,7 @@ public class ViewPressedStateLancet { if (constantState != null) { Drawable pressed = DrawableCompat.wrap(constantState.newDrawable().mutate()); pressed.setAlpha((int)(255 * alpha)); - drawable.addState(new int[] { android.R.attr.state_pressed }, pressed); + drawable.addState(new int[] { android.R.attr.state_pressed, -android.R.attr.state_focused, -android.R.attr.state_active }, pressed); return drawable; } return null; @@ -604,7 +616,7 @@ public class ViewPressedStateLancet { StateListDrawable result = new StateListDrawable(); Drawable pressed = DrawableCompat.wrap(constantState.newDrawable().mutate()); pressed.setAlpha((int)(255 * alpha)); - result.addState(new int[] { android.R.attr.state_pressed, -android.R.attr.state_focused }, pressed); + result.addState(new int[] { android.R.attr.state_pressed, -android.R.attr.state_focused, -android.R.attr.state_active }, pressed); result.addState(StateSet.WILD_CARD, old); return result; }