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