sspanak / tt9

A T9 keyboard for Android devices with a hardware keypad.
Apache License 2.0
235 stars 39 forks source link

Message button not working from dialer #306

Open lgexalter opened 1 year ago

lgexalter commented 1 year ago

On the TCL Flip 2 there is an option in the dialer to send a message to a dialed number by clicking the soft left key. On the latest release of tt9 nothing happens when pressing the soft left key. The function only works when first pressing options (soft right key) then back, then afterwards pressing soft left for message.

sspanak commented 1 year ago

This could be related to #241.

sspanak commented 1 year ago

@lgexalter, could you please clarify what the soft right key does? I assume it opens up some context menu, which takes away the focus from the phone number field. Or does it do something else? My guess is the "send message" button is not working when the field is focused and you can keep typing.

lgexalter commented 1 year ago

@sspanak Yes the soft right key opens up an options menu. The question is why that key would work while the soft left/"message" key does not

sspanak commented 1 year ago

Um, I thought this your "OK" or some other confirmation key or maybe it isn't?

If it is "OK", there are some issues with it at the moment, but they seem to have been fixed by Alex in #309.

lgexalter commented 1 year ago

@sspanak did not understand your last comment

sspanak commented 1 year ago

I thought the left key on your phone plays the role of an OK or ENTER key, call it whatever you want. We discovered a bug with how this key is handled, so that may be the reason you are not able to send messages.

It is also possible for this to be a SOFT_LEFT key (as per the documentation), but the dialer app could be remapping it virtually to ENTER. Android permits that, too. In this case, you would have the same problem.

And if it is a true SOFT_LEFT, well... no idea...

Have you assigned any special functionality to it in Settings -> Keypad -> Hotkeys? This would also prevent the key from doing its default action.

lgexalter commented 1 year ago

No, there is a separate OK/ENTER key and the SOFT_LEFT does not have any hotkey function. ~Pretty sure this issue was not present in older versions of tt9 (before #225 was fixed) the but I will double check that.~ The issue was also present in older versions.

sspanak commented 1 year ago

@lgexalter, you may want to try the new v25.0. I fixed several cases of incorrect handling of key press and release events, that prevented some keys from working in various scenarios. If you have time, please let me know if the update fixes your problem, too.

sspanak commented 1 year ago

Then I have no idea how to fix it. Sorry!

If anyone with a TCL Flip 2 is willing to debug this, you could try looking into the KeyPadHandler class. Find onKeyDown() and onKeyUp() and see what exactly they are doing. In order for the button to work properly, they must either return false or call the respective super method, but they are probably doing something else. Please, post the results here and hopefully, we will find a solution.

sspanak commented 5 months ago

@lgexalter, I think I've found the reason why this is happening. It is most likely the same as #300. It's just that the dialer is not detected properly, causing TT9 to run in the wrong mode and mishandle the Message key.

If you are willing to help, could you please follow the instructions in this post? I need the Device Info and the package name of the dialer.

Now, on the TCL Flip 2, it may be a bit tricky to copy the logs, because it probably does not have any messaging or notes app, where you can paste and review them, and you can't scroll to the end, where they are displayed in TT9, without a touch screen. If you can't figure it out, in the next version, I'll add a button to export the logs to a file, without any hassle.

lgexalter commented 5 months ago

@sspanak Device Info: "TCL" "T408DL" Dialer package name is com.android.dialer For some reason my phone says No Logs. Was I supposed to turn on System Logs?

sspanak commented 5 months ago

For some reason my phone says No Logs. Was I supposed to turn on System Logs?

No, no, you will get a lot of spam this way. Well, I have a phone that does this occasionally, but it starts displaying the logs after restarting. Or, maybe this log level is restricted on your phone, no idea. For example, I can see verbose logs on only one of my devices. And, my tablet displays only errors.

Out of curiosity, how did you get the package name when there were no logs? Did you read logcat yourself?

And final question, when you are dialing a number, is the TT9 status bar visible? I mean, do you see this: image ?

lgexalter commented 5 months ago

Out of curiosity, how did you get the package name when there were no logs? Did you read logcat yourself?

I happen to have known the package name. Double checked with pm list packages dialer.

And final question, when you are dialing a number, is the TT9 status bar visible? I mean, do you see this: image ?

No I do not

sspanak commented 5 months ago

No I do not

This is not so good. I thought the problem is the same as #300 - incorrectly detected dialer, but if you don't see the status bar, it may be something else. Nevertheless, I have attempted to fix what I think is wrong. If you are up for an early beta test, here is v30.10.

lgexalter commented 5 months ago

Sorry for the delay. Just tested v30.10 and the problem is not fixed

sspanak commented 5 months ago

My approach may be wrong, then. Just to confirm, could you please go again to the debugging screen, change the Keypad Handling Mode to "return false" or "super" and then go back to check if the message button has started working?

By changing the mode, you will be able to type only numbers, so don't forget to restore to "normal" after testing.

Btw, the official v31.0 is out, so you can go ahead and try it too.