fitbit-bling/app/index.js

81 lines
2.6 KiB
JavaScript

import document from "document";
import clock from "clock";
import { preferences } from "user-settings";
let currminutes = 99;
let dots = document.getElementById('dots');
let digits = {};
let colors = document.getElementById('colors');
digits.digit1 = document.getElementById('d1');
digits.digit2 = document.getElementById('d2');
digits.digit3 = document.getElementById('d3');
digits.digit4 = document.getElementById('d4');
function startAnimation() {
setTimeout(() => { colors.animate('enable'); }, 5000);
}
function updateClock(force) {
let currDate = new Date();
let seconds = currDate.getSeconds();
let minutes = currDate.getMinutes();
if (seconds%2) {
dots.animate('disable');
} else {
dots.animate('enable');
}
if (force || currminutes != minutes) {
currminutes = minutes;
digits.digit1.animate('disable');
setTimeout(() => { digits.digit2.animate('disable'); }, 250);
setTimeout(() => { digits.digit3.animate('disable'); }, 500);
setTimeout(() => { digits.digit4.animate('disable'); }, 750);
setTimeout(() => { newDigits(); }, 1000);
setTimeout(() => { digits.digit1.animate('enable'); }, 1250);
setTimeout(() => { digits.digit2.animate('enable'); }, 1500);
setTimeout(() => { digits.digit3.animate('enable'); }, 1750);
setTimeout(() => { digits.digit4.animate('enable'); }, 2000);
setTimeout(() => { digits.digit1.animate('disable'); }, 2000);
setTimeout(() => { digits.digit2.animate('disable'); }, 2250);
setTimeout(() => { digits.digit3.animate('disable'); }, 2500);
setTimeout(() => { digits.digit4.animate('disable'); }, 2750);
setTimeout(() => { digits.digit1.animate('enable'); }, 3250);
setTimeout(() => { digits.digit2.animate('enable'); }, 3500);
setTimeout(() => { digits.digit3.animate('enable'); }, 3750);
setTimeout(() => { digits.digit4.animate('enable'); }, 3000);
}
}
function newDigits() {
let currDate = new Date();
let hours = currDate.getHours();
let displayHours = hours;
if (preferences.clockDisplay === '12h') {
displayHours = displayHours % 12;
displayHours = displayHours ? displayHours : 12;
}
let minutes = currDate.getMinutes();
let newDigits = [
Math.floor(displayHours/10),
displayHours%10,
Math.floor(minutes/10),
minutes%10
];
digits.digit1.href = (newDigits[0] == 0) ? '' : 'img/1-'+newDigits[0]+'.png';
digits.digit2.href = 'img/2-'+newDigits[1]+'.png';
digits.digit3.href = 'img/3-'+newDigits[2]+'.png';
digits.digit4.href = 'img/4-'+newDigits[3]+'.png';
}
clock.granularity = "seconds";
clock.ontick = () => updateClock();
setTimeout(() => { updateClock(true); }, 250);
startAnimation();