100 Commits
Author SHA1 Message Date
Alexander Bakker 4ad0a14e41 Add support for importing encrypted Proton Authenticator exports
Also adds support for (their special format of) Steam entries.
2026-07-03 15:07:14 +02:00
Alexander BakkerandGitHub 7cbdecae16 Merge pull request #1766 from michaelschattgen/feature/otpauth-uri-add
Add ability to import otpauth uri from clipboard
2026-01-21 21:58:56 +01:00
Alexander BakkerandGitHub b5e21a58b1 Merge pull request #1763 from michaelschattgen/fix/auto-complete-secret
Use custom NoAutofill field to avoid password manager issues
2026-01-21 21:18:25 +01:00
Alexander BakkerandGitHub 2edd388869 Merge pull request #1762 from michaelschattgen/fix/tile-padding
Remove unneeded padding in tiles view
2026-01-21 21:12:59 +01:00
Alexander BakkerandGitHub 1607132dbf Merge pull request #1761 from michaelschattgen/fix/quicksettings-tile
Add QsTileRefreshReceiver to fix tile state updates
2026-01-21 21:11:54 +01:00
Alexander Bakker 491a81584d Release v3.4.1
build / build (push) Canceled after 0s
build / test (push) Canceled after 0s
2025-08-03 13:28:30 +02:00
Alexander Bakker 7038816afd Update translations from Crowdin 2025-08-03 13:21:54 +02:00
Alexander BakkerandGitHub bc600de7ab Merge pull request #1691 from michaelschattgen/feature/proton-importer
Add support for Proton Authenticator exports
2025-08-01 21:49:31 +02:00
Alexander BakkerandGitHub aa4877607d Merge pull request #1673 from michaelschattgen/feature/disable-autofill-pin-keyboard
Add custom EditText to prevent Autofill service from popping up
2025-07-20 14:34:27 +02:00
Alexander Bakker 94aabdcd88 Add comment to string dialog_duplicate_entry_title 2025-05-31 14:26:10 +02:00
Alexander Bakker d6b372bad5 Release v3.4-beta1
build / build (push) Canceled after 0s
build / test (push) Canceled after 0s
2025-05-29 13:48:10 +02:00
Alexander Bakker af4e3d9566 Update translations from Crowdin 2025-05-29 13:44:23 +02:00
Alexander BakkerandGitHub 8d667cd26c Merge pull request #1652 from michaelschattgen/feature/duplicate-check
Add check for duplicates upon saving entry
2025-05-29 13:18:15 +02:00
Alexander BakkerandGitHub efaa6afda6 Merge pull request #1654 from michaelschattgen/fix/negative-animation-period
Fix animation crash when using period of 7
2025-05-29 13:10:10 +02:00
Alexander BakkerandGitHub 6f270144e2 Merge pull request #1599 from michaelschattgen/feature/haptic-feedback
Add haptic feedback toggle for code refresh
2025-05-29 12:41:57 +02:00
Alexander Bakker 6c40cfa748 Disable PNG cruncher and PNG generation for vector drawables 2025-05-23 14:33:21 +02:00
Alexander Bakker 6758ec498b Update gradle, update dependencies and bump minSdkVersion to 23
New versions of Jetpack libraries require minSdkVersion 23.

There are a couple of changes in the code to fix incorrect usage of
annotations that started breaking the build after this Gradle update.
2025-05-23 14:01:58 +02:00
Alexander BakkerandGitHub 60eea0bcb2 Merge pull request #1612 from michaelschattgen/feature/brightness-slider-transfer
Add brightness slider for transfer activity
2025-04-23 17:54:54 +02:00
Alexander Bakker afa1fbd3ae Specify country code for the Portuguese translation 2025-04-23 16:20:34 +02:00
Alexander Bakker c81e08bf1f Fall back to default values in the FreeOTP importer 2025-04-23 15:51:49 +02:00
Alexander BakkerandGitHub a5dc861336 Merge pull request #1637 from jahway603/faq_encrypted-export
[FAQ] clarified about which password to use when importing your vault
2025-04-23 14:24:28 +02:00
Alexander Bakker d39b44f0c3 Update divider decoration when filter/sort changes
This fixes an issue where the item decoration may be wrong in some
cases. For example, adding a new entry to the bottom of the list may not
update the decoration of the item that was previously the last one in
the list.

