Skip to content

Commit

Permalink
Updated background/foreground colors for better readability
Browse files Browse the repository at this point in the history
  • Loading branch information
guillaume.cormier authored and guillaume.cormier committed Apr 11, 2020
1 parent 00695e0 commit cd023fb
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 34 deletions.
14 changes: 14 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -302,6 +302,20 @@ Calculate the vertical speed in meter/min or feet/min depending on the watch set


## Release Notes
### Version 1.26
- Updated background/foreground colors for better readability
- Added grey color for HR Zone 1

Memory Usage on va3 (Current | Peak) :
* At startup: 24.8 kB | 26.4 kB
* 10 sec running: 24.8 kB | 26.7 kB
* After setting change: 24.8 kB | 27.7 kB

Memory Usage on fr945 (Current | Peak) :
* At startup: 29.1 kB | 31.0 kB
* 10 sec running: 29.1 kB | 31.3 kB
* After setting change: 29.1 kB | 32.1 kB

### Version 1.25
- Added "Required Pace to meet Target Pace" for 5K, 10K, Half Marathon, Marathon distance and 100K on all devices.
- Added ETA 100K on all devices
Expand Down
2 changes: 1 addition & 1 deletion resources/settings/properties.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<properties>
<property id="AppVersion" type="string">1.25</property>
<property id="AppVersion" type="string">1.26</property>
<property id="HeaderPosition" type="number">1</property>
<property id="HeaderHeight" type="number">30</property>
<property id="SingleBackgroundColor" type="boolean">false</property>
Expand Down
95 changes: 62 additions & 33 deletions source/GRunView.mc
Original file line number Diff line number Diff line change
Expand Up @@ -341,6 +341,10 @@ class GRunView extends WatchUi.DataField
vArea[7][3] = height;
vArea[8][3] = height;
}

else {
vArea[9][3] = vArea[9][3] - 3;
}
}


Expand Down Expand Up @@ -761,6 +765,9 @@ class GRunView extends WatchUi.DataField
var bgColor = null;
var color = getColor(type, value);

var isWhiteBG = (primaryForegroundColor == Graphics.COLOR_BLACK);
if ( (id >= 8) && (singleBackgroundColor == false) ) { isWhiteBG = !isWhiteBG; }

var areaX = valueArea[0];
var areaY = valueArea[1];
var areaWidth = valueArea[2];
Expand Down Expand Up @@ -805,72 +812,86 @@ class GRunView extends WatchUi.DataField

// Header Background Color
var dynamicHeaderBackgroundColor = (dynamicColor >> 8) == 1;
dc.setColor((dynamicHeaderBackgroundColor && (color != null)) ? color : headerBackgroundColor, Graphics.COLOR_TRANSPARENT);
var headerBgColor = (dynamicHeaderBackgroundColor && (color != null)) ? color : headerBackgroundColor;
dc.setColor(headerBgColor, Graphics.COLOR_TRANSPARENT);
dc.fillRectangle(areaX, headerY, areaWidth, headerHeight);

// Header Text
dc.setColor((dynamicHeaderBackgroundColor && (color != null)) ? Graphics.COLOR_WHITE : primaryForegroundColor, Graphics.COLOR_TRANSPARENT);
var headerFgColor = primaryForegroundColor;
if ( (headerBgColor == Graphics.COLOR_RED) || (headerBgColor == Graphics.COLOR_DK_GREEN) ) { headerFgColor = Graphics.COLOR_WHITE; }
dc.setColor(headerFgColor, Graphics.COLOR_TRANSPARENT);
dc.setClip(areaX + leftOffsetX, headerY, areaWidth - leftOffsetX - rightOffsetX, headerHeight);
dc.drawText(headerXcenter, headerYcenter, fontHeader, getHeaderName(type), Graphics.TEXT_JUSTIFY_CENTER | Graphics.TEXT_JUSTIFY_VCENTER);
dc.clearClip();
}
}

// Set Data values
var leftOffsetX = 0;
var rightOffsetX = 0;
var areaYcenter = areaY + (areaHeight / 2) - 1;
if (areaX == 0) { leftOffsetX = (deviceWidth - getWidth(areaYcenter)) / 2; }
if (areaX + areaWidth == deviceWidth) { rightOffsetX = (deviceWidth - getWidth(areaYcenter)) / 2; }
areaXcenter += (leftOffsetX / 2) - (rightOffsetX / 2);

// Realign row 4 and 5 on some devices
if (id > 7) { areaYcenter += yOffset; }

