This reduces the chance that we flashbang the user when they launch the
app. The issue remains on older Android versions that don't natively
support dark mode, but I don't think that's fixable.
Activities override the theme based on the user's settings, so this
change only has effect while the app is launching.
This patch addresses the following:
- More consistent offsets between entries in the list, especially in
relation to the action bar and the error card.
- Consistent correct application of card shapes when switching between
favoriting and unfavoriting entries.
- Removal of CompactDividerDecoration. We no longer uses dividers, so
this is no longer needed.
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.
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.