forked from FOSS/BangleApps
Make music text scroll
parent
4e1cec0993
commit
7d9ef97800
|
@ -165,11 +165,20 @@ function showMapMessage(msg) {
|
|||
});
|
||||
}
|
||||
|
||||
function reduceStringAndPad(text, maxLen) {
|
||||
return text.length > maxLen ? text.substr(0, maxLen - 1) + '...' : text;
|
||||
function reduceStringAndPad(text, offset, maxLen) {
|
||||
var sliceLength = offset + maxLen > text.length ? text.length - offset : maxLen;
|
||||
return text.substr(offset, sliceLength).padEnd(maxLen, " ");
|
||||
}
|
||||
|
||||
function showMusicMessage(msg) {
|
||||
var updateLabelsInterval;
|
||||
var trackScrollOffset = 0;
|
||||
var artistScrollOffset = 0;
|
||||
var albumScrollOffset = 0;
|
||||
var trackName = '';
|
||||
var artistName = '';
|
||||
var albumName = '';
|
||||
|
||||
function fmtTime(s) {
|
||||
var m = Math.floor(s/60);
|
||||
s = (parseInt(s%60)).toString().padStart(2,0);
|
||||
|
@ -177,15 +186,17 @@ function showMusicMessage(msg) {
|
|||
}
|
||||
|
||||
function back() {
|
||||
clearInterval(updateLabelsInterval);
|
||||
msg.new = false;
|
||||
saveMessages();
|
||||
layout = undefined;
|
||||
checkMessages({clockIfNoMsg:1,clockIfAllRead:1,showMsgIfUnread:1});
|
||||
}
|
||||
|
||||
var trackName = reduceStringAndPad(msg.track, 13);
|
||||
var artistName = reduceStringAndPad(msg.artist, 21);
|
||||
var albumName = reduceStringAndPad(msg.album, 21);
|
||||
function updateLabels() {
|
||||
trackName = reduceStringAndPad(msg.track, trackScrollOffset, 13);
|
||||
artistName = reduceStringAndPad(msg.artist, artistScrollOffset, 21);
|
||||
albumName = reduceStringAndPad(msg.album, albumScrollOffset, 21);
|
||||
|
||||
layout = new Layout({ type:"v", c: [
|
||||
{type:"h", fillx:1, bgCol:colBg, c: [
|
||||
|
@ -203,8 +214,19 @@ function showMusicMessage(msg) {
|
|||
]}:{},
|
||||
{type:"txt", font:"6x8:2", label:msg.dur?fmtTime(msg.dur):"--:--" }
|
||||
]});
|
||||
g.clearRect(Bangle.appRect);
|
||||
g.reset().clearRect(Bangle.appRect);
|
||||
layout.render();
|
||||
|
||||
trackScrollOffset++;
|
||||
artistScrollOffset++;
|
||||
albumScrollOffset++;
|
||||
|
||||
if (trackScrollOffset > trackName.length) trackScrollOffset = 0;
|
||||
if (artistScrollOffset > artistName.length) artistScrollOffset = 0;
|
||||
if (albumScrollOffset > albumName.length) albumScrollOffset = 0;
|
||||
}
|
||||
|
||||
updateLabelsInterval = setInterval(updateLabels, 1000);
|
||||
}
|
||||
|
||||
function showMessageScroller(msg) {
|
||||
|
|
Loading…
Reference in New Issue