podadrem - compatibility with Fastload Utils
parent
b47725568c
commit
350e0057f4
|
|
@ -4,3 +4,4 @@
|
||||||
Addict.
|
Addict.
|
||||||
0.04: New layout.
|
0.04: New layout.
|
||||||
0.05: Add widget field, tweak layout.
|
0.05: Add widget field, tweak layout.
|
||||||
|
0.06: Add compatibility with Fastload Utils.
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
{
|
||||||
/*
|
/*
|
||||||
Bluetooth.println(JSON.stringify({t:"intent", action:"", flags:["flag1", "flag2",...], categories:["category1","category2",...], mimetype:"", data:"", package:"", class:"", target:"", extra:{someKey:"someValueOrString"}}));
|
Bluetooth.println(JSON.stringify({t:"intent", action:"", flags:["flag1", "flag2",...], categories:["category1","category2",...], mimetype:"", data:"", package:"", class:"", target:"", extra:{someKey:"someValueOrString"}}));
|
||||||
|
|
||||||
|
|
@ -65,13 +66,14 @@ Since v2020.16
|
||||||
com.bambuna.podcastaddict.service.player.togglespeed – This will toggle the Playback speed for the episode currently playing (alternate between selected speed and 1.0x).
|
com.bambuna.podcastaddict.service.player.togglespeed – This will toggle the Playback speed for the episode currently playing (alternate between selected speed and 1.0x).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var R;
|
let R;
|
||||||
var backToMenu = false;
|
let widgetUtils = require("widget_utils");
|
||||||
var dark = g.theme.dark; // bool
|
let backToMenu = false;
|
||||||
|
let dark = g.theme.dark; // bool
|
||||||
|
|
||||||
// The main layout of the app
|
// The main layout of the app
|
||||||
function gfx() {
|
let gfx = function() {
|
||||||
//Bangle.drawWidgets();
|
widgetUtils.hide();
|
||||||
R = Bangle.appRect;
|
R = Bangle.appRect;
|
||||||
marigin = 8;
|
marigin = 8;
|
||||||
// g.drawString(str, x, y, solid)
|
// g.drawString(str, x, y, solid)
|
||||||
|
|
@ -106,10 +108,10 @@ function gfx() {
|
||||||
|
|
||||||
g.setFontAlign(1, 1, 0);
|
g.setFontAlign(1, 1, 0);
|
||||||
g.drawString("Speed", R.x + R.w - 2*marigin, R.y + R.h - 2*marigin);
|
g.drawString("Speed", R.x + R.w - 2*marigin, R.y + R.h - 2*marigin);
|
||||||
}
|
};
|
||||||
|
|
||||||
// Touch handler for main layout
|
// Touch handler for main layout
|
||||||
function touchHandler(_, xy) {
|
let touchHandler = function(_, xy) {
|
||||||
x = xy.x;
|
x = xy.x;
|
||||||
y = xy.y;
|
y = xy.y;
|
||||||
len = (R.w<R.h+1)?(R.w/3):(R.h/3);
|
len = (R.w<R.h+1)?(R.w/3):(R.h/3);
|
||||||
|
|
@ -145,43 +147,51 @@ function touchHandler(_, xy) {
|
||||||
//play/pause
|
//play/pause
|
||||||
btMsg("service", standardCls, "player.toggle");
|
btMsg("service", standardCls, "player.toggle");
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
// Swipe handler for main layout, used to jump backward and forward within a podcast episode.
|
// Swipe handler for main layout, used to jump backward and forward within a podcast episode.
|
||||||
function swipeHandler(LR, _) {
|
let swipeHandler = function(LR, _) {
|
||||||
if (LR==-1) {
|
if (LR==-1) {
|
||||||
btMsg("service", standardCls, "player.jumpforward");
|
btMsg("service", standardCls, "player.jumpforward");
|
||||||
}
|
}
|
||||||
if (LR==1) {
|
if (LR==1) {
|
||||||
btMsg("service", standardCls, "player.jumpbackward");
|
btMsg("service", standardCls, "player.jumpbackward");
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
// Navigation input on the main layout
|
// Navigation input on the main layout
|
||||||
function setUI() {
|
let setUI = function() {
|
||||||
// Bangle.setUI code from rigrig's smessages app for volume control: https://git.tubul.net/rigrig/BangleApps/src/branch/personal/apps/smessages/app.js
|
// Bangle.setUI code from rigrig's smessages app for volume control: https://git.tubul.net/rigrig/BangleApps/src/branch/personal/apps/smessages/app.js
|
||||||
Bangle.setUI(
|
Bangle.setUI(
|
||||||
{mode : "updown", back : load},
|
{mode : "updown",
|
||||||
ud => {
|
remove : ()=>{
|
||||||
if (ud) Bangle.musicControl(ud>0 ? "volumedown" : "volumeup");
|
Bangle.removeListener("touch", touchHandler);
|
||||||
}
|
Bangle.removeListener("swipe", swipeHandler);
|
||||||
|
clearWatch(buttonHandler);
|
||||||
|
widgetUtils.show();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ud => {
|
||||||
|
if (ud) Bangle.musicControl(ud>0 ? "volumedown" : "volumeup");
|
||||||
|
}
|
||||||
);
|
);
|
||||||
Bangle.on("touch", touchHandler);
|
Bangle.on("touch", touchHandler);
|
||||||
Bangle.on("swipe", swipeHandler);
|
Bangle.on("swipe", swipeHandler);
|
||||||
}
|
let buttonHandler = setWatch(()=>{load();}, BTN, {edge:'falling'});
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
The functions for interacting with Android and the Podcast Addict app
|
The functions for interacting with Android and the Podcast Addict app
|
||||||
*/
|
*/
|
||||||
|
|
||||||
pkg = "com.bambuna.podcastaddict";
|
let pkg = "com.bambuna.podcastaddict";
|
||||||
standardCls = pkg + ".receiver.PodcastAddictPlayerReceiver";
|
let standardCls = pkg + ".receiver.PodcastAddictPlayerReceiver";
|
||||||
updateCls = pkg + ".receiver.PodcastAddictBroadcastReceiver";
|
let updateCls = pkg + ".receiver.PodcastAddictBroadcastReceiver";
|
||||||
speed = 1.0;
|
let speed = 1.0;
|
||||||
|
|
||||||
simpleSearch = "";
|
let simpleSearch = "";
|
||||||
|
|
||||||
function simpleSearchTerm() { // input a simple search term without tags, overrides search with tags (artist and track)
|
let simpleSearchTerm = function() { // input a simple search term without tags, overrides search with tags (artist and track)
|
||||||
require("textinput").input({
|
require("textinput").input({
|
||||||
text: simpleSearch
|
text: simpleSearch
|
||||||
}).then(result => {
|
}).then(result => {
|
||||||
|
|
@ -189,9 +199,9 @@ function simpleSearchTerm() { // input a simple search term without tags, overri
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
E.showMenu(searchMenu);
|
E.showMenu(searchMenu);
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
function searchPlayWOTags() { //make a search and play using entered terms
|
let searchPlayWOTags = function() { //make a search and play using entered terms
|
||||||
searchString = simpleSearch;
|
searchString = simpleSearch;
|
||||||
Bluetooth.println(JSON.stringify({
|
Bluetooth.println(JSON.stringify({
|
||||||
t: "intent",
|
t: "intent",
|
||||||
|
|
@ -203,9 +213,9 @@ function searchPlayWOTags() { //make a search and play using entered terms
|
||||||
},
|
},
|
||||||
flags: ["FLAG_ACTIVITY_NEW_TASK"]
|
flags: ["FLAG_ACTIVITY_NEW_TASK"]
|
||||||
}));
|
}));
|
||||||
}
|
};
|
||||||
|
|
||||||
function gadgetbridgeWake() {
|
let gadgetbridgeWake = function() {
|
||||||
Bluetooth.println(JSON.stringify({
|
Bluetooth.println(JSON.stringify({
|
||||||
t: "intent",
|
t: "intent",
|
||||||
target: "activity",
|
target: "activity",
|
||||||
|
|
@ -213,15 +223,15 @@ function gadgetbridgeWake() {
|
||||||
package: "gadgetbridge",
|
package: "gadgetbridge",
|
||||||
class: "nodomain.freeyourgadget.gadgetbridge.activities.WakeActivity"
|
class: "nodomain.freeyourgadget.gadgetbridge.activities.WakeActivity"
|
||||||
}));
|
}));
|
||||||
}
|
};
|
||||||
|
|
||||||
// For stringing together the action for Podcast Addict to perform
|
// For stringing together the action for Podcast Addict to perform
|
||||||
function actFn(actName, activOrServ) {
|
let actFn = function(actName, activOrServ) {
|
||||||
return "com.bambuna.podcastaddict." + (activOrServ == "service" ? "service." : "") + actName;
|
return "com.bambuna.podcastaddict." + (activOrServ == "service" ? "service." : "") + actName;
|
||||||
}
|
};
|
||||||
|
|
||||||
// Send the intent message to Gadgetbridge
|
// Send the intent message to Gadgetbridge
|
||||||
function btMsg(activOrServ, cls, actName, xtra) {
|
let btMsg = function(activOrServ, cls, actName, xtra) {
|
||||||
|
|
||||||
Bluetooth.println(JSON.stringify({
|
Bluetooth.println(JSON.stringify({
|
||||||
t: "intent",
|
t: "intent",
|
||||||
|
|
@ -231,10 +241,10 @@ function btMsg(activOrServ, cls, actName, xtra) {
|
||||||
target: "broadcastreceiver",
|
target: "broadcastreceiver",
|
||||||
extra: xtra
|
extra: xtra
|
||||||
}));
|
}));
|
||||||
}
|
};
|
||||||
|
|
||||||
// Get back to the main layout
|
// Get back to the main layout
|
||||||
function backToGfx() {
|
let backToGfx = function() {
|
||||||
E.showMenu();
|
E.showMenu();
|
||||||
g.clear();
|
g.clear();
|
||||||
g.reset();
|
g.reset();
|
||||||
|
|
@ -243,10 +253,10 @@ function backToGfx() {
|
||||||
setUI();
|
setUI();
|
||||||
gfx();
|
gfx();
|
||||||
backToMenu = false;
|
backToMenu = false;
|
||||||
}
|
};
|
||||||
|
|
||||||
// Podcast Addict Menu
|
// Podcast Addict Menu
|
||||||
var paMenu = {
|
let paMenu = {
|
||||||
"": {
|
"": {
|
||||||
title: " ",
|
title: " ",
|
||||||
back: backToGfx
|
back: backToGfx
|
||||||
|
|
@ -271,7 +281,7 @@ var paMenu = {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
var controlMenu = {
|
let controlMenu = {
|
||||||
"": {
|
"": {
|
||||||
title: " ",
|
title: " ",
|
||||||
back: () => {if (backToMenu) E.showMenu(paMenu);
|
back: () => {if (backToMenu) E.showMenu(paMenu);
|
||||||
|
|
@ -310,7 +320,7 @@ var controlMenu = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
var speedMenu = {
|
let speedMenu = {
|
||||||
"": {
|
"": {
|
||||||
title: " ",
|
title: " ",
|
||||||
back: () => {if (backToMenu) E.showMenu(paMenu);
|
back: () => {if (backToMenu) E.showMenu(paMenu);
|
||||||
|
|
@ -333,7 +343,7 @@ var speedMenu = {
|
||||||
//"Slower" : ()=>{speed-=0.1; speed=((speed<0.1)?0.1:speed); btMsg("service",standardCls,"player.customspeed",{arg1:speed});},
|
//"Slower" : ()=>{speed-=0.1; speed=((speed<0.1)?0.1:speed); btMsg("service",standardCls,"player.customspeed",{arg1:speed});},
|
||||||
};
|
};
|
||||||
|
|
||||||
var searchMenu = {
|
let searchMenu = {
|
||||||
"": {
|
"": {
|
||||||
title: " ",
|
title: " ",
|
||||||
|
|
||||||
|
|
@ -356,7 +366,7 @@ var searchMenu = {
|
||||||
"Simpler search and play" : searchPlayWOTags,
|
"Simpler search and play" : searchPlayWOTags,
|
||||||
};
|
};
|
||||||
|
|
||||||
var navigationMenu = {
|
let navigationMenu = {
|
||||||
"": {
|
"": {
|
||||||
title: " ",
|
title: " ",
|
||||||
back: () => {if (backToMenu) E.showMenu(paMenu);
|
back: () => {if (backToMenu) E.showMenu(paMenu);
|
||||||
|
|
@ -372,4 +382,6 @@ var navigationMenu = {
|
||||||
|
|
||||||
Bangle.loadWidgets();
|
Bangle.loadWidgets();
|
||||||
setUI();
|
setUI();
|
||||||
|
widgetUtils.hide();
|
||||||
gfx();
|
gfx();
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
"id": "podadrem",
|
"id": "podadrem",
|
||||||
"name": "Podcast Addict Remote",
|
"name": "Podcast Addict Remote",
|
||||||
"shortName": "PA Remote",
|
"shortName": "PA Remote",
|
||||||
"version": "0.05",
|
"version": "0.06",
|
||||||
"description": "Control Podcast Addict on your android device.",
|
"description": "Control Podcast Addict on your android device.",
|
||||||
"readme": "README.md",
|
"readme": "README.md",
|
||||||
"type": "app",
|
"type": "app",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue