ShadowCanvas.java revision 93a1ab50e8a7374d3f500c45052ddad66726c923
156a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richardpackage com.xtremelabs.droidsugar.fakes; 256a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 356a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richardimport android.graphics.Canvas; 456a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richardimport android.graphics.Paint; 556a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richardimport android.graphics.Path; 656a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richardimport com.xtremelabs.droidsugar.util.Implements; 756a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 832c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richardimport java.util.ArrayList; 932c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richardimport java.util.List; 1032c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard 1156a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard@SuppressWarnings({"UnusedDeclaration"}) 1256a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard@Implements(Canvas.class) 1356a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richardpublic class FakeCanvas { 1432c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard private List<PaintEvents> pathPaintEvents = new ArrayList<PaintEvents>(); 1593a1ab50e8a7374d3f500c45052ddad66726c923Joe Moore & Phil Goodwin public Paint drawnPaint; 166570210d924d13ee284f456b8b1db6fc30f12937Chee Wong & Ryan Richard public Paint circlePaint; 176570210d924d13ee284f456b8b1db6fc30f12937Chee Wong & Ryan Richard public float circleCenterX; 186570210d924d13ee284f456b8b1db6fc30f12937Chee Wong & Ryan Richard public float circleCenterY; 196570210d924d13ee284f456b8b1db6fc30f12937Chee Wong & Ryan Richard public float circleRadius; 2032c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard public boolean drewSomethingAfterCircle; 2156a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard 2293a1ab50e8a7374d3f500c45052ddad66726c923Joe Moore & Phil Goodwin public void drawPaint(Paint paint) { 2393a1ab50e8a7374d3f500c45052ddad66726c923Joe Moore & Phil Goodwin drawnPaint = paint; 2493a1ab50e8a7374d3f500c45052ddad66726c923Joe Moore & Phil Goodwin } 2593a1ab50e8a7374d3f500c45052ddad66726c923Joe Moore & Phil Goodwin 2656a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard public void drawPath(Path path, Paint paint) { 2732c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard pathPaintEvents.add(new PaintEvents(path, paint)); 2832c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard if(hasDrawnCircle()) { 2932c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard drewSomethingAfterCircle = true; 3032c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard } 316570210d924d13ee284f456b8b1db6fc30f12937Chee Wong & Ryan Richard } 326570210d924d13ee284f456b8b1db6fc30f12937Chee Wong & Ryan Richard 336570210d924d13ee284f456b8b1db6fc30f12937Chee Wong & Ryan Richard public void drawCircle(float cx, float cy, float radius, Paint paint) { 346570210d924d13ee284f456b8b1db6fc30f12937Chee Wong & Ryan Richard circleCenterX = cx; 356570210d924d13ee284f456b8b1db6fc30f12937Chee Wong & Ryan Richard circleCenterY = cy; 366570210d924d13ee284f456b8b1db6fc30f12937Chee Wong & Ryan Richard circleRadius = radius; 376570210d924d13ee284f456b8b1db6fc30f12937Chee Wong & Ryan Richard circlePaint = paint; 3832c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard drewSomethingAfterCircle = false; 3932c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard } 4032c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard 4132c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard public int getPathPaintCount() { 4232c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard return pathPaintEvents.size(); 4332c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard } 4432c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard 4532c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard public boolean hasDrawnPath() { 4632c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard return getPathPaintCount() > 0; 4732c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard } 4832c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard 4932c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard public boolean hasDrawnCircle() { 5032c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard return circlePaint != null; 5132c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard } 5232c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard 5332c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard public Paint getDrawnPathPaint(int i) { 5432c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard return pathPaintEvents.get(i).pathPaint; 5532c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard } 5632c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard 5732c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard public Path getDrawnPath(int i) { 5832c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard return pathPaintEvents.get(i).drawnPath; 5932c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard } 6032c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard 6132c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard private static class PaintEvents { 6232c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard private Path drawnPath; 6332c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard private Paint pathPaint; 6432c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard 6532c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard PaintEvents(Path drawnPath, Paint pathPaint) { 6632c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard this.drawnPath = drawnPath; 6732c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard this.pathPaint = pathPaint; 6832c37ca6a61b1cee08c99fc206f8907c69905e23Chee Wong & Ryan Richard } 6956a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard } 7056a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard} 71