To reproduce, use this vault: https://alexbakker.me/u/mov4455gp5.json.
Start without a group filter, apply sorting based on Issuer (A to Z) and
enable group multiselect. Then:
- Tap the "Test" chip
- Tap the "Test2" chip
- Tap the "No group" chip
- Notice that the offset between the last 2 entries looks wrong: https://alexbakker.me/u/nedcyiro2q.png

Probably introduced in 9131cae944.
2025-02-24 14:16:43 +01:00
Alexander BakkerandGitHub 7c6e3ae2a8 Merge pull request #1559 from michaelschattgen/feature/multiselect-groups
Add ability to multiselect groups
2025-02-24 13:38:29 +01:00
Alexander BakkerandGitHub 8ddf8c58da Merge pull request #1602 from michaelschattgen/feature/color-contrast-hidden-codes
Improve color contrast on hidden codes
2025-01-24 16:42:30 +01:00
Alexander BakkerandGitHub ce29d120a9 Merge pull request #1600 from michaelschattgen/fix/import-entries-padding
Fix obstructing snackbar padding
2025-01-24 16:15:33 +01:00
Alexander BakkerandGitHub 6bbb42fb83 Merge pull request #1593 from dcrewi/feature/test-html-exports
add test for html exports
2025-01-24 14:41:29 +01:00
Alexander Bakker e8d712ec71 Flush temporary export file before starting ExportTask
The previous logic was not an issue because FileOutputStream is
unbuffered, but still, this is more correct.
2025-01-24 14:34:41 +01:00
Alexander BakkerandGitHub ad2dc803fb Merge pull request #1592 from dcrewi/feature/delete-temp-file
delete temporary export file when finished
2025-01-24 14:17:01 +01:00
Alexander Bakker 9ab949a59e Release v3.3.4
build / build (push) Canceled after 0s
build / test (push) Canceled after 0s
2025-01-12 19:01:02 +01:00
Alexander Bakker e8bf7b0506 Update translations from Crowdin 2025-01-12 18:49:41 +01:00
Alexander Bakker e59df63e94 Store non-SVG icons at a maximum of 512x512 and migrate existing icons 2025-01-05 22:47:26 +01:00
Alexander Bakker 5439067e9f Rename Authenticator Pro -> Stratum 2025-01-05 13:49:51 +01:00
Alexander Bakker 81a26ccad8 Release v3.3.3
build / build (push) Canceled after 0s
build / test (push) Canceled after 0s
2025-01-02 22:08:00 +01:00
Alexander Bakker 1fb36b0578 Update translations from Crowdin 2025-01-02 22:01:35 +01:00
Alexander BakkerandGitHub de74daef33 Merge pull request #1584 from alexbakker/large-heap
Set largeHeap to true in AndroidManifest
2025-01-02 21:59:41 +01:00
Alexander Bakker fe8b638818 Set largeHeap to true in AndroidManifest
This is a temporary measure to help users who are stuck in a situation
where they run into OOM conditions due to large icons in their vault
file.
2025-01-02 21:46:57 +01:00
Alexander Bakker 05a415bb38 Only run the scheduled codeql job on the upstream repo 2024-12-31 19:44:52 +01:00
Alexander Bakker 19a77209d8 Store service name as issuer and tolerate spaces in secret for 2FAS 2024-12-20 15:51:06 +01:00
Alexander Bakker aec16f22c1 Update reactivecircus/android-emulator-runner
Required for the ubuntu-latest switch to ubuntu-24.04
2024-12-20 15:50:35 +01:00
Alexander BakkerandGitHub a76f3394f3 Merge pull request #1550 from cillyvms/window-insets
Apply window insets to accommodate system UI.
2024-12-04 21:18:34 +01:00
Alexander Bakker 0eb1194578 Release v3.3.2
build / build (push) Canceled after 0s
build / test (push) Canceled after 0s
2024-12-02 22:35:13 +01:00
Alexander Bakker 170f626c9e Update translations from Crowdin 2024-12-02 22:29:48 +01:00
Alexander BakkerandGitHub c616a4f43c Merge pull request #1563 from michaelschattgen/feature/export-file-name-share
Make file name of exports consistent
2024-12-02 21:11:46 +01:00
Alexander BakkerandGitHub d48f2ead28 Merge pull request #1564 from michaelschattgen/fix/contrast-next-code
Improve contrast of next code color
2024-12-02 18:46:04 +01:00
Alexander BakkerandGitHub 8147d07606 Merge pull request #1562 from michaelschattgen/fix/group-entry-selection
Reset selection state when changing groups
2024-12-02 18:41:42 +01:00
Alexander BakkerandGitHub fa073371b5 Merge pull request #1561 from michaelschattgen/fix/import-multiple-entries
Add fix for importing multiple entries
2024-12-02 18:37:48 +01:00
Alexander BakkerandGitHub 5213bafc97 Merge pull request #1545 from michaelschattgen/feature/search-improvements
Improve search feature for better UX
2024-11-25 22:54:38 +01:00
Alexander Bakker d2fcb24d79 Fix state updates for the lock and sort menu items
Turns out I was a little too enthusiastically removing things in 9d383b85d8.
The menu may not necessarily have been created yet in all cases.
2024-11-25 20:47:20 +01:00
Alexander Bakker 337cb74f72 Release v3.3.1
build / build (push) Canceled after 0s
build / test (push) Canceled after 0s
2024-11-24 22:25:32 +01:00
Alexander Bakker b5b29a4f84 Revert "Fix layout height in tiles mode"
This reverts commit 5dba1db93d.

