summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/provider/SearchIndexablesContract.java22
-rw-r--r--core/jni/android_graphics_Canvas.cpp32
-rw-r--r--core/jni/android_view_GraphicBuffer.cpp3
-rw-r--r--core/jni/android_view_Surface.cpp2
-rw-r--r--core/jni/android_view_TextureView.cpp3
-rw-r--r--libs/hwui/CanvasState.cpp8
-rw-r--r--libs/hwui/CanvasState.h7
-rw-r--r--libs/hwui/FrameBuilder.cpp4
-rw-r--r--libs/hwui/RecordingCanvas.cpp6
-rw-r--r--libs/hwui/RecordingCanvas.h7
-rw-r--r--libs/hwui/SkiaCanvas.cpp26
-rw-r--r--libs/hwui/SkiaCanvas.h8
-rw-r--r--libs/hwui/SkiaCanvasProxy.cpp8
-rw-r--r--libs/hwui/SkiaCanvasProxy.h8
-rw-r--r--libs/hwui/Snapshot.cpp12
-rw-r--r--libs/hwui/Snapshot.h9
-rw-r--r--libs/hwui/VectorDrawable.cpp2
-rw-r--r--libs/hwui/hwui/Canvas.h6
-rw-r--r--libs/hwui/pipeline/skia/RenderNodeDrawable.cpp4
-rw-r--r--libs/hwui/pipeline/skia/SkiaPipeline.cpp6
-rw-r--r--libs/hwui/tests/common/TestUtils.h3
-rw-r--r--libs/hwui/tests/common/scenes/ClippingAnimation.cpp6
-rw-r--r--libs/hwui/tests/common/scenes/SaveLayerAnimation.cpp2
-rw-r--r--libs/hwui/tests/common/scenes/ShapeAnimation.cpp2
-rw-r--r--libs/hwui/tests/microbench/DisplayListCanvasBench.cpp2
-rw-r--r--libs/hwui/tests/unit/CanvasStateTests.cpp18
-rw-r--r--libs/hwui/tests/unit/FrameBuilderTests.cpp22
-rw-r--r--libs/hwui/tests/unit/RecordingCanvasTests.cpp20
-rw-r--r--libs/hwui/tests/unit/RenderNodeDrawableTests.cpp2
-rw-r--r--libs/hwui/utils/TestWindowContext.cpp3
-rw-r--r--packages/SystemUI/res/drawable/ic_brightness_thumb.xml2
-rw-r--r--packages/SystemUI/res/drawable/ic_invert_colors_disable.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_invert_colors_enable.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_landscape_from_auto_rotate.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_landscape_to_auto_rotate.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_portrait_from_auto_rotate.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_portrait_to_auto_rotate.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_qs_bluetooth_connected.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_qs_bluetooth_connecting.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_qs_bluetooth_detail_empty.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_qs_bluetooth_off.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_qs_bluetooth_on.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_qs_cast_off.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_qs_cast_on.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_qs_dnd_off.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_qs_dnd_on.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_qs_dnd_on_total_silence.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_qs_night_display_off.xml5
-rw-r--r--packages/SystemUI/res/drawable/ic_qs_night_display_on.xml5
-rw-r--r--packages/SystemUI/res/drawable/ic_qs_signal_in.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_qs_signal_out.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_qs_wifi_0.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_qs_wifi_1.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_qs_wifi_2.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_qs_wifi_3.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_qs_wifi_4.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_qs_wifi_detail_empty.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_qs_wifi_disabled.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_qs_wifi_disconnected.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_qs_wifi_full_0.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_qs_wifi_full_1.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_qs_wifi_full_2.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_qs_wifi_full_3.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_qs_wifi_full_4.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_qs_wifi_no_network.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_signal_flashlight_disable.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_signal_flashlight_enable.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_signal_location_disable.xml3
-rw-r--r--packages/SystemUI/res/drawable/ic_signal_location_enable.xml3
-rw-r--r--preloaded-classes6
70 files changed, 238 insertions, 151 deletions
diff --git a/core/java/android/provider/SearchIndexablesContract.java b/core/java/android/provider/SearchIndexablesContract.java
index 93ac7f686127..ff8b9dd77068 100644
--- a/core/java/android/provider/SearchIndexablesContract.java
+++ b/core/java/android/provider/SearchIndexablesContract.java
@@ -108,6 +108,8 @@ public class SearchIndexablesContract {
RawData.COLUMN_INTENT_TARGET_CLASS, // 11
RawData.COLUMN_KEY, // 12
RawData.COLUMN_USER_ID, // 13
+ RawData.PAYLOAD_TYPE, // 14
+ RawData.PAYLOAD // 15
};
/**
@@ -127,6 +129,14 @@ public class SearchIndexablesContract {
public static final int COLUMN_INDEX_RAW_INTENT_TARGET_CLASS = 11;
public static final int COLUMN_INDEX_RAW_KEY = 12;
public static final int COLUMN_INDEX_RAW_USER_ID = 13;
+ /**
+ * @hide
+ */
+ public static final int COLUMN_INDEX_RAW_PAYLOAD_TYPE = 14;
+ /**
+ * @hide
+ */
+ public static final int COLUMN_INDEX_RAW_PAYLOAD = 15;
/**
* Indexable raw data columns.
@@ -213,6 +223,18 @@ public class SearchIndexablesContract {
* UserId associated with the raw data.
*/
public static final String COLUMN_USER_ID = "user_id";
+
+ /**
+ * Identifier for the Payload object type.
+ * @hide
+ */
+ public static final String PAYLOAD_TYPE = "payload_type";
+
+ /**
+ * Generic payload for improving Search result expressiveness.
+ * @hide
+ */
+ public static final String PAYLOAD = "payload";
}
/**
diff --git a/core/jni/android_graphics_Canvas.cpp b/core/jni/android_graphics_Canvas.cpp
index 04a754307267..a31bd8066138 100644
--- a/core/jni/android_graphics_Canvas.cpp
+++ b/core/jni/android_graphics_Canvas.cpp
@@ -183,26 +183,46 @@ static jboolean quickRejectPath(JNIEnv* env, jobject, jlong canvasHandle, jlong
return result ? JNI_TRUE : JNI_FALSE;
}
+// SkRegion::Op and SkClipOp are numerically identical, so we can freely cast
+// from one to the other (though SkClipOp is destined to become a strict subset)
+static_assert(SkRegion::kDifference_Op == static_cast<SkRegion::Op>(kDifference_SkClipOp), "");
+static_assert(SkRegion::kIntersect_Op == static_cast<SkRegion::Op>(kIntersect_SkClipOp), "");
+static_assert(SkRegion::kUnion_Op == static_cast<SkRegion::Op>(kUnion_SkClipOp), "");
+static_assert(SkRegion::kXOR_Op == static_cast<SkRegion::Op>(kXOR_SkClipOp), "");
+static_assert(SkRegion::kReverseDifference_Op == static_cast<SkRegion::Op>(kReverseDifference_SkClipOp), "");
+static_assert(SkRegion::kReplace_Op == static_cast<SkRegion::Op>(kReplace_SkClipOp), "");
+
+static SkClipOp opHandleToClipOp(jint opHandle) {
+ // The opHandle is defined in Canvas.java to be Region::Op
+ SkRegion::Op rgnOp = static_cast<SkRegion::Op>(opHandle);
+
+ // In the future, when we no longer support the wide range of ops (e.g. Union, Xor)
+ // this function can perform a range check and throw an unsupported-exception.
+ // e.g. if (rgnOp != kIntersect && rgnOp != kDifference) throw...
+
+ // Skia now takes a different type, SkClipOp, as the parameter to clipping calls
+ // This type is binary compatible with SkRegion::Op, so a static_cast<> is safe.
+ return static_cast<SkClipOp>(rgnOp);
+}
+
static jboolean clipRect(JNIEnv*, jobject, jlong canvasHandle, jfloat l, jfloat t,
jfloat r, jfloat b, jint opHandle) {
- SkRegion::Op op = static_cast<SkRegion::Op>(opHandle);
- bool nonEmptyClip = get_canvas(canvasHandle)->clipRect(l, t, r, b, op);
+ bool nonEmptyClip = get_canvas(canvasHandle)->clipRect(l, t, r, b,
+ opHandleToClipOp(opHandle));
return nonEmptyClip ? JNI_TRUE : JNI_FALSE;
}
static jboolean clipPath(JNIEnv* env, jobject, jlong canvasHandle, jlong pathHandle,
jint opHandle) {
SkPath* path = reinterpret_cast<SkPath*>(pathHandle);
- SkRegion::Op op = static_cast<SkRegion::Op>(opHandle);
- bool nonEmptyClip = get_canvas(canvasHandle)->clipPath(path, op);
+ bool nonEmptyClip = get_canvas(canvasHandle)->clipPath(path, opHandleToClipOp(opHandle));
return nonEmptyClip ? JNI_TRUE : JNI_FALSE;
}
static jboolean clipRegion(JNIEnv* env, jobject, jlong canvasHandle, jlong deviceRgnHandle,
jint opHandle) {
SkRegion* deviceRgn = reinterpret_cast<SkRegion*>(deviceRgnHandle);
- SkRegion::Op op = static_cast<SkRegion::Op>(opHandle);
- bool nonEmptyClip = get_canvas(canvasHandle)->clipRegion(deviceRgn, op);
+ bool nonEmptyClip = get_canvas(canvasHandle)->clipRegion(deviceRgn, opHandleToClipOp(opHandle));
return nonEmptyClip ? JNI_TRUE : JNI_FALSE;
}
diff --git a/core/jni/android_view_GraphicBuffer.cpp b/core/jni/android_view_GraphicBuffer.cpp
index 4b105ca6276c..53c9ff04abbd 100644
--- a/core/jni/android_view_GraphicBuffer.cpp
+++ b/core/jni/android_view_GraphicBuffer.cpp
@@ -196,7 +196,8 @@ static jboolean android_view_GraphicBuffer_lockCanvas(JNIEnv* env, jobject,
Canvas* nativeCanvas = GraphicsJNI::getNativeCanvas(env, canvas);
nativeCanvas->setBitmap(bitmap);
- nativeCanvas->clipRect(rect.left, rect.top, rect.right, rect.bottom);
+ nativeCanvas->clipRect(rect.left, rect.top, rect.right, rect.bottom,
+ kIntersect_SkClipOp);
if (dirtyRect) {
INVOKEV(dirtyRect, gRectClassInfo.set,
diff --git a/core/jni/android_view_Surface.cpp b/core/jni/android_view_Surface.cpp
index b6c81cf8738a..63997e5a82cf 100644
--- a/core/jni/android_view_Surface.cpp
+++ b/core/jni/android_view_Surface.cpp
@@ -339,7 +339,7 @@ static jlong nativeLockCanvas(JNIEnv* env, jclass clazz,
if (dirtyRectPtr) {
nativeCanvas->clipRect(dirtyRect.left, dirtyRect.top,
- dirtyRect.right, dirtyRect.bottom);
+ dirtyRect.right, dirtyRect.bottom, kIntersect_SkClipOp);
}
if (dirtyRectObj) {
diff --git a/core/jni/android_view_TextureView.cpp b/core/jni/android_view_TextureView.cpp
index 268aec57032d..351dce97754c 100644
--- a/core/jni/android_view_TextureView.cpp
+++ b/core/jni/android_view_TextureView.cpp
@@ -166,7 +166,8 @@ static jboolean android_view_TextureView_lockCanvas(JNIEnv* env, jobject,
Canvas* nativeCanvas = GraphicsJNI::getNativeCanvas(env, canvas);
nativeCanvas->setBitmap(bitmap);
- nativeCanvas->clipRect(rect.left, rect.top, rect.right, rect.bottom);
+ nativeCanvas->clipRect(rect.left, rect.top, rect.right, rect.bottom,
+ kIntersect_SkClipOp);
if (dirtyRect) {
INVOKEV(dirtyRect, gRectClassInfo.set,
diff --git a/libs/hwui/CanvasState.cpp b/libs/hwui/CanvasState.cpp
index 7e2c28c5eb41..489039c2547a 100644
--- a/libs/hwui/CanvasState.cpp
+++ b/libs/hwui/CanvasState.cpp
@@ -202,17 +202,17 @@ void CanvasState::concatMatrix(const Matrix4& matrix) {
// Clip
///////////////////////////////////////////////////////////////////////////////
-bool CanvasState::clipRect(float left, float top, float right, float bottom, SkRegion::Op op) {
+bool CanvasState::clipRect(float left, float top, float right, float bottom, SkClipOp op) {
mSnapshot->clip(Rect(left, top, right, bottom), op);
return !mSnapshot->clipIsEmpty();
}
-bool CanvasState::clipPath(const SkPath* path, SkRegion::Op op) {
+bool CanvasState::clipPath(const SkPath* path, SkClipOp op) {
mSnapshot->clipPath(*path, op);
return !mSnapshot->clipIsEmpty();
}
-bool CanvasState::clipRegion(const SkRegion* region, SkRegion::Op op) {
+bool CanvasState::clipRegion(const SkRegion* region, SkClipOp op) {
mSnapshot->clipRegionTransformed(*region, op);
return !mSnapshot->clipIsEmpty();
}
@@ -225,7 +225,7 @@ void CanvasState::setClippingOutline(LinearAllocator& allocator, const Outline*
bool outlineIsRounded = MathUtils::isPositive(radius);
if (!outlineIsRounded || currentTransform()->isSimple()) {
// TODO: consider storing this rect separately, so that this can't be replaced with clip ops
- clipRect(bounds.left, bounds.top, bounds.right, bounds.bottom, SkRegion::kIntersect_Op);
+ clipRect(bounds.left, bounds.top, bounds.right, bounds.bottom, kIntersect_SkClipOp);
}
if (outlineIsRounded) {
setClippingRoundRect(allocator, bounds, radius, false);
diff --git a/libs/hwui/CanvasState.h b/libs/hwui/CanvasState.h
index 22c7e8a96cc8..a805597ac9b9 100644
--- a/libs/hwui/CanvasState.h
+++ b/libs/hwui/CanvasState.h
@@ -18,6 +18,7 @@
#include "Snapshot.h"
+#include <SkClipOp.h>
#include <SkMatrix.h>
#include <SkPath.h>
#include <SkRegion.h>
@@ -121,9 +122,9 @@ public:
bool quickRejectConservative(float left, float top, float right, float bottom) const;
- bool clipRect(float left, float top, float right, float bottom, SkRegion::Op op);
- bool clipPath(const SkPath* path, SkRegion::Op op);
- bool clipRegion(const SkRegion* region, SkRegion::Op op);
+ bool clipRect(float left, float top, float right, float bottom, SkClipOp op);
+ bool clipPath(const SkPath* path, SkClipOp op);
+ bool clipRegion(const SkRegion* region, SkClipOp op);
/**
* Sets a "clipping outline", which is independent from the regular clip.
diff --git a/libs/hwui/FrameBuilder.cpp b/libs/hwui/FrameBuilder.cpp
index 245db1dcec97..5b683e06b6ed 100644
--- a/libs/hwui/FrameBuilder.cpp
+++ b/libs/hwui/FrameBuilder.cpp
@@ -120,7 +120,7 @@ void FrameBuilder::deferRenderNode(float tx, float ty, Rect clipRect, RenderNode
mCanvasState.save(SaveFlags::MatrixClip);
mCanvasState.translate(tx, ty);
mCanvasState.clipRect(clipRect.left, clipRect.top, clipRect.right, clipRect.bottom,
- SkRegion::kIntersect_Op);
+ kIntersect_SkClipOp);
deferNodePropsAndOps(renderNode);
mCanvasState.restore();
}
@@ -262,7 +262,7 @@ void FrameBuilder::deferNodePropsAndOps(RenderNode& node) {
Rect clipRect;
properties.getClippingRectForFlags(clipFlags, &clipRect);
mCanvasState.clipRect(clipRect.left, clipRect.top, clipRect.right, clipRect.bottom,
- SkRegion::kIntersect_Op);
+ kIntersect_SkClipOp);
}
if (properties.getRevealClip().willClip()) {
diff --git a/libs/hwui/RecordingCanvas.cpp b/libs/hwui/RecordingCanvas.cpp
index 9d18484f39f0..96c6d29af221 100644
--- a/libs/hwui/RecordingCanvas.cpp
+++ b/libs/hwui/RecordingCanvas.cpp
@@ -234,13 +234,13 @@ bool RecordingCanvas::quickRejectPath(const SkPath& path) const {
SkRect bounds = path.getBounds();
return mState.quickRejectConservative(bounds.fLeft, bounds.fTop, bounds.fRight, bounds.fBottom);
}
-bool RecordingCanvas::clipRect(float left, float top, float right, float bottom, SkRegion::Op op) {
+bool RecordingCanvas::clipRect(float left, float top, float right, float bottom, SkClipOp op) {
return mState.clipRect(left, top, right, bottom, op);
}
-bool RecordingCanvas::clipPath(const SkPath* path, SkRegion::Op op) {
+bool RecordingCanvas::clipPath(const SkPath* path, SkClipOp op) {
return mState.clipPath(path, op);
}
-bool RecordingCanvas::clipRegion(const SkRegion* region, SkRegion::Op op) {
+bool RecordingCanvas::clipRegion(const SkRegion* region, SkClipOp op) {
return mState.clipRegion(region, op);
}
diff --git a/libs/hwui/RecordingCanvas.h b/libs/hwui/RecordingCanvas.h
index f93e8b892e81..5d4938581d20 100644
--- a/libs/hwui/RecordingCanvas.h
+++ b/libs/hwui/RecordingCanvas.h
@@ -131,9 +131,10 @@ public:
virtual bool quickRejectRect(float left, float top, float right, float bottom) const override;
virtual bool quickRejectPath(const SkPath& path) const override;
- virtual bool clipRect(float left, float top, float right, float bottom, SkRegion::Op op) override;
- virtual bool clipPath(const SkPath* path, SkRegion::Op op) override;
- virtual bool clipRegion(const SkRegion* region, SkRegion::Op op) override;
+ virtual bool clipRect(float left, float top, float right, float bottom,
+ SkClipOp op) override;
+ virtual bool clipPath(const SkPath* path, SkClipOp op) override;
+ virtual bool clipRegion(const SkRegion* region, SkClipOp op) override;
// Misc
virtual SkDrawFilter* getDrawFilter() override { return mDrawFilter.get(); }
diff --git a/libs/hwui/SkiaCanvas.cpp b/libs/hwui/SkiaCanvas.cpp
index 6786a69c8dd1..8ab57c9de554 100644
--- a/libs/hwui/SkiaCanvas.cpp
+++ b/libs/hwui/SkiaCanvas.cpp
@@ -78,13 +78,13 @@ class ClipCopier : public SkCanvas::ClipVisitor {
public:
explicit ClipCopier(SkCanvas* dstCanvas) : m_dstCanvas(dstCanvas) {}
- virtual void clipRect(const SkRect& rect, SkRegion::Op op, bool antialias) {
+ virtual void clipRect(const SkRect& rect, SkClipOp op, bool antialias) {
m_dstCanvas->clipRect(rect, op, antialias);
}
- virtual void clipRRect(const SkRRect& rrect, SkRegion::Op op, bool antialias) {
+ virtual void clipRRect(const SkRRect& rrect, SkClipOp op, bool antialias) {
m_dstCanvas->clipRRect(rrect, op, antialias);
}
- virtual void clipPath(const SkPath& path, SkRegion::Op op, bool antialias) {
+ virtual void clipPath(const SkPath& path, SkClipOp op, bool antialias) {
m_dstCanvas->clipPath(path, op, antialias);
}
@@ -218,11 +218,11 @@ int SkiaCanvas::saveLayerAlpha(float left, float top, float right, float bottom,
class SkiaCanvas::Clip {
public:
- Clip(const SkRect& rect, SkRegion::Op op, const SkMatrix& m)
+ Clip(const SkRect& rect, SkClipOp op, const SkMatrix& m)
: mType(Type::Rect), mOp(op), mMatrix(m), mRRect(SkRRect::MakeRect(rect)) {}
- Clip(const SkRRect& rrect, SkRegion::Op op, const SkMatrix& m)
+ Clip(const SkRRect& rrect, SkClipOp op, const SkMatrix& m)
: mType(Type::RRect), mOp(op), mMatrix(m), mRRect(rrect) {}
- Clip(const SkPath& path, SkRegion::Op op, const SkMatrix& m)
+ Clip(const SkPath& path, SkClipOp op, const SkMatrix& m)
: mType(Type::Path), mOp(op), mMatrix(m), mPath(&path) {}
void apply(SkCanvas* canvas) const {
@@ -247,9 +247,9 @@ private:
Path,
};
- Type mType;
- SkRegion::Op mOp;
- SkMatrix mMatrix;
+ Type mType;
+ SkClipOp mOp;
+ SkMatrix mMatrix;
// These are logically a union (tracked separately due to non-POD path).
SkTLazy<SkPath> mPath;
@@ -293,7 +293,7 @@ void SkiaCanvas::recordPartialSave(SaveFlags::Flags flags) {
}
template <typename T>
-void SkiaCanvas::recordClip(const T& clip, SkRegion::Op op) {
+void SkiaCanvas::recordClip(const T& clip, SkClipOp op) {
// Only need tracking when in a partial save frame which
// doesn't restore the clip.
const SaveRec* rec = this->currentSaveRec();
@@ -397,14 +397,14 @@ bool SkiaCanvas::quickRejectPath(const SkPath& path) const {
return mCanvas->quickReject(path);
}
-bool SkiaCanvas::clipRect(float left, float top, float right, float bottom, SkRegion::Op op) {
+bool SkiaCanvas::clipRect(float left, float top, float right, float bottom, SkClipOp op) {
SkRect rect = SkRect::MakeLTRB(left, top, right, bottom);
this->recordClip(rect, op);
mCanvas->clipRect(rect, op);
return !mCanvas->isClipEmpty();
}
-bool SkiaCanvas::clipPath(const SkPath* path, SkRegion::Op op) {
+bool SkiaCanvas::clipPath(const SkPath* path, SkClipOp op) {
SkRRect roundRect;
if (path->isRRect(&roundRect)) {
this->recordClip(roundRect, op);
@@ -416,7 +416,7 @@ bool SkiaCanvas::clipPath(const SkPath* path, SkRegion::Op op) {
return !mCanvas->isClipEmpty();
}
-bool SkiaCanvas::clipRegion(const SkRegion* region, SkRegion::Op op) {
+bool SkiaCanvas::clipRegion(const SkRegion* region, SkClipOp op) {
SkPath rgnPath;
if (region->getBoundaryPath(&rgnPath)) {
// The region is specified in device space.
diff --git a/libs/hwui/SkiaCanvas.h b/libs/hwui/SkiaCanvas.h
index 4f1d8572eb2d..9639ebd19bbb 100644
--- a/libs/hwui/SkiaCanvas.h
+++ b/libs/hwui/SkiaCanvas.h
@@ -92,9 +92,9 @@ public:
virtual bool quickRejectRect(float left, float top, float right, float bottom) const override;
virtual bool quickRejectPath(const SkPath& path) const override;
virtual bool clipRect(float left, float top, float right, float bottom,
- SkRegion::Op op) override;
- virtual bool clipPath(const SkPath* path, SkRegion::Op op) override;
- virtual bool clipRegion(const SkRegion* region, SkRegion::Op op) override;
+ SkClipOp op) override;
+ virtual bool clipPath(const SkPath* path, SkClipOp op) override;
+ virtual bool clipRegion(const SkRegion* region, SkClipOp op) override;
virtual SkDrawFilter* getDrawFilter() override;
virtual void setDrawFilter(SkDrawFilter* drawFilter) override;
@@ -174,7 +174,7 @@ private:
void recordPartialSave(SaveFlags::Flags flags);
template<typename T>
- void recordClip(const T&, SkRegion::Op);
+ void recordClip(const T&, SkClipOp);
void applyPersistentClips(size_t clipStartIndex);
void drawPoints(const float* points, int count, const SkPaint& paint,
diff --git a/libs/hwui/SkiaCanvasProxy.cpp b/libs/hwui/SkiaCanvasProxy.cpp
index 5978abc9efaa..75396f7b4cf2 100644
--- a/libs/hwui/SkiaCanvasProxy.cpp
+++ b/libs/hwui/SkiaCanvasProxy.cpp
@@ -430,21 +430,21 @@ void SkiaCanvasProxy::onDrawPatch(const SkPoint cubics[12], const SkColor colors
}
}
-void SkiaCanvasProxy::onClipRect(const SkRect& rect, SkRegion::Op op, ClipEdgeStyle) {
+void SkiaCanvasProxy::onClipRect(const SkRect& rect, SkClipOp op, ClipEdgeStyle) {
mCanvas->clipRect(rect.fLeft, rect.fTop, rect.fRight, rect.fBottom, op);
}
-void SkiaCanvasProxy::onClipRRect(const SkRRect& roundRect, SkRegion::Op op, ClipEdgeStyle) {
+void SkiaCanvasProxy::onClipRRect(const SkRRect& roundRect, SkClipOp op, ClipEdgeStyle) {
SkPath path;
path.addRRect(roundRect);
mCanvas->clipPath(&path, op);
}
-void SkiaCanvasProxy::onClipPath(const SkPath& path, SkRegion::Op op, ClipEdgeStyle) {
+void SkiaCanvasProxy::onClipPath(const SkPath& path, SkClipOp op, ClipEdgeStyle) {
mCanvas->clipPath(&path, op);
}
-void SkiaCanvasProxy::onClipRegion(const SkRegion& region, SkRegion::Op op) {
+void SkiaCanvasProxy::onClipRegion(const SkRegion& region, SkClipOp op) {
mCanvas->clipRegion(&region, op);
}
diff --git a/libs/hwui/SkiaCanvasProxy.h b/libs/hwui/SkiaCanvasProxy.h
index 01118150a8f0..badcc1dfe8cc 100644
--- a/libs/hwui/SkiaCanvasProxy.h
+++ b/libs/hwui/SkiaCanvasProxy.h
@@ -90,10 +90,10 @@ protected:
const SkPoint texCoords[4], SkBlendMode,
const SkPaint& paint) override;
- virtual void onClipRect(const SkRect&, SkRegion::Op, ClipEdgeStyle) override;
- virtual void onClipRRect(const SkRRect&, SkRegion::Op, ClipEdgeStyle) override;
- virtual void onClipPath(const SkPath&, SkRegion::Op, ClipEdgeStyle) override;
- virtual void onClipRegion(const SkRegion&, SkRegion::Op) override;
+ virtual void onClipRect(const SkRect&, SkClipOp, ClipEdgeStyle) override;
+ virtual void onClipRRect(const SkRRect&, SkClipOp, ClipEdgeStyle) override;
+ virtual void onClipPath(const SkPath&, SkClipOp, ClipEdgeStyle) override;
+ virtual void onClipRegion(const SkRegion&, SkClipOp) override;
private:
Canvas* mCanvas;
diff --git a/libs/hwui/Snapshot.cpp b/libs/hwui/Snapshot.cpp
index f61c3e9825f8..3f08009b6be9 100644
--- a/libs/hwui/Snapshot.cpp
+++ b/libs/hwui/Snapshot.cpp
@@ -72,19 +72,19 @@ Snapshot::Snapshot(Snapshot* s, int saveFlags)
// Clipping
///////////////////////////////////////////////////////////////////////////////
-void Snapshot::clipRegionTransformed(const SkRegion& region, SkRegion::Op op) {
+void Snapshot::clipRegionTransformed(const SkRegion& region, SkClipOp op) {
flags |= Snapshot::kFlagClipSet;
- mClipArea->clipRegion(region, op);
+ mClipArea->clipRegion(region, static_cast<SkRegion::Op>(op));
}
-void Snapshot::clip(const Rect& localClip, SkRegion::Op op) {
+void Snapshot::clip(const Rect& localClip, SkClipOp op) {
flags |= Snapshot::kFlagClipSet;
- mClipArea->clipRectWithTransform(localClip, transform, op);
+ mClipArea->clipRectWithTransform(localClip, transform, static_cast<SkRegion::Op>(op));
}
-void Snapshot::clipPath(const SkPath& path, SkRegion::Op op) {
+void Snapshot::clipPath(const SkPath& path, SkClipOp op) {
flags |= Snapshot::kFlagClipSet;
- mClipArea->clipPathWithTransform(path, transform, op);
+ mClipArea->clipPathWithTransform(path, transform, static_cast<SkRegion::Op>(op));
}
void Snapshot::setClip(float left, float top, float right, float bottom) {
diff --git a/libs/hwui/Snapshot.h b/libs/hwui/Snapshot.h
index 4ab58302df8f..287e58af0f69 100644
--- a/libs/hwui/Snapshot.h
+++ b/libs/hwui/Snapshot.h
@@ -23,6 +23,7 @@
#include <utils/RefBase.h>
#include <ui/Region.h>
+#include <SkClipOp.h>
#include <SkRegion.h>
#include "ClipArea.h"
@@ -107,25 +108,25 @@ public:
* the specified operation. The specified rectangle is transformed
* by this snapshot's trasnformation.
*/
- void clip(const Rect& localClip, SkRegion::Op op);
+ void clip(const Rect& localClip, SkClipOp op);
/**
* Modifies the current clip with the new clip rectangle and
* the specified operation. The specified rectangle is considered
* already transformed.
*/
- void clipTransformed(const Rect& r, SkRegion::Op op = SkRegion::kIntersect_Op);
+ void clipTransformed(const Rect& r, SkClipOp op = kIntersect_SkClipOp);
/**
* Modifies the current clip with the specified region and operation.
* The specified region is considered already transformed.
*/
- void clipRegionTransformed(const SkRegion& region, SkRegion::Op op);
+ void clipRegionTransformed(const SkRegion& region, SkClipOp op);
/**
* Modifies the current clip with the specified path and operation.
*/
- void clipPath(const SkPath& path, SkRegion::Op op);
+ void clipPath(const SkPath& path, SkClipOp op);
/**
* Sets the current clip.
diff --git a/libs/hwui/VectorDrawable.cpp b/libs/hwui/VectorDrawable.cpp
index f4ffa7a2aaca..208107f65743 100644
--- a/libs/hwui/VectorDrawable.cpp
+++ b/libs/hwui/VectorDrawable.cpp
@@ -308,7 +308,7 @@ void FullPath::FullPathProperties::setPropertyValue(int propertyId, float value)
void ClipPath::drawPath(SkCanvas* outCanvas, SkPath& renderPath,
float strokeScale, const SkMatrix& matrix, bool useStagingData){
- outCanvas->clipPath(renderPath, SkRegion::kIntersect_Op);
+ outCanvas->clipPath(renderPath);
}
Group::Group(const Group& group) : Node(group) {
diff --git a/libs/hwui/hwui/Canvas.h b/libs/hwui/hwui/Canvas.h
index d7839b429648..e7b6b2d329f1 100644
--- a/libs/hwui/hwui/Canvas.h
+++ b/libs/hwui/hwui/Canvas.h
@@ -182,9 +182,9 @@ public:
virtual bool quickRejectPath(const SkPath& path) const = 0;
virtual bool clipRect(float left, float top, float right, float bottom,
- SkRegion::Op op = SkRegion::kIntersect_Op) = 0;
- virtual bool clipPath(const SkPath* path, SkRegion::Op op) = 0;
- virtual bool clipRegion(const SkRegion* region, SkRegion::Op op) = 0;
+ SkClipOp op) = 0;
+ virtual bool clipPath(const SkPath* path, SkClipOp op) = 0;
+ virtual bool clipRegion(const SkRegion* region, SkClipOp op) = 0;
// filters
virtual SkDrawFilter* getDrawFilter() = 0;
diff --git a/libs/hwui/pipeline/skia/RenderNodeDrawable.cpp b/libs/hwui/pipeline/skia/RenderNodeDrawable.cpp
index 4b34c7c45c74..14cc44973c8f 100644
--- a/libs/hwui/pipeline/skia/RenderNodeDrawable.cpp
+++ b/libs/hwui/pipeline/skia/RenderNodeDrawable.cpp
@@ -68,7 +68,7 @@ static void clipOutline(const Outline& outline, SkCanvas* canvas, const SkRect*
if (pendingClip && !pendingClip->contains(rect)) {
canvas->clipRect(*pendingClip);
}
- canvas->clipRRect(SkRRect::MakeRectXY(rect, radius, radius), SkRegion::kIntersect_Op, true);
+ canvas->clipRRect(SkRRect::MakeRectXY(rect, radius, radius), kIntersect_SkClipOp, true);
} else {
if (pendingClip) {
(void)rect.intersect(*pendingClip);
@@ -263,7 +263,7 @@ void RenderNodeDrawable::setViewProperties(const RenderProperties& properties, S
}
if (properties.getRevealClip().willClip()) {
- canvas->clipPath(*properties.getRevealClip().getPath(), SkRegion::kIntersect_Op, true);
+ canvas->clipPath(*properties.getRevealClip().getPath(), kIntersect_SkClipOp, true);
} else if (properties.getOutline().willClip()) {
clipOutline(properties.getOutline(), canvas, pendingClip);
pendingClip = nullptr;
diff --git a/libs/hwui/pipeline/skia/SkiaPipeline.cpp b/libs/hwui/pipeline/skia/SkiaPipeline.cpp
index c9432a17bb43..d77aa4816ccd 100644
--- a/libs/hwui/pipeline/skia/SkiaPipeline.cpp
+++ b/libs/hwui/pipeline/skia/SkiaPipeline.cpp
@@ -99,7 +99,7 @@ void SkiaPipeline::renderLayersImpl(const LayerUpdateQueue& layers, bool opaque)
int saveCount = layerCanvas->save();
SkASSERT(saveCount == 1);
- layerCanvas->clipRect(layerDamage.toSkRect(), SkRegion::kReplace_Op);
+ layerCanvas->clipRect(layerDamage.toSkRect(), kReplace_SkClipOp);
auto savedLightCenter = mLightCenter;
// map current light center into RenderNode's coordinate space
@@ -225,7 +225,7 @@ void SkiaPipeline::renderFrameImpl(const LayerUpdateQueue& layers, const SkRect&
const std::vector<sp<RenderNode>>& nodes, bool opaque, const Rect &contentDrawBounds,
SkCanvas* canvas) {
- canvas->clipRect(clip, SkRegion::kReplace_Op);
+ canvas->clipRect(clip, kReplace_SkClipOp);
if (!opaque) {
canvas->clear(SK_ColorTRANSPARENT);
@@ -275,7 +275,7 @@ void SkiaPipeline::renderFrameImpl(const LayerUpdateQueue& layers, const SkRect&
const float dy = backdropBounds.top - contentDrawBounds.top;
canvas->translate(dx, dy);
// It gets cropped against the bounds of the backdrop to stay inside.
- canvas->clipRect(clip, SkRegion::kIntersect_Op);
+ canvas->clipRect(clip);
}
RenderNodeDrawable root(node.get(), canvas);
diff --git a/libs/hwui/tests/common/TestUtils.h b/libs/hwui/tests/common/TestUtils.h
index 0ce598d4dba4..363b94ac492e 100644
--- a/libs/hwui/tests/common/TestUtils.h
+++ b/libs/hwui/tests/common/TestUtils.h
@@ -118,7 +118,8 @@ public:
static std::unique_ptr<Snapshot> makeSnapshot(const Matrix4& transform, const Rect& clip) {
std::unique_ptr<Snapshot> snapshot(new Snapshot());
- snapshot->clip(clip, SkRegion::kReplace_Op); // store clip first, so it isn't transformed
+ // store clip first, so it isn't transformed
+ snapshot->setClip(clip.left, clip.top, clip.right, clip.bottom);
*(snapshot->transform) = transform;
return snapshot;
}
diff --git a/libs/hwui/tests/common/scenes/ClippingAnimation.cpp b/libs/hwui/tests/common/scenes/ClippingAnimation.cpp
index 8f2ba2d2cddc..45443b0332d3 100644
--- a/libs/hwui/tests/common/scenes/ClippingAnimation.cpp
+++ b/libs/hwui/tests/common/scenes/ClippingAnimation.cpp
@@ -34,11 +34,11 @@ public:
[](RenderProperties& props, Canvas& canvas) {
canvas.save(SaveFlags::MatrixClip);
{
- canvas.clipRect(0, 0, 200, 200, SkRegion::kIntersect_Op);
+ canvas.clipRect(0, 0, 200, 200, kIntersect_SkClipOp);
canvas.translate(100, 100);
canvas.rotate(45);
canvas.translate(-100, -100);
- canvas.clipRect(0, 0, 200, 200, SkRegion::kIntersect_Op);
+ canvas.clipRect(0, 0, 200, 200, kIntersect_SkClipOp);
canvas.drawColor(Color::Blue_500, SkBlendMode::kSrcOver);
}
canvas.restore();
@@ -47,7 +47,7 @@ public:
{
SkPath clipCircle;
clipCircle.addCircle(100, 300, 100);
- canvas.clipPath(&clipCircle, SkRegion::kIntersect_Op);
+ canvas.clipPath(&clipCircle, kIntersect_SkClipOp);
canvas.drawColor(Color::Red_500, SkBlendMode::kSrcOver);
}
canvas.restore();
diff --git a/libs/hwui/tests/common/scenes/SaveLayerAnimation.cpp b/libs/hwui/tests/common/scenes/SaveLayerAnimation.cpp
index 3630935a809f..8b2852b17b00 100644
--- a/libs/hwui/tests/common/scenes/SaveLayerAnimation.cpp
+++ b/libs/hwui/tests/common/scenes/SaveLayerAnimation.cpp
@@ -36,7 +36,7 @@ public:
// nested clipped saveLayers
canvas.saveLayerAlpha(0, 0, 400, 400, 200, SaveFlags::ClipToLayer);
canvas.drawColor(Color::Green_700, SkBlendMode::kSrcOver);
- canvas.clipRect(50, 50, 350, 350, SkRegion::kIntersect_Op);
+ canvas.clipRect(50, 50, 350, 350, kIntersect_SkClipOp);
canvas.saveLayerAlpha(100, 100, 300, 300, 128, SaveFlags::ClipToLayer);
canvas.drawColor(Color::Blue_500, SkBlendMode::kSrcOver);
canvas.restore();
diff --git a/libs/hwui/tests/common/scenes/ShapeAnimation.cpp b/libs/hwui/tests/common/scenes/ShapeAnimation.cpp
index 5ef8773488b6..d44c3d5baa90 100644
--- a/libs/hwui/tests/common/scenes/ShapeAnimation.cpp
+++ b/libs/hwui/tests/common/scenes/ShapeAnimation.cpp
@@ -82,7 +82,7 @@ public:
int middleCount = canvas.save(SaveFlags::MatrixClip);
for (auto op : ops) {
int innerCount = canvas.save(SaveFlags::MatrixClip);
- canvas.clipRect(0, 0, cellSize, cellSize, SkRegion::kIntersect_Op);
+ canvas.clipRect(0, 0, cellSize, cellSize, kIntersect_SkClipOp);
canvas.drawColor(Color::White, SkBlendMode::kSrcOver);
op(canvas, cellSize, paint);
canvas.restoreToCount(innerCount);
diff --git a/libs/hwui/tests/microbench/DisplayListCanvasBench.cpp b/libs/hwui/tests/microbench/DisplayListCanvasBench.cpp
index bbaf267a5798..3ef0d1cf80df 100644
--- a/libs/hwui/tests/microbench/DisplayListCanvasBench.cpp
+++ b/libs/hwui/tests/microbench/DisplayListCanvasBench.cpp
@@ -177,7 +177,7 @@ void BM_DisplayListCanvas_basicViewGroupDraw(benchmark::State& benchState) {
// Clip to padding
// Can expect ~25% of views to have clip to padding with a non-null padding
int clipRestoreCount = canvas->save(SaveFlags::MatrixClip);
- canvas->clipRect(1, 1, 199, 199, SkRegion::kIntersect_Op);
+ canvas->clipRect(1, 1, 199, 199, kIntersect_SkClipOp);
canvas->insertReorderBarrier(true);
diff --git a/libs/hwui/tests/unit/CanvasStateTests.cpp b/libs/hwui/tests/unit/CanvasStateTests.cpp
index 0afabd83f5cc..7555fd4edd7a 100644
--- a/libs/hwui/tests/unit/CanvasStateTests.cpp
+++ b/libs/hwui/tests/unit/CanvasStateTests.cpp
@@ -23,7 +23,7 @@
#include <gtest/gtest.h>
#include <SkPath.h>
-#include <SkRegion.h>
+#include <SkClipOp.h>
namespace android {
namespace uirenderer {
@@ -68,13 +68,13 @@ TEST(CanvasState, simpleClipping) {
state.initializeSaveStack(200, 200,
0, 0, 200, 200, Vector3());
- state.clipRect(0, 0, 100, 100, SkRegion::kIntersect_Op);
+ state.clipRect(0, 0, 100, 100, kIntersect_SkClipOp);
ASSERT_EQ(state.getRenderTargetClipBounds(), Rect(100, 100));
- state.clipRect(10, 10, 200, 200, SkRegion::kIntersect_Op);
+ state.clipRect(10, 10, 200, 200, kIntersect_SkClipOp);
ASSERT_EQ(state.getRenderTargetClipBounds(), Rect(10, 10, 100, 100));
- state.clipRect(50, 50, 150, 150, SkRegion::kReplace_Op);
+ state.clipRect(50, 50, 150, 150, kReplace_SkClipOp);
ASSERT_EQ(state.getRenderTargetClipBounds(), Rect(50, 50, 150, 150));
}
@@ -88,7 +88,7 @@ TEST(CanvasState, complexClipping) {
// rotated clip causes complex clip
state.rotate(10);
EXPECT_TRUE(state.clipIsSimple());
- state.clipRect(0, 0, 200, 200, SkRegion::kIntersect_Op);
+ state.clipRect(0, 0, 200, 200, kIntersect_SkClipOp);
EXPECT_FALSE(state.clipIsSimple());
}
state.restore();
@@ -97,7 +97,7 @@ TEST(CanvasState, complexClipping) {
{
// subtracted clip causes complex clip
EXPECT_TRUE(state.clipIsSimple());
- state.clipRect(50, 50, 150, 150, SkRegion::kDifference_Op);
+ state.clipRect(50, 50, 150, 150, kDifference_SkClipOp);
EXPECT_FALSE(state.clipIsSimple());
}
state.restore();
@@ -108,7 +108,7 @@ TEST(CanvasState, complexClipping) {
SkPath path;
path.addOval(SkRect::MakeWH(200, 200));
EXPECT_TRUE(state.clipIsSimple());
- state.clipPath(&path, SkRegion::kDifference_Op);
+ state.clipPath(&path, kDifference_SkClipOp);
EXPECT_FALSE(state.clipIsSimple());
}
state.restore();
@@ -121,7 +121,7 @@ TEST(CanvasState, saveAndRestore) {
state.save(SaveFlags::Clip);
{
- state.clipRect(0, 0, 10, 10, SkRegion::kIntersect_Op);
+ state.clipRect(0, 0, 10, 10, kIntersect_SkClipOp);
ASSERT_EQ(state.getRenderTargetClipBounds(), Rect(10, 10));
}
state.restore();
@@ -145,7 +145,7 @@ TEST(CanvasState, saveAndRestoreButNotTooMuch) {
state.save(SaveFlags::Matrix); // NOTE: clip not saved
{
- state.clipRect(0, 0, 10, 10, SkRegion::kIntersect_Op);
+ state.clipRect(0, 0, 10, 10, kIntersect_SkClipOp);
ASSERT_EQ(state.getRenderTargetClipBounds(), Rect(10, 10));
}
state.restore();
diff --git a/libs/hwui/tests/unit/FrameBuilderTests.cpp b/libs/hwui/tests/unit/FrameBuilderTests.cpp
index a1c225f544dd..12622ffd8845 100644
--- a/libs/hwui/tests/unit/FrameBuilderTests.cpp
+++ b/libs/hwui/tests/unit/FrameBuilderTests.cpp
@@ -174,7 +174,7 @@ RENDERTHREAD_TEST(FrameBuilder, simpleRejection) {
auto node = TestUtils::createNode<RecordingCanvas>(0, 0, 200, 200,
[](RenderProperties& props, RecordingCanvas& canvas) {
canvas.save(SaveFlags::MatrixClip);
- canvas.clipRect(200, 200, 400, 400, SkRegion::kIntersect_Op); // intersection should be empty
+ canvas.clipRect(200, 200, 400, 400, kIntersect_SkClipOp); // intersection should be empty
canvas.drawRect(0, 0, 400, 400, SkPaint());
canvas.restore();
});
@@ -453,19 +453,19 @@ RENDERTHREAD_TEST(FrameBuilder, clippedMerging) {
sk_sp<Bitmap> bitmap(TestUtils::createBitmap(20, 20));
// left side clipped (to inset left half)
- canvas.clipRect(10, 0, 50, 100, SkRegion::kReplace_Op);
+ canvas.clipRect(10, 0, 50, 100, kReplace_SkClipOp);
canvas.drawBitmap(*bitmap, 0, 40, nullptr);
// top side clipped (to inset top half)
- canvas.clipRect(0, 10, 100, 50, SkRegion::kReplace_Op);
+ canvas.clipRect(0, 10, 100, 50, kReplace_SkClipOp);
canvas.drawBitmap(*bitmap, 40, 0, nullptr);
// right side clipped (to inset right half)
- canvas.clipRect(50, 0, 90, 100, SkRegion::kReplace_Op);
+ canvas.clipRect(50, 0, 90, 100, kReplace_SkClipOp);
canvas.drawBitmap(*bitmap, 80, 40, nullptr);
// bottom not clipped, just abutting (inset bottom half)
- canvas.clipRect(0, 50, 100, 90, SkRegion::kReplace_Op);
+ canvas.clipRect(0, 50, 100, 90, kReplace_SkClipOp);
canvas.drawBitmap(*bitmap, 40, 70, nullptr);
});
@@ -488,7 +488,7 @@ RENDERTHREAD_TEST(FrameBuilder, regionClipStopsMerge) {
SkPath path;
path.addCircle(200, 200, 200, SkPath::kCW_Direction);
canvas.save(SaveFlags::MatrixClip);
- canvas.clipPath(&path, SkRegion::kIntersect_Op);
+ canvas.clipPath(&path, kIntersect_SkClipOp);
SkPaint paint;
paint.setTextEncoding(SkPaint::kGlyphID_TextEncoding);
paint.setAntiAlias(true);
@@ -649,7 +649,7 @@ RENDERTHREAD_TEST(FrameBuilder, textureLayer_clipLocalMatrix) {
auto node = TestUtils::createNode<RecordingCanvas>(0, 0, 200, 200,
[&layerUpdater](RenderProperties& props, RecordingCanvas& canvas) {
canvas.save(SaveFlags::MatrixClip);
- canvas.clipRect(50, 50, 150, 150, SkRegion::kIntersect_Op);
+ canvas.clipRect(50, 50, 150, 150, kIntersect_SkClipOp);
canvas.drawLayer(layerUpdater.get());
canvas.restore();
});
@@ -973,7 +973,7 @@ RENDERTHREAD_TEST(FrameBuilder, saveLayer_contentRejection) {
auto node = TestUtils::createNode<RecordingCanvas>(0, 0, 200, 200,
[](RenderProperties& props, RecordingCanvas& canvas) {
canvas.save(SaveFlags::MatrixClip);
- canvas.clipRect(200, 200, 400, 400, SkRegion::kIntersect_Op);
+ canvas.clipRect(200, 200, 400, 400, kIntersect_SkClipOp);
canvas.saveLayerAlpha(200, 200, 400, 400, 128, SaveFlags::ClipToLayer);
// draw within save layer may still be recorded, but shouldn't be drawn
@@ -1781,7 +1781,7 @@ RENDERTHREAD_TEST(FrameBuilder, projectionChildScroll) {
auto child = TestUtils::createNode<RecordingCanvas>(0, 0, 400, 400,
[&projectingRipple](RenderProperties& properties, RecordingCanvas& canvas) {
// Record time clip will be ignored by projectee
- canvas.clipRect(100, 100, 300, 300, SkRegion::kIntersect_Op);
+ canvas.clipRect(100, 100, 300, 300, kIntersect_SkClipOp);
canvas.translate(-scrollX, -scrollY); // Apply scroll (note: bg undoes this internally)
canvas.drawRenderNode(projectingRipple.get());
@@ -1993,7 +1993,7 @@ RENDERTHREAD_TEST(FrameBuilder, shadowClipping) {
[](RenderProperties& props, RecordingCanvas& canvas) {
// Apply a clip before the reorder barrier/shadow casting child is drawn.
// This clip must be applied to the shadow cast by the child.
- canvas.clipRect(25, 25, 75, 75, SkRegion::kIntersect_Op);
+ canvas.clipRect(25, 25, 75, 75, kIntersect_SkClipOp);
canvas.insertReorderBarrier(true);
canvas.drawRenderNode(createWhiteRectShadowCaster(5.0f).get());
});
@@ -2252,7 +2252,7 @@ RENDERTHREAD_TEST(FrameBuilder, clip_replace) {
};
auto node = TestUtils::createNode<RecordingCanvas>(20, 20, 30, 30,
[](RenderProperties& props, RecordingCanvas& canvas) {
- canvas.clipRect(0, -20, 10, 30, SkRegion::kReplace_Op);
+ canvas.clipRect(0, -20, 10, 30, kReplace_SkClipOp);
canvas.drawColor(SK_ColorWHITE, SkBlendMode::kSrcOver);
});
diff --git a/libs/hwui/tests/unit/RecordingCanvasTests.cpp b/libs/hwui/tests/unit/RecordingCanvasTests.cpp
index dda432ea03ed..14fa5d643ae0 100644
--- a/libs/hwui/tests/unit/RecordingCanvasTests.cpp
+++ b/libs/hwui/tests/unit/RecordingCanvasTests.cpp
@@ -57,7 +57,7 @@ TEST(RecordingCanvas, emptyPlayback) {
TEST(RecordingCanvas, clipRect) {
auto dl = TestUtils::createDisplayList<RecordingCanvas>(100, 100, [](RecordingCanvas& canvas) {
canvas.save(SaveFlags::MatrixClip);
- canvas.clipRect(0, 0, 100, 100, SkRegion::kIntersect_Op);
+ canvas.clipRect(0, 0, 100, 100, kIntersect_SkClipOp);
canvas.drawRect(0, 0, 50, 50, SkPaint());
canvas.drawRect(50, 50, 100, 100, SkPaint());
canvas.restore();
@@ -73,8 +73,8 @@ TEST(RecordingCanvas, clipRect) {
TEST(RecordingCanvas, emptyClipRect) {
auto dl = TestUtils::createDisplayList<RecordingCanvas>(200, 200, [](RecordingCanvas& canvas) {
canvas.save(SaveFlags::MatrixClip);
- canvas.clipRect(0, 0, 100, 100, SkRegion::kIntersect_Op);
- canvas.clipRect(100, 100, 200, 200, SkRegion::kIntersect_Op);
+ canvas.clipRect(0, 0, 100, 100, kIntersect_SkClipOp);
+ canvas.clipRect(100, 100, 200, 200, kIntersect_SkClipOp);
canvas.drawRect(0, 0, 50, 50, SkPaint()); // rejected at record time
canvas.restore();
});
@@ -440,7 +440,7 @@ TEST(RecordingCanvas, saveLayer_simpleUnclipped) {
TEST(RecordingCanvas, saveLayer_addClipFlag) {
auto dl = TestUtils::createDisplayList<RecordingCanvas>(200, 200, [](RecordingCanvas& canvas) {
canvas.save(SaveFlags::MatrixClip);
- canvas.clipRect(10, 20, 190, 180, SkRegion::kIntersect_Op);
+ canvas.clipRect(10, 20, 190, 180, kIntersect_SkClipOp);
canvas.saveLayerAlpha(10, 20, 190, 180, 128, (SaveFlags::Flags)0); // unclipped
canvas.drawRect(10, 20, 190, 180, SkPaint());
canvas.restore();
@@ -459,7 +459,7 @@ TEST(RecordingCanvas, saveLayer_addClipFlag) {
TEST(RecordingCanvas, saveLayer_viewportCrop) {
auto dl = TestUtils::createDisplayList<RecordingCanvas>(200, 200, [](RecordingCanvas& canvas) {
// shouldn't matter, since saveLayer will clip to its bounds
- canvas.clipRect(-1000, -1000, 1000, 1000, SkRegion::kReplace_Op);
+ canvas.clipRect(-1000, -1000, 1000, 1000, kReplace_SkClipOp);
canvas.saveLayerAlpha(100, 100, 300, 300, 128, SaveFlags::ClipToLayer);
canvas.drawRect(0, 0, 400, 400, SkPaint());
@@ -549,7 +549,7 @@ TEST(RecordingCanvas, saveLayer_rejectBegin) {
canvas.save(SaveFlags::MatrixClip);
canvas.translate(0, -20); // avoid identity case
// empty clip rect should force layer + contents to be rejected
- canvas.clipRect(0, -20, 200, -20, SkRegion::kIntersect_Op);
+ canvas.clipRect(0, -20, 200, -20, kIntersect_SkClipOp);
canvas.saveLayerAlpha(0, 0, 200, 200, 128, SaveFlags::ClipToLayer);
canvas.drawRect(0, 0, 200, 200, SkPaint());
canvas.restore();
@@ -568,7 +568,7 @@ TEST(RecordingCanvas, drawRenderNode_rejection) {
});
auto dl = TestUtils::createDisplayList<RecordingCanvas>(200, 200, [&child](RecordingCanvas& canvas) {
- canvas.clipRect(0, 0, 0, 0, SkRegion::kIntersect_Op); // empty clip, reject node
+ canvas.clipRect(0, 0, 0, 0, kIntersect_SkClipOp); // empty clip, reject node
canvas.drawRenderNode(child.get()); // shouldn't crash when rejecting node...
});
ASSERT_TRUE(dl->isEmpty());
@@ -621,7 +621,7 @@ TEST(RecordingCanvas, firstClipWillReplace) {
auto dl = TestUtils::createDisplayList<RecordingCanvas>(200, 200, [](RecordingCanvas& canvas) {
canvas.save(SaveFlags::MatrixClip);
// since no explicit clip set on canvas, this should be the one observed on op:
- canvas.clipRect(-100, -100, 300, 300, SkRegion::kIntersect_Op);
+ canvas.clipRect(-100, -100, 300, 300, kIntersect_SkClipOp);
SkPaint paint;
paint.setColor(SK_ColorWHITE);
@@ -637,7 +637,7 @@ TEST(RecordingCanvas, firstClipWillReplace) {
TEST(RecordingCanvas, replaceClipIntersectWithRoot) {
auto dl = TestUtils::createDisplayList<RecordingCanvas>(100, 100, [](RecordingCanvas& canvas) {
canvas.save(SaveFlags::MatrixClip);
- canvas.clipRect(-10, -10, 110, 110, SkRegion::kReplace_Op);
+ canvas.clipRect(-10, -10, 110, 110, kReplace_SkClipOp);
canvas.drawColor(SK_ColorWHITE, SkBlendMode::kSrcOver);
canvas.restore();
});
@@ -675,7 +675,7 @@ TEST(RecordingCanvas, insertReorderBarrier_clip) {
canvas.drawRect(0, 0, 400, 400, SkPaint());
// second chunk: no recorded clip, since inorder region
- canvas.clipRect(0, 0, 200, 200, SkRegion::kIntersect_Op);
+ canvas.clipRect(0, 0, 200, 200, kIntersect_SkClipOp);
canvas.insertReorderBarrier(false);
canvas.drawRect(0, 0, 400, 400, SkPaint());
diff --git a/libs/hwui/tests/unit/RenderNodeDrawableTests.cpp b/libs/hwui/tests/unit/RenderNodeDrawableTests.cpp
index f4b686d3b1e2..7c149520f909 100644
--- a/libs/hwui/tests/unit/RenderNodeDrawableTests.cpp
+++ b/libs/hwui/tests/unit/RenderNodeDrawableTests.cpp
@@ -469,7 +469,7 @@ RENDERTHREAD_TEST(RenderNodeDrawable, projectionChildScroll) {
auto child = TestUtils::createSkiaNode(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT,
[&projectingRipple](RenderProperties& properties, SkiaRecordingCanvas& canvas) {
// Record time clip will be ignored by projectee
- canvas.clipRect(100, 100, 300, 300, SkRegion::kIntersect_Op);
+ canvas.clipRect(100, 100, 300, 300, kIntersect_SkClipOp);
canvas.translate(-SCROLL_X, -SCROLL_Y); // Apply scroll (note: bg undoes this internally)
canvas.drawRenderNode(projectingRipple.get());
diff --git a/libs/hwui/utils/TestWindowContext.cpp b/libs/hwui/utils/TestWindowContext.cpp
index fa3e13dd71ba..598cd1ef6ae7 100644
--- a/libs/hwui/utils/TestWindowContext.cpp
+++ b/libs/hwui/utils/TestWindowContext.cpp
@@ -93,8 +93,7 @@ public:
SkCanvas* prepareToDraw() {
//mCanvas->reset(mSize.width(), mSize.height());
- mCanvas->clipRect(0, 0, mSize.width(), mSize.height(),
- SkRegion::Op::kReplace_Op);
+ mCanvas->clipRect(0, 0, mSize.width(), mSize.height(), kReplace_SkClipOp);
return mCanvas->asSkCanvas();
}
diff --git a/packages/SystemUI/res/drawable/ic_brightness_thumb.xml b/packages/SystemUI/res/drawable/ic_brightness_thumb.xml
index 24ac0184a551..604e91814491 100644
--- a/packages/SystemUI/res/drawable/ic_brightness_thumb.xml
+++ b/packages/SystemUI/res/drawable/ic_brightness_thumb.xml
@@ -22,6 +22,6 @@ Copyright (C) 2014 The Android Open Source Project
android:pathData="m18.250000,12.000000a6.250000,6.250000 0.000000,1.000000 1.000000,-12.500000 0.000000,6.250000 6.250000,0.000000 1.000000,1.000000 12.500000,0.000000z"
android:fillColor="?android:attr/colorPrimary" />
<path
- android:fillColor="#FFFFFFFF"
+ android:fillColor="?android:attr/colorControlNormal"
android:pathData="M20.000000,8.700000L20.000000,4.000000L15.300000,4.000000L12.000000,0.700000 8.700000,4.000000L4.000000,4.000000L4.000000,8.700000L0.700000,12.000000 4.000000,15.300000L4.000000,20.000000L8.700000,20.000000L12.000000,23.299999 15.300000,20.000000L20.000000,20.000000L20.000000,15.300000L23.299999,12.000000 20.000000,8.700000zM12.000000,18.000000C8.700000,18.000000 6.000000,15.300000 6.000000,12.000000 6.000000,8.700000 8.700000,6.000000 12.000000,6.000000c3.300000,0.000000 6.000000,2.700000 6.000000,6.000000 0.000000,3.300000 -2.700000,6.000000 -6.000000,6.000000zM12.000000,8.000000c-2.200000,0.000000 -4.000000,1.800000 -4.000000,4.000000 0.000000,2.200000 1.800000,4.000000 4.000000,4.000000 2.200000,0.000000 4.000000,-1.800000 4.000000,-4.000000 0.000000,-2.200000 -1.800000,-4.000000 -4.000000,-4.000000z"/>
</vector>
diff --git a/packages/SystemUI/res/drawable/ic_invert_colors_disable.xml b/packages/SystemUI/res/drawable/ic_invert_colors_disable.xml
index f901e86ed4cc..49ee48b41d89 100644
--- a/packages/SystemUI/res/drawable/ic_invert_colors_disable.xml
+++ b/packages/SystemUI/res/drawable/ic_invert_colors_disable.xml
@@ -20,7 +20,8 @@
android:height="48dp"
android:width="48dp"
android:viewportHeight="48"
- android:viewportWidth="48" >
+ android:viewportWidth="48"
+ android:tint="?android:attr/colorControlNormal" >
<group
android:name="icon"
android:translateX="21.9995"
diff --git a/packages/SystemUI/res/drawable/ic_invert_colors_enable.xml b/packages/SystemUI/res/drawable/ic_invert_colors_enable.xml
index 994cf8c67990..5aecebae1865 100644
--- a/packages/SystemUI/res/drawable/ic_invert_colors_enable.xml
+++ b/packages/SystemUI/res/drawable/ic_invert_colors_enable.xml
@@ -20,7 +20,8 @@
android:height="48dp"
android:width="48dp"
android:viewportHeight="48"
- android:viewportWidth="48" >
+ android:viewportWidth="48"
+ android:tint="?android:attr/colorControlNormal" >
<group
android:name="icon"
android:translateX="21.9995"
diff --git a/packages/SystemUI/res/drawable/ic_landscape_from_auto_rotate.xml b/packages/SystemUI/res/drawable/ic_landscape_from_auto_rotate.xml
index bc545bae6e5b..8b2585bb9958 100644
--- a/packages/SystemUI/res/drawable/ic_landscape_from_auto_rotate.xml
+++ b/packages/SystemUI/res/drawable/ic_landscape_from_auto_rotate.xml
@@ -18,7 +18,8 @@
android:height="48dp"
android:width="48dp"
android:viewportHeight="48"
- android:viewportWidth="48" >
+ android:viewportWidth="48"
+ android:tint="?android:attr/colorControlNormal" >
<group
android:name="ic_screen_rotation_48px_outlines"
android:translateX="24"
diff --git a/packages/SystemUI/res/drawable/ic_landscape_to_auto_rotate.xml b/packages/SystemUI/res/drawable/ic_landscape_to_auto_rotate.xml
index 0bd75d1871ae..603d0bfd11bc 100644
--- a/packages/SystemUI/res/drawable/ic_landscape_to_auto_rotate.xml
+++ b/packages/SystemUI/res/drawable/ic_landscape_to_auto_rotate.xml
@@ -18,7 +18,8 @@
android:height="48dp"
android:width="48dp"
android:viewportHeight="48"
- android:viewportWidth="48" >
+ android:viewportWidth="48"
+ android:tint="?android:attr/colorControlNormal" >
<group
android:name="ic_screen_rotation_48px_outlines"
android:translateX="24"
diff --git a/packages/SystemUI/res/drawable/ic_portrait_from_auto_rotate.xml b/packages/SystemUI/res/drawable/ic_portrait_from_auto_rotate.xml
index 0ac6795ce31b..17185a7c36b0 100644
--- a/packages/SystemUI/res/drawable/ic_portrait_from_auto_rotate.xml
+++ b/packages/SystemUI/res/drawable/ic_portrait_from_auto_rotate.xml
@@ -18,7 +18,8 @@
android:height="48dp"
android:width="48dp"
android:viewportHeight="48"
- android:viewportWidth="48" >
+ android:viewportWidth="48"
+ android:tint="?android:attr/colorControlNormal" >
<group
android:name="icon"
android:translateX="24"
diff --git a/packages/SystemUI/res/drawable/ic_portrait_to_auto_rotate.xml b/packages/SystemUI/res/drawable/ic_portrait_to_auto_rotate.xml
index 0cca6e30fabc..88bf486be459 100644
--- a/packages/SystemUI/res/drawable/ic_portrait_to_auto_rotate.xml
+++ b/packages/SystemUI/res/drawable/ic_portrait_to_auto_rotate.xml
@@ -18,7 +18,8 @@
android:height="48dp"
android:width="48dp"
android:viewportHeight="48"
- android:viewportWidth="48" >
+ android:viewportWidth="48"
+ android:tint="?android:attr/colorControlNormal" >
<group
android:name="icon"
android:translateX="24"
diff --git a/packages/SystemUI/res/drawable/ic_qs_bluetooth_connected.xml b/packages/SystemUI/res/drawable/ic_qs_bluetooth_connected.xml
index 0c65389349ae..8a3e9756ef65 100644
--- a/packages/SystemUI/res/drawable/ic_qs_bluetooth_connected.xml
+++ b/packages/SystemUI/res/drawable/ic_qs_bluetooth_connected.xml
@@ -17,7 +17,8 @@ Copyright (C) 2014 The Android Open Source Project
android:width="64dp"
android:height="64dp"
android:viewportWidth="48.0"
- android:viewportHeight="48.0">
+ android:viewportHeight="48.0"
+ android:tint="?android:attr/colorControlNormal">
<path
android:fillColor="#FFFFFFFF"
diff --git a/packages/SystemUI/res/drawable/ic_qs_bluetooth_connecting.xml b/packages/SystemUI/res/drawable/ic_qs_bluetooth_connecting.xml
index b9a315cd74e3..1dadc059457a 100644
--- a/packages/SystemUI/res/drawable/ic_qs_bluetooth_connecting.xml
+++ b/packages/SystemUI/res/drawable/ic_qs_bluetooth_connecting.xml
@@ -17,7 +17,8 @@ Copyright (C) 2014 The Android Open Source Project
android:width="64dp"
android:height="64dp"
android:viewportWidth="48.0"
- android:viewportHeight="48.0">
+ android:viewportHeight="48.0"
+ android:tint="?android:attr/colorControlNormal">
<path
android:fillColor="#FFFFFFFF"
diff --git a/packages/SystemUI/res/drawable/ic_qs_bluetooth_detail_empty.xml b/packages/SystemUI/res/drawable/ic_qs_bluetooth_detail_empty.xml
index dd92126a6dc7..435bb9b81116 100644
--- a/packages/SystemUI/res/drawable/ic_qs_bluetooth_detail_empty.xml
+++ b/packages/SystemUI/res/drawable/ic_qs_bluetooth_detail_empty.xml
@@ -17,7 +17,8 @@ Copyright (C) 2014 The Android Open Source Project
android:width="56dp"
android:height="56dp"
android:viewportWidth="48.0"
- android:viewportHeight="48.0">
+ android:viewportHeight="48.0"
+ android:tint="?android:attr/colorControlNormal">
<path
android:fillColor="@color/qs_detail_empty"
diff --git a/packages/SystemUI/res/drawable/ic_qs_bluetooth_off.xml b/packages/SystemUI/res/drawable/ic_qs_bluetooth_off.xml
index 0cb1f32acb39..36eb418757df 100644
--- a/packages/SystemUI/res/drawable/ic_qs_bluetooth_off.xml
+++ b/packages/SystemUI/res/drawable/ic_qs_bluetooth_off.xml
@@ -17,7 +17,8 @@ Copyright (C) 2014 The Android Open Source Project
android:width="64dp"
android:height="64dp"
android:viewportWidth="48.0"
- android:viewportHeight="48.0">
+ android:viewportHeight="48.0"
+ android:tint="?android:attr/colorControlNormal">
<path
android:fillColor="#4DFFFFFF"
diff --git a/packages/SystemUI/res/drawable/ic_qs_bluetooth_on.xml b/packages/SystemUI/res/drawable/ic_qs_bluetooth_on.xml
index 9a68dad159ef..2e9e741c05b8 100644
--- a/packages/SystemUI/res/drawable/ic_qs_bluetooth_on.xml
+++ b/packages/SystemUI/res/drawable/ic_qs_bluetooth_on.xml
@@ -17,7 +17,8 @@ Copyright (C) 2014 The Android Open Source Project
android:width="64dp"
android:height="64dp"
android:viewportWidth="48.0"
- android:viewportHeight="48.0">
+ android:viewportHeight="48.0"
+ android:tint="?android:attr/colorControlNormal">
<path
android:fillColor="#FFFFFFFF"
diff --git a/packages/SystemUI/res/drawable/ic_qs_cast_off.xml b/packages/SystemUI/res/drawable/ic_qs_cast_off.xml
index 80517958dac2..0fdbe1f06fc7 100644
--- a/packages/SystemUI/res/drawable/ic_qs_cast_off.xml
+++ b/packages/SystemUI/res/drawable/ic_qs_cast_off.xml
@@ -17,7 +17,8 @@ Copyright (C) 2014 The Android Open Source Project
android:width="64dp"
android:height="64dp"
android:viewportWidth="48.0"
- android:viewportHeight="48.0">
+ android:viewportHeight="48.0"
+ android:tint="?android:attr/colorControlNormal">
<path
android:fillColor="#4DFFFFFF"
diff --git a/packages/SystemUI/res/drawable/ic_qs_cast_on.xml b/packages/SystemUI/res/drawable/ic_qs_cast_on.xml
index 794eb9e6bd58..d2e9eb2feaaa 100644
--- a/packages/SystemUI/res/drawable/ic_qs_cast_on.xml
+++ b/packages/SystemUI/res/drawable/ic_qs_cast_on.xml
@@ -17,7 +17,8 @@ Copyright (C) 2014 The Android Open Source Project
android:width="64dp"
android:height="64dp"
android:viewportWidth="48.0"
- android:viewportHeight="48.0">
+ android:viewportHeight="48.0"
+ android:tint="?android:attr/colorControlNormal">
<path
android:fillColor="#FFFFFFFF"
diff --git a/packages/SystemUI/res/drawable/ic_qs_dnd_off.xml b/packages/SystemUI/res/drawable/ic_qs_dnd_off.xml
index 28d2e26a2a35..164a5577fa42 100644
--- a/packages/SystemUI/res/drawable/ic_qs_dnd_off.xml
+++ b/packages/SystemUI/res/drawable/ic_qs_dnd_off.xml
@@ -18,7 +18,8 @@ Copyright (C) 2015 The Android Open Source Project
android:viewportHeight="24.0"
android:viewportWidth="24.0"
android:alpha=".3"
- android:width="64dp" >
+ android:width="64dp"
+ android:tint="?android:attr/colorControlNormal" >
<path
android:fillColor="#FFFFFFFF"
diff --git a/packages/SystemUI/res/drawable/ic_qs_dnd_on.xml b/packages/SystemUI/res/drawable/ic_qs_dnd_on.xml
index f4c20a9f823a..7e2eca86b410 100644
--- a/packages/SystemUI/res/drawable/ic_qs_dnd_on.xml
+++ b/packages/SystemUI/res/drawable/ic_qs_dnd_on.xml
@@ -17,7 +17,8 @@
android:width="64dp"
android:height="64dp"
android:viewportWidth="48.0"
- android:viewportHeight="48.0">
+ android:viewportHeight="48.0"
+ android:tint="?android:attr/colorControlNormal">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M24.0,4.0C12.95,4.0 4.0,12.95 4.0,24.0s8.95,20.0 20.0,20.0 20.0,-8.95 20.0,-20.0S35.05,4.0 24.0,4.0zm10.0,22.0L14.0,26.0l0.0,-4.0l20.0,0.0l0.0,4.0z"/>
diff --git a/packages/SystemUI/res/drawable/ic_qs_dnd_on_total_silence.xml b/packages/SystemUI/res/drawable/ic_qs_dnd_on_total_silence.xml
index fb26c096f9dc..5f4fa11b66ea 100644
--- a/packages/SystemUI/res/drawable/ic_qs_dnd_on_total_silence.xml
+++ b/packages/SystemUI/res/drawable/ic_qs_dnd_on_total_silence.xml
@@ -17,7 +17,8 @@
android:width="64dp"
android:height="64dp"
android:viewportWidth="24.0"
- android:viewportHeight="24.0">
+ android:viewportHeight="24.0"
+ android:tint="?android:attr/colorControlNormal">
<path
android:fillColor="#FFFFFFFF"
diff --git a/packages/SystemUI/res/drawable/ic_qs_night_display_off.xml b/packages/SystemUI/res/drawable/ic_qs_night_display_off.xml
index 778ccbc5f4a4..b99dc0316bf9 100644
--- a/packages/SystemUI/res/drawable/ic_qs_night_display_off.xml
+++ b/packages/SystemUI/res/drawable/ic_qs_night_display_off.xml
@@ -18,10 +18,11 @@
android:height="64dp"
android:viewportWidth="24"
android:viewportHeight="24"
- android:alpha="0.3">
+ android:alpha="0.3"
+ android:tint="?android:attr/colorControlNormal">
<path
- android:fillColor="#FFF"
+ android:fillColor="#FFFFFF"
android:pathData="M6,12c0,5.5,4.5,10,10,10c1,0,2-0.2,3-0.5c-4.1-1.3-7-5.1-7-9.5s2.9-8.3,7-9.5C18.1,2.2,17.1,2,16,2C10.5,2,6,6.5,6,12z" />
</vector>
diff --git a/packages/SystemUI/res/drawable/ic_qs_night_display_on.xml b/packages/SystemUI/res/drawable/ic_qs_night_display_on.xml
index aaca663e59e9..d875592dfd87 100644
--- a/packages/SystemUI/res/drawable/ic_qs_night_display_on.xml
+++ b/packages/SystemUI/res/drawable/ic_qs_night_display_on.xml
@@ -17,10 +17,11 @@
android:width="64dp"
android:height="64dp"
android:viewportWidth="24"
- android:viewportHeight="24">
+ android:viewportHeight="24"
+ android:tint="?android:attr/colorControlNormal">
<path
- android:fillColor="#FFF"
+ android:fillColor="#FFFFFF"
android:pathData="M6,12c0,5.5,4.5,10,10,10c1,0,2-0.2,3-0.5c-4.1-1.3-7-5.1-7-9.5s2.9-8.3,7-9.5C18.1,2.2,17.1,2,16,2C10.5,2,6,6.5,6,12z" />
</vector>
diff --git a/packages/SystemUI/res/drawable/ic_qs_signal_in.xml b/packages/SystemUI/res/drawable/ic_qs_signal_in.xml
index 236fdac09c4b..4122b76da01a 100644
--- a/packages/SystemUI/res/drawable/ic_qs_signal_in.xml
+++ b/packages/SystemUI/res/drawable/ic_qs_signal_in.xml
@@ -17,7 +17,8 @@ Copyright (C) 2014 The Android Open Source Project
android:width="6.0dp"
android:height="32dp"
android:viewportWidth="6.0"
- android:viewportHeight="24.0">
+ android:viewportHeight="24.0"
+ android:tint="?android:attr/colorControlNormal">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M6.000000,15.700000l-3.000000,5.599999 -3.000000,-5.599999z"/>
diff --git a/packages/SystemUI/res/drawable/ic_qs_signal_out.xml b/packages/SystemUI/res/drawable/ic_qs_signal_out.xml
index c510972a5df8..a3823ae08375 100644
--- a/packages/SystemUI/res/drawable/ic_qs_signal_out.xml
+++ b/packages/SystemUI/res/drawable/ic_qs_signal_out.xml
@@ -17,7 +17,8 @@ Copyright (C) 2014 The Android Open Source Project
android:width="6.0dp"
android:height="32dp"
android:viewportWidth="6.0"
- android:viewportHeight="24.0">
+ android:viewportHeight="24.0"
+ android:tint="?android:attr/colorControlNormal">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M0.000000,13.700000l3.000000,-5.700000 3.000000,5.700000z"/>
diff --git a/packages/SystemUI/res/drawable/ic_qs_wifi_0.xml b/packages/SystemUI/res/drawable/ic_qs_wifi_0.xml
index e6f929265709..fe963b153ffa 100644
--- a/packages/SystemUI/res/drawable/ic_qs_wifi_0.xml
+++ b/packages/SystemUI/res/drawable/ic_qs_wifi_0.xml
@@ -17,7 +17,8 @@
android:width="24.0dp"
android:height="24.0dp"
android:viewportWidth="24.0"
- android:viewportHeight="24.0">
+ android:viewportHeight="24.0"
+ android:tint="?android:attr/colorControlNormal">
<path
android:pathData="M13.8,12.2l5.7,0.0L23.6,7.0C23.2,6.7 18.7,3.0 12.0,3.0C5.3,3.0 0.8,6.7 0.4,7.0L12.0,21.5l0.0,0.0l0.0,0.0l1.8,-2.2L13.8,12.2z"
android:fillAlpha="0.3"
diff --git a/packages/SystemUI/res/drawable/ic_qs_wifi_1.xml b/packages/SystemUI/res/drawable/ic_qs_wifi_1.xml
index d423ccb2d5e2..82d2be2ea032 100644
--- a/packages/SystemUI/res/drawable/ic_qs_wifi_1.xml
+++ b/packages/SystemUI/res/drawable/ic_qs_wifi_1.xml
@@ -17,7 +17,8 @@
android:width="24.0dp"
android:height="24.0dp"
android:viewportWidth="24.0"
- android:viewportHeight="24.0">
+ android:viewportHeight="24.0"
+ android:tint="?android:attr/colorControlNormal">
<path
android:pathData="M13.8,13.2c-0.1,0.0 -0.3,-0.1 -0.4,-0.1c-0.1,0.0 -0.3,0.0 -0.4,-0.1c-0.3,0.0 -0.6,-0.1 -0.9,-0.1c0.0,0.0 0.0,0.0 -0.1,0.0c0.0,0.0 0.0,0.0 0.0,0.0s0.0,0.0 0.0,0.0c0.0,0.0 0.0,0.0 -0.1,0.0c-0.3,0.0 -0.6,0.0 -0.9,0.1c-0.1,0.0 -0.3,0.0 -0.4,0.1c-0.2,0.0 -0.3,0.1 -0.5,0.1c-0.2,0.0 -0.3,0.1 -0.5,0.1c-0.1,0.0 -0.1,0.0 -0.2,0.1c-1.6,0.5 -2.7,1.3 -2.8,1.5l5.3,6.6l0.0,0.0l0.0,0.0l0.0,0.0l0.0,0.0l1.8,-2.2L13.700002,13.2z"
android:fillColor="#FFFFFF"/>
diff --git a/packages/SystemUI/res/drawable/ic_qs_wifi_2.xml b/packages/SystemUI/res/drawable/ic_qs_wifi_2.xml
index 1982130fb1c6..f30ba7620455 100644
--- a/packages/SystemUI/res/drawable/ic_qs_wifi_2.xml
+++ b/packages/SystemUI/res/drawable/ic_qs_wifi_2.xml
@@ -17,7 +17,8 @@
android:width="24.0dp"
android:height="24.0dp"
android:viewportWidth="24.0"
- android:viewportHeight="24.0">
+ android:viewportHeight="24.0"
+ android:tint="?android:attr/colorControlNormal">
<path
android:pathData="M13.8,12.2l4.9,0.0c-1.0,-0.7 -3.4,-2.2 -6.7,-2.2c-4.1,0.0 -6.9,2.2 -7.2,2.5l7.2,9.0l0.0,0.0l0.0,0.0l1.8,-2.2L13.800001,12.2z"
android:fillColor="#FFFFFF"/>
diff --git a/packages/SystemUI/res/drawable/ic_qs_wifi_3.xml b/packages/SystemUI/res/drawable/ic_qs_wifi_3.xml
index b35011181a86..8a17083d0148 100644
--- a/packages/SystemUI/res/drawable/ic_qs_wifi_3.xml
+++ b/packages/SystemUI/res/drawable/ic_qs_wifi_3.xml
@@ -17,7 +17,8 @@
android:width="24.0dp"
android:height="24.0dp"
android:viewportWidth="24.0"
- android:viewportHeight="24.0">
+ android:viewportHeight="24.0"
+ android:tint="?android:attr/colorControlNormal">
<path
android:pathData="M13.8,12.2l5.7,0.0l1.0,-1.2C20.0,10.6 16.8,8.0 12.0,8.0s-8.0,2.6 -8.5,3.0L12.0,21.5l0.0,0.0l0.0,0.0l1.8,-2.2L13.8,12.2z"
android:fillColor="#FFFFFF"/>
diff --git a/packages/SystemUI/res/drawable/ic_qs_wifi_4.xml b/packages/SystemUI/res/drawable/ic_qs_wifi_4.xml
index 136a00435430..fcd57d0b4de8 100644
--- a/packages/SystemUI/res/drawable/ic_qs_wifi_4.xml
+++ b/packages/SystemUI/res/drawable/ic_qs_wifi_4.xml
@@ -17,7 +17,8 @@
android:width="24.0dp"
android:height="24.0dp"
android:viewportWidth="24.0"
- android:viewportHeight="24.0">
+ android:viewportHeight="24.0"
+ android:tint="?android:attr/colorControlNormal">
<path
android:pathData="M13.8,12.2l5.7,0.0L23.6,7.0C23.2,6.7 18.7,3.0 12.0,3.0C5.3,3.0 0.8,6.7 0.4,7.0L12.0,21.5l0.0,0.0l0.0,0.0l1.8,-2.2L13.8,12.2z"
android:fillColor="#FFFFFF"/>
diff --git a/packages/SystemUI/res/drawable/ic_qs_wifi_detail_empty.xml b/packages/SystemUI/res/drawable/ic_qs_wifi_detail_empty.xml
index ad6b247490d1..a7889ab7786a 100644
--- a/packages/SystemUI/res/drawable/ic_qs_wifi_detail_empty.xml
+++ b/packages/SystemUI/res/drawable/ic_qs_wifi_detail_empty.xml
@@ -17,7 +17,8 @@ Copyright (C) 2014 The Android Open Source Project
android:width="56dp"
android:height="56dp"
android:viewportWidth="48.0"
- android:viewportHeight="48.0">
+ android:viewportHeight="48.0"
+ android:tint="?android:attr/colorControlNormal">
<path
android:pathData="M24.0,4.0C15.0,4.0 6.7,7.0 0.0,12.0l24.0,32.0l24.0,-32.0C41.3,7.0 33.0,4.0 24.0,4.0z"
diff --git a/packages/SystemUI/res/drawable/ic_qs_wifi_disabled.xml b/packages/SystemUI/res/drawable/ic_qs_wifi_disabled.xml
index c5057836dd6c..bbff2e15ea35 100644
--- a/packages/SystemUI/res/drawable/ic_qs_wifi_disabled.xml
+++ b/packages/SystemUI/res/drawable/ic_qs_wifi_disabled.xml
@@ -17,7 +17,8 @@ Copyright (C) 2014 The Android Open Source Project
android:width="32.0dp"
android:height="29.5dp"
android:viewportWidth="26.0"
- android:viewportHeight="24.0">
+ android:viewportHeight="24.0"
+ android:tint="?android:attr/colorControlNormal">
<path
android:fillColor="#4DFFFFFF"
android:pathData="M17.500000,16.500000L5.800000,3.400000c0.000000,0.000000 0.000000,0.000000 0.000000,0.000000l-2.700000,-3.000000L1.600000,1.800000l2.200000,2.500000c-2.000000,1.000000 -3.200000,2.000000 -3.400000,2.200000L13.000000,22.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l3.200000,-3.900000l2.400000,2.700000l1.500000,-1.400000L17.500000,16.500000L17.500000,16.500000z"/>
diff --git a/packages/SystemUI/res/drawable/ic_qs_wifi_disconnected.xml b/packages/SystemUI/res/drawable/ic_qs_wifi_disconnected.xml
index 2dcdb71194d1..071892a54698 100644
--- a/packages/SystemUI/res/drawable/ic_qs_wifi_disconnected.xml
+++ b/packages/SystemUI/res/drawable/ic_qs_wifi_disconnected.xml
@@ -17,7 +17,8 @@
android:width="26.0dp"
android:height="24.0dp"
android:viewportWidth="26.0"
- android:viewportHeight="24.0">
+ android:viewportHeight="24.0"
+ android:tint="?android:attr/colorControlNormal">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M21.0,8.5
diff --git a/packages/SystemUI/res/drawable/ic_qs_wifi_full_0.xml b/packages/SystemUI/res/drawable/ic_qs_wifi_full_0.xml
index 1bc743816bef..c0e1037bd128 100644
--- a/packages/SystemUI/res/drawable/ic_qs_wifi_full_0.xml
+++ b/packages/SystemUI/res/drawable/ic_qs_wifi_full_0.xml
@@ -17,7 +17,8 @@ Copyright (C) 2014 The Android Open Source Project
android:width="32.0dp"
android:height="29.5dp"
android:viewportWidth="26.0"
- android:viewportHeight="24.0">
+ android:viewportHeight="24.0"
+ android:tint="?android:attr/colorControlNormal">
<path
android:fillColor="#4DFFFFFF"
android:pathData="M13.000000,22.000000L25.600000,6.500000C25.100000,6.100000 20.299999,2.100000 13.000000,2.100000S0.900000,6.100000 0.400000,6.500000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000z"/>
diff --git a/packages/SystemUI/res/drawable/ic_qs_wifi_full_1.xml b/packages/SystemUI/res/drawable/ic_qs_wifi_full_1.xml
index 58561159e6a9..f6092955a35d 100644
--- a/packages/SystemUI/res/drawable/ic_qs_wifi_full_1.xml
+++ b/packages/SystemUI/res/drawable/ic_qs_wifi_full_1.xml
@@ -17,7 +17,8 @@ Copyright (C) 2014 The Android Open Source Project
android:width="32.0dp"
android:height="29.5dp"
android:viewportWidth="26.0"
- android:viewportHeight="24.0">
+ android:viewportHeight="24.0"
+ android:tint="?android:attr/colorControlNormal">
<path
android:fillColor="#4DFFFFFF"
android:pathData="M13.100000,22.000000L25.600000,6.500000C25.100000,6.100000 20.299999,2.100000 13.000000,2.100000S0.900000,6.100000 0.500000,6.500000L13.100000,22.000000L13.100000,22.000000L13.100000,22.000000L13.100000,22.000000L13.100000,22.000000z"/>
diff --git a/packages/SystemUI/res/drawable/ic_qs_wifi_full_2.xml b/packages/SystemUI/res/drawable/ic_qs_wifi_full_2.xml
index 4a5e1f8fa1b1..f44b303d1b81 100644
--- a/packages/SystemUI/res/drawable/ic_qs_wifi_full_2.xml
+++ b/packages/SystemUI/res/drawable/ic_qs_wifi_full_2.xml
@@ -17,7 +17,8 @@ Copyright (C) 2014 The Android Open Source Project
android:width="32.0dp"
android:height="29.5dp"
android:viewportWidth="26.0"
- android:viewportHeight="24.0">
+ android:viewportHeight="24.0"
+ android:tint="?android:attr/colorControlNormal">
<path
android:fillColor="#4DFFFFFF"
android:pathData="M13.000000,22.000000L25.600000,6.500000C25.100000,6.100000 20.299999,2.100000 13.000000,2.100000S0.900000,6.100000 0.400000,6.500000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000z"/>
diff --git a/packages/SystemUI/res/drawable/ic_qs_wifi_full_3.xml b/packages/SystemUI/res/drawable/ic_qs_wifi_full_3.xml
index 965442d4c263..850f5b90afc3 100644
--- a/packages/SystemUI/res/drawable/ic_qs_wifi_full_3.xml
+++ b/packages/SystemUI/res/drawable/ic_qs_wifi_full_3.xml
@@ -17,7 +17,8 @@ Copyright (C) 2014 The Android Open Source Project
android:width="32.0dp"
android:height="29.5dp"
android:viewportWidth="26.0"
- android:viewportHeight="24.0">
+ android:viewportHeight="24.0"
+ android:tint="?android:attr/colorControlNormal">
<path
android:fillColor="#4DFFFFFF"
android:pathData="M13.000000,22.000000L25.600000,6.500000C25.100000,6.100000 20.299999,2.100000 13.000000,2.100000S0.900000,6.100000 0.400000,6.500000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000z"/>
diff --git a/packages/SystemUI/res/drawable/ic_qs_wifi_full_4.xml b/packages/SystemUI/res/drawable/ic_qs_wifi_full_4.xml
index b29d3f932b62..8ccc1fd91968 100644
--- a/packages/SystemUI/res/drawable/ic_qs_wifi_full_4.xml
+++ b/packages/SystemUI/res/drawable/ic_qs_wifi_full_4.xml
@@ -17,7 +17,8 @@ Copyright (C) 2014 The Android Open Source Project
android:width="32.0dp"
android:height="29.5dp"
android:viewportWidth="26.0"
- android:viewportHeight="24.0">
+ android:viewportHeight="24.0"
+ android:tint="?android:attr/colorControlNormal">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M13.000000,22.000000L25.600000,6.500000C25.100000,6.100000 20.299999,2.100000 13.000000,2.100000S0.900000,6.100000 0.400000,6.500000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000z"/>
diff --git a/packages/SystemUI/res/drawable/ic_qs_wifi_no_network.xml b/packages/SystemUI/res/drawable/ic_qs_wifi_no_network.xml
index 3d588693e2d5..45cfc1c57b82 100644
--- a/packages/SystemUI/res/drawable/ic_qs_wifi_no_network.xml
+++ b/packages/SystemUI/res/drawable/ic_qs_wifi_no_network.xml
@@ -17,7 +17,8 @@ Copyright (C) 2014 The Android Open Source Project
android:width="32.0dp"
android:height="29.5dp"
android:viewportWidth="26.0"
- android:viewportHeight="24.0">
+ android:viewportHeight="24.0"
+ android:tint="?android:attr/colorControlNormal">
<path
android:fillColor="#4DFFFFFF"
android:pathData="M13.000000,2.000000C7.700000,2.000000 3.700000,3.900000 0.400000,6.400000L13.000000,22.000000L25.600000,6.500000C22.299999,4.000000 18.299999,2.000000 13.000000,2.000000zM13.000000,18.600000L3.300000,7.000000l0.000000,0.000000l0.000000,0.000000C6.000000,5.300000 8.700000,4.000000 13.000000,4.000000s7.000000,1.400000 9.700000,3.000000l0.000000,0.000000l0.000000,0.000000L13.000000,18.600000z"/>
diff --git a/packages/SystemUI/res/drawable/ic_signal_flashlight_disable.xml b/packages/SystemUI/res/drawable/ic_signal_flashlight_disable.xml
index 35844b72b9ec..542797a080c4 100644
--- a/packages/SystemUI/res/drawable/ic_signal_flashlight_disable.xml
+++ b/packages/SystemUI/res/drawable/ic_signal_flashlight_disable.xml
@@ -20,7 +20,8 @@
android:height="48dp"
android:width="48dp"
android:viewportHeight="48"
- android:viewportWidth="48" >
+ android:viewportWidth="48"
+ android:tint="?android:attr/colorControlNormal" >
<group
android:name="ic_signal_flashlight"
android:translateX="21.9995"
diff --git a/packages/SystemUI/res/drawable/ic_signal_flashlight_enable.xml b/packages/SystemUI/res/drawable/ic_signal_flashlight_enable.xml
index d53608f53ec4..a5ba05bcfecb 100644
--- a/packages/SystemUI/res/drawable/ic_signal_flashlight_enable.xml
+++ b/packages/SystemUI/res/drawable/ic_signal_flashlight_enable.xml
@@ -20,7 +20,8 @@
android:height="48dp"
android:width="48dp"
android:viewportHeight="48"
- android:viewportWidth="48" >
+ android:viewportWidth="48"
+ android:tint="?android:attr/colorControlNormal" >
<group
android:name="ic_signal_flashlight"
android:translateX="21.9995"
diff --git a/packages/SystemUI/res/drawable/ic_signal_location_disable.xml b/packages/SystemUI/res/drawable/ic_signal_location_disable.xml
index 439851d3500a..e36f270d7560 100644
--- a/packages/SystemUI/res/drawable/ic_signal_location_disable.xml
+++ b/packages/SystemUI/res/drawable/ic_signal_location_disable.xml
@@ -20,7 +20,8 @@
android:height="48dp"
android:width="48dp"
android:viewportHeight="48"
- android:viewportWidth="48" >
+ android:viewportWidth="48"
+ android:tint="?android:attr/colorControlNormal" >
<group
android:name="ic_signal_location"
android:translateX="21.9995"
diff --git a/packages/SystemUI/res/drawable/ic_signal_location_enable.xml b/packages/SystemUI/res/drawable/ic_signal_location_enable.xml
index 8614458fe534..46a72bc7e455 100644
--- a/packages/SystemUI/res/drawable/ic_signal_location_enable.xml
+++ b/packages/SystemUI/res/drawable/ic_signal_location_enable.xml
@@ -20,7 +20,8 @@
android:height="48dp"
android:width="48dp"
android:viewportHeight="48"
- android:viewportWidth="48" >
+ android:viewportWidth="48"
+ android:tint="?android:attr/colorControlNormal" >
<group
android:name="ic_signal_location"
android:translateX="21.9995"
diff --git a/preloaded-classes b/preloaded-classes
index a79ae5098098..da3861a4b642 100644
--- a/preloaded-classes
+++ b/preloaded-classes
@@ -365,6 +365,8 @@ android.app.ApplicationPackageManager$ResourceName
android.app.BackStackRecord
android.app.BackStackRecord$Op
android.app.BackStackRecord$TransitionState
+android.app.ContentProviderHolder
+android.app.ContentProviderHolder$1
android.app.ContextImpl
android.app.ContextImpl$ApplicationContentResolver
android.app.Dialog
@@ -383,8 +385,8 @@ android.app.FragmentManagerImpl
android.app.FragmentManagerImpl$1
android.app.FragmentTransaction
android.app.IActivityManager
-android.app.IActivityManager$ContentProviderHolder
-android.app.IActivityManager$ContentProviderHolder$1
+android.app.IActivityManager$Stub
+android.app.IActivityManager$Stub$Proxy
android.app.IAlarmManager
android.app.IAlarmManager$Stub
android.app.IAlarmManager$Stub$Proxy