Skip to content
This repository has been archived by the owner on Jun 14, 2022. It is now read-only.

It is no longer possible to use the "Magikeyboard" from KeePassDX to fill the password #866

Open
wtimme opened this issue Jun 27, 2021 · 2 comments · May be fixed by #893
Open

It is no longer possible to use the "Magikeyboard" from KeePassDX to fill the password #866

wtimme opened this issue Jun 27, 2021 · 2 comments · May be fixed by #893
Assignees
Labels
Milestone

Comments

@wtimme
Copy link

wtimme commented Jun 27, 2021

General information

  • App version: 0.9.0.1
  • App source: F-Droid
  • Android Version: 11
  • Custom ROM: GrapheneOS

Expected result

What is expected?
andOTP should fill in of the password from KeePassDX.

What does happen instead?
When tapping the password button on the "Magikeyboard" (the one with the three ***), the screen goes black for a second, only to return to andOTP's password screen. When tapping the password button again, andOTP is closed.

I am required to manually copy the password from within KeePassDX and cannot use "Magikeyboard". This used to work up until three or four weeks ago.

Logcat

06-26 21:38:54.440 14721 14721 E AndroidRuntime: FATAL EXCEPTION: main
06-26 21:38:54.440 14721 14721 E AndroidRuntime: Process: org.shadowice.flocke.andotp, PID: 14721
06-26 21:38:54.440 14721 14721 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.KeyEvent.getAction()' on a null object reference
06-26 21:38:54.440 14721 14721 E AndroidRuntime: 	at org.shadowice.flocke.andotp.Utilities.EditorActionHelper.isActionDoneOrKeyboardEnter(EditorActionHelper.java:17)
06-26 21:38:54.440 14721 14721 E AndroidRuntime: 	at org.shadowice.flocke.andotp.Activities.AuthenticateActivity.onEditorAction(AuthenticateActivity.java:191)
06-26 21:38:54.440 14721 14721 E AndroidRuntime: 	at android.widget.TextView.onEditorAction(TextView.java:7075)
06-26 21:38:54.440 14721 14721 E AndroidRuntime: 	at com.android.internal.widget.EditableInputConnection.performEditorAction(EditableInputConnection.java:138)
06-26 21:38:54.440 14721 14721 E AndroidRuntime: 	at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:363)
06-26 21:38:54.440 14721 14721 E AndroidRuntime: 	at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:93)
06-26 21:38:54.440 14721 14721 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:106)
06-26 21:38:54.440 14721 14721 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:223)
06-26 21:38:54.440 14721 14721 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:7664)
06-26 21:38:54.440 14721 14721 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
06-26 21:38:54.440 14721 14721 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
06-26 21:38:54.440 14721 14721 E AndroidRuntime: 	at com.android.internal.os.ExecInit.main(ExecInit.java:48)
06-26 21:38:54.440 14721 14721 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
06-26 21:38:54.440 14721 14721 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:399)

Steps to reproduce

First, make sure that andOTP is protected by a password. Save that password in KeePassDX.

  1. Open andOTP
  2. Switch the keyboard to the "Magikeyboard" for KeePassDX
  3. On the "Magikeyboard", tap the button with the key. You are taken to KeePassDX.
  4. In KeePassDX, select the entry that contains your password for andOTP. You are taken back to andOTP.
  5. Back in andOTP, on the "Magikeyboard", tap the button with the three *** to input the password from KeePassDX.
@flocke flocke added this to the v0.9.1 milestone Jun 27, 2021
@flocke flocke added bug and removed new issue labels Jun 27, 2021
@zoah
Copy link

zoah commented Sep 2, 2021

Hi ! I am pretty sure you already saw this but KeePassDX keyboard seems to send IME_ACTION_GO.
Thanks !

wtimme added a commit to wtimme/andOTP that referenced this issue Oct 11, 2021
When entering the password using the Magikeyboard from KeePassDX,
the `event` was `null`, which resulted in the app crashing.
@wtimme
Copy link
Author

wtimme commented Oct 11, 2021

I debugged the andOTP's behaviour, and the reason for the crash seems to be that in EditorActionHelper.isActionDoneOrKeyboardEnter(), the parameter event was null when filling the password using the Magikeyboard. Checking for null before accessing the parameter seems to have fixed it.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants