forked from FOSS/BangleApps
Merge branch 'espruino:master' into master
commit
8d3c15da3e
|
@ -1,4 +1,4 @@
|
|||
name: Node CI
|
||||
name: build
|
||||
|
||||
on: [push, pull_request]
|
||||
|
||||
|
@ -6,29 +6,25 @@ jobs:
|
|||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [16.x]
|
||||
|
||||
steps:
|
||||
- name: Checkout repository and submodules
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v1
|
||||
- name: Use Node.js 16.x
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- name: install testing dependencies
|
||||
run: npm i
|
||||
- name: test all apps and widgets
|
||||
run: npm run test
|
||||
- name: install typescript dependencies
|
||||
node-version: 16.x
|
||||
- name: Install testing dependencies
|
||||
run: npm ci
|
||||
- name: Test all apps and widgets
|
||||
run: npm test
|
||||
- name: Install typescript dependencies
|
||||
working-directory: ./typescript
|
||||
run: npm ci
|
||||
- name: build types
|
||||
- name: Build types
|
||||
working-directory: ./typescript
|
||||
run: npm run build:types
|
||||
- name: build all TS apps and widgets
|
||||
- name: Build all TS apps and widgets
|
||||
working-directory: ./typescript
|
||||
run: npm run build
|
|
@ -1,6 +1,5 @@
|
|||
.htaccess
|
||||
node_modules
|
||||
package-lock.json
|
||||
.DS_Store
|
||||
*.js.bak
|
||||
appdates.csv
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Bangle.js App Loader (and Apps)
|
||||
================================
|
||||
|
||||
[](https://app.travis-ci.com/github/espruino/BangleApps)
|
||||
[](https://github.com/espruino/BangleApps/actions/workflows/nodejs.yml)
|
||||
|
||||
* Try the **release version** at [banglejs.com/apps](https://banglejs.com/apps)
|
||||
* Try the **development version** at [espruino.github.io](https://espruino.github.io/BangleApps/)
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
0.01: New App!
|
|
@ -0,0 +1,11 @@
|
|||
# two of them clock
|
||||
|
||||
You can now wear teh memez on your wrist.
|
||||
|
||||

|
||||
|
||||
Also serves as an example of displaying seconds only when unlocked or charging and only refreshing on the minute otherwise.
|
||||
Widgets not supported
|
||||
|
||||
## Creator
|
||||
- [Kilrah](https://github.com/kilrah)
|
|
@ -0,0 +1 @@
|
|||
require("heatshrink").decompress(atob("mEwgZC/AH4ADkAPOgVJkgEBAQQAJiQRByEJgmQCJWSpMEAQMkyQJCpASHhAOBpAmBJJgjBCIUJCRg4CCIJxFMQ2SoARCkmACI0EBAJHCCIMLj4RFiUBskAgIXBEAU5A4P34CtCiEJsEJ/AHBCgOBAoQAEi0H////HciQsBwywICIXWzkG4A+BEY0gif46dt6/cgnIgkWnHfLIP/MoUWwHbpvC/kAjEEj0HNYQCCkEfGgP/64RB2EAifHLwMAjg1CCIMD/0H/0B8EAh+HgeAkARCE4IjC/4jBYIMPLIcIAYUPB4OBCIQABhu/AoShCHYIRBx6QBDgUw2//8OHPwcJ39//ILBCIU9LgMBSQgsBJAYRBkE/CIIABgRHD3wRFkk/2zBDAYU//3b/oRB8ARBj6ABgEE7YREEYf+oMkSwINCyClCn//z//+4RBgMkgU3EgUcwFJgEeboOXCIP2EYJCDAAVJkkGWoIuBgf2EYQPDkECCIOGd4ffyEJkgFBAAcSoEkwQCBhw+BwQaByVAkGAKwIFBBANLkEQgAyBCIVIkBpBgmSBYOQoApBgcgiQRCAQIyCCgsSjIFBCIcgRgJNCCgQyBpAgDAQT2BCgIOBBAQUCCIpfBCIwCKP4QRNpCSDCLyJBCIbjBTwYRLboJ0BCI4QD"))
|
File diff suppressed because one or more lines are too long
Binary file not shown.
After Width: | Height: | Size: 4.4 KiB |
Binary file not shown.
After Width: | Height: | Size: 5.8 KiB |
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"id": "2ofthemclk",
|
||||
"name": "two of them clock",
|
||||
"version": "0.01",
|
||||
"description": "You can now wear teh memez on your wrist.",
|
||||
"readme": "README.md",
|
||||
"icon": "app.png",
|
||||
"screenshots": [{"url":"screenshot.png"}],
|
||||
"type": "clock",
|
||||
"tags": "clock",
|
||||
"supports": ["BANGLEJS2"],
|
||||
"allow_emulator": true,
|
||||
"storage": [
|
||||
{"name":"2ofthemclk.app.js","url":"app.js"},
|
||||
{"name":"2ofthemclk.img","url":"app-icon.js","evaluate":true}
|
||||
]
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 7.1 KiB |
|
@ -0,0 +1 @@
|
|||
0.01: First release
|
|
@ -0,0 +1,12 @@
|
|||
# kanawatch
|
||||
|
||||
A simple watchface design with hiragana and katakana
|
||||
cards for learning.
|
||||
|
||||
## Author
|
||||
|
||||
Written by pancake in 2022, powered by insomnia
|
||||
|
||||
## Screenshots
|
||||
|
||||

|
|
@ -0,0 +1 @@
|
|||
require("heatshrink").decompress(atob("mEwxEBAH4A/AEn/AAgrrAA4ttGL4hF9fGsU1pMNmti43rGLwcD/3MxEAud413p6uuvFzgGI5n+GDQaD6F8i2p8KKH8Opi186AwYC4Xv08A0fnXhfn0cA0/vGCoVC7+ItHNE4vQ+oxH5toxHfGCYTC8t/xaKH5VY+CUIxd/8owSCIPxymB8wkH8UA2yTI82Byn4F6AXCwNH7YjI7UATAwAD7dHHgYuP4sAc5XLgHrBpXAjngGBwOCrmJ/whJ1syBgXw7v6Bov+xObF5rWDgHWKJWEt3l4mQjkAoHzBwvWgHhGBgMC1WIDQuw1/L427z8ygAABp+R3vqH4+I1QvO/1R5YZF+t1FINWuMAy/W+BuKZ4NRT4ReL7kc+waG/fy/n/9kA74tLAAP2jncAgPBF5W5yIeLZgPxEgf3CJOR3JTCF5WU3wvL6sA/YFC7e0CJO+ygDB94vKt3aF5fHoQDB+/dzdL4nb+YRG7VuAYP5F5VF9ovL3dP3t8pOKgFw0+CjmT84RE9tFAYP+F6/uwMm1Hd/vCk3oQYWGl3XF6aPK/e0oVwrohCmu9Bof5sVF+yPSd5PtuWA9m7o///uCwH9B4m9gHKd6W5yIuG9NV3v+//Gjn/2VA9wQF6UA2AFCyO5AYPcF5Xcjh1DAAPnp/SEYnJiy2EAAXTgGvAgP2jncAgPBF44wC/1R5a7EsZHCAAPegEA3afH4sA4wEB5dROgP/FxBgD1WIPgky/QGD5MAxYfCAAuGjnvAgNHuBLCF5nhgHWAoWvuwEC9mWLwN+Fw6aB1wEB60A44EB6ovJGAebxJSC1lF4/AyMNoXBzUN/IuF5kmyP8VgOJrgKCFxUB8QOB8Ec4CnCLIMAmWr+v/9Vy/otD+WWmu7BAXAjnFF5xgD21H7f//u+0vN/CKH9Ojse4+QHC7dH2wuPgPVCAP4yk98wqHAAf734OF82ByhCDF5pgD/9/xfhGBYAF8OLv/lFyIABU4XfxFo5ouP5toxHfFyZhE9+ngGj84tL8+jgGn94uVSQvQvkW1KUI8Opi186AIDFygwF/3MxEAuew6fp9PT2FzgGI5n+FzQwFAAPr42fu9JpN3z/G9YPFFzAxIABYtbGKItfGZYrlAH4A+A"))
|
|
@ -0,0 +1,825 @@
|
|||
const stripe_width = 32;
|
||||
const stripe_pos = 40;
|
||||
const stripe2_pos = 110;
|
||||
const h = g.getHeight();
|
||||
const w = g.getWidth();
|
||||
|
||||
/// /////////////////////////////////////////
|
||||
const katakana = {};
|
||||
const hiragana = {};
|
||||
katakana.A = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAjAEBfv4B/+yeAXwAOgBAAPAAAEHAAABzAAAAPgAAADgAAAAwAAAAMAAAAGAAAABgAAAAYAAAAMAAAADAAAABgAAAAYAAAAMAAAAGAAAADAAAABgAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.A = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAACAAAAAwAAAAIAAAACAAAABgAAAAZ4AAGf4AAA/gAAAAQAAAAEAAAABBAAAAQwAAAN/wAADiGAADxAwABswEAAhYBgAQUAYAMHAEACBgDABh4AwAZ2AYAD4gcAAQAcAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.I = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAwAAAAGAAAADwAAAA0AAAAYAAAAUgAAAGAAAAFAAAADgAAAA8AAAA2AAAAZgAAAYYAAAMGAAAMFgAAGAYAAGAGAACABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.I = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwAAgAEAAEABAAAgAQAAMAGAABAAgAAYAIAAGACAAAwAQAAMAEAADABiAAQAIgAAADQAAAAcAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.U = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAQAAAAHAAAAAwAAAAICAAACIAAAAgIABQa3AAP7q4ADQANAAwADAAMABgADAAYAAwAGAAMADAADAAwAAwAYAAMAGAABADAAAABgAAAAwAAAAMAAAAGAAAACQAAADAAAABgAAAAwAAAAoAAAAAAAAAAAAAAAgAAA=')
|
||||
};
|
||||
hiragana.U = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAIAAAABwAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAA4YAAA4CAAAAAgAAAAIAAAACAAAAAgAAAAYAAAAGAAAABAAAAAQAAAAIAAAACAAAABAAAAAQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.E = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAJXAAe+20ADRQAAAAOAAAABgAAAAQAAAAMAAAABAAAAAwAAAAEAACABAEAgJbvgP9qSsByAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.E = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAADgAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAdwAAAcYAAB8MAAAIGAAAADAAAABgAAAAwAAAAYAAAAMAAAAGAAAADIAAAB4gAAA4EAAAMAgAACAOGAAAB/wAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.O = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAADwAAAAOAAAADAAAAAwAAAAMAAAAjAABAAydAbff/wH/XAUAwDwAAAB0AAAA7AAAAMwAAAHMAAADjAAABkwAAA4MAAAZDAAAMEwAAGEMAAGQzAADAHwABAA8AAAAHAAAABAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.O = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAADACAAAwAYAAMADAADIAQAA/AGAF+AAAAyAAAAAgAAAAIAAAACAAAAAg/gAAJwOAADgBgABgAMAAoADAAyAAwAIgAMAEIAGABCADAAJgBgAD4AgAAMAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.HA = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAcGAAADgwAAB4HAAA4A4AAMgHAAHAA4ADAAXAAwAA4AYAAHAMAABwGAAAMGAAACDAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.HA = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAABAACAAYAAwAGAAMABgACAAYAAgAHwAIAD4AGAfYABAAGAAQABgAEAAYABAAGAAQABgAEAAYABAAGAAQABgAEAAYABAOGAAQEfgAFCA8ABggPwAYG+GAGAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.HI = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAXAAAABwAAAAYAgAAGAMAABgDgABYD0AAWF4gABvwAAAfAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAgAAal8AAD//gAAJQAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.HI = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwEAAA8BAAB2AYAABACAAAwAQAAIAEAAGAJgABACIAAwAjAAIAIYACACGABABAwAQAQEAEAEAABADAAAAAgAAEAYAABAEAAAYDAAADDgAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.HU = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAALwAYt/vAD/0DwAcABwAACAcAAAAGAAAADIAAAAwAAAAYAAAAOAAAAGAAAADgAAAAwAAAA0AAAAaAAAAOAAAAHAAAAHAAAAHAAAAGgAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.HU = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAGAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAACAAAAAQAAAACAgAAAgEAAAMBgAABAYAgAwDAMAMAgBgCAAAYHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.HE = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAANwAAAGHAAADA4AABwDgAIwBOADcABwQeAAHgDAAA8AIAADwAAAAeAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.HE = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAIMAAAMAgAAGAGAADAAwAAAADAAAAAYAAAADgAAAAMAAAABwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.HO = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAEAAAADQAAAAYAAAASAAAABgAAAAIAACAGK4A273dAHoYAAAAGAAAAAgAAAIIQAAECGAABAgwAAgYGAAIGAwAGAgGADAIBwBiCAaAYRgDAMDIAgAAeAAAADgAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.HO = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAQB+AAEAgAABAAQAAQAGAAIABgACAAQAAgAHwAIAD4ACAfQABAAEAAQABAAEAAQABAAGAAQABgAEAAYABAAGAAQBdgAHAg4ABwAHgAIB+OACAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.KA = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAUAAAADwAAAAcAAAAGAAAABgAAAAYFABAOvwAfv9eAD6wHAAQMBwAADAYAABwGAAAYBgAAGAYAADAOAAAwDAAAYgwAAMgcAADEmAAFgzgAAwHwAA4B4ABYAcAAMABAAEAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.KA = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwAAAAIAAAACAAAABAAAAAQAgAAMAEAAD8AwAHggGAHQIBgAECAMADAgDAAgIAQAIGAEAEBAAABAwAAAwIAAAYGAAAGBgAAADwAAAAcAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.KI = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAACwAAAAeAAAADgAAAAYAAAATBgAAAz8AAAP5AAxfQAAH8YAAA4GAAAABgHAAAYf4AAD+pAAF8AAMPsAAC/hgAAPAYAABAGAAAABwAAAAYAAAAHAAAAAwAAAAOAAAADAAAAAYAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.KI = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAQAAAAGAAAAAgAAAAIAAAADDAAAAfwAAAeAAAA4gAAAwIAAAABAAAAAZwAAADwAAAHwAAAOGAAAAAgAAAAMAAAADAAAAAQAAAAAAAAAAAAAAAAAAEAAAABgAAAAPmAAAAfwAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.KU = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAQAAAAHAAAAA4AAAAMAAAAHBwAAB/+AAA0XAAAaBkAAGA4AADAOAABgHAAAwBwAAYA4AAMAMAAGAHAAAADgAAABwAAAA0AAAAaAAAAOAAAAHAAAADIAAADgAAACgAAABgAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.KU = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAADAAAABgAAAAQAAAAIAAAAGAAAABAAAAAgAAAAQAAAAEAAAACAAAAAQAAAAEAAAAAgAAAAEAAAABgAAAAIAAAADAAAAAYAAAAGAAAAAwAAAAMAAAABgAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.KE = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAABwAAAAOAAAADgAAABwAAAAYAQAAGAAgABgF8AA79/gAb7gAAGQcQADAHgABgBgAAYAwAAZAMAAMAHAADABgAAgAwAAAAMAAAAGAAAALAAAABwAAAAYAAAAYAAAAMgAAAGAAAACAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.KE = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAABAAAAAYAAIAGAAGABgABgAYAAYAGAAEAB+ABAB/gAQHmAAEABgADAAYAAgAGAAIABgACAAYAAgAGAAIABAACAAQAAgAEAAKABAADgAwAAYAIAAGACAAAgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.KO = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwCtwAH//8AA+oGAAEABgAAAAYAAAAGAAAABgAAAAQAAAAsAAAADAAIAFwADv//AAf1CQACAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.KO = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/8AAAADwAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAYAAAAD8EAAAH/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.MA = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAFcAIG/3ga/0h4H6gA4AcAAcACAAOAAAAHAAAYDAAAFjgAAAPgAAAB4AAAAOAAAABwAAAAMAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.MA = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABBAAAAf8AAD+AAAOBAAAAAQAAAAGAAAABgAAAAZwAAAHwAAB/gAAAAYAAAAGAAAABgAAAAYAAAAGAAAARgAAAR4AAAIHgAACDPAAARg4AABAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.MI = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAegAAAC+gAAAB8AAAAHgAAAAYAAAAQAAAAgAAAegAAAB+AAAAD4AAAAPAAAABwAAAAMAAAAAAAAAAAAAAAAAAAUAAAAF8AAAAHwAAAAPgAAAA8AAAAHwAAAAeAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.MI = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPgAAA+YAAAEMAAAADAAAABgAAAAQAAAAMAAAACAAAABgAAAAQAAAAIAIAAGAGAADgBgAO/wQAEIH8ACEAH4AiABnAJgAQQBgAIAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.MU = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAACgAAAAcAAAADgAAAA4AAAAcAAAAHAAAABkAAAAYAAAAMQAAADEAAABwwAAAYGAAAGAwAADAHAAAwA4AAIAOAAWBfwBBX9OAf/oDgH+gAYA6AAGAAEAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.MU = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAYAAAACAAAAAgAwAAIAGAACIAwAA/gEAB+ABAB2AAAAAgAAAAYAAAAGAAAABgAAAAYAAAAGAEAABgBAAGQAQAA0AEAAFABAAAwAQAAEAMAARgCAAGWHgAA8fgAAGAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.ME = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAcAAAABgAAAAcAAAAHAAAADgAAAAwAAABcAABgGAAAfDgAAAewAAAB8AAAAPAAAAD8AAABzgAAA44AAAcHAAAGAwAADAAAACgAAABwAAAAoAAAAcAAAAMAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.ME = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABgAAAAYAABAGAAAIBAAACAwAAAgP4AAMeDgABZgMAAYQBgAOMAYAGiACADJgAgAjQAIAQcACAEGABgBBgAQARsAIAHwAEAAQAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.MO = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAABAAUAASXfgAD7EQAAQwAAAAOAAAABAAAAAwAAAAEAUBADd/wNfaRID1EAAAIDAAAAAwAAAAEAAAADAAAAAQAAAAMAAAABiQAAAf+AAABKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.MO = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAIAAAACAAAAB+AAAA/wAAB0AAAABAAAAAQAAAAEAAAABAAAAAQAAAAEYAAAf+AAABwAAAAMAAAACAIAAAgCAAAIAgAACAIAAAgCAAAEBAAABgwAAAP4AAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.NA = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAPAAAAA4AAAAOAAAADAAAAAwBAAAMQAAADAaBAT9/wf/vbcD6DAAAQAxAAAAMAAAADAAAAAwAAAAMAAAAGAAAABgAAAAYAAAAMAAAAGAAAABgAAAAwAAAAYAAAAMAAAAEAAAABAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.NA = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAgAAAAJgAAAH4AAA/gAAAMQAIAAIABAACAAYABgACAAQAAAAMAAAACAIAAAgCAAAAAgAAAAIAAAACAAAAAgAAAPIAAAEOAAABB4AAAQTgAAD4MAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.NI = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgALAANb/8AB/6pAAMAAAAAACAAAAAAAAAAAAAAAAAAAAAAABAAAIAAAJvAKN//4D/1EGAdAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.NI = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAGAAAABgA/AAYBwAAEAAAABAAAAAQAAAAMAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAAEAAAIAgAADAH/gAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.NU = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFgAML38AB/9OAAOgHAAAQBgABAA4AAAAMAADoHAAAPRgAAAfYAAAB4gAAAPQAAADeAAABjwAABwcAAI4DgAA4AcAAcADAAcAAQAaAAAAWAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.NU = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAABAwAAAIMAAACDf4AAg4DAAIYAYACeACAAZAAgAMQAIAFMACACSAAgBDgAIAwwOGAIMEbACHBDgAjYPsAPCABgBggAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.NE = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAGAAAAA4AAAAHAAAAA4AAAAGAAAABgAAAAJYABAv/AAf+nwAD4DoAAQB4AAAA8AAAB8AAAAeAAAAPQAAAHzgAAHMeAAHDB4ADgwOAHgMBwHADAMKgAwAgAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAEAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.NE = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAADAAAAAwAAAAIAAAADAHgAA8GIAA+CCAAzBAwAAhAMAAIgDAAGQAwABoAMAAsADAASAAwAFgAMAC4ACAAyAugAcgIYAGYCHABGAecABgABgAYAAIAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.NO = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAGAAAABwAAAAeAAAAOAAAADgAAAAwAAAAcAAAANAAAADAAAABwAAAAYAAAAOAAAAHAAAABgAAAAwAAAAYAAAAMAAAAGAAAAGQAAADAAAADgAAAAkAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.NO = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAD44AADEBAABBAIABgQBAAwMAYAICACAEBgAgAAQAIAgMACAICAAgCBgAYAwwAGAEIADABmAAgAPAAQADgAYAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.RA = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAEAAQAIAANTvgAD/u0AAOAAAAAACAAAAAAABAACAAgAt4APf/vAB/UDQAIAJwAAAA4AAAAOAAAAHAAAABgAAAA4AAAAcAAAAOAAAAGgAAADQAAABoAAAA4AAAAcAAAAaAAAAMgAAAEIAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.RA = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAQAAAACAAAAAwAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAgAAAAYAAAAEAAAABAAAAAQAAAAEA+AADBwQAA3gCAAPgAgADAAIAAAAGAAAADAAAABgAAAAwAAAAgAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.RI = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAQBwAAHgOAAAsDgAAGAwAABgMAAAYDAAAGAwAABgMAAAYDAAAGAwAABgMAAAYDAAAGAwAABgMAAAYDAAACAwAAAAYAAAAGAAAADAAAAEwAAAA0AAAAcAAAAOAAAAOAAAAOAAAAGAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.RI = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAABAAAAAYAAAAGAAAABAQAAAQGAAAEAgAABAIAAAwCAAAIAgAACAIAAAoCAAAOAgAADAIAAAQCAAAEAgAAAAYAAAAGAAAABAAAAAQAAAAEAAAACAAAAAgAAAAAAAAAEAAAACAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.RU = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAABAAAAAeAAAADgAAAA4AAAcGAAADhgAAA4YAAAMGABAGDAAwBkYAYAYGAMAMDAOADAYHAAwGDgAYBjgAMgbwADAHyABgD4AAwA4AAYAEAAMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.RU = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAO4AAA8MAAAAGAAAADAAAAAgAAAAQAAAAIAAAAGAAAABAAAAAgAAAAQAAAAIYMAAE4BgAB4AIAA4ACAAMAAgAAAAYAAAAEAAATCAAAEZAAAB/AAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.RE = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAACgAAAAeAAAADgAAAAwAAAAMAAAADAAAAAwAAYAMAAMADAAGAAwAGAAsADgADABgAAwBwAAMBwAADA4AAAw8AAAM8AAAD8AAAA+AAAAGAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.RE = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAGAAAYDgAAfBIAANgiAAMQwgAAMYIAAHMCAAB2AgAAnAIAAJgCAAEwAgAAcAIAAvACAAewAggHMAIwBDADwAAwAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.RO = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAYABk3/AAP/a4ADQAYAAwAGAAMABgABAAwAAwAMAAMADAABAAwAAQEMAAEASAADEt4AA/++QAGgAAADAAQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.RO = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAF8wAAAwYAAAAMAAAACAAAABAAAAAwAAAAYAAAAEAAAACAAAABAAAAAg/gAARgGAAPgAgAHgAMADgADAAQAAwAAAAYAAAAOAAAAGAAAAGAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.SA = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAFAAAAA4AABAHAAAdBgAABwYAAAYGAAAGBgAABgYABAYGrAYu//4H/aomA4YGAAAGBgAABgYAAAYGAAAGBgAABgwAAAYMAAACGAAAABgAAAAwAAAAYAAAAOAAAAGAAAADgAAABgAAAAgAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.SA = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAGAAAABgAAAAIAAAADAAAAAQgAAAG8AAAB4AAAB8AAAPhgAAAAIAAAABAAAAAYAAAADAAAABwAAAAGAAAAAgAAAAAAAAAAAAAAAAAAAAAAAEAAAAAwAAAAH/AAAAHwAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.SI = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAHgAAAAcAAAAjgAAAAYABAAAAAwEAAAYB4AAMAHgAGAA4ADAAWABgAAgAyAAAAYAAAAcAAAAOAAAAOAAAIHAAAUHgAABnwAAAPwAAAB4AAAAIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.SI = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAQAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAIAQAADA4AAAf4AAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.SU = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAEAAGC/gAE/9cAAOgOAAAgHAAAABwAAAA4AAAAcAAAAGAAAAHgAAAB2AAAA44AAAYHAAAcA4AAOAHAALAA4AHAAOAGgABgDAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.SU = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAADAAAAAQAAAAEAAAABAAAAAQAAAAE/gAAf/4AH4QAAHAEAAAABAAAAAQAAAGkAAABFAAAARQAAAEcAAABDAAAAYwAAAB8AAAAGAAAABgAAAAQAAAAMAAAAGAAAABAAAABgAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.SE = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAA4AAAAHgAAAA4AAAAMAAAADABAAAwG4CAN/vAw36DgH+wDgA6MBwACDA4AAAwZAAAMUAAADMAAAAyAAAAMAAAADAAAAAwAAAAMAAAADAGAAA//gAAL94AAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.SE = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAgCAAAMAgAADAIAAAwCAAAMAgAADAf8AAx+AAAPhgAAPAQAA8wEAAMMBAAADAwAAAwcAAAEGAAABAAAAAQAAAACAAAAA8OAAAB/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.SO = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAQAAAALAAIAA4ADAAeAAcAHAADIBwAAYA4AAHAOAAAwDAAAIBwAAAAYAAAAMgAAAHAAAADAAAABwAAAAYAAAAMAAAAOAAAAHAAAADgAAADgAAADgAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.SO = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAYAAAAzAAAHxgAAAwwAAAAYAAAAEAAAACAAAABAAAAAgAAAAQDwAAIDwAAEGQAACOIAABeEAAAMCAAAAAAAAAAQAAAAEAAAABAAAAAYAAAADAAAAAYAAAADwAAAAMAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.TA = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAOAAAABwAAAAcAAAAGBYAAB/fAAA1DgAAMA4AAGAcAABgHAAA4DAABdwwAAMPcAAGA+AADADkABgB8AAQAzAAAAMAAAAGAAAADAAAADgAAABwAAAA4AAAAYAAAAcAAAAMAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.TA = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAACAAAABgAAAAYAAAAEAAAADHgAAA/gAAH8AAAAmAAAABAAAAAQAAAAMAAAACAfgABg4AAAQAAAAEAAAADAAAAAgAAAAYAAAAEAAAADAAAAAwDjgAIAP8ACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.TI = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAOAAAAH4AAAPwAAAvgAADe4AAL4OAABADAAABAwAQAAMV4ECv//B7/0IwPQmAAAgDAAAAQwAAAAMAAAADAAAABgAAAAYAAAAMAAAAGAAAACgAAAAwAAAAwAAAAsAAAAMAAAACAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.TI = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAABAAAAAIAAAAGAAAABgAAAAQAAAAEAAAABHAAAB/AAAH4AAAACAAAAAgAAAAQAAAAEAAAABAAAAAQAAAAIPcAACMBgAAsAIAAcACAAGAAgAAAAIAAAAGAAAADAAAABgAAABgAAABgAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.TU = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAACAAAAAyBgAgHAOAGA4DwAwOA8AGBgcABwYHAAcADgADAA4AAQAcAAAAGAAAALgAAABwAAAAYAAAAMAAAAOAAAADAAAADgAAABwAAABwAAABwAAADRAAAAgAAAAAAAAACAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.TU = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/HAAB4AYADwACAPwAAwBgAAMAAAADAAAAAgAAAAYAAAAEAAAADAAAADAAAADgAAADAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.TE = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAACAACAn4AC3/vAAHoAAACQAAAAAAIAAAIAAAgAFfQG3+/8B/YwBAGAOAAAADgAAABgAAAAcAAAAGAAAADAAAABQAAAAYAAAAOAAAADAAAABgAAAAwAAAAwAAAAYAAAAKAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.TE = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAPAAAAbgAAA5gAABwgAADwYAAHgEAAAgCAAAABAAAAAQAAAAAAAAACAAAAAgAAAAIAAAACAAAAAQAAAAEAAAAAgAAAAOAAAABwAAAAHAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.TO = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAA4AAAAHgAAAA4AAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAD6AAAAzwAAAMPAAADA4AAAwHAAAMAwAADAEAAAwAAAAMAAAADAAAAAwAAAAMAAAAGAAAABwAAAAMAAAAAAAAAAAAAAAIAAAAAAAA=')
|
||||
};
|
||||
hiragana.TO = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAGAAAAAgAAAAMAYAABAHAAAQHAAAGDAAAAhgAAAIwAAABwAAAAYAAAAMAAAAEAAAACAAAABAAAAAQAAAAAAAAACAAAAAAAAAAGAAAAAf/wAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.WA = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAACAAANACsAB7//gAPtI4AJgAOAAYADAAMABwABgAYACYAGAAOABgABgA4AAwAcAAGAHAABADgAAAAwAAAAcAAAAOAAAAHAAAADgAAADgAAADgAAAFwAAACgAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.WA = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAADAAAAAwAAAAMAAAADAAAAA8AAAAfAAAAfgAAAIwAAAAIDnAAGCAYACiACAArAAwATAAMAJgADAD4AAgByAAYARgAEAAYACAAGACAABgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.WI = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAQAAAAPAAAAA4AAAAMAAAADAAAAAwAAAAsEABhLvgAP//cAB5MAAAGDAAADAwAAAQMAAAMDAAADAwcBg19/wf/7UsD1AwAAIAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.WI = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAbAAAB4wAAAMIAAAACAAAABgAAAAQAAAAEAAAADAAAAA3+AAAeAwAAeAGAAZAAgAMQAMAEMADACCAAwBBgAMAwQACAIMDxgBCBGwARAQYADgCcAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.WE = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAFBK4AB//+AAPUHgABADgAAARwAAAOwAAABwAAAAMAAAADAAAAAwAAAAMAAAALAAAgAyVgPv//+B/qIrgIAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.WE = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAA8AAAB3AAAHhgAAAAwAAAAYAAAAMAAAAGAAAADAAAABhwAAAzDAAAaAYAAOAGAADADAAACRgAAANgAAAGAAAADAAAABgAAAAgAAAAwAcAAYAxwAfggGAOGwAwDA4AAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.WO = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAABAAAgAAwAO37/AB//bwAMgAwAAABYAAgAHAAAABgAGFb4AA//uAAHQDAAAAQwAAAAYAAAAOAAAADAAAABgAAAAwAAAAsAAAAGAAAADAAAABgAAABoAAAAwAAAA4AAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.WO = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAMAAAACOAAAB/AAAPwAAAAMAAAACAAAABAAAAAwAgAAIAcAAHMMAADBOAAAAeAAAAGAAAADgAAADIAAABCAAAAgAAAAIAAAACAAAAAgAAAAGBwAAAP8AAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.YA = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAEAAAAD4AAAAOAAAADAAAAAwAIAAGADAABgX4AAa/fAAX6OAZfwHAD9MDgAcDBgAEAwwAAAmYAAABogAAAYAAAAGAAAABgAAAAcAAAADAAAAAwAAAAOAAAADgAAAA4AAAAGAAAABgAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.YA = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAgAAAAGAAAAAgAAAAMAAAQAAAAEAAAABAHGAAQOAwAGcAEAA4ADAA4AAwA7AAYA4QA4AAEAAAAAgAAAAIAAAADAAAAAQAAAAGAAAAAgAAAAMAAAADAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.YU = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAABAC4AAd//AAH2hoAAQAyAAAAMAAAALAAAAAwAAAAMAAAADAAABAwQEABe+Bt//9wP+kAIBwAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.YU = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAgAAAAIAACADAAAwD3AAIDIIACBCDAAgggQAIwIGACICBgBkAgYASAIEAEACBABQBgwAcB4YAGAGcABgB8AAYAQAACAIAAAACAAAABAAAAAQAAAAIAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.YO = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAIAlgAD//8AAfUGAACABgAAAAYAAAAMAABABgABBLwAAf/8AAF0DAAAgAwAAAAMAAAADAAAQAwAAgAMAANN3AAD/3wAANAIAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.YO = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAEAAAABgAAAAMAAAACAAAAAgAAAAIAAAACDAAAA3wAAAOAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAPCAAAEPgAABA8AAAQHwAAADPAAA/g8AAAADgAAAAYAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
katakana.N = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAEAAAABgAAAAOAAAABwAAIAMgAGADgADAAwABgAAAAwAAAAwAAABYAAABOAAAAHAAAAHAAAADgAAADkAAABwAACB4AAAx4AAAP4QAAB8AAAAOAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
hiragana.N = {
|
||||
width: 32,
|
||||
height: 32,
|
||||
bpp: 1,
|
||||
transparent: 0,
|
||||
buffer: atob('AAAAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAACAAAABgAAAAQAAAAMAAAACAAAABAAAAAQAAAAIAAAAGAAAABAAAAAkAAAALgAAAFIAIADiAAAAwwBAAYMAQAEBAIADAQGAAgGDAAYAzgAEAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')
|
||||
};
|
||||
/// /////////////////////////////////////////
|
||||
|
||||
let kana = katakana.KI;
|
||||
let scroll = 0;
|
||||
|
||||
function drawWheel () {
|
||||
if (scroll > 20 || scroll < -20) {
|
||||
scroll = 0;
|
||||
next();
|
||||
}
|
||||
}
|
||||
let hiramode = false;
|
||||
let curkana = 'KA';
|
||||
function next () {
|
||||
let found = false;
|
||||
for (const k of Object.keys(katakana).sort()) {
|
||||
if (found) {
|
||||
kana = hiramode ? hiragana[k] : katakana[k];
|
||||
curkana = k;
|
||||
return;
|
||||
}
|
||||
if (curkana === k) {
|
||||
found = true;
|
||||
}
|
||||
}
|
||||
curkana = 'KA';
|
||||
kana = hiramode ? hiragana[curkana] : katakana[curkana];
|
||||
}
|
||||
|
||||
function prev () {
|
||||
let oldk = '';
|
||||
let count = 0;
|
||||
for (const k of Object.keys(katakana).sort()) {
|
||||
if (curkana === k) {
|
||||
if (count > 0) {
|
||||
curkana = oldk;
|
||||
kana = katakana[curkana];
|
||||
return;
|
||||
} else {
|
||||
}
|
||||
}
|
||||
oldk = k;
|
||||
count++;
|
||||
}
|
||||
curkana = oldk;
|
||||
kana = katakana[curkana];
|
||||
}
|
||||
|
||||
const kanacolors = {
|
||||
A: []
|
||||
};
|
||||
|
||||
const clocktop = false;
|
||||
|
||||
function updateWatch (hhmm) {
|
||||
if (!hhmm) {
|
||||
hhmm = ohhmm;
|
||||
}
|
||||
g.setBgColor(0, 0, 0);
|
||||
g.setColor(0, 0, 0);
|
||||
if (false) {
|
||||
g.fillRect(0, 0, g.getWidth(), g.getHeight());
|
||||
g.setColor(0.3, 0.3, 0.3);
|
||||
g.setColor(1, 0, 0);
|
||||
|
||||
g.fillRect(stripe_pos, 0, stripe_pos + stripe_width, h);
|
||||
|
||||
g.fillRect(stripe2_pos, 0, stripe2_pos + stripe_width, h);
|
||||
|
||||
for (i = 0; i < h; i += 8) {
|
||||
g.setColor(0.15, 0.15, 0.15);
|
||||
g.fillRect(0, i, g.getWidth(), i + 3);
|
||||
g.setColor(0.4, 0.4, 0.4);
|
||||
g.fillRect(stripe_pos, i, stripe_pos + stripe_width, i + 3);
|
||||
g.fillRect(stripe2_pos, i, stripe2_pos + stripe_width, i + 3);
|
||||
}
|
||||
} else {
|
||||
var whitecolor = false;
|
||||
if (curkana.indexOf('A') != -1) {
|
||||
g.setColor(1, 0, 0);
|
||||
whitecolor = true;
|
||||
} else if (curkana.indexOf('I') != -1) {
|
||||
g.setColor(0, 1, 0);
|
||||
} else if (curkana.indexOf('U') != -1) {
|
||||
g.setColor(0, 0, 1);
|
||||
whitecolor = true;
|
||||
} else if (curkana.indexOf('E') != -1) {
|
||||
g.setColor(1, 1, 0);
|
||||
} else {
|
||||
g.setColor(0, 1, 1);
|
||||
}
|
||||
g.fillRect(0, 0, w, h);
|
||||
}
|
||||
|
||||
// GOOD FONT SIZE g.setFont("Vector", 62);
|
||||
g.setFont('Vector', 50);
|
||||
const bignumbers = false;
|
||||
if (bignumbers) {
|
||||
g.setColor(1, 1, 1);
|
||||
g.drawString(hhmm, 12, 12);
|
||||
g.setColor(0, 0, 0);
|
||||
g.drawString(hhmm, 10, 10);
|
||||
} else {
|
||||
if (whitecolor) {
|
||||
g.setColor(0, 0, 0);
|
||||
} else {
|
||||
g.setColor(0.5, 0.5, 0.5);
|
||||
}
|
||||
if (clocktop) {
|
||||
x = 26; y = 26;
|
||||
} else {
|
||||
x = 26; y = h - 42;
|
||||
}
|
||||
g.drawString(hhmm, x - 3, y - 3);
|
||||
if (whitecolor) {
|
||||
g.setColor(1, 1, 1);
|
||||
} else {
|
||||
g.setColor(0, 0, 0);
|
||||
}
|
||||
g.drawString(hhmm, x, y - 1);
|
||||
}
|
||||
// drawKana(hira_a, 0, 60);
|
||||
drawKana(hiragana.KA, g.getWidth() / 6, 60);
|
||||
Bangle.drawWidgets();
|
||||
}
|
||||
function drawKana (img, x, y) {
|
||||
g.setColor(0, 0, 0);
|
||||
|
||||
// g.fillRect(0,0,g.getWidth(), h);
|
||||
if (clocktop) {
|
||||
g.fillRect(0, h / 2.5, g.getWidth(), h);
|
||||
} else {
|
||||
g.fillRect(0, 0, g.getWidth(), 6 * (h / 8) + 1);
|
||||
}
|
||||
|
||||
if (false) {
|
||||
g.drawImage(hira_a, x, y);
|
||||
g.setColor(1, 1, 1);
|
||||
g.setFont('Vector', 30);
|
||||
g.drawString(curkana, x + 32, y + 4);
|
||||
} else {
|
||||
if (clocktop) {
|
||||
g.setColor(1, 1, 1);
|
||||
g.drawImage(kana, x + 8, y + 12, { scale: 3.4 });
|
||||
g.setColor(1, 1, 1);
|
||||
g.setFont('Vector', 30);
|
||||
g.drawString(curkana, 0, y + 16);
|
||||
g.drawString(hiramode ? 'H' : 'K', w - 20, y + 16);
|
||||
} else {
|
||||
g.setColor(1, 1, 1);
|
||||
g.drawImage(kana, x + 8, 26, { scale: 3.4 });
|
||||
g.setColor(1, 1, 1);
|
||||
g.setFont('Vector', 30);
|
||||
g.drawString(curkana, 4, 32);
|
||||
g.drawString(hiramode ? 'H' : 'K', w - 20, 32);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var ohhmm = '';
|
||||
|
||||
function tickWatch () {
|
||||
const now = Date();
|
||||
function zpad (n) {
|
||||
return (n < 10) ? '0' + n : n;
|
||||
}
|
||||
const hhmm = zpad(now.getHours()) + ':' + zpad(now.getMinutes());
|
||||
if (hhmm !== ohhmm) {
|
||||
updateWatch(hhmm);
|
||||
}
|
||||
}
|
||||
|
||||
Bangle.on('touch', function (tap, top) {
|
||||
if (top.y < h / 3) {
|
||||
// clocktop = !clocktop;
|
||||
return;
|
||||
}
|
||||
if (top.x < w / 4) {
|
||||
prev();
|
||||
} else if (top.x > (w - (w / 4))) {
|
||||
next();
|
||||
} else {
|
||||
hiramode = !hiramode;
|
||||
}
|
||||
kana = hiramode ? hiragana[curkana] : katakana[curkana];
|
||||
tickWatch();
|
||||
});
|
||||
|
||||
Bangle.loadWidgets();
|
||||
tickWatch();
|
||||
setInterval(tickWatch, 1000);
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"id": "kanawatch",
|
||||
"name": "Kanawatch",
|
||||
"shortName": "Kanawatch",
|
||||
"version": "0.01",
|
||||
"type": "clock",
|
||||
"description": "Learn Hiragana and Katakana",
|
||||
"icon": "app.png",
|
||||
"allow_emulator": true,
|
||||
"tags": "clock",
|
||||
"supports": [
|
||||
"BANGLEJS2"
|
||||
],
|
||||
"readme": "README.md",
|
||||
"storage": [
|
||||
{
|
||||
"name": "kanawatch.app.js",
|
||||
"url": "app.js"
|
||||
},
|
||||
{
|
||||
"name": "kanawatch.img",
|
||||
"url": "app-icon.js",
|
||||
"evaluate": true
|
||||
}
|
||||
],
|
||||
"screenshots": [
|
||||
{
|
||||
"url": "screenshot.jpg"
|
||||
}
|
||||
]
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 21 KiB |
|
@ -1,7 +1,7 @@
|
|||
(function(back) {
|
||||
function settings() {
|
||||
let settings = require('Storage').readJSON("messages.settings.json", true) || {};
|
||||
if (settings.vibrate===undefined) settings.vibrate=".";
|
||||
if (settings.vibrate===undefined) settings.vibrate=":";
|
||||
if (settings.repeat===undefined) settings.repeat=4;
|
||||
if (settings.unreadTimeout===undefined) settings.unreadTimeout=60;
|
||||
settings.unlockWatch=!!settings.unlockWatch;
|
||||
|
|
|
@ -34,7 +34,7 @@ draw:function(recall) {
|
|||
Bangle.drawWidgets();
|
||||
},buzz:function() {
|
||||
if ((require('Storage').readJSON('setting.json',1)||{}).quiet) return; // never buzz during Quiet Mode
|
||||
require("buzz").pattern((require('Storage').readJSON("messages.settings.json", true) || {}).vibrate || ".");
|
||||
require("buzz").pattern((require('Storage').readJSON("messages.settings.json", true) || {}).vibrate || ":");
|
||||
},touch:function(b,c) {
|
||||
var w=WIDGETS["messages"];
|
||||
if (!w||!w.width||c.x<w.x||c.x>w.x+w.width||c.y<w.y||c.y>w.y+w.iconwidth) return;
|
||||
|
|
|
@ -120,7 +120,7 @@ function showAlarm(alarm) {
|
|||
Bangle.setLocked(false);
|
||||
}
|
||||
|
||||
require("buzz").pattern(alarm.vibrate === undefined ? ".." : alarm.vibrate).then(() => {
|
||||
require("buzz").pattern(alarm.vibrate === undefined ? "::" : alarm.vibrate).then(() => {
|
||||
if (buzzCount--) {
|
||||
setTimeout(buzz, settings.buzzIntervalMillis);
|
||||
} else if (alarm.as) { // auto-snooze
|
||||
|
|
|
@ -187,7 +187,7 @@ function editAlarm(alarmIndex, alarm) {
|
|||
as : false,
|
||||
dow : 0b1111111,
|
||||
last : 0,
|
||||
vibrate : ".."
|
||||
vibrate : "::"
|
||||
};
|
||||
if (msg != "") a["msg"] = msg;
|
||||
if (!newAlarm) Object.assign(a, alarms[alarmIndex]);
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
# Nova Clock
|
||||
A simple clock app that uses a clockwork star, from Kirby.
|
||||
|
||||
*Note: This clock draws slightly into the widget area, but since it's in the middle, it shouln't matter that much (nobody has that many widgets... right?)*
|
||||
|
||||
## Credits
|
||||
Pixel art by me, [dronesflier](https://github.com/dronesflier)
|
||||
|
||||
The Kirby series belongs to Nintendo/HAL Labs
|
|
@ -0,0 +1 @@
|
|||
require("heatshrink").decompress(atob("mEwxH+AH4A/AE3N5ouuGFovuFwYwrF9wuFGFIqC5nMF9guBF9ReD43GGFJeDF9ReFGFImCFwYvBGAReqMEAdCAAwvKAA4pWFxYwNGhQoJAAouHYQYAEGBwsIFBIANGRBgLFzIwDYhoweFx4xGGC4uSGDYuFFpqTIF1BhXFzBhVXSZhNF6QuWGAgvSFzAvS4wved6KOsSDovJ5gACF9IsCBIQxFF8ItEAAYxEF7qHDFowxGBwZeaFxgPEAwYvYABAONF74PVF64RbF6IThDZYVnDIoXtAH4A/AH4AkA=="))
|
|
@ -0,0 +1,274 @@
|
|||
function nova() {
|
||||
var nova = require("heatshrink").decompress(atob("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"));
|
||||
return nova;
|
||||
}
|
||||
|
||||
function novaEyesStage1() {
|
||||
var novaEyesStage1 = require("heatshrink").decompress(atob("rFYxH+AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4ArgAAFDNhVj5gAFH58rDIXN5movwZRKs+oAIg/OgEr5mi1Go0V+AYIFCLN7oGABIZiK0fXAAkOh0Ph0IBQo+HDI0PhEHhEPDJpWoKQJVCh5ZHHwoZFCgcPg50BLIpYpHohVF1hFChxXODAQACL4hXsHgwABgAACBQg+HDIhuChAZEOYJYtJYkIKwo+EBoJXKJYIABDIyxGK8yUFSYpXKHwTIFKw4NFWFKUGHg0AKwaWGDIrHGWGA9QLIUIK5LJBDJAaDK9o8BhA9JHwSvLK5QQBhEOK9qVLgAMBK5bJJAAMHK9yuBJIRXWh78BDJBWBDIpXnWAIvB1hWNK4xYCOJK7BDIxYoGAZYGBQMOdg6wFBgZWFg7IGK9JYCGQI8FdYpXILAMIDI7IILFZOBAIYCBIoI8KOQ4VDYwRWtHorwCAAQ/DBohXKLAZZCLYQZKLFRZFBQo8HDJLLBDJpYlAB4ZiLE3M5moAQIAFHhgZD5oaCDofNK14/E1Go0QADHaBZDKwQBBKuTyKDNgA/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AD4A=="));
|
||||
return novaEyesStage1;
|
||||
}
|
||||
|
||||
function novaEyesStage0() {
|
||||
var novaEyesStage0 = require("heatshrink").decompress(atob("rFYxH+AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4ArgAAFDNhVj64AFH58rDLBVrH6EAlYZXK0Y7KH4gZiK1MOh0Ph0IHxoZGh8Ig8Ih5YwHgpSBKoUPLI4+FDIoUDh8HOgJZFLFI9EKousIoUOK5wYCAARfEK9g8GAAMAAAQKEHw4ZENwUIDIhzBLFpLEhBWFHwgNBK5RLBAAIZGWIxXmSgqTFK5Q+CZApWHBoqwpSgw8GgBWDSwwZFY4ywwHqBZChBXJZIIZIDQZXtHgMIHpI+CV5ZXKCAMIhxXtSpcABgJXLZJIABg5XuVwJJCK60PfgIZIKwIZFK86wBF4OsKxpXGLARxJXYIZGLFAwDLAwKBhzsHWAoMDKwsHZAxXpLAQyBHgrrFK5BYBhAZHZBBYrJwIBDAQJFBHhRyHCobGCK1o9FeAQACH4YNEK5RYDLIRbCDJRYqLIoKFHg4ZJZYIZNLFYAIHhIZZLEo/LBgIZkLNw7QDLJZnAAgZsAH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4AfA"));
|
||||
return novaEyesStage0;
|
||||
}
|
||||
|
||||
function novaEyesStage2() {
|
||||
var novaEyesStage2 = require("heatshrink").decompress(atob("rFYxH+AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4ArgAAFDNhVj5nM1ABC5g/PlYQB1AYCvwZRKsxWE0RZPBgOiv2iAQNUAYIACLN6RBHYQAETQKcDHxMAvwACLIYaEOYRWtGQYAD1BAELBKsBBgRRCWIQBCDwZYqKwKoGLowFDHwpWCDIRRBAQPMAwd+vANBWNRXBJASoDeRKWGDIoEBOoQDDDAQeBK9CUBJQiTCAAq2CB4Q+DDITGFCAZ2DOohYngAAVDLhWj64ACh0PhA0G6+sBoMPCQY+BgAKCBYMOhwZHBoYZFK88PAAKMHKwYABK4oZEKw5YEDIxXpHpRZChBXJZIIZIDQZXtHgMIHpI+CV5ZXKCAMIhxXtSpcABgJXLZJIABg5XuVwJJCK60PfgIZIKwIZFK86wBF4OsgErKxZXGLARxJXYIZGLEoAVDLhXk1AAC5mo0QGDABJXEBIgaBDYfMAA4ZELEouEHgIALHgsABAN+5hUB0R1CDJywlRIvNAQYECMgZXGY4ZXBCAIDCKQTIILFAAISYo8IOQYUDAoQDCBQRWrHwQABcoxdFHhJyCC4i3DDoWiK1hYDRgSQCAAgMBDJ3NDQJWE5oZMLM6ZGHaBZDOgQBBKuQ/FAAgZsAH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4AfA"));
|
||||
return novaEyesStage2;
|
||||
}
|
||||
|
||||
function novaEyesStage3() {
|
||||
var novaEyesStage3 = require("heatshrink").decompress(atob("rFYxH+AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4ArgAAFDNhVj5nM1ABC5g/PlYQB1AYCvwZRKsxWE0RZPBgOiv2iAQNUAYIACLN6RBHYQAETQKcDHxMAvwACLIYaEOYRWtGQYAD1BAELBKsBBgRRCWIQBCBQV+LFRWBVAxdGAoY+FKwQZCJgICB5hZCvF+qgFBWNRXBJASoDeROiK4ytDCIOoC4R5DAYQIBK9A8BGIY2EABQ+DZARRBUoJVCDYzTELE49CVgo7KHosABoocFZYgBDK8yuGABJfGHwIZQLYQcDLEsAAC4ZaK8nXAAMPh8OGhHX1gPBhATCK4QZDh0PJ5IaCh4ZEK848BhCOKHwI9FOIpXKCAMIhxXpdrAZZK8mo1Gi0V+AIYABBAOiBoIAEBAJXCAwQYDDIwAFDYRXoJAozCAYRDCAAN4I4RXCJAoFELBIdBK8o+DGoyzDKQKcDHgpyBYwquECoYMCAQJWmWAgvCUYadHdgzKF5jMCAITTD5gIDK84+B5gABG4SZDd5A8FZQZLDLQIWGDJCwlLAQAC5oCDAgQABVwoZEKIQeCAYTGFDI5YmcogEEAAg8IOQYUDAoQDCBQRWrHwQABJoV+SQ48KOQRpEW4YdC0RWsLAaMCAIQAEBgIZO5oaCKwfNDJhZnTIw7QLIZ0EKuQ/FAAgZsAH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4AfA=="));
|
||||
return novaEyesStage3;
|
||||
}
|
||||
|
||||
function novaEyesStage4() {
|
||||
var novaEyesStage4 = require("heatshrink").decompress(atob("rFYxH+AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4ArgAAFDNhVj5nM1ABC5g/PlYQB1AYCvwZRKsxWE0RZPBgOiv2iAQNUAYIACLN6RBHYQAETQKcDHxMAvwACLIYaEOYRWtGQYAD1BAELBKsBBgRRCWIQBCBQV+LFRWBVAxdGAoY+FKwQZCJgICB5hZCvF+qgFBWNRXBJASoDeROiK4ytDCIOoC4R5DAYQIBK9EAJQg2EBAoFEHwauBUIN4p1UKoQbGaYhYnK4KvCKoQFBHYi6EHosrBQQaCYwRbBDQd4XYSwoKwIuB5oACIAJBBAYpMDAAI+BKwIKDDAJKBvC2BEgIUDEwawmdgIvDGIhVDLYYAEHoIZBVIQPBKwJeBZoLJEXgYHBK8wzBHISMF5xdFK45GCMwQDBNYonBBAN+XAV+K8wAPlYHGDKIAHV8ztCqiHBWo6gEdgOoK4SpEAgQODDwIjBAAIjBCIRXm5g1CHQQCDHgJWCAgIAD0RXDDIPM5oRC5oECDYR+CK9aVES4ZQFHQShEK4yvEAAbJGAARXlHwI9BJYIAEAwLsEql4vwBBHgZYCCQRrEEYgMDAQJWmWAgvCJQJaDUQQ8DVwYZFVAS9CAITED5gIDK84+BcIQ3CTIa5HKwjKFJYZaBCwwZIWEpYCAAXNAQYECAAJkBK4ysCYYR2DAQIICAAZXpd4zqFAAg8IOQYUDAoQDCBQRWrHwQABJoV+SQ48KOQRpEW4YdC0RWsLAaMCAIQAEBgIZO5oaCKwfNDJhZnTIw7QLIZ0EKuQ/FAAgZsAH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4AfA=="));
|
||||
return novaEyesStage4;
|
||||
|
||||
}
|
||||
|
||||
function novaEyesWhiteStage0() {
|
||||
var novaEyesWhiteStage0 = require("heatshrink").decompress(atob("rFYxH+AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4ArgAAFDNhVj64AFH58rDLBVrH6EAlYZXK0Y7KH4gZiK2Q+JDLJW0Hw4ZZK/5X6HiY+FDLJX/K/Q8VHwYZZK/5X/K/5X/K/5X/K/5X/K+Y+WHgYZZK/5X7Hyg8FDLJX/K/Y+SHg4ZZLGg8JDLJYlH5YMBDMhZuHaAZZLM4AEDNgA/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AD4A="));
|
||||
return novaEyesWhiteStage0;
|
||||
}
|
||||
|
||||
function novaEyesTransStage1() {
|
||||
var novaEyesTransStage1 = require("heatshrink").decompress(atob("rFYxH+AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4ArgAAFDNhVj5gAFH58rDIXN5movwZRKs+oAIg/OgEr5mi1Go0V+AYIFCLN7oGABIZiK0YRYDLJW0CY4ZZK/5X6FCoVDDLJX/K/QmXC4IZZK/5X/K/5X/K/5X/K/5X/K+YmWCoYZZK/5X7FCgTFDLJX/K/YqSCI4ZZLEoAPDMRYm5nM1ACBAAo8MDIfNDQQdD5pWvH4mo1GiAAY7QLIZWCAIJVyeRQZsAH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4AfA"));
|
||||
return novaEyesTransStage1;
|
||||
}
|
||||
|
||||
function novaEyesTransStage2() {
|
||||
var novaEyesTransStage2 = require("heatshrink").decompress(atob("rFYxH+AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4ArgAAFDNhVj5nM1ABC5g/PlYQB1AYCvwZRKsxWE0RZPBgOiv2iAQNUAYIACLN6RBHYQAETQKcDHxMAvwACLIYaEOYRWtGQYAD1BAELBKsBBgRRCWIQBCDwZYqKwKoGLowFDHwpWCDIRRBAQPMAwd+vANBWNRXBJASoDeRKWGDIoEBOoQDDDAQeBK9CUBJQiTCAAq2CB4Q+DDITGFCAZ2DOohYngAAVDLhWjC7AZZK/5X/K/5X/K/5X/K/5X/K+YmBACoZcK8moAAXM1GiAwYAJK4gJEDQIbD5gAHDIhYlFwg8BABY8FgAIBv3MKgOiOoQZOWEqJF5oCDAgRkDK4zHDK4IQBAYRSCZBBYoABCTFHhByDCgYFCAYQKCK1Y+CAALlGLoo8JOQQXEW4YdC0RWsLAaMCSAQAEBgIZO5oaBKwnNDJhZnTIw7QLIZ0CAIJVyH4oAEDNgA/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AD4A=="));
|
||||
return novaEyesTransStage2;
|
||||
}
|
||||
|
||||
function novaEyesTransStage3() {
|
||||
var novaEyesTransStage3 = require("heatshrink").decompress(atob("rFYxH+AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4ArgAAFDNhVj5nM1ABC5g/PlYQB1AYCvwZRKsxWE0RZPBgOiv2iAQNUAYIACLN6RBHYQAETQKcDHxMAvwACLIYaEOYRWtGQYAD1BAELBKsBBgRRCWIQBCBQV+LFRWBVAxdGAoY+FKwQZCJgICB5hZCvF+qgFBWNRXBJASoDeROiK4ytDCIOoC4R5DAYQIBK9A8BGIY2EABQ+DZARRBUoJVCDYzTELE49CVgo7KHosABoocFZYgBDK8yuGABJfGHwIZQLYQcDLEsAAC4ZaK8gXYDLJX/K/jtYDLJXk1Go0WivwBDAAIIB0QNBAAgIBK4QGCDAYZGAAobCK9BIFGYQDCIYQABvBHCK4RIFAohYJDoJXlHwY1GWYZSBTgY8FOQLGFVwgVDBgQCBK0ywEF4SjDTo7sGZQvMZgQBCaYfMBAZXnHwPMAAI3CTIbvIHgrKDJYZaBCwwZIWEpYCAAXNAQYECAAKuFDIhRCDwQDCYwoZHLEzlEAggAEHhByDCgYFCAYQKCK1Y+CAAJNCvySHHhRyCNIi3DDoWiK1hYDRgQBCAAgMBDJ3NDQRWD5oZMLM6ZGHaBZDOghVyH4oAEDNgA/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AD4="));
|
||||
return novaEyesTransStage3;
|
||||
}
|
||||
|
||||
function novaTopRedraw() {
|
||||
var novaTopRedraw = require("heatshrink").decompress(atob("rFYxH+AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AHsAABZM/K5fM5kAv2igGi1EAvFUK/6v/K8isDAQV+BAK4BJn5XL1BOB1GoLod4LQIRE0XM5vM1HN5pX/5hXBIwJdGKwgYGA45X3TgJRDLQZXFAH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AB8AIH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4AP"));
|
||||
return novaTopRedraw;
|
||||
}
|
||||
|
||||
function star() {
|
||||
var backgroundstar = require("heatshrink").decompress(atob("rFYxH+AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A9qxA/K/5W/AH5XGLH6w/K34A/AA2BwJB/K62sIP5XWIH4AW1iv/K/5X/AHFWqwCCq2BJ4ICB1mBAAJZBAQIQBlYUCAYMrAgJZ8KQICBU4QCBLIJVBK4QOCNAJSCOQQA/XpQA/K6q3CAH5XUwJB/ACqu/V7BA/AC2BwJB/LC5A/V/4AtqxX/AC2slZB/ACuBqxB/LC5A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4Ao"));
|
||||
return backgroundstar;
|
||||
}
|
||||
|
||||
function novaOpenEyes(speed, white, animation) {
|
||||
if (!white) {
|
||||
g.drawImage(novaEyesStage4(), -10, -10, {
|
||||
scale: 2.2
|
||||
});
|
||||
setTimeout(function() {
|
||||
g.drawImage(novaEyesStage3(), -10, -10, {
|
||||
scale: 2.2
|
||||
});
|
||||
}, speed * 2);
|
||||
setTimeout(function() {
|
||||
g.drawImage(novaEyesStage2(), -10, -10, {
|
||||
scale: 2.2
|
||||
});
|
||||
}, speed * 3);
|
||||
setTimeout(function() {
|
||||
g.drawImage(novaEyesStage1(), -10, -10, {
|
||||
scale: 2.2
|
||||
});
|
||||
}, speed * 4);
|
||||
if (animation) {
|
||||
setTimeout(function() {
|
||||
g.drawImage(novaEyesStage0(), -10, -10, {
|
||||
scale: 2.2
|
||||
});
|
||||
}, speed * 5);
|
||||
} else {}
|
||||
} else {
|
||||
|
||||
g.drawImage(novaEyesStage4(), -10, -10, {
|
||||
scale: 2.2
|
||||
});
|
||||
setTimeout(function() {
|
||||
g.drawImage(novaEyesWhiteStage0(), -10, -10, {
|
||||
scale: 2.2
|
||||
});
|
||||
timedraw(true);
|
||||
g.drawImage(novaEyesTransStage3(), -10, -10, {
|
||||
scale: 2.2
|
||||
});
|
||||
}, speed * 2);
|
||||
setTimeout(function() {
|
||||
g.drawImage(novaEyesWhiteStage0(), -10, -10, {
|
||||
scale: 2.2
|
||||
});
|
||||
timedraw(true);
|
||||
g.drawImage(novaEyesTransStage2(), -10, -10, {
|
||||
scale: 2.2
|
||||
});
|
||||
}, speed * 3);
|
||||
setTimeout(function() {
|
||||
g.drawImage(novaEyesWhiteStage0(), -10, -10, {
|
||||
scale: 2.2
|
||||
});
|
||||
timedraw(true);
|
||||
g.drawImage(novaEyesTransStage1(), -10, -10, {
|
||||
scale: 2.2
|
||||
});
|
||||
open = true;
|
||||
}, speed * 4);
|
||||
if (animation) {
|
||||
setTimeout(function() {
|
||||
g.drawImage(novaEyesWhiteStage0(), -10, -10, {
|
||||
scale: 2.2
|
||||
});
|
||||
open = true;
|
||||
}, speed * 5);
|
||||
} else {}
|
||||
}
|
||||
}
|
||||
|
||||
function novaCloseEyes(speed, white, animation) {
|
||||
if (!white) { // for other
|
||||
if (animation) {
|
||||
g.drawImage(novaEyesStage0(), -10, -10, {
|
||||
scale: 2.2
|
||||
});
|
||||
} else {}
|
||||
setTimeout(function() {
|
||||
g.drawImage(novaEyesStage1(), -10, -10, {
|
||||
scale: 2.2
|
||||
});
|
||||
}, speed * 2);
|
||||
setTimeout(function() {
|
||||
g.drawImage(novaEyesStage2(), -10, -10, {
|
||||
scale: 2.2
|
||||
});
|
||||
}, speed * 3);
|
||||
setTimeout(function() {
|
||||
g.drawImage(novaEyesStage3(), -10, -10, {
|
||||
scale: 2.2
|
||||
});
|
||||
}, speed * 4);
|
||||
setTimeout(function() {
|
||||
g.drawImage(novaEyesStage4(), -10, -10, {
|
||||
scale: 2.2
|
||||
});
|
||||
}, speed * 5);
|
||||
} else { // for time
|
||||
|
||||
if (animation) {
|
||||
timedraw(true);
|
||||
g.drawImage(novaEyesWhiteStage0(), -10, -10, {
|
||||
scale: 2.2
|
||||
});
|
||||
} else {}
|
||||
setTimeout(function() {
|
||||
timedraw(true);
|
||||
g.drawImage(novaEyesTransStage1(), -10, -10, {
|
||||
scale: 2.2
|
||||
});
|
||||
}, speed * 2);
|
||||
setTimeout(function() {
|
||||
timedraw(true);
|
||||
g.drawImage(novaEyesTransStage2(), -10, -10, {
|
||||
scale: 2.2
|
||||
});
|
||||
}, speed * 3);
|
||||
setTimeout(function() {
|
||||
timedraw(true);
|
||||
g.drawImage(novaEyesTransStage3(), -10, -10, {
|
||||
scale: 2.2
|
||||
});
|
||||
}, speed * 4);
|
||||
setTimeout(function() {
|
||||
g.drawImage(novaEyesStage4(), -10, -10, {
|
||||
scale: 2.2
|
||||
});
|
||||
}, speed * 5);
|
||||
open = false;
|
||||
}
|
||||
}
|
||||
|
||||
function timedraw(animation) {
|
||||
if (open && timemode || animation) {
|
||||
g.setFont("6x8", 4);
|
||||
g.setColor("#00F");
|
||||
var d = new Date();
|
||||
var h = d.getHours(),
|
||||
m = d.getMinutes();
|
||||
g.drawImage(novaEyesWhiteStage0(), -10, -10, {
|
||||
scale: 2.2
|
||||
});
|
||||
g.drawImage(novaEyesTransStage1(), -10, -10, {
|
||||
scale: 2.2
|
||||
});
|
||||
// Check if single digit
|
||||
var hourDigits = h.toString();
|
||||
if (hourDigits.length === 1) { // if hour digits only one, render in middle
|
||||
g.drawString(h, 50, 66);
|
||||
} else {
|
||||
g.drawString(h, 38, 66);
|
||||
}
|
||||
var minutes = m.toString();
|
||||
if (minutes.length === 1) { // same for mins
|
||||
g.drawString(m, 107, 66);
|
||||
} else {
|
||||
g.drawString(m, 94, 66);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function main() {
|
||||
Bangle.on("lock", function(lock) {
|
||||
g.drawImage(novaTopRedraw(), -10, novaYPos, {
|
||||
scale: 2.2
|
||||
});
|
||||
if (lock) {
|
||||
novaCloseEyes(200, true, false);
|
||||
setTimeout(function() {
|
||||
novaOpenEyes(100, false, false);
|
||||
timemode = false;
|
||||
}, 1200);
|
||||
}else{
|
||||
novaCloseEyes(100, false, false);
|
||||
setTimeout(function() {
|
||||
timemode = true;
|
||||
novaOpenEyes(200, true, false);
|
||||
}, 600);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
g.setFont("6x8", 4);
|
||||
g.setColor("#FFF");
|
||||
var open = false;
|
||||
var timemode = true;
|
||||
var clockmode;
|
||||
var novaYPos = -7;
|
||||
g.clear();
|
||||
Bangle.loadWidgets();
|
||||
Bangle.drawWidgets();
|
||||
g.drawImage(nova(), -10, -10, {
|
||||
scale: 2.2
|
||||
});
|
||||
Bangle.setUI("clock");
|
||||
|
||||
g.drawImage(star(), 5, -5, {scale:0.8});
|
||||
g.drawImage(star(), -10, 120, {scale:0.8});
|
||||
g.drawImage(star(), 120, -5, {scale:0.8});
|
||||
|
||||
|
||||
|
||||
var secondInterval = setInterval(function() {
|
||||
timedraw();
|
||||
g.drawImage(novaTopRedraw(), -10, novaYPos, {
|
||||
scale: 2.2
|
||||
});
|
||||
}, 1000);
|
||||
|
||||
novaOpenEyes(300, true, false);
|
||||
main();
|
Binary file not shown.
After Width: | Height: | Size: 1.8 KiB |
|
@ -0,0 +1,15 @@
|
|||
{ "id": "novaclock",
|
||||
"name": "Nova Clock",
|
||||
"shortName":"Nova Clock",
|
||||
"icon": "app.png",
|
||||
"type": "clock",
|
||||
"version":"0.1",
|
||||
"description": "A clock inspired by the Kirby series",
|
||||
"tags": "clock",
|
||||
"supports": ["BANGLEJS2"],
|
||||
"readme":"README.md",
|
||||
"storage": [
|
||||
{"name":"novaclock.app.js","url":"app.js"},
|
||||
{"name":"novaclock.img","url":"app-icon.js","evaluate":true}
|
||||
]
|
||||
}
|
|
@ -1 +1,2 @@
|
|||
0.01: First release
|
||||
0.02: added missing type i metadata
|
||||
|
|
|
@ -2,8 +2,9 @@
|
|||
"name": "Pong Clock",
|
||||
"shortName":"Pong Clock",
|
||||
"icon": "pongclock.png",
|
||||
"version":"0.01",
|
||||
"version":"0.02",
|
||||
"description": "A Pong playing clock",
|
||||
"type": "clock",
|
||||
"tags": "",
|
||||
"allow_emulator":true,
|
||||
"supports": ["BANGLEJS", "BANGLEJS2"],
|
||||
|
|
|
@ -6,3 +6,4 @@
|
|||
0.06: Redraw widgets when time is updated
|
||||
0.07: Fix problem with "Bangle.CLOCK": github.com/espruino/BangleApps/issues/1437
|
||||
0.08: Redraw widgets only once per minute
|
||||
0.09: Workaround for issue in 2v14 firmware (fix #1959)
|
||||
|
|
|
@ -16,7 +16,7 @@ var commands = [];
|
|||
var showSeconds = true;
|
||||
|
||||
function pushCommand(command) {
|
||||
let hash = E.CRC32(E.toJS(arguments));
|
||||
var hash = E.CRC32(E.toJS(arguments));
|
||||
if (!delete rectsToClear[hash]) {
|
||||
commands.push({hash: hash, command: Function.apply.bind(command, null, arguments.slice(1))});
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "vectorclock",
|
||||
"name": "Vector Clock",
|
||||
"version": "0.08",
|
||||
"version": "0.09",
|
||||
"description": "A digital clock that uses the built-in vector font.",
|
||||
"icon": "app.png",
|
||||
"type": "clock",
|
||||
|
|
|
@ -16,7 +16,7 @@ if (window.location.host=="banglejs.com") {
|
|||
'This is not the official Bangle.js App Loader - you can try the <a href="https://banglejs.com/apps/">Official Version</a> here.';
|
||||
}
|
||||
|
||||
var RECOMMENDED_VERSION = "2v13";
|
||||
var RECOMMENDED_VERSION = "2v14";
|
||||
// could check http://www.espruino.com/json/BANGLEJS.json for this
|
||||
|
||||
// We're only interested in Bangles
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue