-
Nice one, I like this!
Feature suggestions:
- User defined duration for charTimout via settings.
- Swipe left-to-right: 1) cut charTimeout short if active. 2) else input space.
- Swipe right-to-left: Backspace.
- Swipe bottom-to-top: switch caps lock.
- Swipe top-to-bottom: Hide/show bottom row and increase/decrease the height of the rows
- (Possibly also/instead hide widget field to gain more vertical pixels per button?)
- (Possibly also/instead hide widget field to gain more vertical pixels per button?)
- Auto switching letter casing maybe?
What do you think?
I might try and add some of these suggestions :)
Edit:
Here it's updated as per my suggestions on my app loader: Multitap keyboard v0.05. I'd be happy to do a pull request once you've submitted the keyboard to the main repo! (I don't think I can do one into your fork?) I added a setting for disabling swiping as well.EDIT2: I've messed something up, it doesn't exit correctly. I don't really grasp how promises work, and how to make Bangle.on('swipe' ....) stop, after the promise has resolved the text. Here's the code.
- User defined duration for charTimout via settings.
-
Hi @Ganblejs, thanks for your feedback and suggestions! It's great to have someone excited by something you've made!
Going point-by-point:
- User defined duration - we can make it configurable, just wondering why you'd want to change it? Was it too fast, too slow? Is there a better default we should use?
- Swipe - really like this idea, I've been giving it some thought and will fold your code into mine to use left for space, right for backspace, up/down for caps lock. Hiding the bottom row is a good idea, and with most of the bottom row functions replaced by swipes we can permanently remove it and have bigger buttons, which will help a lot!
It's come up in these forums before that swipes without an indicator that you can swipe could mean people don't know the option is there, but we can list it in the description, and maybe put a help message up when the text is tapped? - Auto switching letter case - this could make it hard to type in all caps, so I'll leave this as it is for now.
- promises - I can't help there, I don't know either! It was basically trial and (lots of) error getting this far. As far as I know though, when we call the back function which includes
Bangle.setUI();
, that should clear any custom interface code. I'll have a look though and see what I can find out.
- User defined duration - we can make it configurable, just wondering why you'd want to change it? Was it too fast, too slow? Is there a better default we should use?
-
@Ganblejs, I've made some progress with the swipe issues, turns out you need to
Bangle.removeListener("swipe", onSwipe);
on exit, then it works fine.I'm having the opposite problem with the help screen though, tap the text to open the help screen, press ok to go back, and all the buttons in the layout stop responding. I'll look into this as I've had the problem before in my timer app, and fudged it with a custom onTouch, but it looks like we need a proper solution.
I'll add your setting for duration in later, for now shortened to 500ms, any less for me and I can't press the buttons quickly (and accurately) enough. Shows why a setting is a good idea!
(EDIT: tried to download a screenshot, came as a .dib format, attached to the message fine, but no preview image. Tried to remove and replace with a converted PNG version, error)
It's ready, if anyone wants to try it out: https://sir-indy.github.io/BangleApps/?id=kbmulti
You'll also need to install Noteify to be able to use it.
I'm probably going to tweak it some more, try a few different fonts on the buttons to see what looks clearest.
Any feedback please let me know, I've found that with just a little practice I'm now quite accurate and quick with it.