mirror of
https://github.com/house-of-abbey/GarminHomeAssistant.git
synced 2025-07-09 22:38:40 +00:00
The newer SDK support tooltips to show the function prototype and help text, so best to make good use of it.
57 lines
1.7 KiB
MonkeyC
57 lines
1.7 KiB
MonkeyC
//-----------------------------------------------------------------------------------
|
|
//
|
|
// Distributed under MIT Licence
|
|
// See https://github.com/house-of-abbey/GarminHomeAssistant/blob/main/LICENSE.
|
|
//
|
|
//-----------------------------------------------------------------------------------
|
|
//
|
|
// GarminHomeAssistant is a Garmin IQ application written in Monkey C and routinely
|
|
// tested on a Venu 2 device. The source code is provided at:
|
|
// https://github.com/house-of-abbey/GarminHomeAssistant.
|
|
//
|
|
// J D Abbey & P A Abbey, 28 December 2022
|
|
//
|
|
//-----------------------------------------------------------------------------------
|
|
|
|
using Toybox.Lang;
|
|
using Toybox.Timer;
|
|
using Toybox.Application.Properties;
|
|
using Toybox.WatchUi;
|
|
|
|
//! Quit the application after a period of inactivity in order to save the battery.
|
|
//!
|
|
class QuitTimer extends Timer.Timer {
|
|
|
|
//! Class Constructor
|
|
//
|
|
function initialize() {
|
|
Timer.Timer.initialize();
|
|
}
|
|
|
|
//! Can't see how to make a method object from `System.exit()` without this layer of
|
|
//! indirection. I assume this is because `System` is a static class.
|
|
//
|
|
function exitApp() as Void {
|
|
// System.println("QuitTimer exitApp(): Exiting");
|
|
// This will exit the system cleanly from any point within an app.
|
|
System.exit();
|
|
}
|
|
|
|
//! Kick off the quit timer.
|
|
//
|
|
function begin() {
|
|
var api_timeout = Settings.getAppTimeout(); // ms
|
|
if (api_timeout > 0) {
|
|
start(method(:exitApp), api_timeout, false);
|
|
}
|
|
}
|
|
|
|
//! Reset the quit timer.
|
|
//
|
|
function reset() {
|
|
// System.println("QuitTimer reset(): Restarted quit timer");
|
|
stop();
|
|
begin();
|
|
}
|
|
}
|