ShadowPath.java revision 56a2a9db15f97a56b5eacef4645bc8ba8790ba6c
156a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richardpackage com.xtremelabs.droidsugar.fakes; 256a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 356a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richardimport android.graphics.Path; 456a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richardimport com.xtremelabs.droidsugar.util.Implements; 556a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 656a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richardimport java.util.ArrayList; 756a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richardimport java.util.List; 856a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 956a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard@SuppressWarnings({"UnusedDeclaration"}) 1056a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard@Implements(Path.class) 1156a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richardpublic class FakePath { 1256a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard private List<Point> points = new ArrayList<Point>(); 1356a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard public Point wasMovedTo; 1456a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 1556a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard public void moveTo(float x, float y) { 1656a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard Point p = new Point(x, y); 1756a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard points.add(p); 1856a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard wasMovedTo = p; 1956a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard } 2056a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 2156a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard public void lineTo(float x, float y) { 2256a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard points.add(new Point(x, y)); 2356a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard } 2456a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 2556a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard public List<Point> getPoints() { 2656a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard return points; 2756a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard } 2856a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 2956a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard public static class Point { 3056a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard float x, y; 3156a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 3256a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard public Point(float x, float y) { 3356a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard this.x = x; 3456a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard this.y = y; 3556a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard } 3656a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 3756a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard @Override 3856a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard public boolean equals(Object o) { 3956a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard if (this == o) return true; 4056a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard if (o == null || getClass() != o.getClass()) return false; 4156a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 4256a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard Point point = (Point) o; 4356a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 4456a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard if (Float.compare(point.x, x) != 0) return false; 4556a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard if (Float.compare(point.y, y) != 0) return false; 4656a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 4756a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard return true; 4856a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard } 4956a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 5056a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard @Override 5156a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard public int hashCode() { 5256a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard int result = (x != +0.0f ? Float.floatToIntBits(x) : 0); 5356a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard result = 31 * result + (y != +0.0f ? Float.floatToIntBits(y) : 0); 5456a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard return result; 5556a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard } 5656a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 5756a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard @Override 5856a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard public String toString() { 5956a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard return "Point(" + x + "," + y + ")"; 6056a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard } 6156a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard } 6256a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard} 63