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; }