Better exception handling and logging
Opened this issue · 1 comments
As mentioned in the offline reported by @ijsun, the current keyboard will fail silently after using it for a while.
When encountered this issue, a simple Clear All
to close all apps can reliably fix the issue by resetting the keyboard. Unfortunately, the steps to reproduce this issue is remained unknown. (not sure if it's due to unreliable internet connection)
This kind of nondeterministic silent failure is difficult to debug. Therefore, we should somehow add a logging mechanism that can report all kinds of silent exceptions and maybe save it in a second page of the keyboard settings app, allowing the user to go through it for debugging purposes. (It's better to allow debugging directly on user's phone without the need of using adb
or other external PC tools)
Potentially related:
- https://source.android.com/docs/core/tests/debug/understanding-logging
- https://developer.android.com/studio/debug/logcat
- https://stackoverflow.com/q/11986247
2023/12/02 Update: Clearing the cache in the app settings page can also fix the issue by resetting the keyboard.
Without thinking too much, I guess this issue may be related to the Exception thrown here:
The exception may cause the onStartTranscription
to fail and make the WhisperInputService
requiring a reset to work again:
A potential solution is to not throw an exception, but display a Toast message instead. This is just my random guess though...
Another observation by @ijsun is that the amplitude feature still works when the issue occurs.