diff --git a/core/res/res/drawable/btn_borderless_quantum.xml b/core/res/res/drawable/btn_borderless_quantum.xml
index 2e3c515fcac1a..69a891a67d8bf 100644
--- a/core/res/res/drawable/btn_borderless_quantum.xml
+++ b/core/res/res/drawable/btn_borderless_quantum.xml
@@ -16,6 +16,7 @@
+
diff --git a/core/res/res/drawable/btn_check_quantum_anim.xml b/core/res/res/drawable/btn_check_quantum_anim.xml
index d68d5122bc633..0600522c77636 100644
--- a/core/res/res/drawable/btn_check_quantum_anim.xml
+++ b/core/res/res/drawable/btn_check_quantum_anim.xml
@@ -25,26 +25,29 @@
android:viewportHeight="320"
android:viewportWidth="320" />
-
-
-
+
+
+
+ android:name="check"
+ android:pathData="M 232.1,80.6 L 248.5,92.1 L 145.2,239.5 L 71.5,187.8 L 83,171.5 L 140.3,211.7 z"
+ android:fill="?attr/colorControlActivated" />
+ android:sequence="box1,box2,box3,box4,check" />
diff --git a/core/res/res/layout/alert_dialog_quantum.xml b/core/res/res/layout/alert_dialog_quantum.xml
index 98b687973ebdb..537162a109a01 100644
--- a/core/res/res/layout/alert_dialog_quantum.xml
+++ b/core/res/res/layout/alert_dialog_quantum.xml
@@ -91,32 +91,32 @@
style="?android:attr/buttonBarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:layoutDirection="locale"
- android:measureWithLargestChild="true">
+ android:layoutDirection="locale">
+ android:minHeight="@dimen/alert_dialog_button_bar_height" />
+
+ android:minHeight="@dimen/alert_dialog_button_bar_height" />
+ android:minHeight="@dimen/alert_dialog_button_bar_height" />
diff --git a/core/res/res/values/themes_quantum.xml b/core/res/res/values/themes_quantum.xml
index a28496eb654b2..c2e31f47c5a77 100644
--- a/core/res/res/values/themes_quantum.xml
+++ b/core/res/res/values/themes_quantum.xml
@@ -317,7 +317,7 @@ please see themes_device_defaults.xml.
- ?attr/listDivider
- ?attr/listDivider
- @style/Widget.Quantum.ButtonBar
- - ?attr/borderlessButtonStyle
+ - @style/Widget.Quantum.Button.Borderless.Small
- @style/Widget.Quantum.SegmentedButton
@@ -662,7 +662,7 @@ please see themes_device_defaults.xml.
- ?attr/listDivider
- ?attr/listDivider
- @style/Widget.Quantum.Light.ButtonBar
- - ?attr/borderlessButtonStyle
+ - @style/Widget.Quantum.Light.Button.Borderless.Small
- @style/Widget.Quantum.Light.SegmentedButton
diff --git a/graphics/java/android/graphics/drawable/TouchFeedbackDrawable.java b/graphics/java/android/graphics/drawable/TouchFeedbackDrawable.java
index 3773a4986504a..5f594678f7303 100644
--- a/graphics/java/android/graphics/drawable/TouchFeedbackDrawable.java
+++ b/graphics/java/android/graphics/drawable/TouchFeedbackDrawable.java
@@ -44,6 +44,8 @@ import java.io.IOException;
* Documentation pending.
*/
public class TouchFeedbackDrawable extends LayerDrawable {
+ private static final PorterDuffXfermode DST_IN = new PorterDuffXfermode(Mode.DST_IN);
+
/** The maximum number of ripples supported. */
private static final int MAX_RIPPLES = 10;
@@ -397,7 +399,7 @@ public class TouchFeedbackDrawable extends LayerDrawable {
if (mask != null && drewRipples) {
// TODO: This will also mask the lower layer, which is bad.
canvas.saveLayer(bounds.left, bounds.top, bounds.right,
- bounds.bottom, getMaskingPaint(mState.mTintXfermode), 0);
+ bounds.bottom, getMaskingPaint(DST_IN), 0);
mask.draw(canvas);
}
diff --git a/graphics/java/android/graphics/drawable/VectorDrawable.java b/graphics/java/android/graphics/drawable/VectorDrawable.java
index 736b143921a29..0992717fd4ef9 100644
--- a/graphics/java/android/graphics/drawable/VectorDrawable.java
+++ b/graphics/java/android/graphics/drawable/VectorDrawable.java
@@ -182,14 +182,14 @@ public class VectorDrawable extends Drawable {
public VectorDrawable() {
mVectorState = new VectorDrawableState(null);
- mVectorState.mBasicAnimator = ObjectAnimator.ofFloat(this, "AnimationFraction", 0, 1);
+ mVectorState.mBasicAnimator = ObjectAnimator.ofFloat(this, "AnimationFraction", 0, 0);
setDuration(DEFAULT_DURATION);
}
private VectorDrawable(VectorDrawableState state, Resources res, Theme theme) {
mVectorState = new VectorDrawableState(state);
- mVectorState.mBasicAnimator = ObjectAnimator.ofFloat(this, "AnimationFraction", 0, 1);
+ mVectorState.mBasicAnimator = ObjectAnimator.ofFloat(this, "AnimationFraction", 0, 0);
if (theme != null && canApplyTheme()) {
applyTheme(theme);
@@ -213,7 +213,7 @@ public class VectorDrawable extends Drawable {
@Override
public void jumpToCurrentState() {
- mVectorState.mBasicAnimator.end();
+ stop();
}
/**
@@ -318,7 +318,7 @@ public class VectorDrawable extends Drawable {
private void animateBackward() {
if (!mVectorState.mBasicAnimator.isStarted()) {
- mVectorState.mBasicAnimator.setFloatValues(.99f, 0);
+ mVectorState.mBasicAnimator.setFloatValues(1, 0);
start();
}
}
@@ -985,7 +985,13 @@ public class VectorDrawable extends Drawable {
for (int j = 0; j < sp.length; j++) {
mSeqMap.add(sp[j].trim());
- VectorDrawable.VPath path = groups.get(j).get(sp[j]);
+
+ final VectorDrawable.VPath path = groups.get(j).get(sp[j]);
+ if (path == null) {
+ throw new XmlPullParserException(a.getPositionDescription()
+ + " missing path with name: " + sp[j]);
+ }
+
path.mAnimated = true;
paths[j] = path;
}