Split _dismiss() into (:debug) popView and (:release) System.exit so simulator testing stays fluid while device behavior is unchanged.
58 lines
1.6 KiB
MonkeyC
58 lines
1.6 KiB
MonkeyC
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<Attention.VibeProfile>);
|
|
}
|
|
_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);
|
|
}
|
|
}
|