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