ShadowPath.java revision 33873d2b41a5cd2597b20a4e88eb8942944c0f23
133873d2b41a5cd2597b20a4e88eb8942944c0f23Tyler Schultzpackage com.xtremelabs.robolectric.shadows; 256a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 356a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richardimport android.graphics.Path; 4a2043a8fff01f3e2d9a5e30dd1cf5fb6a5342f4dTyler Schultzimport com.xtremelabs.robolectric.util.Implementation; 5a2043a8fff01f3e2d9a5e30dd1cf5fb6a5342f4dTyler Schultzimport com.xtremelabs.robolectric.util.Implements; 656a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 756a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richardimport java.util.ArrayList; 856a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richardimport java.util.List; 956a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 1056a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard@SuppressWarnings({"UnusedDeclaration"}) 1156a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard@Implements(Path.class) 12afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williamspublic class ShadowPath { 1356a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard private List<Point> points = new ArrayList<Point>(); 1456a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard public Point wasMovedTo; 1556a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 16de9feed5ddf1d91a3e76cbc71712c36a7652201eChristian Williams @Implementation 1756a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard public void moveTo(float x, float y) { 1856a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard Point p = new Point(x, y); 1956a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard points.add(p); 2056a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard wasMovedTo = p; 2156a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard } 2256a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 23de9feed5ddf1d91a3e76cbc71712c36a7652201eChristian Williams @Implementation 2456a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard public void lineTo(float x, float y) { 2556a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard points.add(new Point(x, y)); 2656a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard } 2756a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 2856a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard public List<Point> getPoints() { 2956a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard return points; 3056a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard } 3156a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 3256a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard public static class Point { 3356a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard float x, y; 3456a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 3556a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard public Point(float x, float y) { 3656a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard this.x = x; 3756a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard this.y = y; 3856a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard } 3956a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 4056a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard @Override 4156a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard public boolean equals(Object o) { 4256a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard if (this == o) return true; 4356a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard if (o == null || getClass() != o.getClass()) return false; 4456a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 4556a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard Point point = (Point) o; 4656a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 4756a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard if (Float.compare(point.x, x) != 0) return false; 4856a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard if (Float.compare(point.y, y) != 0) return false; 4956a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 5056a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard return true; 5156a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard } 5256a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 5356a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard @Override 5456a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard public int hashCode() { 5556a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard int result = (x != +0.0f ? Float.floatToIntBits(x) : 0); 5656a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard result = 31 * result + (y != +0.0f ? Float.floatToIntBits(y) : 0); 5756a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard return result; 5856a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard } 5956a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 6056a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard @Override 6156a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard public String toString() { 6256a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard return "Point(" + x + "," + y + ")"; 6356a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard } 6456a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard } 6556a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard} 66