import Toybox.Attention; import Toybox.Graphics; import Toybox.Lang; import Toybox.Timer; import Toybox.WatchUi; // Green checkmark flash after a successful event save. Vibrates // briefly, holds for Config.SUCCESS_DISPLAY_MS, then closes the app. class SuccessView extends WatchUi.View { private var _timer as Timer.Timer; function initialize() { View.initialize(); _timer = new Timer.Timer(); } function onShow() as Void { if (Attention has :vibrate) { Attention.vibrate([new Attention.VibeProfile(75, 200)] as Array); } _timer.start(method(:_dismiss), Config.SUCCESS_DISPLAY_MS, false); } function onHide() as Void { _timer.stop(); } (:debug) function _dismiss() as Void { WatchUi.popView(WatchUi.SLIDE_RIGHT); } (:release) function _dismiss() as Void { System.exit(); } function onUpdate(dc as Dc) as Void { dc.setColor(Config.COLOR_FG, Config.COLOR_BG); dc.clear(); var cx = LayoutMetrics.centerX(dc); var cy = LayoutMetrics.centerY(dc); var min = LayoutMetrics.minDim(dc); var size = (min * 0.35).toNumber(); dc.setColor(Config.COLOR_SUCCESS, Config.COLOR_BG); dc.setPenWidth((min * 0.035).toNumber()); // Checkmark: two line segments forming a tick. var left = cx - size / 2; var right = cx + size / 2; var midX = cx - size / 6; dc.drawLine(left, cy, midX, cy + size / 3); dc.drawLine(midX, cy + size / 3, right, cy - size / 2); } }