import { createWidget, widget, align, updateStatusBarTitle } from "@zos/ui"; import { log as Logger, px } from "@zos/utils"; import { back } from "@zos/router"; import { DEFAULT_COLOR, DEFAULT_COLOR_TRANSPARENT, } from "../../utils/config/constants"; import { DEVICE_WIDTH } from "../../utils/config/device"; import VisLog from "@silver-zepp/vis-log"; const vis = new VisLog("index.js"); const logger = Logger.getLogger("ZeppSpace"); const { messageBuilder } = getApp()._options.globalData; let title = ""; let url = ""; Page({ state: {}, onInit(params) { const data = JSON.parse(params); if (data["url"] == undefined || data["name"] == undefined) { back(); return; } title = data["name"]; url = data["url"]; }, build() { updateStatusBarTitle(title + " (Loading)"); this.fetchData(); }, fetchData() { messageBuilder .request({ method: "GET_STATUS", url: url, }) .then((data) => { const statusSuccess = data["success"]; if (!statusSuccess) { return; } let open = data["result"]["state"]["open"]; let openText = open ? "Yes" : "No"; createWidget(widget.TEXT, { x: 0, y: px(70), w: px(DEVICE_WIDTH), h: px(50), align_h: align.CENTER_H, align_v: align.CENTER_V, text_size: px(32), color: 0xffffff, text: "Open: " + openText, }); createWidget(widget.TEXT, { x: 0, y: px(120), w: px(DEVICE_WIDTH), h: px(50), align_h: align.CENTER_H, align_v: align.CENTER_V, text_size: px(32), color: 0xffffff, text: "Last Updated: " + this.convertTime(data["result"]["state"]["lastchange"]), }); updateStatusBarTitle(title); }); }, convertTime(timestamp) { var a = new Date(timestamp * 1000); var today = new Date(); var yesterday = new Date(Date.now() - 86400000); var months = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", ]; var year = a.getFullYear(); var month = months[a.getMonth()]; var date = a.getDate(); var hour = a.getHours() < 10 ? "0" + a.getHours() : a.getHours(); var min = a.getMinutes() < 10 ? "0" + a.getMinutes() : a.getMinutes(); if (a.setHours(0, 0, 0, 0) == today.setHours(0, 0, 0, 0)) return hour + ":" + min; else if (a.setHours(0, 0, 0, 0) == yesterday.setHours(0, 0, 0, 0)) return "Yesterday, " + hour + ":" + min; else if (year == today.getFullYear()) return date + " " + month; else return date + " " + month + " " + year; }, });