From b25611ee8481be3ae00cce6f91803588fedb4e5f Mon Sep 17 00:00:00 2001 From: Noah Howard <3317164+nh-99@users.noreply.github.com> Date: Sat, 19 Feb 2022 16:37:34 -0500 Subject: [PATCH 1/4] Fix track name, artist, and album names clipping --- apps/messages/app.js | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/apps/messages/app.js b/apps/messages/app.js index 4aaf97369..f0ee249e2 100644 --- a/apps/messages/app.js +++ b/apps/messages/app.js @@ -165,6 +165,10 @@ function showMapMessage(msg) { }); } +function reduceStringAndPad(text, maxLen) { + return text.length > maxLen ? text.substr(0, maxLen - 1) + '...' : text; +} + function showMusicMessage(msg) { function fmtTime(s) { var m = Math.floor(s/60); @@ -178,15 +182,20 @@ function showMusicMessage(msg) { 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); + layout = new Layout({ type:"v", c: [ {type:"h", fillx:1, bgCol:colBg, c: [ { type:"btn", src:getBackImage, cb:back }, { type:"v", fillx:1, c: [ - { type:"txt", font:fontMedium, label:msg.artist, pad:2 }, - { type:"txt", font:fontMedium, label:msg.album, pad:2 } + { type:"txt", font:fontMedium, label:artistName, pad:2 }, + { type:"txt", font:fontMedium, label:albumName, pad:2 } ]} ]}, - {type:"txt", font:fontLarge, label:msg.track, fillx:1, filly:1, pad:2 }, + {type:"txt", font:fontLarge, label:trackName, fillx:1, filly:1, pad:2 }, Bangle.musicControl?{type:"h",fillx:1, c: [ {type:"btn", pad:8, label:"\0"+atob("FhgBwAADwAAPwAA/wAD/gAP/gA//gD//gP//g///j///P//////////P//4//+D//gP/4A/+AD/gAP8AA/AADwAAMAAA"), cb:()=>Bangle.musicControl("play")}, // play {type:"btn", pad:8, label:"\0"+atob("EhaBAHgHvwP/wP/wP/wP/wP/wP/wP/wP/wP/wP/wP/wP/wP/wP/wP/wP/wP/wP/wP/wP3gHg"), cb:()=>Bangle.musicControl("pause")}, // pause From 4e1cec0993629281ea1e1b3906591aeca85c71f2 Mon Sep 17 00:00:00 2001 From: Noah Howard <3317164+nh-99@users.noreply.github.com> Date: Sat, 19 Feb 2022 16:37:50 -0500 Subject: [PATCH 2/4] Increment app version --- apps/messages/metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/messages/metadata.json b/apps/messages/metadata.json index 6834693ae..e84d9f0d9 100644 --- a/apps/messages/metadata.json +++ b/apps/messages/metadata.json @@ -1,7 +1,7 @@ { "id": "messages", "name": "Messages", - "version": "0.21", + "version": "0.22", "description": "App to display notifications from iOS and Gadgetbridge", "icon": "app.png", "type": "app", From 7d9ef97800115cbccbdc3f822b55bba7bddfa4ea Mon Sep 17 00:00:00 2001 From: Noah Howard <3317164+nh-99@users.noreply.github.com> Date: Sat, 19 Feb 2022 17:18:21 -0500 Subject: [PATCH 3/4] Make music text scroll --- apps/messages/app.js | 68 +++++++++++++++++++++++++++++--------------- 1 file changed, 45 insertions(+), 23 deletions(-) diff --git a/apps/messages/app.js b/apps/messages/app.js index f0ee249e2..7d3d78e2e 100644 --- a/apps/messages/app.js +++ b/apps/messages/app.js @@ -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,34 +186,47 @@ 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: [ - { type:"btn", src:getBackImage, cb:back }, - { type:"v", fillx:1, c: [ - { type:"txt", font:fontMedium, label:artistName, pad:2 }, - { type:"txt", font:fontMedium, label:albumName, pad:2 } - ]} - ]}, - {type:"txt", font:fontLarge, label:trackName, fillx:1, filly:1, pad:2 }, - Bangle.musicControl?{type:"h",fillx:1, c: [ - {type:"btn", pad:8, label:"\0"+atob("FhgBwAADwAAPwAA/wAD/gAP/gA//gD//gP//g///j///P//////////P//4//+D//gP/4A/+AD/gAP8AA/AADwAAMAAA"), cb:()=>Bangle.musicControl("play")}, // play - {type:"btn", pad:8, label:"\0"+atob("EhaBAHgHvwP/wP/wP/wP/wP/wP/wP/wP/wP/wP/wP/wP/wP/wP/wP/wP/wP/wP/wP/wP3gHg"), cb:()=>Bangle.musicControl("pause")}, // pause - {type:"btn", pad:8, label:"\0"+atob("EhKBAMAB+AB/gB/wB/8B/+B//B//x//5//5//x//B/+B/8B/wB/gB+AB8ABw"), cb:()=>Bangle.musicControl("next")}, // next - ]}:{}, - {type:"txt", font:"6x8:2", label:msg.dur?fmtTime(msg.dur):"--:--" } - ]}); - g.clearRect(Bangle.appRect); - layout.render(); + layout = new Layout({ type:"v", c: [ + {type:"h", fillx:1, bgCol:colBg, c: [ + { type:"btn", src:getBackImage, cb:back }, + { type:"v", fillx:1, c: [ + { type:"txt", font:fontMedium, label:artistName, pad:2 }, + { type:"txt", font:fontMedium, label:albumName, pad:2 } + ]} + ]}, + {type:"txt", font:fontLarge, label:trackName, fillx:1, filly:1, pad:2 }, + Bangle.musicControl?{type:"h",fillx:1, c: [ + {type:"btn", pad:8, label:"\0"+atob("FhgBwAADwAAPwAA/wAD/gAP/gA//gD//gP//g///j///P//////////P//4//+D//gP/4A/+AD/gAP8AA/AADwAAMAAA"), cb:()=>Bangle.musicControl("play")}, // play + {type:"btn", pad:8, label:"\0"+atob("EhaBAHgHvwP/wP/wP/wP/wP/wP/wP/wP/wP/wP/wP/wP/wP/wP/wP/wP/wP/wP/wP/wP3gHg"), cb:()=>Bangle.musicControl("pause")}, // pause + {type:"btn", pad:8, label:"\0"+atob("EhKBAMAB+AB/gB/wB/8B/+B//B//x//5//5//x//B/+B/8B/wB/gB+AB8ABw"), cb:()=>Bangle.musicControl("next")}, // next + ]}:{}, + {type:"txt", font:"6x8:2", label:msg.dur?fmtTime(msg.dur):"--:--" } + ]}); + 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) { From 405711e82b44fb1562e5b18b8446548883d8b5b4 Mon Sep 17 00:00:00 2001 From: Noah Howard <3317164+nh-99@users.noreply.github.com> Date: Sat, 19 Feb 2022 17:31:29 -0500 Subject: [PATCH 4/4] End scrolling at end of text --- apps/messages/app.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/messages/app.js b/apps/messages/app.js index 7d3d78e2e..67738bc70 100644 --- a/apps/messages/app.js +++ b/apps/messages/app.js @@ -221,9 +221,9 @@ function showMusicMessage(msg) { artistScrollOffset++; albumScrollOffset++; - if (trackScrollOffset > trackName.length) trackScrollOffset = 0; - if (artistScrollOffset > artistName.length) artistScrollOffset = 0; - if (albumScrollOffset > albumName.length) albumScrollOffset = 0; + if ((trackScrollOffset + 13) > msg.track.length) trackScrollOffset = 0; + if ((artistScrollOffset + 21) > msg.artist.length) artistScrollOffset = 0; + if ((albumScrollOffset + 21) > msg.album.length) albumScrollOffset = 0; } updateLabelsInterval = setInterval(updateLabels, 1000);