Description
On the iPhone of my wife the Riot client gets in a strange state with the keyboard. In this state, the emoji keyboard can't be selected anymore.
There are two keyboards configured, the German QWERTZ keyboard and the Emoji keyboard. So there is a simple switch button in IOS in this configuration. In the broken state, whenever the Emoji keyboard should be selected by the "Emoji" keyboard switch button, it shows the Emojis very short and immetiately jumps back to the letter keyboard. This issue can only be solved by shutting down the Riot app (by "shifting" it to the top in the task switcher) and restarting it - until it happens again.
We still try to reproduce how to get into that state, because I'm also doing some software and I know how hard it is to find a bug without concrete steps how to reproduce the issue. As for now I can't tell exactly how the App gets into that state. Facts are:
- She's dictating 95%, it might be related to the use of dictation
- No other Apps (iMessage, WhatsApp, Facebook Messenger, Mattermost) are suffering from that bug with the same way of working - only Riot. That lets me think about an App bug instead an IOS issue. Also just a restart of Riot solves it (temporary), a restart of the iPhone is not needed.
- Device is an iPhone 8 Plus, IOS 11.4.1
We will continue to investigate how to reproduce getting into the buggy state as it's really annoying - and update this ticket as we have new findings. But I decided to file the issue yet, maybe a dev has an idea what could cause the unwanted keyboard backswitching.
Activity
jacotec commentedon Aug 8, 2018
OK, we did several tests and we can't reproduce it on my iPhone. On my wife's it happens every 3 minutes latest that the Emoji's are rendered unusable.
I think I found a hint why this does not happen on all the other chat apps, email etc:
When I send Emoji's in Riot, Riot switches the keyboard actively back to letters after I hit the "Send" button! Any other app does nothing with the keyboard and leaves it as it is.
I'm pretty sure that "switching to text" thing is responsible for the bug. All other apps which do not actively influence the selected keyboard are working fine.
Is there a way to deactivate the "backswitching"? I guess it'll fix the problem.
SBiOSoftWhare commentedon Aug 21, 2018
Hi @jacotec, thank you for the issue investigation. We can't reproduce your wife's problem but we are aware of keyboard type switch after sending a message. We have decided to remove this "backswitching" behavior as explained here matrix-org/matrix-ios-kit#464.
jacotec commentedon Aug 21, 2018
@SBiOSoftWhare Thank you for the fast fix! I'll retest it ASAP once the next TestFlight release will be available (I guess it will be in there?)
I can't reproduce it on my iPhone (same type, same IOS, same keyboards) as well. But on her iPhone it appears always a few minutes after starting the app and then happens everytime. Also a complete removal and reinstallation of the app did not help.
SBiOSoftWhare commentedon Aug 21, 2018
You're welcome ! Yes it will be available in the next TestFlight release.
Really annoying issue, does it break the Emoji keyboard only in Riot or also for other apps ?
As you said there is only Apple Emoji and German keyboard configured, there is no custom keyboard added ?
jacotec commentedon Aug 21, 2018
@SBiOSoftWhare No, Riot is really the only app where this happens on her phone. All other apps are working perfectly in that manner.
This iPhone never saw any custom keyboards ... only the German QWERTZ and the Emoji keyboard. Sometimes she can "trick" it out by holding the "Emoji" keyboard until the selector appears, then choosing "Emoji" here. In most cases the Emoji keyboard stays then if it's switched that way ... but in daily use that's too complicated. For the most used Emojis she's developed a "technique", trying to identify and push the wanted Emoji within the <1s the keyboard is visible ... but she really gets pi***d by this.
So she'll be more than happy once this is fixed :-)
SBiOSoftWhare commentedon Aug 21, 2018
Thank you for your answer.
I agree this could not be a solution for daily use.
Keep us informed if the next TestFlight release solve this issue and make your wife happy 🙂
jacotec commentedon Aug 25, 2018
@SBiOSoftWhare Unfortunately the TF version 0.7.2(163) still does not solve the issue. The automatic switching back to letters when the message is sent is gone as expected, but the issue is still there.
See attached video.
Can I help somehow with debugging/logging?
IMG_4523.MOV.zip
SBiOSoftWhare commentedon Aug 26, 2018
Thank you for your feedback and this video.
Now keyboard is not reseted when you send a message. For example if you send an Emoji the keyboard stay on Emoji keyboard. Sad to see that is not fix your issue.
Unfortunately I could not reproduce the issue with TestFlight release 0.7.2(163) on iPhone 5S and an iPad Air (both with iOS 11.4.1).
Could you please make this happen 3/4 times and send a rageshake ? I will check if there is any possible clue in logs.
jacotec commentedon Aug 26, 2018
Hi @SBiOSoftWhare
RageShake sent. I discovered a kind of a pattern:
When the last char of a message is an Emoji (independent of the state of the keyboard while sending), it immediately happens right after that. If the last char is a letter, the very next keyboard switch stays stable.
That brought me to the next test: Keyboard is in the "flipping back" state. I type one letter or a whitespace (something from the "letter" keyboard) and I can switch to Emojis and it stays stable. Once I switch back to letters and again back to Emojis (without typing any more characters) it flips back again.
So for one switch after a typing something from the letter keyboard the Emoji keyboard stays stable.
It appears there is something going on (in the background of Riot?) while the focus is on the text input field which does not happen or is not done in any other app.
I've got the same problem with the reproducibility - I can't get into that state on my iPhone. Hopefully the logs will help. If not, let me know how to dive deeper into it.
I've taken a video here (will be deleted after 8 days): https://jaycloud.de/f/29b7c0c0196a44668cb2/?dl=1
8 remaining items