Kunzisoft / KeePassDX

Lightweight vault and password manager for Android, KeePassDX allows editing encrypted data in a single file in KeePass format and fill in the forms in a secure way.
https://www.keepassdx.com/
GNU General Public License v3.0
4.49k stars 266 forks source link

Magikeyboard "Clear at closing" + "Entry selection" causes app to lock while in use #1075

Closed chenxiaolong closed 3 years ago

chenxiaolong commented 3 years ago

Describe the bug

In the Magikeyboard settings, when the "Clear at closing" and "Entry selection" options are enabled, the app will lock 30 seconds after opening an entry (when the magikeyboard notification disappears).

To Reproduce Steps to reproduce the behavior:

  1. Go to Magikeyboard settings and enable "Clear at closing" and "Entry selection"
  2. Unlock a database
  3. Tap on any entry
  4. The database locks after 30 seconds (magikeyboard timeout)

Expected behavior

It took a while for me to figure out why the app was locking while it was in use. Tapping the screen does not extend the timer.

I think it could potentially be a bit more user friendly with one of these options?

KeePass Database

KeePassDX (please complete the following information):

Android (please complete the following information):

J-Jamet commented 3 years ago

This is not a bug, it is the normal operation of these options when enabled.

If the expected behavior is to understand the operation, perhaps the setting description should simply be rephrased.

Change Magikeyboard entry selection to happen when app moves to the background instead of when an entry is opened Change Magikeyboard timer to not begin while the app is in the foreground

Background and foreground has nothing to do with filling the keyboard with an entry. Disable the setting "Settings - Magikeyboard settings - Entry selection" if you don't want the Magikeyboard to be populated automatically with the entry you are viewing.

chenxiaolong commented 3 years ago

Thanks for the quick reply!

If the expected behavior is to understand the operation, perhaps the setting description should simply be rephrased.

That seems reasonable to me if the current behavior is intended.

if you don't want the Magikeyboard to be populated automatically with the entry you are viewing.

For my use case, I was expecting Magikeyboard to be populated with the entry I was viewing, but I didn't expect that the main app would be locked as a side effect of the Magikeyboard timeout while I was still in the app. (As an example of my use case, from the main app, I opened the entry I wanted to be populated in the keyboard, but spent a little too long reading the notes section.)

J-Jamet commented 3 years ago

That seems reasonable to me if the current behavior is intended.

Since you didn't understand the sentences, what proposal would you make?

For my use case, I was expecting Magikeyboard to be populated with the entry I was viewing, but I didn't expect that the main app would be locked as a side effect of the Magikeyboard timeout while I was still in the app. (As an example of my use case, from the main app, I opened the entry I wanted to be populated in the keyboard, but spent a little too long reading the notes section.)

In this case, why do you activate the Magikeyboard timeout?

chenxiaolong commented 3 years ago

In this case, why do you activate the Magikeyboard timeout?

That's a very good point I didn't consider. I can just rely the main app timeout.

I though about the setting descriptions a bit and I can't think of a good way to reword it while keeping it brief. Would you consider adding a small section to the FAQ wiki page instead? Maybe something like:

Q: Why did the app lock before the timeout duration has elapsed? A: If Settings → Form filling → Magikeyboard settings → Entry selection and Settings → Form filling → Magikeyboard settings → Timeout are both enabled, the opening an entry will load it into magikeyboard and begin the magikeyboard timeout for clearing the entry. Once the magikeyboard timeout has elapsed, the database will be locked, which may happen sooner than the main app timeout set in Settings -> App settings -> Timeout.

J-Jamet commented 3 years ago

Done : https://github.com/Kunzisoft/KeePassDX/wiki/FAQ#why-did-the-app-lock-before-the-timeout-duration-has-elapsed