mirror of
https://github.com/house-of-abbey/GarminHomeAssistant.git
synced 2025-05-02 05:32:27 +00:00
1. Amended code for a single HomeAssistantService for all 'tap's 2. Removed now redundant GET request for taps without a service now that having a service is enforced. 3. Determined that migrating API code from 'toggle's to the HomeAssistantService is awkward due to the close coupling with other methods in the class.
49 lines
1.5 KiB
MonkeyC
49 lines
1.5 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
|
|
//
|
|
//
|
|
// Description:
|
|
//
|
|
// A view with added methods to scale from percentages of scrren size to pixels.
|
|
//
|
|
//-----------------------------------------------------------------------------------
|
|
|
|
using Toybox.Lang;
|
|
using Toybox.WatchUi;
|
|
using Toybox.Math;
|
|
|
|
class ScalableView extends WatchUi.View {
|
|
private var mScreenWidth;
|
|
|
|
function initialize() {
|
|
View.initialize();
|
|
}
|
|
|
|
// Convert a fraction expressed as a percentage (%) to a number of pixels for the
|
|
// screen's dimensions.
|
|
//
|
|
// Parameters:
|
|
// * dc - Device context
|
|
// * pc - Percentage (%) expressed as a number in the range 0.0..100.0
|
|
//
|
|
// Uses screen width rather than screen height as rectangular screens tend to have
|
|
// height > width.
|
|
//
|
|
function pixelsForScreen(pc as Lang.Float) as Lang.Number {
|
|
if (mScreenWidth == null) {
|
|
mScreenWidth = System.getDeviceSettings().screenWidth;
|
|
}
|
|
return Math.round(pc * mScreenWidth) / 100;
|
|
}
|
|
}
|