[go: nahoru, domu]

Changes Vector defaultWidth/defaultHeight to use Dp

This makes programmatic Vector use a lot easier, as they can be defined
outside of a composable / density scope context.

Bug: b/146212530
Test: XmlVectorParserTest
Change-Id: Iad267c8242206328be222ca200d76edc522274a7
diff --git a/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/framework/VectorAssetTestCase.kt b/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/framework/VectorAssetTestCase.kt
index 3ab13ab..dda850b 100644
--- a/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/framework/VectorAssetTestCase.kt
+++ b/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/framework/VectorAssetTestCase.kt
@@ -19,7 +19,6 @@
 import androidx.compose.Composable
 import androidx.ui.core.TestTag
 import androidx.ui.core.dp
-import androidx.ui.core.px
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.SolidColor
 import androidx.ui.graphics.StrokeCap
@@ -82,8 +81,8 @@
      */
     @Composable
     override fun getVectorAsset() = VectorAssetBuilder(
-        defaultWidth = 84.px,
-        defaultHeight = 84.px,
+        defaultWidth = 24.dp,
+        defaultHeight = 24.dp,
         viewportWidth = 24f,
         viewportHeight = 24f
     ).apply {
diff --git a/ui/ui-framework/api/0.1.0-dev04.txt b/ui/ui-framework/api/0.1.0-dev04.txt
index 2086670..d14369a 100644
--- a/ui/ui-framework/api/0.1.0-dev04.txt
+++ b/ui/ui-framework/api/0.1.0-dev04.txt
@@ -394,8 +394,15 @@
 package androidx.ui.graphics.vector {
 
   public final class VectorAsset {
-    method public androidx.ui.core.Px getDefaultHeight();
-    method public androidx.ui.core.Px getDefaultWidth();
+    method public String component1();
+    method public androidx.ui.core.Dp component2();
+    method public androidx.ui.core.Dp component3();
+    method public float component4();
+    method public float component5();
+    method public androidx.ui.graphics.vector.VectorGroup component6();
+    method public androidx.ui.graphics.vector.VectorAsset copy(String name, androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth, float viewportHeight, androidx.ui.graphics.vector.VectorGroup root);
+    method public androidx.ui.core.Dp getDefaultHeight();
+    method public androidx.ui.core.Dp getDefaultWidth();
     method public String getName();
     method public androidx.ui.graphics.vector.VectorGroup getRoot();
     method public float getViewportHeight();
@@ -403,12 +410,12 @@
   }
 
   public final class VectorAssetBuilder {
-    ctor public VectorAssetBuilder(String name, androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight, float viewportWidth, float viewportHeight);
+    ctor public VectorAssetBuilder(String name, androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth, float viewportHeight);
     method public androidx.ui.graphics.vector.VectorAssetBuilder addPath(java.util.List<androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
     method public androidx.ui.graphics.vector.VectorAsset build();
     method public void ensureNotConsumed();
-    method public androidx.ui.core.Px getDefaultHeight();
-    method public androidx.ui.core.Px getDefaultWidth();
+    method public androidx.ui.core.Dp getDefaultHeight();
+    method public androidx.ui.core.Dp getDefaultWidth();
     method public String getName();
     method public float getViewportHeight();
     method public float getViewportWidth();
@@ -430,6 +437,16 @@
   public final class VectorGroup extends androidx.ui.graphics.vector.VectorNode implements java.lang.Iterable<androidx.ui.graphics.vector.VectorNode> kotlin.jvm.internal.markers.KMappedMarker {
     ctor public VectorGroup(String name, float rotation, float pivotX, float pivotY, float scaleX, float scaleY, float translationX, float translationY, java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData);
     ctor public VectorGroup();
+    method public String component1();
+    method public float component2();
+    method public float component3();
+    method public float component4();
+    method public float component5();
+    method public float component6();
+    method public float component7();
+    method public float component8();
+    method public java.util.List<androidx.ui.graphics.vector.PathNode> component9();
+    method public androidx.ui.graphics.vector.VectorGroup copy(String name, float rotation, float pivotX, float pivotY, float scaleX, float scaleY, float translationX, float translationY, java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData);
     method public operator androidx.ui.graphics.vector.VectorNode get(int index);
     method public java.util.List<androidx.ui.graphics.vector.PathNode> getClipPathData();
     method public String getName();
@@ -450,6 +467,17 @@
 
   public final class VectorPath extends androidx.ui.graphics.vector.VectorNode {
     ctor public VectorPath(String name, java.util.List<androidx.ui.graphics.vector.PathNode> pathData, androidx.ui.graphics.Brush? fill, float fillAlpha, androidx.ui.graphics.Brush? stroke, float strokeAlpha, float strokeLineWidth, androidx.ui.graphics.StrokeCap strokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin, float strokeLineMiter);
+    method public String component1();
+    method public float component10();
+    method public java.util.List<androidx.ui.graphics.vector.PathNode> component2();
+    method public androidx.ui.graphics.Brush? component3();
+    method public float component4();
+    method public androidx.ui.graphics.Brush? component5();
+    method public float component6();
+    method public float component7();
+    method public androidx.ui.graphics.StrokeCap component8();
+    method public androidx.ui.graphics.StrokeJoin component9();
+    method public androidx.ui.graphics.vector.VectorPath copy(String name, java.util.List<androidx.ui.graphics.vector.PathNode> pathData, androidx.ui.graphics.Brush? fill, float fillAlpha, androidx.ui.graphics.Brush? stroke, float strokeAlpha, float strokeLineWidth, androidx.ui.graphics.StrokeCap strokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin, float strokeLineMiter);
     method public androidx.ui.graphics.Brush? getFill();
     method public float getFillAlpha();
     method public String getName();
diff --git a/ui/ui-framework/api/current.txt b/ui/ui-framework/api/current.txt
index 2086670..d14369a 100644
--- a/ui/ui-framework/api/current.txt
+++ b/ui/ui-framework/api/current.txt
@@ -394,8 +394,15 @@
 package androidx.ui.graphics.vector {
 
   public final class VectorAsset {
-    method public androidx.ui.core.Px getDefaultHeight();
-    method public androidx.ui.core.Px getDefaultWidth();
+    method public String component1();
+    method public androidx.ui.core.Dp component2();
+    method public androidx.ui.core.Dp component3();
+    method public float component4();
+    method public float component5();
+    method public androidx.ui.graphics.vector.VectorGroup component6();
+    method public androidx.ui.graphics.vector.VectorAsset copy(String name, androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth, float viewportHeight, androidx.ui.graphics.vector.VectorGroup root);
+    method public androidx.ui.core.Dp getDefaultHeight();
+    method public androidx.ui.core.Dp getDefaultWidth();
     method public String getName();
     method public androidx.ui.graphics.vector.VectorGroup getRoot();
     method public float getViewportHeight();
@@ -403,12 +410,12 @@
   }
 
   public final class VectorAssetBuilder {
-    ctor public VectorAssetBuilder(String name, androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight, float viewportWidth, float viewportHeight);
+    ctor public VectorAssetBuilder(String name, androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth, float viewportHeight);
     method public androidx.ui.graphics.vector.VectorAssetBuilder addPath(java.util.List<androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
     method public androidx.ui.graphics.vector.VectorAsset build();
     method public void ensureNotConsumed();
-    method public androidx.ui.core.Px getDefaultHeight();
-    method public androidx.ui.core.Px getDefaultWidth();
+    method public androidx.ui.core.Dp getDefaultHeight();
+    method public androidx.ui.core.Dp getDefaultWidth();
     method public String getName();
     method public float getViewportHeight();
     method public float getViewportWidth();
@@ -430,6 +437,16 @@
   public final class VectorGroup extends androidx.ui.graphics.vector.VectorNode implements java.lang.Iterable<androidx.ui.graphics.vector.VectorNode> kotlin.jvm.internal.markers.KMappedMarker {
     ctor public VectorGroup(String name, float rotation, float pivotX, float pivotY, float scaleX, float scaleY, float translationX, float translationY, java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData);
     ctor public VectorGroup();
+    method public String component1();
+    method public float component2();
+    method public float component3();
+    method public float component4();
+    method public float component5();
+    method public float component6();
+    method public float component7();
+    method public float component8();
+    method public java.util.List<androidx.ui.graphics.vector.PathNode> component9();
+    method public androidx.ui.graphics.vector.VectorGroup copy(String name, float rotation, float pivotX, float pivotY, float scaleX, float scaleY, float translationX, float translationY, java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData);
     method public operator androidx.ui.graphics.vector.VectorNode get(int index);
     method public java.util.List<androidx.ui.graphics.vector.PathNode> getClipPathData();
     method public String getName();
@@ -450,6 +467,17 @@
 
   public final class VectorPath extends androidx.ui.graphics.vector.VectorNode {
     ctor public VectorPath(String name, java.util.List<androidx.ui.graphics.vector.PathNode> pathData, androidx.ui.graphics.Brush? fill, float fillAlpha, androidx.ui.graphics.Brush? stroke, float strokeAlpha, float strokeLineWidth, androidx.ui.graphics.StrokeCap strokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin, float strokeLineMiter);
+    method public String component1();
+    method public float component10();
+    method public java.util.List<androidx.ui.graphics.vector.PathNode> component2();
+    method public androidx.ui.graphics.Brush? component3();
+    method public float component4();
+    method public androidx.ui.graphics.Brush? component5();
+    method public float component6();
+    method public float component7();
+    method public androidx.ui.graphics.StrokeCap component8();
+    method public androidx.ui.graphics.StrokeJoin component9();
+    method public androidx.ui.graphics.vector.VectorPath copy(String name, java.util.List<androidx.ui.graphics.vector.PathNode> pathData, androidx.ui.graphics.Brush? fill, float fillAlpha, androidx.ui.graphics.Brush? stroke, float strokeAlpha, float strokeLineWidth, androidx.ui.graphics.StrokeCap strokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin, float strokeLineMiter);
     method public androidx.ui.graphics.Brush? getFill();
     method public float getFillAlpha();
     method public String getName();
diff --git a/ui/ui-framework/api/public_plus_experimental_0.1.0-dev04.txt b/ui/ui-framework/api/public_plus_experimental_0.1.0-dev04.txt
index 2086670..d14369a 100644
--- a/ui/ui-framework/api/public_plus_experimental_0.1.0-dev04.txt
+++ b/ui/ui-framework/api/public_plus_experimental_0.1.0-dev04.txt
@@ -394,8 +394,15 @@
 package androidx.ui.graphics.vector {
 
   public final class VectorAsset {
-    method public androidx.ui.core.Px getDefaultHeight();
-    method public androidx.ui.core.Px getDefaultWidth();
+    method public String component1();
+    method public androidx.ui.core.Dp component2();
+    method public androidx.ui.core.Dp component3();
+    method public float component4();
+    method public float component5();
+    method public androidx.ui.graphics.vector.VectorGroup component6();
+    method public androidx.ui.graphics.vector.VectorAsset copy(String name, androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth, float viewportHeight, androidx.ui.graphics.vector.VectorGroup root);
+    method public androidx.ui.core.Dp getDefaultHeight();
+    method public androidx.ui.core.Dp getDefaultWidth();
     method public String getName();
     method public androidx.ui.graphics.vector.VectorGroup getRoot();
     method public float getViewportHeight();
@@ -403,12 +410,12 @@
   }
 
   public final class VectorAssetBuilder {
-    ctor public VectorAssetBuilder(String name, androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight, float viewportWidth, float viewportHeight);
+    ctor public VectorAssetBuilder(String name, androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth, float viewportHeight);
     method public androidx.ui.graphics.vector.VectorAssetBuilder addPath(java.util.List<androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
     method public androidx.ui.graphics.vector.VectorAsset build();
     method public void ensureNotConsumed();
-    method public androidx.ui.core.Px getDefaultHeight();
-    method public androidx.ui.core.Px getDefaultWidth();
+    method public androidx.ui.core.Dp getDefaultHeight();
+    method public androidx.ui.core.Dp getDefaultWidth();
     method public String getName();
     method public float getViewportHeight();
     method public float getViewportWidth();
@@ -430,6 +437,16 @@
   public final class VectorGroup extends androidx.ui.graphics.vector.VectorNode implements java.lang.Iterable<androidx.ui.graphics.vector.VectorNode> kotlin.jvm.internal.markers.KMappedMarker {
     ctor public VectorGroup(String name, float rotation, float pivotX, float pivotY, float scaleX, float scaleY, float translationX, float translationY, java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData);
     ctor public VectorGroup();
+    method public String component1();
+    method public float component2();
+    method public float component3();
+    method public float component4();
+    method public float component5();
+    method public float component6();
+    method public float component7();
+    method public float component8();
+    method public java.util.List<androidx.ui.graphics.vector.PathNode> component9();
+    method public androidx.ui.graphics.vector.VectorGroup copy(String name, float rotation, float pivotX, float pivotY, float scaleX, float scaleY, float translationX, float translationY, java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData);
     method public operator androidx.ui.graphics.vector.VectorNode get(int index);
     method public java.util.List<androidx.ui.graphics.vector.PathNode> getClipPathData();
     method public String getName();
@@ -450,6 +467,17 @@
 
   public final class VectorPath extends androidx.ui.graphics.vector.VectorNode {
     ctor public VectorPath(String name, java.util.List<androidx.ui.graphics.vector.PathNode> pathData, androidx.ui.graphics.Brush? fill, float fillAlpha, androidx.ui.graphics.Brush? stroke, float strokeAlpha, float strokeLineWidth, androidx.ui.graphics.StrokeCap strokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin, float strokeLineMiter);
+    method public String component1();
+    method public float component10();
+    method public java.util.List<androidx.ui.graphics.vector.PathNode> component2();
+    method public androidx.ui.graphics.Brush? component3();
+    method public float component4();
+    method public androidx.ui.graphics.Brush? component5();
+    method public float component6();
+    method public float component7();
+    method public androidx.ui.graphics.StrokeCap component8();
+    method public androidx.ui.graphics.StrokeJoin component9();
+    method public androidx.ui.graphics.vector.VectorPath copy(String name, java.util.List<androidx.ui.graphics.vector.PathNode> pathData, androidx.ui.graphics.Brush? fill, float fillAlpha, androidx.ui.graphics.Brush? stroke, float strokeAlpha, float strokeLineWidth, androidx.ui.graphics.StrokeCap strokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin, float strokeLineMiter);
     method public androidx.ui.graphics.Brush? getFill();
     method public float getFillAlpha();
     method public String getName();
diff --git a/ui/ui-framework/api/public_plus_experimental_current.txt b/ui/ui-framework/api/public_plus_experimental_current.txt
index 2086670..d14369a 100644
--- a/ui/ui-framework/api/public_plus_experimental_current.txt
+++ b/ui/ui-framework/api/public_plus_experimental_current.txt
@@ -394,8 +394,15 @@
 package androidx.ui.graphics.vector {
 
   public final class VectorAsset {
-    method public androidx.ui.core.Px getDefaultHeight();
-    method public androidx.ui.core.Px getDefaultWidth();
+    method public String component1();
+    method public androidx.ui.core.Dp component2();
+    method public androidx.ui.core.Dp component3();
+    method public float component4();
+    method public float component5();
+    method public androidx.ui.graphics.vector.VectorGroup component6();
+    method public androidx.ui.graphics.vector.VectorAsset copy(String name, androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth, float viewportHeight, androidx.ui.graphics.vector.VectorGroup root);
+    method public androidx.ui.core.Dp getDefaultHeight();
+    method public androidx.ui.core.Dp getDefaultWidth();
     method public String getName();
     method public androidx.ui.graphics.vector.VectorGroup getRoot();
     method public float getViewportHeight();
@@ -403,12 +410,12 @@
   }
 
   public final class VectorAssetBuilder {
-    ctor public VectorAssetBuilder(String name, androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight, float viewportWidth, float viewportHeight);
+    ctor public VectorAssetBuilder(String name, androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth, float viewportHeight);
     method public androidx.ui.graphics.vector.VectorAssetBuilder addPath(java.util.List<androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
     method public androidx.ui.graphics.vector.VectorAsset build();
     method public void ensureNotConsumed();
-    method public androidx.ui.core.Px getDefaultHeight();
-    method public androidx.ui.core.Px getDefaultWidth();
+    method public androidx.ui.core.Dp getDefaultHeight();
+    method public androidx.ui.core.Dp getDefaultWidth();
     method public String getName();
     method public float getViewportHeight();
     method public float getViewportWidth();
@@ -430,6 +437,16 @@
   public final class VectorGroup extends androidx.ui.graphics.vector.VectorNode implements java.lang.Iterable<androidx.ui.graphics.vector.VectorNode> kotlin.jvm.internal.markers.KMappedMarker {
     ctor public VectorGroup(String name, float rotation, float pivotX, float pivotY, float scaleX, float scaleY, float translationX, float translationY, java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData);
     ctor public VectorGroup();
+    method public String component1();
+    method public float component2();
+    method public float component3();
+    method public float component4();
+    method public float component5();
+    method public float component6();
+    method public float component7();
+    method public float component8();
+    method public java.util.List<androidx.ui.graphics.vector.PathNode> component9();
+    method public androidx.ui.graphics.vector.VectorGroup copy(String name, float rotation, float pivotX, float pivotY, float scaleX, float scaleY, float translationX, float translationY, java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData);
     method public operator androidx.ui.graphics.vector.VectorNode get(int index);
     method public java.util.List<androidx.ui.graphics.vector.PathNode> getClipPathData();
     method public String getName();
@@ -450,6 +467,17 @@
 
   public final class VectorPath extends androidx.ui.graphics.vector.VectorNode {
     ctor public VectorPath(String name, java.util.List<androidx.ui.graphics.vector.PathNode> pathData, androidx.ui.graphics.Brush? fill, float fillAlpha, androidx.ui.graphics.Brush? stroke, float strokeAlpha, float strokeLineWidth, androidx.ui.graphics.StrokeCap strokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin, float strokeLineMiter);
+    method public String component1();
+    method public float component10();
+    method public java.util.List<androidx.ui.graphics.vector.PathNode> component2();
+    method public androidx.ui.graphics.Brush? component3();
+    method public float component4();
+    method public androidx.ui.graphics.Brush? component5();
+    method public float component6();
+    method public float component7();
+    method public androidx.ui.graphics.StrokeCap component8();
+    method public androidx.ui.graphics.StrokeJoin component9();
+    method public androidx.ui.graphics.vector.VectorPath copy(String name, java.util.List<androidx.ui.graphics.vector.PathNode> pathData, androidx.ui.graphics.Brush? fill, float fillAlpha, androidx.ui.graphics.Brush? stroke, float strokeAlpha, float strokeLineWidth, androidx.ui.graphics.StrokeCap strokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin, float strokeLineMiter);
     method public androidx.ui.graphics.Brush? getFill();
     method public float getFillAlpha();
     method public String getName();
diff --git a/ui/ui-framework/api/restricted_0.1.0-dev04.txt b/ui/ui-framework/api/restricted_0.1.0-dev04.txt
index 2086670..d14369a 100644
--- a/ui/ui-framework/api/restricted_0.1.0-dev04.txt
+++ b/ui/ui-framework/api/restricted_0.1.0-dev04.txt
@@ -394,8 +394,15 @@
 package androidx.ui.graphics.vector {
 
   public final class VectorAsset {
-    method public androidx.ui.core.Px getDefaultHeight();
-    method public androidx.ui.core.Px getDefaultWidth();
+    method public String component1();
+    method public androidx.ui.core.Dp component2();
+    method public androidx.ui.core.Dp component3();
+    method public float component4();
+    method public float component5();
+    method public androidx.ui.graphics.vector.VectorGroup component6();
+    method public androidx.ui.graphics.vector.VectorAsset copy(String name, androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth, float viewportHeight, androidx.ui.graphics.vector.VectorGroup root);
+    method public androidx.ui.core.Dp getDefaultHeight();
+    method public androidx.ui.core.Dp getDefaultWidth();
     method public String getName();
     method public androidx.ui.graphics.vector.VectorGroup getRoot();
     method public float getViewportHeight();
@@ -403,12 +410,12 @@
   }
 
   public final class VectorAssetBuilder {
-    ctor public VectorAssetBuilder(String name, androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight, float viewportWidth, float viewportHeight);
+    ctor public VectorAssetBuilder(String name, androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth, float viewportHeight);
     method public androidx.ui.graphics.vector.VectorAssetBuilder addPath(java.util.List<androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
     method public androidx.ui.graphics.vector.VectorAsset build();
     method public void ensureNotConsumed();
-    method public androidx.ui.core.Px getDefaultHeight();
-    method public androidx.ui.core.Px getDefaultWidth();
+    method public androidx.ui.core.Dp getDefaultHeight();
+    method public androidx.ui.core.Dp getDefaultWidth();
     method public String getName();
     method public float getViewportHeight();
     method public float getViewportWidth();
@@ -430,6 +437,16 @@
   public final class VectorGroup extends androidx.ui.graphics.vector.VectorNode implements java.lang.Iterable<androidx.ui.graphics.vector.VectorNode> kotlin.jvm.internal.markers.KMappedMarker {
     ctor public VectorGroup(String name, float rotation, float pivotX, float pivotY, float scaleX, float scaleY, float translationX, float translationY, java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData);
     ctor public VectorGroup();
+    method public String component1();
+    method public float component2();
+    method public float component3();
+    method public float component4();
+    method public float component5();
+    method public float component6();
+    method public float component7();
+    method public float component8();
+    method public java.util.List<androidx.ui.graphics.vector.PathNode> component9();
+    method public androidx.ui.graphics.vector.VectorGroup copy(String name, float rotation, float pivotX, float pivotY, float scaleX, float scaleY, float translationX, float translationY, java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData);
     method public operator androidx.ui.graphics.vector.VectorNode get(int index);
     method public java.util.List<androidx.ui.graphics.vector.PathNode> getClipPathData();
     method public String getName();
@@ -450,6 +467,17 @@
 
   public final class VectorPath extends androidx.ui.graphics.vector.VectorNode {
     ctor public VectorPath(String name, java.util.List<androidx.ui.graphics.vector.PathNode> pathData, androidx.ui.graphics.Brush? fill, float fillAlpha, androidx.ui.graphics.Brush? stroke, float strokeAlpha, float strokeLineWidth, androidx.ui.graphics.StrokeCap strokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin, float strokeLineMiter);
+    method public String component1();
+    method public float component10();
+    method public java.util.List<androidx.ui.graphics.vector.PathNode> component2();
+    method public androidx.ui.graphics.Brush? component3();
+    method public float component4();
+    method public androidx.ui.graphics.Brush? component5();
+    method public float component6();
+    method public float component7();
+    method public androidx.ui.graphics.StrokeCap component8();
+    method public androidx.ui.graphics.StrokeJoin component9();
+    method public androidx.ui.graphics.vector.VectorPath copy(String name, java.util.List<androidx.ui.graphics.vector.PathNode> pathData, androidx.ui.graphics.Brush? fill, float fillAlpha, androidx.ui.graphics.Brush? stroke, float strokeAlpha, float strokeLineWidth, androidx.ui.graphics.StrokeCap strokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin, float strokeLineMiter);
     method public androidx.ui.graphics.Brush? getFill();
     method public float getFillAlpha();
     method public String getName();
diff --git a/ui/ui-framework/api/restricted_current.txt b/ui/ui-framework/api/restricted_current.txt
index 2086670..d14369a 100644
--- a/ui/ui-framework/api/restricted_current.txt
+++ b/ui/ui-framework/api/restricted_current.txt
@@ -394,8 +394,15 @@
 package androidx.ui.graphics.vector {
 
   public final class VectorAsset {
-    method public androidx.ui.core.Px getDefaultHeight();
-    method public androidx.ui.core.Px getDefaultWidth();
+    method public String component1();
+    method public androidx.ui.core.Dp component2();
+    method public androidx.ui.core.Dp component3();
+    method public float component4();
+    method public float component5();
+    method public androidx.ui.graphics.vector.VectorGroup component6();
+    method public androidx.ui.graphics.vector.VectorAsset copy(String name, androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth, float viewportHeight, androidx.ui.graphics.vector.VectorGroup root);
+    method public androidx.ui.core.Dp getDefaultHeight();
+    method public androidx.ui.core.Dp getDefaultWidth();
     method public String getName();
     method public androidx.ui.graphics.vector.VectorGroup getRoot();
     method public float getViewportHeight();
@@ -403,12 +410,12 @@
   }
 
   public final class VectorAssetBuilder {
-    ctor public VectorAssetBuilder(String name, androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight, float viewportWidth, float viewportHeight);
+    ctor public VectorAssetBuilder(String name, androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth, float viewportHeight);
     method public androidx.ui.graphics.vector.VectorAssetBuilder addPath(java.util.List<androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
     method public androidx.ui.graphics.vector.VectorAsset build();
     method public void ensureNotConsumed();
-    method public androidx.ui.core.Px getDefaultHeight();
-    method public androidx.ui.core.Px getDefaultWidth();
+    method public androidx.ui.core.Dp getDefaultHeight();
+    method public androidx.ui.core.Dp getDefaultWidth();
     method public String getName();
     method public float getViewportHeight();
     method public float getViewportWidth();
@@ -430,6 +437,16 @@
   public final class VectorGroup extends androidx.ui.graphics.vector.VectorNode implements java.lang.Iterable<androidx.ui.graphics.vector.VectorNode> kotlin.jvm.internal.markers.KMappedMarker {
     ctor public VectorGroup(String name, float rotation, float pivotX, float pivotY, float scaleX, float scaleY, float translationX, float translationY, java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData);
     ctor public VectorGroup();
+    method public String component1();
+    method public float component2();
+    method public float component3();
+    method public float component4();
+    method public float component5();
+    method public float component6();
+    method public float component7();
+    method public float component8();
+    method public java.util.List<androidx.ui.graphics.vector.PathNode> component9();
+    method public androidx.ui.graphics.vector.VectorGroup copy(String name, float rotation, float pivotX, float pivotY, float scaleX, float scaleY, float translationX, float translationY, java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData);
     method public operator androidx.ui.graphics.vector.VectorNode get(int index);
     method public java.util.List<androidx.ui.graphics.vector.PathNode> getClipPathData();
     method public String getName();
@@ -450,6 +467,17 @@
 
   public final class VectorPath extends androidx.ui.graphics.vector.VectorNode {
     ctor public VectorPath(String name, java.util.List<androidx.ui.graphics.vector.PathNode> pathData, androidx.ui.graphics.Brush? fill, float fillAlpha, androidx.ui.graphics.Brush? stroke, float strokeAlpha, float strokeLineWidth, androidx.ui.graphics.StrokeCap strokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin, float strokeLineMiter);
+    method public String component1();
+    method public float component10();
+    method public java.util.List<androidx.ui.graphics.vector.PathNode> component2();
+    method public androidx.ui.graphics.Brush? component3();
+    method public float component4();
+    method public androidx.ui.graphics.Brush? component5();
+    method public float component6();
+    method public float component7();
+    method public androidx.ui.graphics.StrokeCap component8();
+    method public androidx.ui.graphics.StrokeJoin component9();
+    method public androidx.ui.graphics.vector.VectorPath copy(String name, java.util.List<androidx.ui.graphics.vector.PathNode> pathData, androidx.ui.graphics.Brush? fill, float fillAlpha, androidx.ui.graphics.Brush? stroke, float strokeAlpha, float strokeLineWidth, androidx.ui.graphics.StrokeCap strokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin, float strokeLineMiter);
     method public androidx.ui.graphics.Brush? getFill();
     method public float getFillAlpha();
     method public String getName();
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/graphics/vector/VectorInvalidationTestCase.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/graphics/vector/VectorInvalidationTestCase.kt
index 57c8d8e..5a788e1 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/graphics/vector/VectorInvalidationTestCase.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/graphics/vector/VectorInvalidationTestCase.kt
@@ -48,7 +48,7 @@
         val vectorAsset = loadVectorResource(state.value)
         WithDensity {
             vectorAsset.resource.resource?.let {
-                val width = it.defaultWidth.toDp()
+                val width = it.defaultWidth
                 vectorSize = width.toIntPx().value
                 AtLeastSize(size = width.toIntPx()) {
                     Draw { canvas, parentSize ->
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/graphics/vector/compat/XmlVectorParserTest.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/graphics/vector/compat/XmlVectorParserTest.kt
index 4f4287c..132daea 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/graphics/vector/compat/XmlVectorParserTest.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/graphics/vector/compat/XmlVectorParserTest.kt
@@ -18,14 +18,12 @@
 
 import androidx.test.filters.SmallTest
 import androidx.test.platform.app.InstrumentationRegistry
-import androidx.ui.core.Px
-
-import androidx.ui.graphics.vector.VectorPath
+import androidx.ui.core.dp
 import androidx.ui.framework.test.R
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.SolidColor
 import androidx.ui.graphics.vector.PathCommand
-import androidx.ui.graphics.vector.PathNode
+import androidx.ui.graphics.vector.VectorPath
 import androidx.ui.res.loadVectorResource
 import org.junit.Assert.assertEquals
 import org.junit.Test
@@ -44,8 +42,7 @@
             res,
             R.drawable.test_compose_vector
         )
-        val density = res.displayMetrics.density
-        val expectedSize = Px(density*24)
+        val expectedSize = 24.dp
         assertEquals(expectedSize, asset.defaultWidth)
         assertEquals(expectedSize, asset.defaultHeight)
         assertEquals(24.0f, asset.viewportWidth)
@@ -57,20 +54,20 @@
 
         val path = node.pathData
         assertEquals(3, path.size)
-        assertEquals(PathCommand.MoveTo, path.get(0).command)
-        assertEquals(20.0f, path.get(0).args[0])
-        assertEquals(10.0f, path.get(0).args[1])
+        assertEquals(PathCommand.MoveTo, path[0].command)
+        assertEquals(20.0f, path[0].args[0])
+        assertEquals(10.0f, path[0].args[1])
 
-        assertEquals(PathCommand.RelativeLineTo, path.get(1).command)
-        assertEquals(6, path.get(1).args.size)
-        assertEquals(10.0f, path.get(1).args[0])
-        assertEquals(0.0f, path.get(1).args[1])
-        assertEquals(0.0f, path.get(1).args[2])
-        assertEquals(10.0f, path.get(1).args[3])
-        assertEquals(-10.0f, path.get(1).args[4])
-        assertEquals(0.0f, path.get(1).args[5])
+        assertEquals(PathCommand.RelativeLineTo, path[1].command)
+        assertEquals(6, path[1].args.size)
+        assertEquals(10.0f, path[1].args[0])
+        assertEquals(0.0f, path[1].args[1])
+        assertEquals(0.0f, path[1].args[2])
+        assertEquals(10.0f, path[1].args[3])
+        assertEquals(-10.0f, path[1].args[4])
+        assertEquals(0.0f, path[1].args[5])
 
-        assertEquals(PathCommand.RelativeClose, path.get(2).command)
-        assertEquals(0, path.get(2).args.size)
+        assertEquals(PathCommand.RelativeClose, path[2].command)
+        assertEquals(0, path[2].args.size)
     }
 }
\ No newline at end of file
diff --git a/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/VectorAsset.kt b/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/VectorAsset.kt
index 3ce6d70..b35b046 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/VectorAsset.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/VectorAsset.kt
@@ -18,7 +18,7 @@
 
 import androidx.compose.Composable
 import androidx.ui.core.Alignment
-import androidx.ui.core.Px
+import androidx.ui.core.Dp
 import androidx.ui.graphics.BlendMode
 import androidx.ui.graphics.Brush
 import androidx.ui.graphics.Color
@@ -44,14 +44,14 @@
     val name: String = DefaultGroupName,
 
     /**
-     * Intrinsic width of the Vector in pixels
+     * Intrinsic width of the Vector in [Dp]
      */
-    val defaultWidth: Px,
+    val defaultWidth: Dp,
 
     /**
-     * Intrinsic height of the Vector in pixels
+     * Intrinsic height of the Vector in [Dp]
      */
-    val defaultHeight: Px,
+    val defaultHeight: Dp,
 
     /**
      *  Used to define the width of the viewport space. Viewport is basically the virtual canvas
@@ -200,7 +200,7 @@
  * Vector graphics object that is generated as a result of [VectorAssetBuilder]]
  * It can be composed and rendered by passing it as an argument to [DrawVector]
  */
-class VectorAsset internal constructor(
+data class VectorAsset internal constructor(
 
     /**
      * Name of the Vector asset
@@ -208,14 +208,14 @@
     val name: String,
 
     /**
-     * Intrinsic width of the vector asset in pixels
+     * Intrinsic width of the vector asset in [Dp]
      */
-    val defaultWidth: Px,
+    val defaultWidth: Dp,
 
     /**
-     * Intrinsic height of the vector asset in pixels
+     * Intrinsic height of the vector asset in [Dp]
      */
-    val defaultHeight: Px,
+    val defaultHeight: Dp,
 
     /**
      *  Used to define the width of the viewport space. Viewport is basically the virtual canvas
@@ -240,7 +240,7 @@
  * The transformations are defined in the same coordinates as the viewport.
  * The transformations are applied in the order of scale, rotate then translate.
  */
-class VectorGroup(
+data class VectorGroup(
     /**
      * Name of the corresponding group
      */
@@ -317,7 +317,7 @@
  * Leaf node of a Vector graphics tree. This specifies a path shape and parameters
  * to color and style the the shape itself
  */
-class VectorPath(
+data class VectorPath(
     /**
      * Name of the corresponding path
      */
diff --git a/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/compat/XmlVectorParser.kt b/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/compat/XmlVectorParser.kt
index c7b248e..53be7f4 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/compat/XmlVectorParser.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/compat/XmlVectorParser.kt
@@ -20,17 +20,14 @@
 import android.util.AttributeSet
 import androidx.core.content.res.ComplexColorCompat
 import androidx.core.content.res.TypedArrayUtils
-import androidx.ui.core.Px
-import androidx.ui.graphics.vector.VectorAssetBuilder
+import androidx.ui.core.dp
 import androidx.ui.graphics.Brush
 import androidx.ui.graphics.Color
+import androidx.ui.graphics.Shader
 import androidx.ui.graphics.ShaderBrush
 import androidx.ui.graphics.SolidColor
-
-import androidx.ui.graphics.Shader
 import androidx.ui.graphics.StrokeCap
 import androidx.ui.graphics.StrokeJoin
-import androidx.ui.graphics.vector.addPathNodes
 import androidx.ui.graphics.vector.DefaultPivotX
 import androidx.ui.graphics.vector.DefaultPivotY
 import androidx.ui.graphics.vector.DefaultRotation
@@ -40,6 +37,8 @@
 import androidx.ui.graphics.vector.DefaultTranslationY
 import androidx.ui.graphics.vector.EmptyPath
 import androidx.ui.graphics.vector.PathNode
+import androidx.ui.graphics.vector.VectorAssetBuilder
+import androidx.ui.graphics.vector.addPathNodes
 import org.xmlpull.v1.XmlPullParser
 import org.xmlpull.v1.XmlPullParserException
 
@@ -156,13 +155,11 @@
 
     if (viewportWidth <= 0) {
         throw XmlPullParserException(
-            vectorAttrs.getPositionDescription() +
-                    "<VectorGraphic> tag requires viewportWidth > 0"
+            vectorAttrs.positionDescription + "<VectorGraphic> tag requires viewportWidth > 0"
         )
     } else if (viewportHeight <= 0) {
         throw XmlPullParserException(
-            vectorAttrs.getPositionDescription() +
-                    "<VectorGraphic> tag requires viewportHeight > 0"
+            vectorAttrs.positionDescription + "<VectorGraphic> tag requires viewportHeight > 0"
         )
     }
 
@@ -173,11 +170,14 @@
         AndroidVectorResources.STYLEABLE_VECTOR_DRAWABLE_HEIGHT, 0.0f
     )
 
+    val defaultWidthDp = (defaultWidth / res.displayMetrics.density).dp
+    val defaultHeightDp = (defaultHeight / res.displayMetrics.density).dp
+
     vectorAttrs.recycle()
 
     return VectorAssetBuilder(
-        defaultWidth = Px(defaultWidth),
-        defaultHeight = Px(defaultHeight),
+        defaultWidth = defaultWidthDp,
+        defaultHeight = defaultHeightDp,
         viewportWidth = viewportWidth,
         viewportHeight = viewportHeight
     )