A few little fixes to the polar clock.

I was trying to figure out how to get it to fill the screen correctly when in
preview mode, but have no idea. :)

Change-Id: Ia4bb3ea4f4922475a27da0864d6a9d5e284ac37b
diff --git a/src/com/android/wallpaper/polarclock/PolarClockWallpaper.java b/src/com/android/wallpaper/polarclock/PolarClockWallpaper.java
index 8078e46..0f8b611 100644
--- a/src/com/android/wallpaper/polarclock/PolarClockWallpaper.java
+++ b/src/com/android/wallpaper/polarclock/PolarClockWallpaper.java
@@ -30,6 +30,7 @@
 import android.os.Handler;
 import android.os.SystemClock;
 import android.text.format.Time;
+import android.util.Log;
 import android.util.MathUtils;
 
 import java.util.TimeZone;
@@ -80,13 +81,13 @@
             public void onReceive(Context context, Intent intent) {
                 final String timeZone = intent.getStringExtra("time-zone");
                 mCalendar = new Time(TimeZone.getTimeZone(timeZone).getID());
-                drawFrame(true);
+                drawFrame();
             }
         };
         
         private final Runnable mDrawClock = new Runnable() {
             public void run() {
-                drawFrame(true);
+                drawFrame();
             }
         };
         private boolean mVisible;
@@ -145,13 +146,13 @@
                 }
                 mHandler.removeCallbacks(mDrawClock);
             }
-            drawFrame(visible);
+            drawFrame();
         }
 
         @Override
         public void onSurfaceChanged(SurfaceHolder holder, int format, int width, int height) {
             super.onSurfaceChanged(holder, format, width, height);
-            drawFrame(true);
+            drawFrame();
         }
 
         @Override
@@ -162,16 +163,17 @@
         @Override
         public void onSurfaceDestroyed(SurfaceHolder holder) {
             super.onSurfaceDestroyed(holder);
-            drawFrame(false);
+            mVisible = false;
+            mHandler.removeCallbacks(mDrawClock);
         }
 
         @Override
         public void onOffsetsChanged(float xOffset, float yOffset, int xPixels, int yPixels) {
             mOffsetX = xOffset;
-            drawFrame(mVisible);
+            drawFrame();
         }
         
-        void drawFrame(boolean redraw) {
+        void drawFrame() {
             final SurfaceHolder holder = getSurfaceHolder();
             final Rect frame = holder.getSurfaceFrame();
             final int width = frame.width();
@@ -204,6 +206,7 @@
                     rect.set(-size, -size, size, size);
 
                     float angle = ((mStartTime + SystemClock.elapsedRealtime()) % 60000) / 60000.0f;
+                    if (angle < 0) angle = -angle;
                     paint.setColor(colors[((int) (angle * COLORS_CACHE_COUNT))]);
                     c.drawArc(rect, 0.0f, angle * 360.0f, false, paint);
 
@@ -245,7 +248,7 @@
             }
 
             mHandler.removeCallbacks(mDrawClock);
-            if (redraw) {
+            if (mVisible) {
                 mHandler.postDelayed(mDrawClock, 1000 / 25);
             }
         }