Advertisement
Guest User

Untitled

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