Fixes #1544
2024-11-24 22:20:52 +01:00
Alexander Bakker 3e3df919b2 Release v3.3
build / build (push) Canceled after 0s
build / test (push) Canceled after 0s
2024-11-24 16:42:26 +01:00
Alexander Bakker 79ba822ccf Update translations from Crowdin 2024-11-24 16:40:17 +01:00
Alexander BakkerandGitHub 5f885cba29 Merge pull request #1542 from michaelschattgen/fix/text-height-tiles
Fix layout height in tiles mode
2024-11-24 16:36:48 +01:00
Alexander Bakker 843e5f1ab5 Make subclasses of TotpInfo override only getOtp(long time)
This fixes an issue where Steam OTP's were displayed in the wrong
format. The underlying issue has been present for a while, but it first
became apparent in e4c9a584f4.
2024-11-17 10:39:33 +01:00
Alexander Bakker 9d383b85d8 Update sort category radio button state in the menu
This has been broken since 46e1421c28.

I also removed some other logic from ``onCreateOptionsMenu`` that
doesn't seem to belong there anymore.
2024-11-15 17:25:43 +01:00
Alexander Bakker 6d8eec0e21 Release v3.3-beta1
build / build (push) Canceled after 0s
build / test (push) Canceled after 0s
2024-11-15 16:10:16 +01:00
Alexander Bakker fb8765f8f0 Update translations from Crowdin 2024-11-15 15:33:26 +01:00
Alexander Bakker 337d2c3507 Fix a couple of entry equality checks in the adapter
With the introduction of DiffUtil, an entry might not be the same
instance in the in-memory vault as in the shown entry list of the
adapter.
2024-11-15 15:24:03 +01:00
Alexander BakkerandGitHub 8eabef2050 Merge pull request #1496 from michaelschattgen/fix/dynamic-progress-color
Fix progress bar colors when using dynamic
2024-11-15 14:14:57 +01:00
Alexander BakkerandGitHub b70654152d Merge pull request #1439 from r3dh3ck/feature/single_backup
Single backup
2024-11-15 13:53:54 +01:00
Alexander Bakker 9751a38ebd Update dependencies 2024-11-15 12:36:18 +01:00
Alexander Bakker d395bbeb8d Bump targetSdkVersion to 35 and update dependencies
This also includes changes to make the status guard hack work
on Android 15 and a couple of small adjustments to support edge-to-edge
in all activities.
2024-10-18 15:38:45 +02:00
Alexander Bakker 44358b3c95 Always cancel the delayed color change when hiding the code
Before, the dots may turn red if the animation duration scale is set to
0.
2024-10-09 21:06:09 +02:00
Alexander BakkerandGitHub 413e793c7b Merge pull request #1507 from michaelschattgen/feature/show-next-code
Add ability to show next code
2024-10-09 17:35:13 +02:00
Alexander Bakker c9e8d4dbdf Minor improvements to the entry sharing activity
This patch makes a couple of minor improvements to the entry sharing
activity:
- Remove the double "Transfer entries" heading.
- Make the QR codes larger. Especially helpful with Google Authenticator
  exports.
