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);
}
}