improve countdown time handling #1

pull/1/head
Thomas Ballmann 4 years ago
parent 4147b65904
commit c844101d7d

@ -116,11 +116,18 @@
methods: { methods: {
autoReloadStats () { autoReloadStats () {
apiDevice.getStats(stats => { apiDevice.getStats(stats => {
// give esp some extra time befor fetch new data
stats.playlist.remaining += 2
// reset old so reactive watcher can detect a change
if (this.$root._data.stats) {
this.$root._data.stats.playlist.remaining = 0
}
this.$root._data.stats = stats this.$root._data.stats = stats
setTimeout(() => { setTimeout(() => {
this.autoReloadStats() this.autoReloadStats()
}, (stats.playlist.remaining + 2) * 1000) }, stats.playlist.remaining * 1000)
}) })
} }
} }

@ -32,23 +32,23 @@
<v-skeleton-loader type="image" tile :loading="false"> <v-skeleton-loader type="image" tile :loading="false">
<v-img class="device-screen-image" :aspect-ratio="16/9" :src="device_screen_src"></v-img> <v-img class="device-screen-image" :aspect-ratio="16/9" :src="device_screen_src"></v-img>
</v-skeleton-loader> </v-skeleton-loader>
<!-- <!--
<v-btn absolute dark fab top right color="white"> <v-btn absolute dark fab top right color="white">
<v-icon>$settings</v-icon> <v-icon>$settings</v-icon>
</v-btn> </v-btn>
--> -->
<!-- <!--
<v-card-text style="height: 100px; position: relative"> <v-card-text style="height: 100px; position: relative">
<v-btn color="pink" dark absolute top right fab> <v-btn color="pink" dark absolute top right fab>
<v-icon>mdi-plus</v-icon> <v-icon>mdi-plus</v-icon>
</v-btn> </v-btn>
</v-card-text> </v-card-text>
--> -->
<v-card-actions style="position: relative"> <v-card-actions style="position: relative">
<v-btn color="white" _dark absolute top right fab elevation="2"> <v-btn color="white" _dark absolute top right fab elevation="2">
<v-icon>$settings</v-icon> <v-icon>$settings</v-icon>
</v-btn> </v-btn>
<v-progress-circular <v-progress-circular
:rotate="-90" :rotate="-90"
@ -70,6 +70,12 @@ export default {
created() { created() {
this.playlistRemainingCountdown = this.playlistRemaining; this.playlistRemainingCountdown = this.playlistRemaining;
this.device_screen_src = "/current-image?" + Date.now(); this.device_screen_src = "/current-image?" + Date.now();
setInterval(() => {
if (this.playlistRemainingCountdown > 0) {
this.playlistRemainingCountdown--;
}
}, 1000);
}, },
computed: { computed: {
playlistProgress() { playlistProgress() {
@ -84,15 +90,9 @@ export default {
}, },
watch: { watch: {
playlistRemaining(val) { playlistRemaining(val) {
this.playlistRemainingCountdown = val;
this.device_screen_src = "/current-image?" + Date.now();
},
playlistRemainingCountdown(val) {
if (val > 0) { if (val > 0) {
setTimeout(() => { this.playlistRemainingCountdown = val;
this.playlistRemainingCountdown--; this.device_screen_src = "/current-image?" + Date.now();
}, 1000);
} }
} }
} }

Loading…
Cancel
Save