From 597703cda9b4f27188e3d2fef3414a9bc877153c Mon Sep 17 00:00:00 2001 From: v-crispadvice Date: Fri, 7 Jul 2023 19:51:40 +0300 Subject: [PATCH] Add manual download from settings --- apps/flashcards/README.md | 3 + apps/flashcards/app-icon.js | 1 + apps/flashcards/app.js | 158 +++++++++++++++++++++++++++++++++ apps/flashcards/app.png | Bin 0 -> 640 bytes apps/flashcards/metadata.json | 21 +++++ apps/flashcards/screenshot.png | Bin 0 -> 10699 bytes apps/flashcards/settings.js | 56 ++++++++++++ 7 files changed, 239 insertions(+) create mode 100644 apps/flashcards/README.md create mode 100644 apps/flashcards/app-icon.js create mode 100644 apps/flashcards/app.js create mode 100644 apps/flashcards/app.png create mode 100644 apps/flashcards/metadata.json create mode 100644 apps/flashcards/screenshot.png create mode 100644 apps/flashcards/settings.js diff --git a/apps/flashcards/README.md b/apps/flashcards/README.md new file mode 100644 index 000000000..948ee7a0e --- /dev/null +++ b/apps/flashcards/README.md @@ -0,0 +1,3 @@ +A simple flash cards application based on Trello public board. + + diff --git a/apps/flashcards/app-icon.js b/apps/flashcards/app-icon.js new file mode 100644 index 000000000..72371cac4 --- /dev/null +++ b/apps/flashcards/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwwhC/AH0iABQWKgQXLkAXhCxZIKFxgwKC68zABwWGgYXPmAX/C/4X/C/4X/C9ndACQX/C6dEAAQXS6gXDpovpR/4X/C8ENCyPQC4YA/AGo")) diff --git a/apps/flashcards/app.js b/apps/flashcards/app.js new file mode 100644 index 000000000..7c689a6a8 --- /dev/null +++ b/apps/flashcards/app.js @@ -0,0 +1,158 @@ +/** + * Copyright 2023 SHOGEL + * We believe in Finnish + */ +var Layout = require("Layout"); +var locale = require("locale"); +var storage = require("Storage"); + +// Constants +let SWAP_SIDE_BUZZ_MILLISECONDS = 50; +let CARD_DATA_FILE = "flashcards.data.json"; +let CARD_EMPTY = "empty card"; +let CARD_LINE_LENGTH = 9; +let CARD_LINE_FONT = "20%"; + +// Global variables +let cards = []; + +let cardIndex = 0; +let backSide = false; +let lastDragX = 0; +let lastDragY = 0; + +// Cards data +function wordWrap(str, maxLength) { + if (maxLength == undefined) { + maxLength = CARD_LINE_LENGTH; + } + let res = ''; + while (str.length > maxLength) { + let found = false; + // Inserts new line at first whitespace of the line + for (i = maxLength - 1; i >= 0; i--) { + if (str.charAt(i)==' ') { + res = res + [str.slice(0, i), "\n"].join(''); + str = str.slice(i + 1); + found = true; + break; + } + } + // Inserts new line at MAX_LENGTH position, the word is too long to wrap + if (!found) { + res += [str.slice(0, maxLength), "\n"].join(''); + str = str.slice(maxLength); + } + } + return res + str; +} + +function loadLocalCards() { + if (storage.read(CARD_DATA_FILE)) + { + refreshCards(storage.readJSON(CARD_DATA_FILE, 1) || {},false); + } +} + +function refreshCards(cardsJSON,showMsg) +{ + cardIndex = 0; + backSide = false; + cards = []; + + if (cardsJSON && cardsJSON.length) { + cardsJSON.forEach(card => { + cards.push([ wordWrap(card.name), wordWrap(card.desc) ]); + }); + } + + if (!cards.length) { + cards.push([ wordWrap(CARD_EMPTY), wordWrap(CARD_EMPTY) ]); + drawMessage("e: cards not found"); + } else if (showMsg) { + drawMessage("i: cards refreshed"); + } +} + +// Drawing a card +let drawTimeout; +let queueDraw = function() { + let timeout = 60000; + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = setTimeout(function() { + drawTimeout = undefined; + draw(); + }, timeout - (Date.now() % timeout)); +}; + +var cardLayout = new Layout( { + type:"v", c: [ + {type:"txt", font:"6x8:3", label:"", id:"widgets", fillx:1 }, + {type:"txt", font:CARD_LINE_FONT, label:"ABCDEFGHIJ KLMNOPQRST UVWXYZÅÄÖ", filly:1, id:"card" }, + {type:"txt", font:"6x8:2", label:"00:00", id:"clock", fillx:1, bgCol:g.theme.fg, col:g.theme.bg } + ] +}, {lazy:true}); + +function drawCard() { + cardLayout.card.label = cards[cardIndex][backSide ? 1 : 0]; + cardLayout.clock.label = locale.time(new Date(),1); + cardLayout.render(); +} + +function drawMessage(msg) { + cardLayout.card.label = wordWrap(msg); + cardLayout.render(); + console.log(msg); +} + +function draw() { + drawCard(); + Bangle.drawWidgets(); + queueDraw(); +} + +// Handle a touch: swap card side +function handleTouch(zone, event) { + backSide = !backSide; + drawCard(); + Bangle.buzz(SWAP_SIDE_BUZZ_MILLISECONDS); +} + +// Handle a drag event: cycle cards +function handleDrag(event) { + let first_x = event.xy[0]; + let last_x = event.xy[event.xy.length - 2]; + let xdiff = last_x - first_x; + /* + let first_y = event.xy[1]; + let last_y = event.xy[event.xy.length - 1]; + let ydiff = last_y - first_y; + */ + if(xdiff > 0) { + cardIndex = (cardIndex + 1) % cards.length; + } + else if(--cardIndex < 0) { + cardIndex = cards.length - 1; + } + drawCard(); +} + + +// initialize +loadLocalCards(); +cardLayout.update(); +Bangle.loadWidgets(); +Bangle.on("touch", handleTouch); +Bangle.on("stroke", handleDrag); + +// On start: display the first card +g.clear(); +draw(); + +// cleanup +Bangle.setUI({mode:"clock", remove:function() { + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = undefined; + Bangle.removeListener("touch", handleTouch); + Bangle.removeListener("stroke", handleDrag); +}}); diff --git a/apps/flashcards/app.png b/apps/flashcards/app.png new file mode 100644 index 0000000000000000000000000000000000000000..e16b8a263e41685980201e0664cf9cca244dd540 GIT binary patch literal 640 zcmV-`0)PF9P)1RCt{2lub|KKp4m8#AnkFu*UU_-vGFBZ53ZJTDG+u_MpLR zG$?BnToDyEuDh76fC>!@23$2BHX-fpZTL^GX_(r_$OwO=6H`6$^QKK1~S0)bQsmgQ>*%XQ$AC2|BN zw`K5e%es9y_-g4+AzY}FAu#&w2*h9KAg0e@bo03T1Oj^%2p(K2eELy&wHJ>~SgtGK zxfB5-G__l7gjbo`DH?KKkl6xb@naCv7a9REeFAmZh`Um2?P(cqod^l#^ZVA9e<(#k>ZVlKT)txU}Pf)!q2}ggnt0{ z;;VHjUu#^SOZl2|_1YpZ^S#`1c$J0RzeaeKIqAxJfr+g`+u`S52*3J>-gz)oU}WP6 zX4@DY%xCEezW%vwDiF~*4{e184gtv^D!|bl0Afc-awGWCk6@wiW$-h}L$JW&$L8Tx z76%9xkUaW3a7gkFfCV5bz|kE5Izq2i_aEXJbZU1=P2o{zYJf5T0000x literal 0 HcmV?d00001 diff --git a/apps/flashcards/metadata.json b/apps/flashcards/metadata.json new file mode 100644 index 000000000..bdba0b9b0 --- /dev/null +++ b/apps/flashcards/metadata.json @@ -0,0 +1,21 @@ +{ + "id": "flashcards", + "name": "Flash Cards", + "shortName": "Flash Cards", + "version": "1.1", + "description": "Flash cards based on public Trello board", + "screenshots" : [ { "url":"screenshot.png" }], + "icon": "app.png", + "tags": "flash cards", + "type": "clock", + "supports": ["BANGLEJS2"], + "storage": [ + {"name":"flashcards.app.js","url":"app.js"}, + {"name":"flashcards.settings.js","url":"settings.js"}, + {"name":"flashcards.img","url":"app-icon.js","evaluate":true} + ], + "data": [ + {"name":"flashcards.data.json"}, + {"name":"flashcards.settings.json"} + ] +} diff --git a/apps/flashcards/screenshot.png b/apps/flashcards/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..f9c5bcb6390187d7a6d117ef671186b7669cda8c GIT binary patch literal 10699 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 back(), + "Get from Trello": () => { + E.showPrompt("Download cards?").then((v) => { + let delay = 500; + if (v) { + if (Bangle.http) + { + if (settings.listId.length) + { + delay = delay + trelloTimeout; + E.showMessage('i: downloading'); + Bangle.http(trelloURL.replace("$cardsListId", settings.listId), + { + timeout : trelloTimeout, + method: "GET", + headers: { "Content-Type": "application/json" } + }).then(data=>{ + var cardsJSON = JSON.parse(data.resp); + storage.write(dataFile, JSON.stringify(result)); + E.showMessage('i: downloaded'); + }) + .catch((e) => { + E.showMessage("e: " + e); + }); + } else { + E.showMessage("e: list Id not found"); + } + } else { + E.showMessage("e: Gadgetbridge not found"); + } + } + setTimeout(() => E.showMenu(settingsMenu), delay); + }); + } + } + // Show the menu + E.showMenu(settingsMenu); +})(load) \ No newline at end of file