Skip to content

Commit d1f81ce

Browse files
committed
Add 1.1.1 changes
1 parent c9e1ec0 commit d1f81ce

12 files changed

+283
-134
lines changed

about.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
<head>
55
<link rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.min.css">
6-
<title>About AudioMoth Time App</title>
6+
<link id="uiCSS" rel="stylesheet" href="./ui.css">
77
</head>
88

99
<body style="text-align: center; -webkit-user-select: none; -webkit-app-region: drag;">

about.js

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,34 @@
99
/* global document */
1010

1111
const electron = require('electron');
12+
const {app, process} = require('@electron/remote');
1213
const audiomoth = require('audiomoth-hid');
14+
const nightMode = require('./nightMode.js');
1315

14-
var versionDisplay = document.getElementById('version-display');
15-
var electronVersionDisplay = document.getElementById('electron-version-display');
16-
var audiomothHidVersionDisplay = document.getElementById('audiomoth-hid-version-display');
17-
var websiteLink = document.getElementById('website-link');
16+
const versionDisplay = document.getElementById('version-display');
17+
const electronVersionDisplay = document.getElementById('electron-version-display');
18+
const audiomothHidVersionDisplay = document.getElementById('audiomoth-hid-version-display');
19+
const websiteLink = document.getElementById('website-link');
1820

19-
versionDisplay.textContent = 'Version ' + electron.remote.app.getVersion();
20-
electronVersionDisplay.textContent = 'Running on Electron version ' + electron.remote.process.versions.electron;
21+
versionDisplay.textContent = 'Version ' + app.getVersion();
22+
electronVersionDisplay.textContent = 'Running on Electron version ' + process.versions.electron;
2123
audiomothHidVersionDisplay.textContent = 'AudioMoth-HID module ' + audiomoth.version;
2224

