-
Notifications
You must be signed in to change notification settings - Fork 182
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Long-press for capital letters #362
Comments
I'm thinking of implementing this. It should just be a matter of storing the furthest point from the start of a swipe and taking that as a middle point. That wouldn't work if your backswipe went too far, but I think that might be okay? If it isn't, I could check specifically for the first backwards change in magnitude? |
Actually, I think something more robust like gesture detection might be a better idea that trying to do it from scratch. Or, bare minimum, how to define a circular motion in code? |
I'm not sure on the implementation details (I don't know anything about android development), but here's a short video of what my gestures look like on MessageEase: https://github.com/dessalines/thumb-key/assets/43586524/dc1b0f38-864e-46d0-a8b9-88935552e479 |
I think taking the furthest point from the start will work for swipes but I'm not sure how to handle circles in code yet. |
I'm thinking of taking a sample of points and calculating the 1st and 2nd derivative of the angle with respect to time, and reversing that to check rotational continuity. I'll play with a toy example tomorrow and see what I can work out. |
Wait, I missed something obvious. If I only do math at the end, I can get the center from the bounding box and check the radius at each sample. If the radius stays within a certain bound, it's round. That and a few other simpler checks should work. |
In short:
|
I’m very interested by this feature, it’s what I’m missing from MessagEase to migrate. And just to be sure that what you where planning to do matches what messagEase is able to do:
I guess that some input system could use different variants, like
I personally will not need those additional gesture, but I think that it could be nice to at least think of what need to be done to support it and leave a note for future implementer. |
Duplicate of #317? I'm also keen to have this feature, but I had resigned to it never being implemented |
Gonna close this for now, for these reasons:
|
I've seen you mention this stance through a few issues. Have you articulated more in-depth anywhere else your reasoning for being so opposed to gestures and hidden features? it seems to me it's throwing a lot of functionality and ergonomics out with the bathwater, so to speak. (not to mention, auto-caps often fails, as you can see in this message) |
@BlueDrink9 |
As I've mentioned elsewhere, don't hold your breath on that one: I'm doing it on my spare time and I do DevOps, not app dev, so my coding experience is mostly in bash/python/etc. and small "run once and finish the job" stuff. I think it'll take me at least a span of a month (using spare time here and there) to get up to speed with Kotlin and Android app dev, after that I'll be able to implement meaningful change to the codebase. If a more experienced dev wants to help, it'll be more than welcome =) |
This is THE missing feature compared to messagease. I would not even need a proper circle motion just "back-and-forth" and "long press" would do it. |
@asdkant I’m interested to help. Given that my energy is relatively low ATM I cannot guaranty anything, but I would like to try. I’m a dev, but android/kotlin are relatively unknown for me (I’m more of a C++/Rust guy). I tried to find how to build it from source (to eventually test my changes) and install it on my phone without success so far so any link to some docs is welcome. |
Android studio is how I got it to build |
If its a simple long-press, I spose this would be fine. |
I actually started looking into the code and I think a return-press is not too hard to implement (while gestures clearly are a can of worms). It would mean adding a SlideType "RETURN" in the types and then store the first nonnull swipeDirection in the onDrag part of KeyboardKey.kt. Something like: However, we would still need a "longpress" for capitalizing the non-swipe letters. |
in MessageEase the longpress is used to enter digits |
yep, people coming from ME won't be happy. i think being able to define at the keyboard level what long press does would be the better option |
I think the main issue is to avoid having to implement circular motion gestures. Defining these and adding configuration options for them is not straightforward. If we can get "long press" "long swipe" and perhaps even "return swipe", former ME users (like myself) will already be a lot happier. |
could be a setting to specify which layer the long press goes to. Every board has a main, shifted and numeric layer associated with it. A long press should just index the same positions in that layout. |
this projet implement many gestures : |
This is done by #854 |
MessageEase allows to swipe back and forth (or in a circle for the center letter of a key) to type a capital letter. This allows you to type faster, especially in languages that have a lot more capitals than English, where auto-capitalize doesn't help much (for example, German capitalizes every noun).
The text was updated successfully, but these errors were encountered: