Previously, the dark background colors would not be applied for this
combination of settings.
Unfortunately, I couldn't find a way to avoid some duplication in
themes.xml.
I set CompactDividerDecoration to transparant, because that was already
effectively the case. I think we can remove this class entirely, but
I'll do that in a separate PR.
In rare cases where writing to disk fails after the intro, a crash could
occur if the user presses "Done" again. VaultManager would have been
initialized, and trying to initialize it again would result in a crash.
This fixes an issue where the entry list items no longer animated upon
move, insert, delete, etc.
RecyclerView's DefaultItemAnimator automatically scales the animations
according to the user's settings.
Introduced in 9ff8efab69
This should fix the following crash:
```
Exception java.lang.IndexOutOfBoundsException: setSpan (-1 ... 0) starts before 0
at android.text.SpannableStringInternal.checkRange (SpannableStringInternal.java:499)
at android.text.SpannableStringInternal.setSpan (SpannableStringInternal.java:199)
at android.text.SpannableStringInternal.setSpan (SpannableStringInternal.java:186)
at android.text.SpannableString.setSpan (SpannableString.java:60)
at com.beemdevelopment.aegis.ui.views.EntryAdapter$FooterView.refresh (EntryAdapter.java:596)
```
This trades performance for making VaultManager a bit easier to reason
about.
This also fixes a rare crash that could occur if the user retries to unlock
the app after the previous attempt resulted in an error related to
parsing the vault. The vault file would no longer be present in memory
after the first attempt, causing the second attempt to crash the app.
Here some changes to the vault documentation are made. The documentation
is updated to reflect the latest versions of both the vault and the
database, i.e. vault version 1 and database version 3.
Co-authored-by: Alexander Bakker <ab@alexbakker.me>
Icon packs may have very generic issuers for their icons (like [aegis-simple-icons](https://github.com/alexbakker/aegis-simple-icons)).
For example, this causes the icon assigning view to suggest the "C" icon for every
entry that contains a "c".
This patch addresses that by giving inverse matches (where the entry
issuer contains the icon issuer) a lower position in the suggested icons
list.
This is mostly a cleanup of the way we do Glide in-memory caching. It
also fixes a few minor issues along the way:
- Entry icon cache keys were based on entry UUID's. This could cause
problems when changing an entry's icon.
- A TextDrawable could get replaced by the icon of a different entry
when scrolling through the entry list quickly.
Some people have managed to snatch the OTP details from Steam using
Xposed while it is being decrypted by the app. Aegis still won't be
able to do the decryption part, but we can add support for importing
the decrypted JSON blob, which only differs slightly from the old
format.
Users understandably get confused by the "No persisted URI permissions"
error. This patch adds some text to the dialog explaining why this
happened and how the user can fix the issue.
This permission issue can happen for one of two reasons:
- The user made a change to the backup destination (renamed, moved,
deleted, etc)
- Aegis was restored from an Android backup