if (color != null)
{
if (dynamicBackgroundColor)
{
bgColor = color;
fgColor = Graphics.COLOR_WHITE;

if (bgColor == Graphics.COLOR_RED) { fgColor = Graphics.COLOR_WHITE; }
else { fgColor = primaryForegroundColor; }

var bgHeight = areaHeight;
if (deviceHeight - areaY - areaHeight <= 10) { bgHeight = deviceHeight; }

dc.setColor(bgColor, Graphics.COLOR_TRANSPARENT);
dc.fillRectangle(areaX, areaY, areaWidth, bgHeight);
}

else if (dynamicForegroundColor)
{
fgColor = color;

// Replace blue color on white background
if (( (primaryForegroundColor == Graphics.COLOR_BLACK) && (singleBackgroundColor || id < 8) ) ||
( (primaryForegroundColor == Graphics.COLOR_WHITE) && (singleBackgroundColor == false) && (id >= 8) ))
// Replace some colors on white background
if (isWhiteBG)
{
if (color == Graphics.COLOR_BLUE) // 0x00AAFF
{
fgColor = 0x0000AA;
color = 0x0000AA;
}

else if (color == Graphics.COLOR_DK_GREEN) // 0x00AA00
{
color = 0x005500;
}

else if (color == Graphics.COLOR_LT_GRAY)
{
color = Graphics.COLOR_DK_GRAY;
}
}

// Replace blue/green on black background
// Replace some colors on black background
else
{
if (color == Graphics.COLOR_BLUE) // 0x00AAFF
{
fgColor = 0x00FFFF;
color = 0x00FFFF;
}

if (color == Graphics.COLOR_DK_GREEN) // 0x00AA00
else if (color == Graphics.COLOR_DK_GREEN) // 0x00AA00
{
fgColor = 0x00FF00;
color = 0x00FF00;
}
}

fgColor = color;
}
}

// Set Data values
var leftOffsetX = 0;
var rightOffsetX = 0;
var areaYcenter = areaY + (areaHeight / 2) - 1;
if (areaX == 0) { leftOffsetX = (deviceWidth - getWidth(areaYcenter)) / 2; }
if (areaX + areaWidth == deviceWidth) { rightOffsetX = (deviceWidth - getWidth(areaYcenter)) / 2; }
areaXcenter += (leftOffsetX / 2) - (rightOffsetX / 2);

// Realign row 4 and 5 on some devices
if (id > 7) { areaYcenter += yOffset; }

if (bgColor != null)
{
dc.setColor(bgColor, Graphics.COLOR_TRANSPARENT);
dc.fillRectangle(areaX, areaY, areaWidth, areaHeight);
}

dc.setClip(areaX + leftOffsetX, areaY, areaWidth - leftOffsetX - rightOffsetX, areaHeight);

//if ( (type == 25 /* OPTION_CURRENT_LAP_TIME = 25 */) && (lapDistance > 0) )
Expand Down Expand Up @@ -920,8 +941,15 @@ class GRunView extends WatchUi.DataField
dc.drawText(areaXcenter + 12 /*(iconWidth / 2)*/, areaYcenter, font, formattedValue, Graphics.TEXT_JUSTIFY_CENTER | Graphics.TEXT_JUSTIFY_VCENTER);

// Always display HR icon in color
if (bgColor != null) { dc.setColor(Graphics.COLOR_WHITE, Graphics.COLOR_TRANSPARENT); }
else if (color != null) { dc.setColor(color, Graphics.COLOR_TRANSPARENT); }
if ( (fgColor == null) && (color != null) )
{
if (isWhiteBG && (color == Graphics.COLOR_LT_GRAY))
{
color = Graphics.COLOR_DK_GRAY;
}

dc.setColor(color, Graphics.COLOR_TRANSPARENT);
}
dc.drawText(areaXcenter - (textWidth / 2), areaYcenter, fontIcons, 0, Graphics.TEXT_JUSTIFY_CENTER | Graphics.TEXT_JUSTIFY_VCENTER);
}

Expand Down Expand Up @@ -1070,7 +1098,8 @@ class GRunView extends WatchUi.DataField
if (type == 6 /* OPTION_CURRENT_HEART_RATE */ ||
type == 9 /* OPTION_AVERAGE_HEART_RATE */)
{
if (value < hrZones[1]) { return null; } // Black
if (value < hrZones[0]) { return null; } // Black
if (value < hrZones[1]) { return 0xAAAAAA; } // Light Gray
if (value < hrZones[2]) { return 0x00AAFF; } // Blue
if (value < hrZones[3]) { return 0x00AA00; } // Dark Green
if (value < hrZones[4]) { return 0xFF5500; } // Orange
Expand Down

0 comments on commit cd023fb

Please sign in to comment.