- Increase screen brightness to 100%.

Before and after:

<img width="200" src="https://alexbakker.me/u/d91cl1x495.png"/>
<img width="200" src="https://alexbakker.me/u/ckzhrs5nf5.png"/>

<img width="200" src="https://alexbakker.me/u/6bo0womot0.png"/>
<img width="200" src="https://alexbakker.me/u/mw7yskjn7z.png"/>
2024-10-04 18:14:26 +02:00
Alexander BakkerandGitHub 0573dbb2fc Merge pull request #1509 from michaelschattgen/fix/secret-multiline
Make secret multiline
2024-10-04 11:02:33 +02:00
Alexander Bakker cc5ce485b1 Add support for importing FreeOTP 2 backups
I've held off on this in the past, because I was concerned about the
security issues related to Java object deserialization. To circumvent
that, I've written a parser that understands just enough of the Java
Object Serialization format to parse FreeOTP 2 backups.

Unfortunately there are a number of issues in FreeOTP 2 that may result in
corrupt backups. The importer warns the user about this and tries to
salvage as many entries as possible.
2024-09-28 15:49:22 +02:00
Alexander Bakker 9131cae944 Use DiffUtil for the RecyclerView of the entry list
Gets rid of all of the custom logic we had for notifying the
RecyclerView about changes in the entry list. This will allow for more
simplifications in the future around non-persisted changes to state in
the entry list.

A neat side effect is that any filtering/ordering changes in the entry
list are now also animated: https://alexbakker.me/u/4a4ie5yzpj.mp4

