Advertisement
Guest User

Untitled

a guest
Sep 20th, 2021
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.25 KB | None | 0 0
  1. import Toybox.Graphics;
  2. import Toybox.Lang;
  3. import Toybox.System;
  4. import Toybox.WatchUi;
  5. using Toybox.ActivityMonitor as Act;
  6. using Toybox.Activity as Acty;
  7. using Toybox.Time.Gregorian;
  8.  
  9.  
  10.  
  11. class watchimageView extends WatchUi.WatchFace {
  12. var Battery;
  13. var HR;
  14. var leaf;
  15. var stepsDone;
  16. var caloriesDone;
  17. var WhiteBG;
  18. var DarkOrangeBG;
  19. var LightOrangeBG;
  20. var W = Application.Properties.getValue("BackgroundColor");
  21. function initialize() {
  22. WatchFace.initialize();
  23. Battery=WatchUi.loadResource(Rez.Drawables.Battery);
  24. HR=WatchUi.loadResource(Rez.Drawables.HR);
  25. leaf=WatchUi.loadResource(Rez.Drawables.leaf);
  26. stepsDone=WatchUi.loadResource(Rez.Drawables.stepsDone);
  27. caloriesDone=WatchUi.loadResource(Rez.Drawables.caloriesDone);
  28. WhiteBG=WatchUi.loadResource(Rez.Drawables.WhiteBG);
  29. DarkOrangeBG=WatchUi.loadResource(Rez.Drawables.DarkOrangeBG);
  30. LightOrangeBG=WatchUi.loadResource(Rez.Drawables.LightOrangeBG);
  31. }
  32.  
  33. var customFont = null;
  34. var smallCustomFont = null;
  35. var dateFont = null;
  36. var systemInfoFont = null;
  37. var pwr = System.getSystemStats().battery+.5;
  38. var batStr = Lang.format( "$1$", [ pwr.format( "%2d" ) ] );
  39. var today = Gregorian.info(Time.now(), Time.FORMAT_MEDIUM);
  40. var dateString = Lang.format(
  41. "$1$ $2$ $3$" ,
  42. [
  43. today.day_of_week,
  44. today.day,
  45. today.month,
  46.  
  47. ]
  48. );
  49.  
  50.  
  51. // Load your resources here
  52. function onLayout(dc as Dc) as Void {
  53. setLayout(Rez.Layouts.WatchFace(dc));
  54. customFont = WatchUi.loadResource(Rez.Fonts.customFont);
  55. smallCustomFont=WatchUi.loadResource(Rez.Fonts.smallCustomFont);
  56. dateFont=WatchUi.loadResource(Rez.Fonts.dateFont);
  57. systemInfoFont=WatchUi.loadResource(Rez.Fonts.systemInfoFont);
  58. }
  59. // Called when this View is brought to the foreground. Restore
  60. // the state of this View and prepare it to be shown. This includes
  61. // loading resources into memory.
  62. function onShow() as Void {}
  63.  
  64. // Update the view
  65. function onUpdate(dc as Dc) as Void {
  66. dc.clear();
  67. var clockTime = System.getClockTime();
  68. var hour = clockTime.hour;
  69. if (!System.getDeviceSettings().is24Hour) {
  70. hour = hour % 12;
  71. if (hour == 0) {
  72. hour = 12;
  73. }
  74. }
  75.  
  76. if (W==0) {dc.drawBitmap(0, 0, WhiteBG)};
  77. if (W==1) {dc.drawBitmap(0, 0, DarkOrangeBG)};
  78. if (W==2) {dc.drawBitmap(0, 0, LightOrangeBG)};
  79.  
  80. var info = Act.getInfo();
  81. var steps = info.steps;
  82. var calories = info.calories;
  83.  
  84. var BTstatusBitmap;
  85. var devSettings = System.getDeviceSettings();
  86. if (devSettings.phoneConnected) {
  87. BTstatusBitmap = WatchUi.loadResource(Rez.Drawables.connectIcon);
  88. dc.drawBitmap(dc.getWidth()/9.244, dc.getHeight()/4.16, BTstatusBitmap);}
  89. if (Act has: getHeartRateHistory) {
  90. var heartRate = Activity.getActivityInfo().currentHeartRate;
  91. if (heartRate == null) {
  92. var HRH = Act.getHeartRateHistory(1, true);
  93. var HRS = HRH.next();
  94. if (HRS != null && HRS.heartRate != Act.INVALID_HR_SAMPLE) {
  95. heartRate = HRS.heartRate;
  96. }
  97. }
  98. if (heartRate != null) {
  99. heartRate = heartRate.toString();
  100. } else {
  101. heartRate = "--";
  102. }
  103.  
  104. dc.drawBitmap(dc.getWidth()/1.284, dc.getHeight()/1.935, Battery);
  105. dc.drawBitmap(dc.getWidth()/1.3, dc.getHeight()/2.273, HR);
  106. dc.drawBitmap(dc.getWidth()/2.5366, dc.getHeight()/20.8, leaf);
  107. dc.drawBitmap(dc.getWidth()/83.2, dc.getHeight()/1.9349, stepsDone);
  108. dc.drawBitmap(dc.getWidth()/83.2, dc.getHeight()/2.31, caloriesDone);
  109. dc.setColor(Graphics.COLOR_BLACK, Graphics.COLOR_TRANSPARENT);
  110. dc.drawText(dc.getWidth()/1.202, dc.getHeight()/1.89, smallCustomFont, batStr+"%", Graphics.TEXT_JUSTIFY_LEFT);
  111. dc.drawText(dc.getWidth()/1.1886, dc.getHeight()/2.2486, smallCustomFont, heartRate, Graphics.TEXT_JUSTIFY_LEFT);
  112. dc.drawText(dc.getWidth()/11.886, dc.getHeight()/1.8489, systemInfoFont, steps, Graphics.TEXT_JUSTIFY_LEFT);
  113. dc.drawText(dc.getWidth()/11.886, dc.getHeight()/2.1895, systemInfoFont, calories, Graphics.TEXT_JUSTIFY_LEFT);
  114.  
  115. // Get and show the current time
  116. dc.setColor(Graphics.COLOR_BLACK, Graphics.COLOR_TRANSPARENT);
  117. dc.drawText(dc.getWidth()/2.0293, dc.getHeight()/2.133, customFont, hour.toString(), Graphics.TEXT_JUSTIFY_RIGHT);
  118. dc.setColor(Graphics.COLOR_BLACK, Graphics.COLOR_TRANSPARENT);
  119. dc.drawText(dc.getWidth()/2, dc.getHeight()/2.133, customFont, ":"+Lang.format("$1$", [clockTime.min.format("%02d")]), Graphics.TEXT_JUSTIFY_LEFT);
  120. dc.drawText(dc.getWidth()/2, dc.getHeight()/13, dateFont, dateString, Graphics.TEXT_JUSTIFY_CENTER);
  121. }
  122. // Called when this View is removed from the screen. Save the
  123. // state of this View here. This includes freeing resources from
  124. // memory.
  125. }function onHide() as Void {}
  126.  
  127. // The user has just looked at their watch. Timers and animations may be started here.
  128. function onExitSleep() as Void {}
  129.  
  130. // Terminate any active timers and prepare for slow updates.
  131. function onEnterSleep() as Void {}
  132. }
  133.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement