Commit Graph

1243 Commits (8960ffffb4251fbb1b202a6bb210e21c2a5a4234)

Author SHA1 Message Date
Alexander Bakker 2b2cac1ada
Merge pull request #1308 from michaelschattgen/fix/ui-inconsistencies
Fix a couple UI inconsistencies
12 months ago
Michael Schättgen f1e14e6645 Fix a couple UI inconsistencies 12 months ago
Michael Schättgen 52ecf12576 Fix copied text visibility 12 months ago
Alexander Bakker 8995626d16 Apply dark background colors when combining AMOLED and dynamic colors
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.
12 months ago
Michael Schättgen cffe15735c
Merge pull request #1302 from alexbakker/fix-cam-btn-color
Set the correct color for the camera switch button
12 months ago
Alexander Bakker c5b8ee9215 Set the correct color for the camera switch button 12 months ago
Alexander Bakker 2e44a81c69 Use MaterialColors.getColor instead of our own helper
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.
12 months ago
Alexander Bakker f76d84ef87 Release v3.0-beta1 12 months ago
Alexander Bakker 3d59114230 Update translations from Crowdin 12 months ago
Michael Schättgen 22c9ab7c03
Merge pull request #1295 from alexbakker/intro-init-crash
Don't initialize VaultManager after the intro unless saving succeeds
12 months ago
Michael Schättgen f8ad3d16fc
Merge pull request #1297 from alexbakker/entry-move-anim
Restore entry list item animations
12 months ago
Michael Schättgen fbd3bf3ff5
Merge pull request #1296 from alexbakker/shown-entries-bold
Only bold number of shown entries if found in the translated string
12 months ago
Alexander Bakker 8bbbe3611a Don't initialize VaultManager after the intro unless saving succeeds
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.
12 months ago
Michael Schättgen 2d0e201060
Merge pull request #1294 from alexbakker/load-vaultfile
Load vault file on demand instead of juggling it around in-memory
12 months ago
Michael Schättgen b59350337f
Merge pull request #1293 from alexbakker/disable-unlock-button
Disable the unlock button until the slot decryption task is done
12 months ago
Michael Schättgen 6d73e5101c
Merge pull request #1278 from alexbakker/fix-1077
Pass down the root shell to every SuFile for the Authy importer
12 months ago
Michael Schättgen d16d56c4b0
Merge pull request #1263 from alexbakker/icon-suggestion-prio
Prioritize normal icon issuer matches over inverse matches
12 months ago
Alexander Bakker fcde086ae3 Material 3
Co-authored-by: Michael Schättgen <michael@schattgen.me>
12 months ago
Alexander Bakker 0e2fa929e6 Restore entry list item animations
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
12 months ago
Alexander Bakker 8951c19581 Only bold number of shown entries if found in the translated string
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)
```
12 months ago
Alexander Bakker 32e462bdce Load vault file on demand instead of juggling it around in-memory
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.
12 months ago
Alexander Bakker 6bd8521661 Disable the unlock button until the slot decryption task is done
This prevents a crash that could occur when double tapping the Unlock
button.
12 months ago
Alexander Bakker 57ec695718 Pass down the root shell to every SuFile for the Authy importer
The issue was introduced in: 69f0bb4fbc
1 year ago
Michael Schättgen 224ec2553c
Merge pull request #1262 from alexbakker/glide-caching
Use the hash of entry icons as keys for Glide caching
1 year ago
Michael Schättgen 5acacf63e1
Merge pull request #1249 from alexbakker/2fas-schema4
Add support for importing 2FAS schema v4 backups
1 year ago
Alexander Bakker bfbb3ef2c4 Prioritize normal icon issuer matches over inverse matches
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.
1 year ago
Alexander Bakker f1c9c6c5fc Use the hash of entry icons as keys for Glide caching
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.
1 year ago
Michael Schättgen 566bcac3e0
Merge pull request #1236 from alexbakker/steam-xposed
Add support for importing decrypted Steam JSON blob
1 year ago
Alexander Bakker 4d729d1bef
Merge pull request #1204 from ranjeetchouhan/master
feat: Update references to FreeOTP and add version hint "1.x"
1 year ago
Ranjeet 1acb9db489 feat: Update references to FreeOTP and add version hint "1.x"
Co-authored-by: Alexander Bakker <ab@alexbakker.me>
1 year ago
Alexander Bakker 98bcdc7615 Update Gradle and dependencies 1 year ago
Alexander Bakker 7c1a954e4d Stop using deprecated startActivityAndCollapse(Intent) 1 year ago
Alexander Bakker a1d00b47fe
Merge pull request #1238 from cyb3rko/startactivityforesult-deprecation
Replace deprecated startActivityForResult
1 year ago
Niko Diamadis ca530f229b
Replace startActivityForResult with result launchers 1 year ago
Alexander Bakker b86bb286e8 Add support for importing 2FAS schema v4 backups 1 year ago
Alexander Bakker 52abb08201 Update dependencies 1 year ago
Alexander Bakker ff233090f8 Add support for importing decrypted Steam JSON blob
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.
1 year ago
Alexander Bakker adaae9e6d6
Merge pull request #1234 from michaelschattgen/feature/issuer-sort-account-fallback
Improve issuer and account sorting
1 year ago
Michael Schättgen da2244f511 Improve issuer and account sorting 1 year ago
Alexander Bakker 08c73922cc Explain vault backup permission error
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
1 year ago
Joshua Soberg 45220241aa
#1231 - Use public constructors for License/Changelog dialog fragments so that they can be recreated on configuration change 1 year ago
Alexander Bakker 60e93559c3 Bump target SDK version and update dependencies 1 year ago
Michael Schättgen 1c86c5fd51 Add ability to select all tokens 1 year ago
Alexander Bakker c13d4e7f8d Transition to non-final resource IDs and non-transitive R classes
Future versions of AGP will force us to do this, so we might as well get
it over with now.
1 year ago
Alexander Bakker 03f1a0e8ab Introduce a separate menu for AssignIconsActivity
Apparently this was using ``menu_groups``, probably a copy-paste error.

This also moves ``AssignIconsActivity`` to the right package.
1 year ago
Alexander Bakker 305e157fc5
Merge pull request #1078 from orange-elephant/entries-in-multiple-groups
Refer to groups by UUID
1 year ago
elena 5c86e5c099 Refer to groups by UUID
- Also lays the foundations for adding entries to multiple groups and changing group names

Co-authored-by: Alexander Bakker <ab@alexbakker.me>
1 year ago
Michael Schättgen 0760bfc618
Merge pull request #1188 from alexbakker/fix-anim-issues
Fix two issues related to animation duration scale
1 year ago
Alexander Bakker 9414b5c420
Merge pull request #1172 from michaelschattgen/feature/assign-icons
Add ability to automatically assign icons to (imported) entries
1 year ago
Alexander Bakker e7a1058618 Fix two issues related to animation duration scale
This patch addresses two issues:
- The entry selection icon would flicker when a non-1x animator
  duration scale was set.
- The advanced entry field animation was not shown if the animator
  duration scale was set to .5x, due to a rounding error.

Introduced in: 9ff8efab69
1 year ago
Michael Schättgen 1a6f85ccb6 Add ability to assign icons
More progress

Open IconPicker dialog on click

Add ability to reset

Fix changing icons

Cleanup

Add ability to assign icons after import

PR fixes
1 year ago
Michael Schättgen b84ecf15da
Merge pull request #1184 from alexbakker/no-nested-recyclerview
Never wrap RecyclerView with a NestedScrollView
1 year ago
Alexander Bakker 31b8162ab4 Use 'comment' instead of 'context' to add context to strings 1 year ago
Alexander Bakker 7def7eb4f7 Remove unused strings and add context to a couple of strings
Most of these were related to slots. Also removed the card_slot layout.
1 year ago
Alexander Bakker 8ca45d2322 Fix singular form of the import_error_dialog string 1 year ago
Alexander Bakker ca4a3e2f74 Never wrap RecyclerView with a NestedScrollView
Wrapping a ``RecyclerView`` with a ``NestedScrollView`` breaks its recycling
functionality because the view height is stretched to fit the full list
of entries.

We never noticed performance issues in these two cases because these
lists never get very long. Let's fix these cases anyway so that we
don't accidentally base a new use of a ``RecyclerView`` on this broken
pattern.

Also renamed ``list_slots`` to ``list_groups``. Must have been
a copy-paste error.
1 year ago
Alexander Bakker 37964da4a5 Clarify that only Aegis vaults can be imported during the intro
Some users understandably get confused when they try to import a backup
file from a different 2FA app during the intro and then get greeted
with an error dialog.

This changes the button text to "Import Aegis vault" and adds a small
hint text in the hope that this makes the limitations of the intro more
clear to the user.

<img width="200" src="https://alexbakker.me/u/jzhh3bk30w.png" />
1 year ago
Alexander Bakker dd9c307dea Release v2.2.2 1 year ago
Alexander Bakker c65ecd9c54 Update translations from Crowdin 1 year ago
Michael Schättgen 72511fc02b
Merge pull request #1180 from alexbakker/fix-tile-crash
Check for null returned by getQsTile()
2 years ago
Michael Schättgen 79ade74c0c
Merge pull request #1179 from alexbakker/icon-name
Introduce optional 'name' field for iconpack icons
2 years ago
Alexander Bakker 1ccbe88ce6 Check for null returned by getQsTile()
Apparently ``getQsTile()`` can return null, which resulted in a crash.
Reported through the Google Play Console:

```
Exception java.lang.NullPointerException: Attempt to invoke virtual method 'void android.service.quicksettings.Tile.setState(int)' on a null object reference
  at com.beemdevelopment.aegis.services.LaunchAppTileService.onStartListening
  at android.service.quicksettings.TileService$H.handleMessage (TileService.java:488)
  at android.os.Handler.dispatchMessage (Handler.java:106)
  at android.os.Looper.loopOnce (Looper.java:205)
  at android.os.Looper.loop (Looper.java:294)
  at android.app.ActivityThread.main (ActivityThread.java:8177)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:552)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:971)
```
2 years ago
Alexander Bakker 9b3e7136bd Introduce optional 'name' field for iconpack icons
This introduces a new (optional) 'name' field for iconpack icons. It
will be used to describe the icon in the icon selection dialog. If it is
not present, the name of the icon will be derived from the filename,
like before. Using this new field allows usage of more exotic characters
in the icon name that are not allowed in a filename.
2 years ago
Alexander Bakker 9cabd9f309 Add support for new Authenticator Pro backup format
This adds support for Authenticator Pro's latest backup format changes.
The format of the content itself has not changed as far as I can tell, but
they do use a different cipher and KDF now: AES GCM and Argon2id,
respectively.

The memory cost is statically set at 64MiB. I suspect that this may
cause OOM situations on some lower-end devices, but we'll see, not much
we can do about that right now without making more changes.
2 years ago
Michael Schättgen 27e56d60b5 Release v2.2.1 2 years ago
Michael Schättgen c9cf6729e0 Fix biometrics unlock button on AuthActivity 2 years ago
Alexander Bakker b916697391
Merge pull request #1171 from michaelschattgen/feature/import-duplicates
Add ability to skip duplicates during import
2 years ago
Michael Schättgen b205438982 Add ability to skip duplicates during import 2 years ago
Michael Schättgen 4f83706f73 Release v2.2 2 years ago
Michael Schättgen 44bb11e2d8 Update translations from Crowdin 2 years ago
Alexander Bakker 2793b65786 Fix versions of two build dependencies 2 years ago
Michael Schättgen 5e35cc203f Fix bug in Japanese translation 2 years ago
Michael Schättgen 67d7f7a75d Release v2.2-beta1 2 years ago
Michael Schättgen 18e6fd2561 Update translations from Crowdin 2 years ago
Michael Schättgen 9ff8efab69 Respect system animation setting
Co-authored-by: Alexander Bakker <ab@alexbakker.me>
2 years ago
Alexander Bakker 3278d6544b Update dependencies 2 years ago
Michael Schättgen 8917bb3b94 Fix the spacing between issuer and account name 2 years ago
Michael Schättgen d90303cf0e Add tiles view mode
Minor UI improvements
Fix animations
Fix typo
Improvements made after PR review
PR improvements

Co-authored-by: Alexander Bakkker <ab@alexbakker.me>
2 years ago
Michael Schättgen edb1d8d76f Add ability to only show names when necessary 2 years ago
Michael Schättgen 3ff242e6b6 Add ability to change copy behavior 2 years ago
Michael Schättgen ef069e49af Add dialog when password reminder is activated 2 years ago
Michael Schättgen d3c48848be
Merge pull request #1162 from michaelschattgen/feature/account-name-position
Add ability to change account name position
2 years ago
Michael Schättgen 813fd62dc7 Add ability to change account name position 2 years ago
nerodevo 3026a3eab1 Remove unwanted character 2 years ago
Alexander Bakker efd8e2d9ff Run key derivation for Authenticator Pro importer on background thread 2 years ago
Alexander Bakker 58b8edf318 Various minor touchups for the Authenticator Pro importer 2 years ago
Alexander Bakker abe7af1549
Merge pull request #1080 from NepNep21/authpro
Add Authenticator Pro encrypted import support, fixes #1035
2 years ago
NepNep21 289d5409a5
Add Authenticator Pro encrypted import support 2 years ago
Alexander Bakker e906131f1b Disable Glide notification permission lint check
Fixes the build
2 years ago
Alexander Bakker b6bfc5b15f Update Gradle and dependencies 2 years ago
Alexander Bakker 90f2ea79d9
Merge pull request #1100 from beemdevelopment/bugfix/empty-state
Fix empty state while using search filter
2 years ago
Michael Schättgen 3c9e5a9fdb Fix empty state while using search filter 2 years ago
Alexander Bakker f0f9653ace Release v2.1.3 2 years ago
Alexander Bakker e2df97514c Update translations from Crowdin 2 years ago
Michael Schättgen 61d41a26fa Add ability to disable backup reminder 2 years ago
elena d3e5472ef2 Only enable export buttons if options are in a valid state 2 years ago
Alexander Bakker bf825df221 Fix crash caused by incorrect Toast creation 2 years ago
Alexander Bakker 121c1dada9
Merge pull request #1054 from orange-elephant/checkboxes-dropdown
Create checkboxes dropdown component
2 years ago
elena 1c9931b1c8 Display export groups selection as dropdown 2 years ago
elena 51698947aa Create checkboxes dropdown component 2 years ago