This touches the fundamentals of the entry list, so lots of careful
testing required.
2024-09-25 22:29:49 +02:00
Alexander Bakker 08d900c0c0 Rename onAssignEntriesResult to onAssignIconsResult 2024-09-25 11:36:35 +02:00
Alexander BakkerandGitHub 24d3d0ae8f Merge pull request #1503 from michaelschattgen/fix/locale-marshmallow
Fix visibility of locale setting on Marshmallow
2024-09-24 23:44:08 +02:00
Alexander Bakker c559ed9e56 Add NEW_GROUP placeholder type for group models to fix the build 2024-09-24 22:03:27 +02:00
Alexander BakkerandGitHub 8e3279bb7e Merge pull request #1498 from michaelschattgen/feature/single-tap-group
Change group filter to a single selection
2024-09-24 21:48:31 +02:00
Alexander BakkerandGitHub 9ef3315a70 Merge pull request #1497 from michaelschattgen/feature/assign-groups
Add ability to easily assign groups
2024-09-24 21:26:25 +02:00
Alexander BakkerandGitHub 92de13b176 Merge pull request #1494 from michaelschattgen/feature/show-code-expiration
Show when codes are about to expire
2024-09-24 20:56:21 +02:00
Alexander Bakker dbaec2d83f Use getQuantityString instead of getQuantityText for import_partial_export_anyway 2024-09-21 15:24:44 +02:00
Alexander Bakker 257a40eefa Remove some unused resources (and increase severity of check) 2024-09-21 15:09:54 +02:00
Alexander Bakker baa8068d51 Redefine "import_partial_export_anyway" as a quantity string 2024-09-21 14:17:56 +02:00
Alexander Bakker d433957c2f Remove usage of deprecated PreferenceManager 2024-09-21 14:12:06 +02:00
Alexander Bakker 6a54650635 Format multiple string substitutions in positional format
This resolves the following lint error: "Multiple substitutions
specified in non-positional format of string resource"
2024-09-21 14:01:04 +02:00
Alexander Bakker bab59e8d04 Update dependencies 2024-09-21 13:07:34 +02:00
Alexander BakkerandGitHub 83689a4c59 Merge pull request #1499 from michaelschattgen/fix/text-field-caps
Fix capitalization of multiple text fields
2024-09-19 21:39:47 +02:00
Alexander BakkerandGitHub 356fa8a36e Merge pull request #1470 from sigmundxia/master
Add support for Ente Auth import
2024-09-19 20:53:25 +02:00
Alexander BakkerandGitHub 17f106f70d Merge pull request #1492 from michaelschattgen/fix/google-auth-proto
Fix batch_index in Google Authenticator export
2024-09-17 21:30:48 +02:00
Alexander BakkerandGitHub 8b8e071831 Merge pull request #1479 from michaelschattgen/feature/group-chipgroup
Improve group filters
2024-09-16 23:47:07 +02:00
Alexander Bakker f8603395fa Fix a crash that could occur when deleting a broken icon pack import
The following crash could occur when trying to import an icon pack for
which an empty folder still exists on disk:

```
Exception java.lang.IndexOutOfBoundsException: Index -1 out of bounds for length 1
  at jdk.internal.util.Preconditions.outOfBounds (Preconditions.java:64)
  at jdk.internal.util.Preconditions.outOfBoundsCheckIndex (Preconditions.java:70)
  at jdk.internal.util.Preconditions.checkIndex (Preconditions.java:266)
  at java.util.Objects.checkIndex (Objects.java:359)
  at java.util.ArrayList.remove (ArrayList.java:511)
  at com.beemdevelopment.aegis.ui.views.IconPackAdapter.removeIconPack (IconPackAdapter.java:38)
  at com.beemdevelopment.aegis.ui.fragments.preferences.IconPacksManagerFragment.removeIconPack (IconPacksManagerFragment.java:158)
  at com.beemdevelopment.aegis.ui.fragments.preferences.IconPacksManagerFragment.lambda$importIconPack$3 (IconPacksManagerFragment.java:133)
  at androidx.appcompat.app.AlertController$ButtonHandler.handleMessage (AlertController.java:167)
  at android.os.Handler.dispatchMessage (Handler.java:106)
  at android.os.Looper.loopOnce (Looper.java:226)
  at android.os.Looper.loop (Looper.java:313)
  at android.app.ActivityThread.main (ActivityThread.java:8762)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:604)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1067)
```

To reproduce on a debug build of Aegis with the latest aegis-icons
imported into the app, run the following commands and then try to import
the same aegis-icons ZIP again:

```
$ adb shell
$ su
# rm -r /data/data/com.beemdevelopment.aegis.debug/files/icons/c1018b93-4e8c-490a-b575-30dde62a833e/20230523/*
```
2024-09-16 22:19:02 +02:00
Alexander BakkerandGitHub df30e42318 Merge pull request #1481 from michaelschattgen/feature/reorder-groups
Add ability to reorder groups
2024-09-12 22:51:15 +02:00
Alexander BakkerandGitHub 6cb58789a2 Merge pull request #1483 from michaelschattgen/fix/single-copy-reveal
Prevent copying when revealing code
2024-09-11 21:04:02 +02:00
Alexander BakkerandGitHub eb6e26a8e4 Merge pull request #1482 from michaelschattgen/feature/rounded-progressbar
Make progressbar rounded on the right side
2024-09-11 20:48:49 +02:00
Alexander Bakker 0046e8827e Release v3.2
build / build (push) Canceled after 0s
build / test (push) Canceled after 0s
2024-09-08 18:41:30 +02:00
Alexander Bakker 5640b8be83 Update translations from Crowdin 2024-09-08 18:28:07 +02:00
Alexander BakkerandGitHub 3bc3448b5c Merge pull request #1468 from michaelschattgen/feature/add-search-behavior
Add preference to change search behavior
2024-09-06 19:36:54 +02:00
Alexander Bakker b92956dece Account for audit log entries that reference deleted entries
This fixes the following crash I noticed in the developer console:

```
Exception java.lang.AssertionError:
  at com.beemdevelopment.aegis.util.UUIDMap.getByUUID (UUIDMap.java:127)
  at com.beemdevelopment.aegis.vault.VaultRepository.getEntryByUUID (VaultRepository.java:229)
  at com.beemdevelopment.aegis.ui.fragments.preferences.AuditLogPreferencesFragment.lambda$onViewCreated$0 (AuditLogPreferencesFragment.java:70)
  at androidx.lifecycle.LiveData.considerNotify (LiveData.java:133)
  at androidx.lifecycle.LiveData.dispatchingValue (LiveData.java:151)
  at androidx.lifecycle.LiveData.setValue (LiveData.java:309)
  at androidx.lifecycle.LiveData$1.run (LiveData.java:93)
  at android.os.Handler.handleCallback (Handler.java:959)
  at android.os.Handler.dispatchMessage (Handler.java:100)
  at android.os.Looper.loopOnce (Looper.java:232)
  at android.os.Looper.loop (Looper.java:317)
  at android.app.ActivityThread.main (ActivityThread.java:8592)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:580)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:878)
```
2024-08-27 23:01:33 +02:00
Alexander Bakker 7e1daf731f Trim spaces from the search filter 2024-08-27 22:05:25 +02:00
Alexander Bakker 99e633d61a Replace CircleImageView with ShapeableImageView 2024-08-27 20:02:06 +02:00
Alexander Bakker 991da65af0 Vendor TextDrawable and TrustedIntents
These were the only two libraries we were still getting from JCenter,
which was permanently shut down recently: https://jfrog.com/blog/jcenter-sunset/
2024-08-26 23:06:09 +02:00
Alexander BakkerandGitHub 9eae773efb Merge pull request #1458 from michaelschattgen/fix/hidden-dots-size
Fix sizing inconsistency of the dots in hidden view
2024-08-23 23:08:35 +02:00
Alexander BakkerandGitHub a46c816167 Merge pull request #1447 from michaelschattgen/feature/hide-account-name-tiles
Add ability to hide account name in tiles mode
2024-08-12 22:30:44 +02:00
Alexander Bakker 010e2628e8 Add an extra check before showing the password reminder popup
This is another attempt to fix a rare crash we're seeing in the
developer console:

```
Exception android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?
  at android.view.ViewRootImpl.setView (ViewRootImpl.java:1423)
  at android.view.WindowManagerGlobal.addView (WindowManagerGlobal.java:408)
  at android.view.WindowManagerImpl.addView (WindowManagerImpl.java:148)
  at android.widget.PopupWindow.invokePopup (PopupWindow.java:1583)
  at android.widget.PopupWindow.showAsDropDown (PopupWindow.java:1430)
  at android.widget.PopupWindow.showAsDropDown (PopupWindow.java:1386)
  at com.beemdevelopment.aegis.ui.AuthActivity.lambda$showPasswordReminder$5 (AuthActivity.java:253)
  at android.os.Handler.handleCallback (Handler.java:942)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loopOnce (Looper.java:211)
  at android.os.Looper.loop (Looper.java:300)
  at android.app.ActivityThread.main (ActivityThread.java:8294)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:580)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1028)
```
2024-08-10 13:13:03 +02:00
Alexander Bakker db4c738c8f Update dependencies 2024-08-09 19:49:08 +02:00
Alexander Bakker 655881e852 Make the export dialog scrollable
Reported by @valentinb102 on Matrix.
2024-08-02 19:43:47 +02:00