diff --git a/TODO.md b/TODO.md
index 82cf3b5..570e1af 100644
--- a/TODO.md
+++ b/TODO.md
@@ -1,9 +1,11 @@
-- icons
- settings
- configurable theme color
- pace/speed based on sport
- imperial unit support
- hr gauge => hr zone distribution
-- track color => color coded by elevation gain/loss (or even vertical speed)
+- track color => color coded by elevation gain/loss (or even vertical speed ?)
- https://github.com/loukad/vertlover
+
+- refactor
+ - fields to members
diff --git a/resources/layouts/layouts.xml b/resources/layouts/layouts.xml
index 89941ba..8647ead 100755
--- a/resources/layouts/layouts.xml
+++ b/resources/layouts/layouts.xml
@@ -23,12 +23,16 @@
-
+
+
+
+
+
-
+
-
+
diff --git a/resources/settings/properties.xml b/resources/settings/properties.xml
new file mode 100644
index 0000000..7d8135a
--- /dev/null
+++ b/resources/settings/properties.xml
@@ -0,0 +1,4 @@
+
+ 0.8.0
+ 0088FF
+
\ No newline at end of file
diff --git a/resources/settings/settings.xml b/resources/settings/settings.xml
new file mode 100644
index 0000000..581230a
--- /dev/null
+++ b/resources/settings/settings.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/strings/strings.xml b/resources/strings/strings.xml
index 1e2c6f4..72a2433 100644
--- a/resources/strings/strings.xml
+++ b/resources/strings/strings.xml
@@ -1,5 +1,7 @@
RepaField
+ Version
+ Theme Color
My Value
diff --git a/source/RepaFieldBgOverlay.mc b/source/RepaFieldBgOverlay.mc
index 08b8fc7..b2ea5b5 100644
--- a/source/RepaFieldBgOverlay.mc
+++ b/source/RepaFieldBgOverlay.mc
@@ -11,6 +11,9 @@ class BgOverlay extends WatchUi.Drawable {
hidden var h as Number;
hidden var d as Number;
+ hidden var c1 as Number;
+ hidden var c2 as Number;
+
function initialize(params as Dictionary) {
Drawable.initialize(params);
x = 132;
@@ -33,12 +36,23 @@ class BgOverlay extends WatchUi.Drawable {
if (params.hasKey(:d)) {
d = params.get(:d) as Number;
}
+
+ c1 = 0x002244;
+ c2 = 0x003366;
+ }
+
+ function setColor1(c as Number) as Void {
+ c1 = c;
+ }
+
+ function setColor2(c as Number) as Void {
+ c2 = c;
}
function draw(dc as Dc) as Void {
- dc.setColor(0x002244, Graphics.COLOR_TRANSPARENT);
+ dc.setColor(c1, Graphics.COLOR_TRANSPARENT);
dc.fillPolygon([[x+w, y], [x, y], [x-d, y+h], [x+w, y+h]]);
- dc.setColor(0x003366, Graphics.COLOR_TRANSPARENT);
+ dc.setColor(c2, Graphics.COLOR_TRANSPARENT);
dc.setPenWidth(1);
dc.drawLine(x+w, y, x, y);
dc.drawLine(x, y, x-d, y+h);
diff --git a/source/RepaFieldView.mc b/source/RepaFieldView.mc
index fc5dfb5..fe551a3 100644
--- a/source/RepaFieldView.mc
+++ b/source/RepaFieldView.mc
@@ -4,9 +4,12 @@ import Toybox.Lang;
import Toybox.UserProfile;
import Toybox.WatchUi;
import Toybox.System;
+import Toybox.Application;
class RepaFieldView extends WatchUi.DataField {
+ hidden var themeColor as Numeric;
+
hidden var hrValue as Numeric;
hidden var ahrValue as Numeric;
hidden var mhrValue as Numeric;
@@ -28,6 +31,9 @@ class RepaFieldView extends WatchUi.DataField {
function initialize() {
DataField.initialize();
+
+ themeColor = Application.Properties.getValue("themeColor").toNumberWithBase(16);
+
hrValue = 0;
ahrValue = 0;
mhrValue = 0;
@@ -86,10 +92,25 @@ class RepaFieldView extends WatchUi.DataField {
View.setLayout(Rez.Layouts.MainLayout(dc));
}
+ // TODO remove
var label = View.findDrawableById("label") as Text;
if (label != null) {
label.setText(Rez.Strings.label);
}
+
+ // theme color
+ var bgo = View.findDrawableById("BgOverlay") as BgOverlay;
+ bgo.setColor1(darken(themeColor, 4));
+ bgo.setColor2(darken(themeColor, 2));
+
+ var elevationField = View.findDrawableById("elevation") as Text;
+ elevationField.setColor(themeColor);
+ var elevationGainField = View.findDrawableById("elevationGain") as Text;
+ elevationGainField.setColor(themeColor);
+ var elevationLossField = View.findDrawableById("elevationLoss") as Text;
+ elevationLossField.setColor(themeColor);
+ var aPaceField = View.findDrawableById("apace") as Text;
+ aPaceField.setColor(themeColor);
}
function compute(info as Activity.Info) as Void {
@@ -198,11 +219,27 @@ class RepaFieldView extends WatchUi.DataField {
}
// time
+ var time = System.getClockTime();
+ var tstr = time.hour.format("%02d") + ":" + time.min.format("%02d");
var timeField = View.findDrawableById("time") as Text;
if (timeField != null) {
- var time = System.getClockTime();
- timeField.setText(time.hour.format("%02d") + ":" + time.min.format("%02d"));
+ timeField.setText(tstr);
}
+ // TODO ?
+ var ts1 = View.findDrawableById("timeS1") as Text;
+ var ts2 = View.findDrawableById("timeS2") as Text;
+ var ts3 = View.findDrawableById("timeS3") as Text;
+ var ts4 = View.findDrawableById("timeS4") as Text;
+ ts1.setColor(themeColor);
+ ts1.setText(tstr);
+ ts2.setColor(themeColor);
+ ts2.setText(tstr);
+ ts3.setColor(themeColor);
+ ts3.setText(tstr);
+ ts4.setColor(themeColor);
+ ts4.setText(tstr);
+
+ // timer
var timerField = View.findDrawableById("timerHM") as Text;
var timerSecField = View.findDrawableById("timerS") as Text;
if (timerField != null) {