23-
websiteLink.addEventListener('click', function () {
25+
electron.ipcRenderer.on('night-mode', (e, nm) => {
26+
27+
if (nm !== undefined) {
28+
29+
nightMode.setNightMode(nm);
30+
31+
} else {
32+
33+
nightMode.toggle();
34+
35+
}
36+
37+
});
38+
39+
websiteLink.addEventListener('click', () => {
2440

2541
electron.shell.openExternal('https://openacousticdevices.info');
2642

app.js

Lines changed: 62 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -9,34 +9,35 @@
99
/* global document */
1010

1111
const electron = require('electron');
12-
const clipboard = electron.remote.clipboard;
13-
const menu = electron.remote.Menu;
14-
const dialog = electron.remote.dialog;
12+
const {clipboard, Menu, dialog, getCurrentWindow} = require('@electron/remote');
1513

1614
const strftime = require('strftime').utc();
1715
const audiomoth = require('audiomoth-hid');
1816

1917
const versionChecker = require('./versionChecker.js');
18+
const nightMode = require('./nightMode.js');
2019

2120
/* UI components */
2221

23-
var applicationMenu = menu.getApplicationMenu();
22+
const applicationMenu = Menu.getApplicationMenu();
2423

25-
var timeDisplay = document.getElementById('time-display');
26-
var idLabel = document.getElementById('id-label');
27-
var idDisplay = document.getElementById('id-display');
28-
var firmwareVersionLabel = document.getElementById('firmware-version-label');
29-
var firmwareVersionDisplay = document.getElementById('firmware-version-display');
30-
var firmwareDescriptionLabel = document.getElementById('firmware-description-label');
31-
var firmwareDescriptionDisplay = document.getElementById('firmware-description-display');
32-
var batteryLabel = document.getElementById('battery-label');
33-
var batteryDisplay = document.getElementById('battery-display');
24+
const timeDisplay = document.getElementById('time-display');
25+
const idLabel = document.getElementById('id-label');
26+
const idDisplay = document.getElementById('id-display');
27+
const firmwareVersionLabel = document.getElementById('firmware-version-label');
28+
const firmwareVersionDisplay = document.getElementById('firmware-version-display');
29+
const firmwareDescriptionLabel = document.getElementById('firmware-description-label');
30+
const firmwareDescriptionDisplay = document.getElementById('firmware-description-display');
31+
const batteryLabel = document.getElementById('battery-label');
32+
const batteryDisplay = document.getElementById('battery-display');
3433

35-
var setTimeButton = document.getElementById('set-time-button');
34+
const setTimeButton = document.getElementById('set-time-button');
3635

37-
var communicating = false;
36+
const MILLISECONDS_IN_SECOND = 1000;
3837

39-
var currentTime, deviceId, firmwareVersion, firmwareDescription;
38+
let communicating = false;
39+
40+
let currentTime, deviceId, firmwareVersion, firmwareDescription;
4041

4142
/* Time display functions */
4243

@@ -80,7 +81,7 @@ function enableDisplayAndShowTime (date) {
8081

8182
}
8283

83-
var strftimeUTC = strftime.timezone(0);
84+
const strftimeUTC = strftime.timezone(0);
8485

8586
timeDisplay.textContent = strftimeUTC('%H:%M:%S %d/%m/%Y UTC', date);
8687

@@ -150,6 +151,8 @@ function requestFirmwareDescription () {
150151

151152
audiomoth.getFirmwareDescription(function (err, description) {
152153

154+
if (communicating) return;
155+
153156
if (err) {
154157

155158
errorOccurred(err);
@@ -174,6 +177,8 @@ function requestFirmwareVersion () {
174177

175178
audiomoth.getFirmwareVersion(function (err, versionArr) {
176179

180+
if (communicating) return;
181+
177182
if (err) {
178183

179184
errorOccurred(err);
@@ -198,6 +203,8 @@ function requestBatteryState () {
198203

199204
audiomoth.getBatteryState(function (err, batteryState) {
200205

206+
if (communicating) return;
207+
201208
if (err) {
202209

203210
errorOccurred(err);
@@ -224,6 +231,8 @@ function requestID () {
224231

225232
audiomoth.getID(function (err, id) {
226233

234+
if (communicating) return;
235+
227236
if (err) {
228237

229238
errorOccurred(err);
@@ -246,14 +255,12 @@ function requestID () {
246255

247256
function requestTime () {
248257

249-
if (communicating) {
250-
251-
return;
252-
253-
}
258+
if (communicating) return;
254259

255260
audiomoth.getTime(function (err, date) {
256261

262+
if (communicating) return;
263+
257264
if (err) {
258265

259266
errorOccurred(err);
@@ -270,10 +277,16 @@ function requestTime () {
270277

271278
}
272279

273-
setTimeout(requestTime, 300);
274-
275280
});
276281

282+
const milliseconds = Date.now() % MILLISECONDS_IN_SECOND;
283+
284+
let delay = MILLISECONDS_IN_SECOND / 2 - milliseconds;
285+
286+
if (delay < 0) delay += MILLISECONDS_IN_SECOND;
287+
288+
setTimeout(requestTime, delay);
289+
277290
}
278291

279292
function setTime (time) {
@@ -315,13 +328,11 @@ electron.ipcRenderer.on('update-check', function () {
315328

316329
versionChecker.checkLatestRelease(function (response) {
317330

318-
var buttonIndex;
319-
320331
if (response.error) {
321332

322333
console.error(response.error);
323334

324-
dialog.showMessageBox(electron.remote.getCurrentWindow(), {
335+
dialog.showMessageBox(getCurrentWindow(), {
325336
type: 'error',
326337
title: 'Failed to check for updates',
327338
message: response.error
@@ -333,7 +344,7 @@ electron.ipcRenderer.on('update-check', function () {
333344

334345
if (response.updateNeeded === false) {
335346

336-
dialog.showMessageBox(electron.remote.getCurrentWindow(), {
347+
dialog.showMessageBox(getCurrentWindow(), {
337348
type: 'info',
338349
title: 'Update not needed',
339350
message: 'Your app is on the latest version (' + response.latestVersion + ').'
@@ -343,7 +354,7 @@ electron.ipcRenderer.on('update-check', function () {
343354

344355
}
345356

346-
buttonIndex = dialog.showMessageBoxSync({
357+
const buttonIndex = dialog.showMessageBoxSync({
347358
type: 'warning',
348359
buttons: ['Yes', 'No'],
349360
title: 'Are you sure?',
@@ -368,16 +379,15 @@ initialiseDisplay();
368379

369380
setTimeButton.addEventListener('click', function () {
370381

371-
var sendTime, now, delay, sendTimeDiff, USB_LAG, MINIMUM_DELAY, MILLISECONDS_IN_SECOND;
372-
373382
communicating = true;
383+
374384
timeDisplay.style.color = 'lightgrey';
375385

376-
USB_LAG = 20;
386+
const USB_LAG = 20;
377387

378-
MINIMUM_DELAY = 100;
388+
const MINIMUM_DELAY = 100;
379389

380-
MILLISECONDS_IN_SECOND = 1000;
390+
const MILLISECONDS_IN_SECOND = 1000;
381391

382392
/* Update button */
383393

@@ -395,18 +405,18 @@ setTimeButton.addEventListener('click', function () {
395405

396406
/* Increment to next second transition */
397407

398-
sendTime = new Date();
408+
const sendTime = new Date();
399409

400-
delay = MILLISECONDS_IN_SECOND - sendTime.getMilliseconds() - USB_LAG;
410+
let delay = MILLISECONDS_IN_SECOND - sendTime.getMilliseconds() - USB_LAG;
401411

402412
if (delay < MINIMUM_DELAY) delay += MILLISECONDS_IN_SECOND;
403413

404414
sendTime.setMilliseconds(sendTime.getMilliseconds() + delay);
405415

406416
/* Calculate how long to wait until second transition */
407417

408-
now = new Date();
409-
sendTimeDiff = sendTime.getTime() - now.getTime();
418+
const now = new Date();
419+
const sendTimeDiff = sendTime.getTime() - now.getTime();
410420

411421
/* Either send immediately or wait until the transition */
412422

@@ -428,4 +438,18 @@ setTimeButton.addEventListener('click', function () {
428438

429439
});
430440

441+
electron.ipcRenderer.on('night-mode', (e, nm) => {
442+
443+
if (nm !== undefined) {
444+
445+
nightMode.setNightMode(nm);
446+
447+
} else {
448+
449+
nightMode.toggle();
450+
451+
}
452+
453+
});
454+
431455
requestTime();

builder.js

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,35 +9,36 @@
99
const builder = require('electron-builder');
1010
const Platform = builder.Platform;
1111

12-
var config, target;
13-
var argTarget = process.argv[2];
12+
let config, target;
13+
14+
const argTarget = process.argv[2];
1415

1516
switch (argTarget) {
1617

1718
case 'win':
18-
case 'win64':
19-
console.log('Using build configuration to Windows (64-bit).');
19+
case 'win32':
20+
console.log('Using build configuration to Windows (32-bit).');
2021
target = Platform.WINDOWS.createTarget();
2122
config = {
2223
win: {
2324
target: [
2425
{
2526
target: 'nsis',
26-
arch: 'x64'
27+
arch: 'ia32'
2728
}
2829
]
2930
}
3031
};
3132
break;
32-
case 'win32':
33-
console.log('Using build configuration to Windows (32-bit).');
33+
case 'win64':
34+
console.log('Using build configuration to Windows (64-bit).');
3435
target = Platform.WINDOWS.createTarget();
3536
config = {
3637
win: {
3738
target: [
3839
{
3940
target: 'nsis',
40-
arch: 'ia32'
41+
arch: 'x64'
4142
}
4243
]
4344
}

index.css

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
input[type=number]::-webkit-inner-spin-button,
2+
input[type=number]::-webkit-outer-spin-button {
3+
-webkit-appearance: none;
4+
margin: 0;
5+
}
6+
7+
*, *::after, *::before {
8+
-webkit-user-select: none;
9+
-webkit-user-drag: none;
10+
-webkit-app-region: no-drag;
11+
cursor: default;
12+
}
13+
14+
.mono-text {
15+
font-variant-numeric: tabular-nums;
16+
}

index.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,17 @@
33

44
<head>
55
<link rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.min.css">
6-
<title>AudioMoth Time App</title>
6+
<link id="uiCSS" rel="stylesheet" href="ui.css">
77
</head>
88

9-
<body style="background: #FFFFFF; font-size: 10pt; overflow-x:hidden; font-family: Helvetica, Arial, sans-serif; -webkit-user-select: none; -webkit-app-region: drag;">
10-
<div class="container" style="padding: 11px;">
9+
<body style="font-size: 10pt; overflow-x:hidden; font-family: Helvetica, Arial, sans-serif; -webkit-user-select: none; -webkit-app-region: drag;">
10+
<div class="container" style="padding: 8px;">
1111

1212
<div class="row">
1313
<div style="border: #cdcdcd thin solid; margin-left: 15px; width: 543px;">
1414
<div class="row" style="margin-left: 0px;">
1515
<div class="col-12" style="text-align: center; padding-top: 5px; padding-bottom: 5px">
16-
<span style="font-size: 25px; font-family: &apos;Lucida Console&apos;, Monaco, monospace">
16+
<span class="mono-text" style="font-size: 25px; font-family: &apos;Lucida Console&apos;, Monaco">
1717
<div id="time-display" style="display: inline-block; color: lightgray;"></div>
1818
</span>
1919
</div>
@@ -58,7 +58,7 @@
5858
</div>
5959
</div>
6060
<div class="row" style="margin-top: 8px;">
61-
<div style="text-align: center; margin-left: 15px; width: 543px;">
61+
<div style="text-align: center; margin-left: 15px; width: 543px; padding: 0px;">
6262
<button id="set-time-button" class="btn btn-success" style="width: 100%;" disabled>Set Time</button>
6363
</div>
6464
</div>

0 commit comments

Comments
 (0)