diff --git a/apps.json b/apps.json index 381c96d69..4fbc1a779 100644 --- a/apps.json +++ b/apps.json @@ -2753,6 +2753,18 @@ {"name":"oblique.app.js","url":"app.js"}, {"name":"oblique.img","url":"app-icon.js","evaluate":true} ] +}, +{ "id": "testuserinput", + "name": "Test User Input", + "shortName":"Test User Input", + "icon": "app.png", + "version":"0.02", + "description": "Basic app to test the bangle.js input interface. It displays the result in text or a switch on/off image.", + "tags": "input,interface,buttons,touch", + "storage": [ + {"name":"testuserinput.app.js","url":"app.js"}, + {"name":"testuserinput.img","url":"app-icon.js","evaluate":true} + ] } ] diff --git a/apps/testuserinput/ChangeLog b/apps/testuserinput/ChangeLog new file mode 100644 index 000000000..8e379def2 --- /dev/null +++ b/apps/testuserinput/ChangeLog @@ -0,0 +1,2 @@ +0.01: New App! +0.02: Tweaks for app loader diff --git a/apps/testuserinput/Changelog b/apps/testuserinput/Changelog new file mode 100644 index 000000000..84f50a78b --- /dev/null +++ b/apps/testuserinput/Changelog @@ -0,0 +1 @@ +0.02: app to test the bangle.js Input interface \ No newline at end of file diff --git a/apps/testuserinput/README.md b/apps/testuserinput/README.md new file mode 100644 index 000000000..5fc5f3864 --- /dev/null +++ b/apps/testuserinput/README.md @@ -0,0 +1,40 @@ +# Test User Input + +This very basic app, allows to *test the bangle.js input interface*, and displays the result in text or a switch on/off image. + + +Launcher icon +![](testUserInput_ss0.png) +1st screen - Help/Intro +![](testUserInput_ss1.png) +2nd screen - interface and a result +![](testUserInput_ss2.png) +3rd screen - interface and a result +![](testUserInput_ss3.png) + + +## Usage + +Open and see a "help" screen +Interact with buttons or touch screen to print the event or leave the app + +## Features + +Colours, font, user input, image, load widgets + + +## Controls +Press left area - Prints Touch1 +Press righ area - Prints Touch2 +Press center area - Prints Touch3 +Swipe Left - Displays Switch OFF image +Swipe Right - Displays Switch ON image +BTN1 - Prints Button1 +BTN2 - Prints Button2 +BTN3 - Quit to Launcher + + +## Support + +This app is so basic that probably the easiest is to just edit the code +Otherwise you can contact me [here](https://github.com/dapgo) \ No newline at end of file diff --git a/apps/testuserinput/app-icon.js b/apps/testuserinput/app-icon.js new file mode 100644 index 000000000..a84863bf0 --- /dev/null +++ b/apps/testuserinput/app-icon.js @@ -0,0 +1 @@ +E.toArrayBuffer(atob("MDDCAP//Bv7m/RF8AAAAAAAAAAAAAAAAAAAAAP/AAAAAAAAAAAAAD//8AAAAAAAAAAAAP///AAAAAAAAAAAA////wAAAAAAAAAAA////wAAAAAAAAAAD/9X/8AAAAAAAAAAD/1V/8AAAAAAAAAAD/1V/8AAAAAAAAAAD/1V/8AAAAAAAAAAD/1V/8AAAAAAAAAAA/1V/wAAAAAAAAAAA/1V/wAAAAAAAAAAAP1V/AAAAAAAAAAAAD1V8AAAAAAAAAAAAAFVAAAAAAAAAAAAAAFVAAAAAAAAAAAAAAFVAAAAAAAAAAAAAAFVAAAAAAAAAAAAAAFVlQAAAAAAAAAAAAFVlVVQAAAAAAAAAAFVVVVVUAAAAAAAAAFVVVVVVQAAAAAAAAFVVVVVVQAAAAFYAAFVVVVVVUAAAAFWAAFVVVVVVUAAAAFVgAFVVVVVVUAAAAFVaAlVVVVVVUAAAABVWqlVVVVVVUAAAAAVVqlVVVVVVUAAAAAFValVVVVVVYAAAAABVWlVVVVVVoAAAAAAVVlVVVVVWoAAAAAAFVVVVVVVaoAAAAAAFVVVVVVVqoAAAAAABVVVVVVWqoAAAAAAAVVVVVVqqoAAAAAAAFVVVVWqqoAAAAAAABVVVVaqqoAAAAAAAAVVVVqqqgAAAAAAAAFVVWqqqgAAAAAAAABVVaqqqAAAAAAAAAAFVqqqgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")) diff --git a/apps/testuserinput/app.js b/apps/testuserinput/app.js new file mode 100644 index 000000000..8887a3149 --- /dev/null +++ b/apps/testuserinput/app.js @@ -0,0 +1,135 @@ +/* Test bangle.js input interface */ + var colbackg='#111111'; + //var coldarkred='#CC3333'; + var colorange='#e56e06'; + var colgrey='#f3f3f1'; //'#51504f'; //lighter gray + var v_font1size='16'; + var v_clicks='0'; + console.log("*** Test input interface ***"); + + function ClearActiveArea(){ + g.setColor(colbackg); + g.fillRect(0,32,239,239); //fill all screen except widget area + g.flip(); +} +function ClearBannerArea(){ + g.setColor(colgrey); + g.fillRect(50,32,190,85); //fill an specific area + g.flip(); +} + +function PrintUserInput(boton){ + console.log("Pressed touch/BTN",boton); + if (v_clicks=='0') PrintAreas(); + ClearBannerArea(); + + if (boton==' <---') { + var img_off = { + width : 48, height : 48, bpp : 2, + transparent : 0, + palette : new Uint16Array([65535,63968,40283,50781]), + buffer : E.toArrayBuffer(atob("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//AAAAAAAAAAAAA///9VVVVVVVQAAAD/qq/1VVVVVVVAAAP6qqv9VVVVVVVUAA/qqqv/VVVVVVVVAD+qqq//1VVVVVVVQP6qqq//1VVVVVVVQPqqqr//9VVVVVVVUvqqqr//9VVVVVVVU+qqqv/+uVVVVVVVV+qqqv+quVVVVVVVV+qqq+qqvVVVVVVVV+qqvqqqvVVVVVVVV+qv+qqquVVVVVVVV+r/+qqquVVVVVVVVv//6qqq9VVVVVVVUP//6qqq9VVVVVVVUP//qqqr1VVVVVVVQD//qqqv1VVVVVVVQA/+qqq/VVVVVVVVAAP+qqr9VVVVVVVUAAD/qq/1VVVVVVVAAAA///9VVVVVVVQAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")) + }; + g.drawImage(img_off,90,35); + } + else if (boton==' --->') { + var img_on = { + width : 48, height : 48, bpp : 2, + transparent : 0, + palette : new Uint16Array([65535,36361,27879,40283]), + buffer : E.toArrayBuffer(atob("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//AAAAABVVVVVqqf///AAAAVVVVVWqn////wAAFVVVVVWqf////8AAVVVVVVap//////ABVVVVVVqr//////wBVVVVVVqn//////8FVVVVVVqv//////8FVVVVVWqf///////VVVVVVWq////////VVVVVVWq////////VVVVVVWq////////VVVVVVWq////////VVVVVVWq////////VVVVVVWq////////FVVVVVWqf///////FVVVVVVqv//////8BVVVVVVqn//////8BVVVVVVar//////wAVVVVVVap//////AAFVVVVVWqf////8AAAVVVVVWqn////wAAABVVVVVqqf///AAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")) + }; + g.drawImage(img_on,90,35); + } + else + { //no swipe /slide + g.setColor(colorange); + g.setFontVector(32).drawString(boton, 60, 65); + } + g.flip(); + v_clicks++; +} +function PrintBtn1(boton){ + console.log("Pressed BTN1"); + if (v_clicks=='0') PrintAreas(); + PrintUserInput("Button1"); + v_clicks++; +} + +function PrintBtn2(boton){ + console.log("Pressed BTN2"); + if (v_clicks=='0') PrintAreas(); + PrintUserInput("Button2"); + v_clicks++; +} + +function PrintHelp(){ + console.log("********************************"); + console.log("Log: *** Print help in screen"); + ClearActiveArea(); + g.setColor(0,1,0); //green + g.setFontVector(v_font1size).drawString("To test the input, try :", 30, 90); + g.setFontVector(v_font1size).drawString("Swipe right -->", 30, 115); + g.setFontVector(v_font1size).drawString("Swipe left <--", 30, 130); + g.setFontVector(v_font1size).drawString("Click Left area", 30, 145); + g.setFontVector(v_font1size).drawString("Click Right area", 30,160); + g.setFontVector(v_font1size).drawString("Click Middle area", 30,175); + g.setFontVector(v_font1size).drawString("Press Button1 ", 30,190); + g.setFontVector(v_font1size).drawString("Press Button2 ", 30,205); + g.setFontVector(v_font1size).drawString("Press Button3 to Quit", 30,220); + g.flip(); +} + +function PrintAreas(){ + console.log("********************************"); + console.log("Log: *** Print Areas in screen"); + ClearActiveArea(); + g.setColor(0,1,0); //green + g.drawLine(1, 140, 1, 200);//side border + g.drawLine(239, 140, 239, 200);//side border + g.drawLine(120, 140, 120, 200);//middle of areas + g.setFontVector(v_font1size).drawString("BTN1", 195,45); + g.setFontVector(v_font1size).drawString("BTN2", 195,125); + g.setFontVector(v_font1size).drawString("Quit<--", 130,225); + g.setFontVector(v_font1size).drawString("BTN3", 195,225); + g.setFontVector(v_font1size).drawString("Middle area", 80,120); + g.setFontVector(v_font1size).drawString("Left area", 15, 165); + g.setFontVector(v_font1size).drawString("Right area", 140,165); + g.flip(); +} + +function UserInput(){ + Bangle.on('touch', function(button){ + switch(button){ + case 1: + PrintUserInput("Touch 1");//left + break; + case 2: + PrintUserInput("Touch 2");//right + break; + case 3: + PrintUserInput("Touch 3");//center 1+2 + break; + } + }); + //only the name of the function + setWatch(PrintBtn1, BTN1, { repeat: true }); + setWatch(PrintBtn2, BTN2, { repeat: true }); + setWatch(Bangle.showLauncher, BTN3, { repeat: true }); + Bangle.on('swipe', dir => { + if(dir == 1) PrintUserInput(" --->"); + else PrintUserInput(" <---"); + }); + console.log("Log: Input conditions loaded"); +} //end of UserInput + +//Main code + Bangle.loadWidgets(); + Bangle.drawWidgets(); + //optional line below widgets area + g.setColor(0,1,0); //green + g.drawLine(60, 30, 180, 30); + g.flip(); + //end optional + PrintHelp(); + UserInput(); \ No newline at end of file diff --git a/apps/testuserinput/app.png b/apps/testuserinput/app.png new file mode 100644 index 000000000..c7ad0f43f Binary files /dev/null and b/apps/testuserinput/app.png differ diff --git a/apps/testuserinput/testUserInput_ss0.png b/apps/testuserinput/testUserInput_ss0.png new file mode 100644 index 000000000..f0c1a2cec Binary files /dev/null and b/apps/testuserinput/testUserInput_ss0.png differ diff --git a/apps/testuserinput/testUserInput_ss1.png b/apps/testuserinput/testUserInput_ss1.png new file mode 100644 index 000000000..45f634b47 Binary files /dev/null and b/apps/testuserinput/testUserInput_ss1.png differ diff --git a/apps/testuserinput/testUserInput_ss2.png b/apps/testuserinput/testUserInput_ss2.png new file mode 100644 index 000000000..ba680a366 Binary files /dev/null and b/apps/testuserinput/testUserInput_ss2.png differ diff --git a/apps/testuserinput/testUserInput_ss3.png b/apps/testuserinput/testUserInput_ss3.png new file mode 100644 index 000000000..8c0765911 Binary files /dev/null and b/apps/testuserinput/testUserInput_ss3.png differ diff --git a/apps/testuserinput/test_userInput.img b/apps/testuserinput/test_userInput.img new file mode 100644 index 000000000..173f74796 --- /dev/null +++ b/apps/testuserinput/test_userInput.img @@ -0,0 +1 @@ +00ˆþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþ]]]]]þþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþ]]]]]]]]]þþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþWWˆ¬¬¬ˆWWþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþWW¬³××׳¬WWþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþW]¬×׬¬¬×׬]WþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþVVˆ³×¬ÎÍά׳ˆVVþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþVV¬×¬ÎÏÖÏά׬VVþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþVV¬×¬ÍÖÖÖͬ׬VVþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþVV¬×¬ÍÏÖÎͬ׬VVþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþVV‚³¬ÍÍÍÍͬ³‚VVþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþVV¬¬ÍÍÍÍͬ¬VVþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþVV]¬ÍÍÍÍͬ]VVþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþVVVÍÍÍÍÍVVVþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþV2ÍÍÍÍÍ2VþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÍÍÍÍÍþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÍÍÍÍÍþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÍÍÍÍÍþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÍÍÍÍÍþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÍÍÍÍÍ¢ÍÍÍþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÍÍÍÍÍÇÍÍÍÍÍÍÍÍÍþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍþþþþþþþþþþþþþþþþþþþþþþþþþþþÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍþþþþþþþþþþþþþþþÍÍÍÍþþþþþþþþÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍþþþþþþþþþþþþþþÍÍÍÍÍþþþþþþþÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍþþþþþþþþþþþþþþÍÍÍÍÍÍþþþþþþÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍþþþþþþþþþþþþþþÍÍÍÍÍÍÍÍþþþ¢ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍþþþþþþþþþþþþþþþÍÍÍÍÍÍÍÍÇ££ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍþþþþþþþþþþþþþþþþÍÍÍÍÍÍÍÍÇ£ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍþþþþþþþþþþþþþþþþþÍÍÍÍÍÍÍÍÇÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍþþþþþþþþþþþþþþþþþþÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍþþþþþþþþþþþþþþþþþþþÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍþþþþþþþþþþþþþþþþþþþþÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍþþþþþþþþþþþþþþþþþþþþÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍþþþþþþþþþþþþþþþþþþþþþÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍþþþþþþþþþþþþþþþþþþþþþþÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍþþþþþþþþþþþþþþþþþþþþþþþÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍþþþþþþþþþþþþþþþþþþþþþþþþÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍþþþþþþþþþþþþþþþþþþþþþþþþþÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍþþþþþþþþþþþþþþþþþþþþþþþþþþþÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍþþþþþþþþþþþþþþþþþþþþþþþþþþþþÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþ \ No newline at end of file