From 33ffbf8005adde5f4daff36bef29c226681cc7be Mon Sep 17 00:00:00 2001 From: James Steinberg Date: Thu, 2 Nov 2023 11:40:31 -0400 Subject: [PATCH] make pr changes --- apps/hardalarm/README.md | 16 ++++++++++++++++ apps/hardalarm/app.js | 9 +-------- apps/hardalarm/metadata.json | 5 +++-- apps/hardalarm/screenshot.png | Bin 0 -> 1487 bytes apps/hardalarm/screenshot2.png | Bin 0 -> 1854 bytes apps/hardalarm/screenshot3.png | Bin 0 -> 2217 bytes apps/twentyeightbysix/README.md | 24 ++++++++++++++++++++++++ apps/twentyeightbysix/app.js | 24 ++++++++++++++++-------- apps/twentyeightbysix/boot.js | 0 apps/twentyeightbysix/metadata.json | 5 +++-- apps/twentyeightbysix/screenshot.png | Bin 0 -> 5382 bytes apps/twentyeightbysix/screenshot2.png | Bin 0 -> 5533 bytes apps/twentyeightbysix/screenshot3.png | Bin 0 -> 3912 bytes 13 files changed, 63 insertions(+), 20 deletions(-) create mode 100644 apps/hardalarm/README.md create mode 100644 apps/hardalarm/screenshot.png create mode 100644 apps/hardalarm/screenshot2.png create mode 100644 apps/hardalarm/screenshot3.png create mode 100644 apps/twentyeightbysix/README.md delete mode 100644 apps/twentyeightbysix/boot.js create mode 100644 apps/twentyeightbysix/screenshot.png create mode 100644 apps/twentyeightbysix/screenshot2.png create mode 100644 apps/twentyeightbysix/screenshot3.png diff --git a/apps/hardalarm/README.md b/apps/hardalarm/README.md new file mode 100644 index 000000000..dadbdee2d --- /dev/null +++ b/apps/hardalarm/README.md @@ -0,0 +1,16 @@ +Hard Alarm +======== + +The Hard Alarm will is vibration only alarm clock that will not stop vibrating until you are awake enough to match the random number on the screen. + +To set a hard alarm open the app and in the settings screen: +* 1. Press the top half of the screen add 1 and press the bottom half of the screen to subtract 1. +* 2. Press the center number itself to save your selection +* 3. Exit the app or it may not run the alarm. + +When the alarm goes off: +* 1. Press the top half of the screen add 1 and press the bottom half of the screen to subtract 1. +* 2. Press the side button to confirm your selection and turn off the alarm +* 3. You now have the touchscreen option to Snooze the alarm for 10 more minutes or end the alarm. + +Made by https://dare.fail diff --git a/apps/hardalarm/app.js b/apps/hardalarm/app.js index 0aa33b21b..6f44a7b15 100644 --- a/apps/hardalarm/app.js +++ b/apps/hardalarm/app.js @@ -8,7 +8,6 @@ var alarms = require("Storage").readJSON("hardalarm.json",1)||[]; msg : "Eat chocolate", last : 0, // last day of the month we alarmed on - so we don't alarm twice in one day! rp : true, // repeat - as : false, // auto snooze } ];*/ @@ -45,14 +44,12 @@ function editAlarm(alarmIndex) { var mins = 0; var en = true; var repeat = true; - var as = false; if (!newAlarm) { var a = alarms[alarmIndex]; hrs = 0|a.hr; mins = Math.round((a.hr-hrs)*60); en = a.on; repeat = a.rp; - as = a.as; } const menu = { '': { 'title': 'Alarms' }, @@ -72,10 +69,6 @@ function editAlarm(alarmIndex) { value: en, onchange: v=>repeat=v }, - /*LANG*/'Auto snooze': { - value: as, - onchange: v=>as=v - } }; function getAlarm() { var hr = hrs+(mins/60); @@ -86,7 +79,7 @@ function editAlarm(alarmIndex) { // Save alarm return { on : en, hr : hr, - last : day, rp : repeat, as: as + last : day, rp : repeat }; } menu["> Save"] = function() { diff --git a/apps/hardalarm/metadata.json b/apps/hardalarm/metadata.json index 3bb0a6c52..ad49a7d0d 100644 --- a/apps/hardalarm/metadata.json +++ b/apps/hardalarm/metadata.json @@ -6,7 +6,6 @@ "description": "Make sure you wake up! Count to the right number to turn off the alarm", "icon": "app.png", "tags": "tool,alarm,widget", - "type": "clock", "supports": ["BANGLEJS", "BANGLEJS2"], "storage": [ {"name":"hardalarm.app.js","url":"app.js"}, @@ -15,5 +14,7 @@ {"name":"hardalarm.img","url":"app-icon.js","evaluate":true}, {"name":"hardalarm.wid.js","url":"widget.js"} ], - "data": [{"name":"hardalarm.json"}] + "data": [{"name":"hardalarm.json"}], + "screenshots": [{"url":"screenshot.png"},{"url":"screenshot2.png"},{"url":"screenshot3.png"}], + "readme": "README.md" } \ No newline at end of file diff --git a/apps/hardalarm/screenshot.png b/apps/hardalarm/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..d5caefc73a012def8f2becdf3bb766bd8aec9f47 GIT binary patch literal 1487 zcmeAS@N?(olHy`uVBq!ia0vp^8$g(Y4M?uv{v-}aF%}28J29*~C-ahlfwj}q#WAEJ z?(OV@lP(*Gu$ceqFP~+3RvO=3ox*IhZ{GRm)9Z5-wluagwNEO3 zGoSYZOPx*K!uspd=XakEzjI$I;KA-zAeR37ZO?h(AF2lm-|WsiQ_lVE-RJPH5p%Ok z@4uQe`L{^LrVS52`Lph`y8dckV&He3A2N;M-Mgxi=dZ2)x}*B=`g!%G|3dE_|GfTL z%-!u)&mY;bhCSH7dhvnD_CcG?KV)P4PPao5Gq7v~)R8-70euKBFz zzUPbc9|#Jt{`>p-P++|NL6M4&?r+!Z*qpEIHsA8Rom33#PKn2_U;SKMy7>9#&%Nh< z$J>9{Y{~c9{yUr8-=f6_ieHFUtXu!`>SosdYx8+G?0TQIVDy4#> zwuN86`}J4){@_3B%h%kDk^e3Eqarv)x9ZEa$@Ss)#G|!Fs9MkA}LtIK&;lifc4#j4&Q|bBEHBT992y9&@i{Olk1RDCqGJ0i&hA&WbzmL_UtLwp2!bZrLW{GnswXVTz6phUab#ljk9ly zR%}0T@cV&q*84KdyJH*8FZQ#@+TO3J{8Pp{FXX|S&2Mhr-*9%_d>QurF^%e?GenEZ z{ywqz@sz74Twyl@>$zv`^Wz#na;1nbIB@gNhs)XqagA@7L@Z{@*Hy6|)1DC9z?A;^ zu>bl46|9@M10Lkm{dg%VvEHGKk!#Lbe*3*lk3~=DIW%tm`EYr7!XBoZtQrMo_J6*N f8cyY4sb{DUK54v}#m5;~LNj=}`njxgN@xNAxlY8# literal 0 HcmV?d00001 diff --git a/apps/hardalarm/screenshot2.png b/apps/hardalarm/screenshot2.png new file mode 100644 index 0000000000000000000000000000000000000000..feb78431a1ebec560362c7e5a26be84cdab77736 GIT binary patch literal 1854 zcmeAS@N?(olHy`uVBq!ia0vp^8$g(Y4M?uv{v-}aF%}28J29*~C-ahlf$fKTY{Ej3U+|NQgMz49D;G#c5N_Gc7r z`RkW3??C@?_bbfz(HrjmPXBu1+tjtE zze%ofexP7b{4gEFny|t>?w_RJ`7hQUA+kV~e@AB7f?u)LS_j>Q|)Yoh3%w+5DT5k~LV5+Z; z&G=}=;{4#r(rrxJtE3Zci`U8V?r~H*Uhx^M$Nl%_Z>x7bSX?~k+Wqf*Ikh_-A4GiN zka;W`C(D|%Hr{l?+RuDX?%t0|m;L^2bCrq3_4Is>i*|Z(_4lnmaDDhFr6FCg?Hu>L z-TSwmvwHWIy>ao9BVVsAcK&j1W7T^}TmKTB_y6vdhR?14I(N}4VQs7Hx$_&(mviZ7 zyk5-TSRa1m*U@8F=d&!@aQ|KWAIqmlU2eYf=e+Y=@`wNNXDP893I)?u+Rrr}aBhBY zWX4qPS@c4tU;Y0TOOs!6$;t)&GROTI4up>}*M9-aF%%J3)6rFrZFrw#{kYJWtpsQ$U>cN!BK_cqJ6eQ)OMUmCyn--Bni=U=ToxJv)EZu8XHrtf#wzg~Ov zRru8~`QtJ->o(;luGzQexZsb;B24vv68C)tW{JHA*4p(wzRkMrhz0Y`tiO^CrR>4i zs~i8b%m4A`dwt$u?awQZ1MRN;T(l?bwP1x~S~0K=4sM(yJ;63B2^7Qb4?0S}eDhai#WB1B#V5puy z^Kf|4r%WViSBp24?z?+@@!#mb75XLFu{Vu3aH(*eh?3uXIQsX@2l{m> z8-E4%uda-=*>pTUE+PBF%Ke?Ext>3*{K}d*cl#U38^2qGSd(f!ZP?r%@C(K5o91y( z|KhcuYd%->=kI2&mQIjm5n@7+Jzz1V;NYG@e#oz}U*br2S=u zu6o0Pr-Bz6oEREKtFBBFc6jiKBf~+l;Q*Iy)@e?Kf=U*X1p*EUt#VtRvIy+3VUh~q zP}tzqf2)XzBSwyqSA#_$VxfDkB_oSoe*@d7bubP0 Hl+XkK5b05= literal 0 HcmV?d00001 diff --git a/apps/hardalarm/screenshot3.png b/apps/hardalarm/screenshot3.png new file mode 100644 index 0000000000000000000000000000000000000000..28a0c050f7507f2133f106a498def891a5ca98df GIT binary patch literal 2217 zcmeH}{a2C+7RM1$QBzUVrV@LxoTkQ6*DMnyUofZL%xY6a44H99a(zLx2VXFY(Z;C> zsHRbK40F=j1O>x{Gl)Ko6{QX28@?lnNGl?m`9g&bd(Q5Eus`kDbI-lsbMC#L-|o5h zUOsU=+QDv%9Rvb#IQk{#lv(-za=5iQ@`O_avsmPwijIIZ$vplEfxuIaV!}`76ZE%x zaz=wUSgF_7&*r&c)4D33S?qarQL<7WfJNB)lp}V3D$}S7CB^gGU{x-n?b&@@*Oxb0 zz>btEUeiq&6kX^KTjlJ`Vb-F6NjvjGrk!077-`1K3-F?g4@(jB;xe2% z4#fl`FEv7O5&3fAB$kCYGNo8;ckqP+O@TFliKE4MyJuFJuy?xb(^m4El*rM`;`P7DB_C# zvD%}%dZ3C+f?ub#g96Ow;f-ps`}gp-gPlJ=B4VxLrNT*>%ZbK{3T+?C4>|#VN!aSS zKH)MVCQ6V%95}F8^0gKq>b`B*wgP1kSbMATiU9kZc$?+7!Jm23QVW-JU(%d#y4;m7}Q$c02xLIlm_Tq_ZKiO-3sFusrFp~A(5*q7L|3HOE_fj zNI*>-)qtGj7Kj-oU~I9yzpFLDI}25YW) zAa=5UrMoe6!!8zR*`nUzK({;)`ue8OdDS-KR*t0wObNO5*<1MbY)||VWf+8hFf8>- z2ozo|Ex&#c5vFpuc55dK0@XHuGvxq7uU_r*_g8v5kxjlDnCPultf7|fl z85hIzzD^Q%`36|S$9nU4%0rtQs{2K`4;uoyx_~k(w72PF`MBJ7k0!aKqk(d#K-D%ZPu4RU|(yT z-77=M*@jq~;*T#eHcjI-Z$OqV(uOd8H?_u`)H`~Z8cZYSSCXk>RJM?pqMx9zubEm6 zH`In-Z98#aFpSx$U`IaI8SL?&&N1+&q5<=;0t;vt)12!ZzBk1uH;kO%B1r2JcH4D zG6A`ip(LPPvcX3-OWRoq41QC(n(3A5FgnLzJ}tFo}^p7tK-kPAC~`a0G;ATusdh2 z)BtDG>pj$XS}TQ|4j^=*p|2e28pm19gXy%V45?({G3sWVk`GRU7kvFj9&_C?kR5}@ zEL{{WxYcYj9CGMaB?%xJ@QzQnI*szdRB6JQT8@^s(yw$ROQdMAWpqJ;wsDTGwU(m8 z&p#3(6tpPv{nP43CJAr>SlV$*jvzp~!S#&;9A)0tEr5hbaj8 zV*$}9{V;MhgRN#ypxQ@<2PB3mpO`980gkf_Gk!|Pq)WOl(2Aw$Jfgvl>(cR{vwGS6 z>x06WqFz|5_4Mj_Xo^%nLKn>FG~qVI5!%G}yR!1y#ahm?`_A-wDzd`yqbTQ`Y8=^# zN`800r)}{ZLp}%A=%nI5|4Qu^EV3yjTE@B35}H%d#z*?TMM1FZ1cN$5_PRjJUn-gp zX{mdD<&c;Id=jgvdj^P7W10H~k#pc-RP(39c~_U-!F6}%uv6OC0fhC3AP;^seI^n@ z|ImNsn8Cc$Th7Kn==ciOl=CMxiLPNPg~qD@_Kg1TJL*ZN+zGURWt~Cah$edcFSM>f YF1*;!Dda$i=HCNyH0n5}DT4UzA6nNLy8r+H literal 0 HcmV?d00001 diff --git a/apps/twentyeightbysix/README.md b/apps/twentyeightbysix/README.md new file mode 100644 index 000000000..1668b6136 --- /dev/null +++ b/apps/twentyeightbysix/README.md @@ -0,0 +1,24 @@ +28x6: Twenty-Eight by Six +======== + +28x6 is a 28 hour day, 6 day a week clock that syncs up with the ancient 24 hour a day, 7 day a week clock every Monday at 12:01 (midnight) / 28:01 (THE VOID). + +The clock includes normal time on the top half of the screen and 28x6 time on the bottom half. Throughout the day are helpful labels of when to eat meals, work, and sleep. + +You can swipe right and left to skip ahead and behind an hour at a time for ease of converting your scheduling to normal time. + +The new hour names are as follows: +* 13:00am/13:00 Middle-day Nothingness +* 14:00am/14:00 Forescoreteen, also known as the Lincoln hour. Many take a Lincoln Lunch at this time. +* 13:00pm/27:00 Threeteen +* 14:00pm/28:00 THE VOID + +Benefits of the 28x6 Week include: +* 4 day work week (10 hours a day) instead of 5. +* 18.5 hours of wakeful time, a solid 8.5 hours of free time per day. +* 18 hours inbetween work instead of 16 +* Trouble sleeping? You get to stay up an extra 4 hours every day +* 56 hour weekends beats 48 hour weekends +* No more Tuesdays. + +Made by https://dare.fail diff --git a/apps/twentyeightbysix/app.js b/apps/twentyeightbysix/app.js index 42e63da56..feb1db02d 100644 --- a/apps/twentyeightbysix/app.js +++ b/apps/twentyeightbysix/app.js @@ -12,7 +12,8 @@ const weirdAwakeHours = 19; const weirdSleepHours = 9; const normalDayWidth = HARDWARE_VERSION == 1 ? 24: 28; -const normalWeekDayHeight = 10; +const normalWeekDayHeight = HARDWARE_VERSION == 1 ? 10: 11; +const normalDayBoxHeight = HARDWARE_VERSION == 1 ? 9: 5; const normalSleepDayHeight = 28; const normalAwakeHours = 15; const normalSleepHours = 9; @@ -73,8 +74,8 @@ function normalTo28HourDate(date) { var weirdDate = { "dayText": getWeirdDayName(weirdDayOfTheWeek), "day": weirdDayOfTheWeek, - "hourText": addLeadingZero(hourCount - (weirdDayOfTheWeek * 28)), - "hour": hourCount - (weirdDayOfTheWeek * 28), + "hourText": addLeadingZero(zeroTo28(hourCount - (weirdDayOfTheWeek * 28))), + "hour": zeroTo28(hourCount - (weirdDayOfTheWeek * 28)), "minuteText": addLeadingZero(date.getMinutes()), "minute": date.getMinutes(), "secondText": addLeadingZero(date.getSeconds()), @@ -82,6 +83,13 @@ function normalTo28HourDate(date) { return weirdDate; } +function zeroTo28(hour) { + if (hour == 0) { + return 28; + } + return hour; +} + function getWeirdDayName(weirdDayOfTheWeek) { if(weirdDayOfTheWeek == 0) { return "Monday"; @@ -462,8 +470,8 @@ function getNormalEvent(date) { } function getWeirdEvent(date) { - if (date.hour == 0) { - return "The Void"; + if (date.hour == 28) { + return "THE VOID"; } else if(date.hour == 8) { if(date.minute <= 15) { @@ -525,8 +533,8 @@ function getWeirdHourLabel(hour){ } else if(hour == 27) { return ["", "Threeteen", ""]; - } else if (hour == 0) { - return ["", "The Void", ""]; + } else if (hour == 28) { + return ["", "THE VOID", ""]; } return ["", "", ""]; } @@ -607,7 +615,7 @@ function printTime(thisDate, isShowTime) { function printBackground() { g.setFontAlign(0, 0, 0); g.setColor(backgroundColor); - g.fillRect(0, normalSleepDayHeight + 9, screenWidth, weirdSleepDayHeight - 9); + g.fillRect(0, normalSleepDayHeight + normalDayBoxHeight, screenWidth, weirdSleepDayHeight - 9); g.setColor(mainTextColor); if (HARDWARE_VERSION == 1) { diff --git a/apps/twentyeightbysix/boot.js b/apps/twentyeightbysix/boot.js deleted file mode 100644 index e69de29bb..000000000 diff --git a/apps/twentyeightbysix/metadata.json b/apps/twentyeightbysix/metadata.json index 803301806..86623255b 100644 --- a/apps/twentyeightbysix/metadata.json +++ b/apps/twentyeightbysix/metadata.json @@ -5,10 +5,11 @@ "version":"0.04", "description": "A 28 Hour, 6 Day Week Clock. Lines up with a 24 hour, 7 Day Week Clock every Monday.", "tags": "clock", - "type":"clock", "storage": [ {"name":"twentyeightbysix.app.js","url":"app.js"}, {"name":"twentyeightbysix.img","url":"app-icon.js","evaluate":true} ], - "supports": ["BANGLEJS", "BANGLEJS2"] + "supports": ["BANGLEJS", "BANGLEJS2"], + "screenshots": [{"url":"screenshot.png"},{"url":"screenshot2.png"},{"url":"screenshot3.png"}], + "readme": "README.md" } \ No newline at end of file diff --git a/apps/twentyeightbysix/screenshot.png b/apps/twentyeightbysix/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..3db6257787c181bbbac1cde2d8d43537d49c15bd GIT binary patch literal 5382 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 literal 0 HcmV?d00001 diff --git a/apps/twentyeightbysix/screenshot2.png b/apps/twentyeightbysix/screenshot2.png new file mode 100644 index 0000000000000000000000000000000000000000..27239d32fec633da46d1ba59d5d2b2c08526870c GIT binary patch literal 5533 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