diff --git a/wear/src/main/java/com/example/android/sunshine/wear/SunshineWatchFaceService.java b/wear/src/main/java/com/example/android/sunshine/wear/SunshineWatchFaceService.java
index 995edf7..b4ad61d 100644
--- a/wear/src/main/java/com/example/android/sunshine/wear/SunshineWatchFaceService.java
+++ b/wear/src/main/java/com/example/android/sunshine/wear/SunshineWatchFaceService.java
@@ -21,6 +21,8 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.res.Resources;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
@@ -87,7 +89,10 @@ public class SunshineWatchFaceService extends CanvasWatchFaceService {
final Handler mUpdateTimeHandler = new EngineHandler(this);
boolean mRegisteredTimeZoneReceiver = false;
Paint mBackgroundPaint;
- Paint mTextPaint;
+ Paint mTimeTextPaint;
+ Paint mDateTextPaint;
+ Paint mHighestTempPaint;
+ Paint mLowestTempPaint;
boolean mAmbient;
Time mTime;
final BroadcastReceiver mTimeZoneReceiver = new BroadcastReceiver() {
@@ -97,10 +102,13 @@ public class SunshineWatchFaceService extends CanvasWatchFaceService {
mTime.setToNow();
}
};
- int mTapCount;
-
- float mXOffset;
- float mYOffset;
+ float mTimeXOffset;
+ float mTimeYOffset;
+ float mDateXOffset;
+ float mDateYOffset;
+ float mWeatherYOffset;
+ float mWeatherXOffset;
+ float mWeatherXOffset2;
/**
* Whether the display supports fewer bits for each color in ambient mode. When true, we
@@ -119,13 +127,19 @@ public class SunshineWatchFaceService extends CanvasWatchFaceService {
.setAcceptsTapEvents(true)
.build());
Resources resources = SunshineWatchFaceService.this.getResources();
- mYOffset = resources.getDimension(R.dimen.digital_y_offset);
+ mTimeYOffset = resources.getDimension(R.dimen.time_y_offset);
+ mDateYOffset = resources.getDimension(R.dimen.date_y_offset);
+ mWeatherYOffset = resources.getDimension(R.dimen.weather_y_offset);
mBackgroundPaint = new Paint();
mBackgroundPaint.setColor(resources.getColor(R.color.background));
- mTextPaint = new Paint();
- mTextPaint = createTextPaint(resources.getColor(R.color.digital_text));
+ mTimeTextPaint = createTextPaint(resources.getColor(R.color.textcolor_primary));
+ mDateTextPaint = createTextPaint(resources.getColor(R.color.textcolor_secondary));
+
+ mHighestTempPaint = createTextPaint(resources.getColor(R.color.textcolor_primary));
+ mHighestTempPaint.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.BOLD));
+ mLowestTempPaint = createTextPaint(resources.getColor(R.color.textcolor_primary));
mTime = new Time();
}
@@ -187,12 +201,30 @@ public class SunshineWatchFaceService extends CanvasWatchFaceService {
// Load resources that have alternate values for round watches.
Resources resources = SunshineWatchFaceService.this.getResources();
boolean isRound = insets.isRound();
- mXOffset = resources.getDimension(isRound
- ? R.dimen.digital_x_offset_round : R.dimen.digital_x_offset);
- float textSize = resources.getDimension(isRound
- ? R.dimen.digital_text_size_round : R.dimen.digital_text_size);
+ mTimeXOffset = resources.getDimension(isRound
+ ? R.dimen.time_x_offset_round : R.dimen.time_x_offset);
+ mDateXOffset = resources.getDimension(isRound
+ ? R.dimen.date_x_offset_round : R.dimen.date_x_offset);
+ mWeatherXOffset = resources.getDimension(isRound
+ ? R.dimen.weather_x_offset_round : R.dimen.weather_x_offset);
+ mWeatherXOffset2 = resources.getDimension(isRound
+ ? R.dimen.weather_x_offset_round_2 : R.dimen.weather_x_offset_2);
- mTextPaint.setTextSize(textSize);
+ float timeTextSize = resources.getDimension(isRound
+ ? R.dimen.time_text_size_round : R.dimen.time_text_size);
+ mTimeTextPaint.setTextSize(timeTextSize);
+
+ float dateTextSize = resources.getDimension(isRound
+ ? R.dimen.date_text_size_round : R.dimen.date_text_size);
+ mDateTextPaint.setTextSize(dateTextSize);
+
+ float weatherTextSize = resources.getDimension(isRound
+ ? R.dimen.weather_text_size_round : R.dimen.weather_text_size);
+ mHighestTempPaint.setTextSize(weatherTextSize);
+
+ float weatherTextSize2 = resources.getDimension(isRound
+ ? R.dimen.weather_text_size_round_2 : R.dimen.weather_text_size_2);
+ mLowestTempPaint.setTextSize(weatherTextSize2);
}
@Override
@@ -213,7 +245,7 @@ public class SunshineWatchFaceService extends CanvasWatchFaceService {
if (mAmbient != inAmbientMode) {
mAmbient = inAmbientMode;
if (mLowBitAmbient) {
- mTextPaint.setAntiAlias(!inAmbientMode);
+ mTimeTextPaint.setAntiAlias(!inAmbientMode);
}
invalidate();
}
@@ -223,29 +255,7 @@ public class SunshineWatchFaceService extends CanvasWatchFaceService {
updateTimer();
}
- /**
- * Captures tap event (and tap type) and toggles the background color if the user finishes
- * a tap.
- */
- @Override
- public void onTapCommand(int tapType, int x, int y, long eventTime) {
- Resources resources = SunshineWatchFaceService.this.getResources();
- switch (tapType) {
- case TAP_TYPE_TOUCH:
- // The user has started touching the screen.
- break;
- case TAP_TYPE_TOUCH_CANCEL:
- // The user has started a different gesture or otherwise cancelled the tap.
- break;
- case TAP_TYPE_TAP:
- // The user has completed the tap gesture.
- mTapCount++;
- mBackgroundPaint.setColor(resources.getColor(mTapCount % 2 == 0 ?
- R.color.background : R.color.background2));
- break;
- }
- invalidate();
- }
+
@Override
public void onDraw(Canvas canvas, Rect bounds) {
@@ -256,12 +266,23 @@ public class SunshineWatchFaceService extends CanvasWatchFaceService {
canvas.drawRect(0, 0, bounds.width(), bounds.height(), mBackgroundPaint);
}
- // Draw H:MM in ambient mode or H:MM:SS in interactive mode.
mTime.setToNow();
- String text = mAmbient
+ // Draw H:MM in ambient mode or H:MM:SS in interactive mode.
+ String timeText = mAmbient
? String.format("%d:%02d", mTime.hour, mTime.minute)
: String.format("%d:%02d:%02d", mTime.hour, mTime.minute, mTime.second);
- canvas.drawText(text, mXOffset, mYOffset, mTextPaint);
+ canvas.drawText(timeText, mTimeXOffset, mTimeYOffset, mTimeTextPaint);
+
+ // Draw current date
+ String dateText = mTime.format("%a, %b %m %Y");
+ canvas.drawText(dateText, mDateXOffset, mDateYOffset, mDateTextPaint);
+
+ // Draw weather
+ String currentHigh = "25 \u00b0C";
+ String currentLow = "16 \u00b0C";
+ canvas.drawText(currentHigh, mWeatherXOffset, mWeatherYOffset, mHighestTempPaint);
+ canvas.drawText(currentLow, mWeatherXOffset + mWeatherXOffset2, mWeatherYOffset, mLowestTempPaint);
+
}
/**
diff --git a/wear/src/main/res/values/colors.xml b/wear/src/main/res/values/colors.xml
index 45006f1..367191b 100644
--- a/wear/src/main/res/values/colors.xml
+++ b/wear/src/main/res/values/colors.xml
@@ -1,6 +1,7 @@
- #000000
+ #1ca8f4
#000088
- #ffffff
+ #ffffff
+ #ddd
diff --git a/wear/src/main/res/values/dimens.xml b/wear/src/main/res/values/dimens.xml
index 683f561..2d4469a 100644
--- a/wear/src/main/res/values/dimens.xml
+++ b/wear/src/main/res/values/dimens.xml
@@ -1,8 +1,27 @@
- 40dp
- 45dp
- 15dp
- 25dp
- 90dp
+ 40dp
+ 45dp
+ 15dp
+ 25dp
+ 70dp
+
+ 20dp
+ 25dp
+ 15dp
+ 25dp
+ 100dp
+
+ 20dp
+ 25dp
+ 15dp
+ 20dp
+ 45dp
+ 55dp
+ 70dp
+ 100dp
+ 140dp
+
+ 40dp
+