Commit Graph

1034 Commits (dd88f5bb0c1bccb04d867804730d0ade5e16204c)

Author SHA1 Message Date
Alexander Bakker e653e42455 Update dependencies 5 years ago
Alexander Bakker 158eb4609c Remove unused 'stateless' support code from AuthActivity 5 years ago
Alexander Bakker ca8f3e49ea Hide the vault wipe option in the menu of the import activity
Always showing the dialog can be confusing for users.
5 years ago
Alexander Bakker c3d9ab86c7 Improve the wording of a couple of strings 5 years ago
Alexander Bakker 441a943a9d Update dependencies 5 years ago
Alexander Bakker 293e2ddeb0 When importing, read the file from SAF on a background thread
Fixes issue with importing from Nextcloud. Close #673.
5 years ago
Alexander Bakker 2c8a64f943 Disable some fields if Steam OTP type is selected
Also, move some magic default OTP parameters to constants
5 years ago
Alexander Bakker bc6cb35dc0 Clean up unused variables 5 years ago
Alexander Bakker ad138e4a4c Fix behavior of the new entry highlight in case no scroll is needed 5 years ago
Alexander Bakker f4bdf4645b Hide some entry editing settings by default to reduce user confusion 5 years ago
Alexander Bakker fd9a387b4e Rename Filter -> Sort in menu and remove old references to Filter 5 years ago
Alexander Bakker 778000aa24 Minor fixes for group chips, remove remnants of filter menu item 5 years ago
Alexander Bakker 40fbe39474 Update list of third-party licenses 5 years ago
Alexander Bakker bda1a1d5af Add a dialog for Aegis' license 5 years ago
Alexander Bakker e6e2809c9c Fix the appearance of the toolbar in the scanner activity 5 years ago
Alexander Bakker b91355da47 Remove usage of HtmlCompat 5 years ago
Alexander Bakker 4bb5ee52d9 Fix disabled alert dialog button color by setting alpha using selector 5 years ago
Alexander Bakker de3fcfdb26 Fix the background color of the imported entries list 5 years ago
Alexander Bakker ae71febf10 Move import logic to separate activity to fix a couple of issues
Fixes #456.
Fixes #670.
5 years ago
Alexander Bakker 7be1a74cfd Force higher resolution for analysis and run it on a background thread 5 years ago
Alexander Bakker 22c93bf5c6 Show some additional warning info in the entry deletion dialog
Close #565.
5 years ago
Alexander Bakker 68436fba9c Rewrite layout of EditEntryActivity to not use TableLayout
This prevents excessive overdraw and fixes the UI tests
5 years ago
Alexander Bakker 44ff321f8f Remove pref_tools_group_title from all locales 5 years ago
Alexander Bakker d9d6733878 Improve preference organization and add summaries to the sections 5 years ago
Alexander Bakker eae31ef94b Switch from Appcompat to Material Components theme
Close #354.
5 years ago
Alexander Bakker a6bf3b7c87 Add bottomsheet for chips 5 years ago
Alexander Bakker c6cb390990 Fix the UI tests 5 years ago
Alexander Bakker f080eaa8f9 Add support for participating in Android's backup system
This adds an option for participating in Android's backup system. Two items are
backed up: the ``files/aegis.json`` file and the entire ``shared_prefs``
directory. The option is disabled by default and can only be enabled if
encryption is enabled as well.

I tested this with Local Transport and Seedvault. To test with Local Transport,
see: https://developer.android.com/guide/topics/data/testingbackup.
5 years ago
Alexander Bakker ef8c116bdc Split preferences into separate fragments
<img src="https://alexbakker.me/u/5phth0i1ga.png" width="300" />
5 years ago
Alexander Bakker 260a3b9c78
Merge pull request #651 from alexbakker/replace-fab
Replace the FAB with a bottom sheet dialog
5 years ago
Alexander Bakker a5ec7666ec
Merge pull request #647 from alexbakker/more-tests
Add some more tests
5 years ago
Alexander Bakker ff450c3edf
Merge pull request #644 from alexbakker/remove-acc-name-opt
Remove the "search in account names" option and do so by default
5 years ago
Alexander Bakker e6e179307d
Merge pull request #663 from alexbakker/fix-650
Explicitly opt out of WebView usage statistics collection
5 years ago
Alexander Bakker 2c0068bea7 Release v1.4.2 5 years ago
Alexander Bakker 6dcde38667
Merge pull request #664 from alexbakker/downgrade-zip4j
Downgrade zip4j to 2.6.0
5 years ago
Michael Schättgen ec1913c77a
Merge pull request #661 from alexbakker/fix-660
Use name() instead of toString() on StandardCharsets.UTF_8
5 years ago
Michael Schättgen 3e40cc9c8f
Merge pull request #655 from alexbakker/phonefactor-error
Show a clearer error message when encountering phonefactor:// URI's
5 years ago
Michael Schättgen 40d1e22079
Merge pull request #643 from alexbakker/documentsui-error
Simplify the auto lock block logic and show an error if DocumentsUI is missing
5 years ago
Michael Schättgen 38bbb60414
Merge pull request #652 from alexbakker/fix-authy-import
Don't rely on accountType to detect proprietary Authy tokens
5 years ago
Alexander Bakker 98d39ee399 Downgrade zip4j to 2.6.0
It looks like we broke the Authenticator Plus importer in
d660fbc6d1 by upgrading zip4j. So this patch
downgrades it again. I couldn't immediately find this issue in their issue
tracker, so it may be worth spending some time reporting this to them later.
5 years ago
Alexander Bakker e324f649ee Replace the FAB with a bottom sheet dialog
This also removes the dependency on ``com.getbase:floatingactionbutton``.
5 years ago
Alexander Bakker 4f8a0b9020 Add some more tests
This adds tests for all of the importers, a new scrypt test and some more OTP tests. More to come.
5 years ago
Alexander Bakker b78b22acbb Explicitly opt out of WebView usage statistics collection 5 years ago
Alexander Bakker 737b9da292 Use name() instead of toString() on StandardCharsets.UTF_8
Apparently toString() doesn't produce the same result on every platform.
5 years ago
deadmeu 1f0c51b45b Add dark theme variants of the fullscreen style 5 years ago
Alexander Bakker 1bd9cf3a3f Release v1.4.1 5 years ago
Alexander Bakker 0a6c89cd9d Show a clearer error message when encountering phonefactor:// URI's
Sometimes users get confused when they're trying to scan a Microsoft Authenticator QR code and think the error occurs because of a bug in Aegis.
5 years ago
Alexander Bakker 951241e95d Don't rely on accountType to detect proprietary Authy tokens 5 years ago
Alexander Bakker 1d44e05866 Remove the "search in account names" option and do so by default 5 years ago
Alexander Bakker 4482a21a54 Simplify the auto lock block logic and show an error if DocumentsUI is missing 5 years ago
Alexander Bakker 15e28abecd Update dependencies
This also disables the Jetifier, because we don't need it anymore.
5 years ago
Alexander Bakker 1748e2221f Release v1.4 5 years ago
Alexander Bakker b1b4c021cf Update translations from Crowdin 5 years ago
Michael Schättgen a27e3c6364
Merge pull request #642 from alexbakker/block-minimize-lock
Fix an issue where the app would lock when showing DocumentsUI
5 years ago
Michael Schättgen 8f7b152af4
Merge pull request #641 from alexbakker/fix-593-extra
Use GoogleAuthInfo.parseSecret for secrets from Google Authenticator
5 years ago
Michael Schättgen 39f18b79cb
Merge pull request #636 from alexbakker/libsu-mount-ns
Run libsu commands inside the global mount namespace
5 years ago
Michael Schättgen 9a81cccbe2
Merge pull request #623 from alexbakker/fixup-gauth-proto
Make the Google Authenticator Protobuf parser more complete
5 years ago
Michael Schättgen 2c6be39f88
Merge pull request #634 from alexbakker/fix-package-query
Explicitly define which packages (apps) we want to query
5 years ago
Alexander Bakker 6e5a80a000 Fix an issue where the app would lock when showing DocumentsUI 5 years ago
Alexander Bakker f012c7ce22 Use GoogleAuthInfo.parseSecret for secrets from Google Authenticator 5 years ago
Alexander Bakker 805a9001e1 Run libsu commands inside the global mount namespace
This ensures we're able to access other app's internal storage directories using libsu when running on Android 11 or newer.
5 years ago
Alexander Bakker 884a1d07c4 Explicitly define which packages (apps) we want to query
This is necessary to be able to see if the app a user wants to import from is installed.
See: https://developer.android.com/about/versions/11/privacy/package-visibility
5 years ago
Alexander Bakker e9f6371885 Display the password reminder popup on top instead of the bottom
This prevents the Android's autofill popup from occluding our popup
5 years ago
Alexander Bakker 6a5323b12b Make the Google Authenticator Protobuf parser more complete
I don't think Google Authenticator actually currently supports any of these
extra digit/algorithm options, but they're specified in the proto file, so we
should support them for completeness sake.
5 years ago
Alexander Bakker 735c086726 Release v1.4-beta2 5 years ago
Alexander Bakker 0b6da5a93c Prevent file provider name collision (for debug builds) 5 years ago
Alexander Bakker d24e1471a7 Release v1.4-beta1 5 years ago
Alexander Bakker 7ca072a29c Update translations from Crowdin 5 years ago
Alexander Bakker 0067c79dfa
Merge pull request #618 from alexbakker/backup-thread
Move the creation of exports/backups to a background thread
5 years ago
Alexander Bakker 4e198d2556 Move the creation of exports/backups to a background thread
This writes exports/backups to the cache directory first and then hands off to a
background thread to pipe the file to SAF. I'm cheating a bit, but it's the
easiest fix with our current architecture. In the future, we should skip the
first step by making VaultManager itself thread-safe.
5 years ago
Michael Schättgen f15a0018ef
Merge pull request #605 from alexbakker/highlight-on-add
After adding a new entry, scroll to it and highlight it
5 years ago
Alexander Bakker d121139676 After adding a new entry, scroll to it and highlight it 5 years ago
Jay bce0d2c044 "Tap to reveal": change min duration from 3 to 1 5 years ago
Michael Schättgen bf91917745
Merge pull request #604 from alexbakker/export-plain
Improve the export functionality in numerous ways
5 years ago
Michael Schättgen a91339de73
Merge pull request #603 from alexbakker/resize-qr-image
Resize images to a max res of 640x480 before scanning for QR codes
5 years ago
Michael Schättgen 5d9de7ac32
Merge pull request #602 from alexbakker/qr-multi-intent
Combine ACTION_PICK and ACTION_GET_CONTENT when selecting an image to scan
5 years ago
Alexander Bakker 5f2529ea33 Improve the export functionality in numerous ways
This patch improves the export functionality in the following ways:
1. Allow setting a password even if the Aegis vault is not encrypted
2. Display a scary warning when exporting an unencrypted vault
3. Support exporting to a Google Authenticator URI file
4. Option to use Android's share mechanism

<img src="https://alexbakker.me/u/375oh146vz.png" width="300" />
5 years ago
Alexander Bakker 69196ddbcc Display some help text in the importer selection dialog 5 years ago
Michael Schättgen e14a61dbf6 Add panic trigger which deletes vault
Add guardianproject fdroid signing key and minor review improvements

Add minor review fixes

Add panic trigger which deletes vault

Add guardianproject fdroid signing key and minor review improvements
5 years ago
Michael Schättgen e8f94968c9
Merge pull request #600 from alexbakker/fix-593
Strip " " and "-" when parsing secrets
5 years ago
Michael Schättgen 8b7e5d265b
Merge pull request #592 from alexbakker/update-deps
Update dependencies
5 years ago
Alexander Bakker 22a70ac626 Resize images to a max res of 640x480 before scanning for QR codes
I'm not sure why this works, but ZXing seems to have trouble with high
resolution images. For example, scanning a 4032x3024 image with a QR code in it
fails, but scanning a resized version of that exact same image works.
5 years ago
Alexander Bakker dd83b74251 Combine ACTION_PICK and ACTION_GET_CONTENT when selecting an image to scan
Also, only scan for QR codes, not all bar codes that ZXing supports.
5 years ago
Alexander Bakker 5a9da45a8e Strip " " and "-" when parsing secrets 5 years ago
Alexander Bakker cac13b082e Bump target SDK to 30 and update dependencies 5 years ago
orangenbaumblatt 33ff7da7af Show toast message if backup was created successfully 5 years ago
Alexander Bakker 01885e1fc6 Reset the PIN keyboard option when the password is changed
This fixes an issue where the PIN keyboard was shown after a password change,
regardless of whether it only contained digits or not.
5 years ago
Michael Schättgen 52d2713482
Merge pull request #564 from alexbakker/improve-auto-lock
Improve auto lock and make it more customizable
5 years ago
Alexander Bakker d875cb6baa Improve auto lock and make it more customizable
This patch makes the auto lock option more customizable. Users can now choose a
combination of the following: Locking Aegis when
- The back button is pressed
- The app is minimized
- The device is locked

<img src="https://alexbakker.me/u/rlj4y2u8pk.png" width="300">
5 years ago
Michael Schättgen 31d382d6ad Minor color improvements for dark themes 5 years ago
Alexander Bakker 141f491ca7
Merge pull request #571 from michaelschattgen/feature/wipe-entries
Add checkbox dialog to wipe vault before import
5 years ago
Michael Schättgen c0bbe50996
Merge pull request #572 from alexbakker/fix-159
Prevent a crash on rotation while a ProgressDialogTask is still running
5 years ago
Michael Schättgen 875c752f78
Merge pull request #570 from alexbakker/fix-double-add-crash
Prevent a crash caused by adding the same entry to the vault twice
5 years ago
Michael Schättgen 1d00a2d8d6
Merge pull request #569 from alexbakker/slot-tests
Add tests for the Slot classes
5 years ago
Alexander Bakker bb2716f640 Prevent a crash on rotation while a ProgressDialogTask is still running
This patch ensures ProgressDialogs are dismissed when the ON_PAUSE event is fired.
5 years ago
Michael Schättgen 0f6b0dddbe Add checkbox dialog to wipe vault before import
Only show dialog when vault contains entries

Add improvements from review
5 years ago
Alexander Bakker d43e5e04c7 Prevent a crash caused by adding the same entry to the vault twice
This could happen in rare cases where writing the vault to disk failed.
5 years ago
Alexander Bakker 4c86e154c1 Add tests for the Slot classes 5 years ago
Alexander Bakker a45c834b9c Add UI tests for deep links 5 years ago
Alexander Bakker b746ca0c6e Ignore deep link intents if the given URI is null 5 years ago
Alexander Bakker 7d38bc9b71
Merge pull request #567 from michaelschattgen/feature/group-manager-improvement
Add empty state for GroupManagerActivity
5 years ago
Alexander Bakker 9557b60c93
Merge pull request #566 from michaelschattgen/feature/fix-fab
Fix hidden FAB when list changes
5 years ago
Michael Schättgen 227b5fd87c Improve GroupManagerActivity 5 years ago
Michael Schättgen 7d063104dd Fix hidden FAB when list changes 5 years ago
Michael Schättgen c03d00695d
Merge pull request #563 from alexbakker/fix-lint-errors
Replace use of android:tint with app:tint to fix lint errors
5 years ago
Michael Schättgen 171c774b21
Merge pull request #562 from alexbakker/activity-test-rule
Don't use deprecated ActivityTestRule in UI tests
5 years ago
Alexander Bakker 97944aac88 Replace use of android:tint with app:tint to fix lint errors 5 years ago
Alexander Bakker 83c1914ddc Don't use deprecated ActivityTestRule in UI tests 5 years ago
Alexander Bakker d660fbc6d1 Update Gradle and dependencies 5 years ago
Alexander Bakker 35b5ce9d17 Release v1.3 5 years ago
Alexander Bakker 762fb9bccd Update translations from Crowdin 5 years ago
Alexander Bakker c3d38c18a3 Update the list of licenses of our dependencies 5 years ago
Alexander Bakker 28fcd68b72 Convert pref_backups_versions_summary to a plurals definition 5 years ago
Michael Schättgen 9bbc2886c2
Merge pull request #503 from shihern/master
Improve usability of drag-and-drop feature
5 years ago
Connor Lim 5886462d2c Improve usability of drag-and-drop feature 5 years ago
Alexander Bakker 233eeb6aa1 Replace some string definitions with plurals definitions 5 years ago
Alexander Bakker e5d162be9b Update translations (from Crowdin) 5 years ago
Isaac Maier 59e8c23a01 Grammar fix (setup -> set up) 5 years ago
Alexander Bakker 9e4313e138 Release v1.3-beta2 5 years ago
Alexander Bakker 02e01723b2 Invert PIN keyboard preference if statement 5 years ago
Alexander Bakker 874f5e9058 Remove merge conflict marker from styles.xml 5 years ago
Alexander Bakker 7518408554 Release v1.3-beta1 5 years ago
Alexander Bakker 0e78fd9652 Replace AppIntro with a new custom intro
This removes the dependency on AppIntro and replaces it with our own custom
intro implementation, backed by ViewPager2. We're doing this because we want a
more reliable and customizable onboarding for Aegis.

I've kept the design mostly the same as it was before, but tried to achieve a
bit of a cleaner look:

<img src="https://alexbakker.me/u/vsr3ahpjt6.png" width="200"> <img
src="https://alexbakker.me/u/efqid2ixly.png" width="200"> <img
src="https://alexbakker.me/u/oehmjm0rn9.png" width="200">
5 years ago
Michael Schättgen 9d44d6abb2
Merge pull request #540 from alexbakker/fix-nav-bar
Set the correct navigation bar color pre API 27
5 years ago
Michael Schättgen 42c308bc8f
Merge pull request #545 from alexbakker/clarify-pass-reminder
Rephrase the password reminder message to be a bit clearer
5 years ago
Michael Schättgen 20fb531f91
Merge pull request #526 from alexbakker/localize-everything
Make all remaining hardcoded strings translatable
5 years ago
Michael Schättgen b8b3da4f85
Merge pull request #537 from alexbakker/support-proprietary-authy
Support importing proprietary tokens from Authy
5 years ago
Michael Schättgen 7e403c2af6
Merge pull request #529 from alexbakker/fix-bioprompt-mixup
Fix behavior of AuthActivity under certain conditions
5 years ago
Michael Schättgen be0529a0c8
Merge pull request #527 from alexbakker/fix-131
Automatically focus the EditText when showing text/password dialogs
5 years ago
Alexander Bakker 9c5f136f5b Make all remaining hardcoded strings translatable
I'm pretty sure I got all of them, but it's possible the linter missed some.
5 years ago
Michael Schättgen 8c34ce8f38
Merge pull request #525 from alexbakker/icon-multi-intent
Combine ACTION_PICK and ACTION_GET_CONTENT when selecting an icon
5 years ago
Michael Schättgen 3cdf31f940
Merge pull request #519 from alexbakker/theme-fixes
Fix two minor issues in themes
5 years ago
Alexander Bakker 7059f3be74
Merge pull request #510 from michaelschattgen/feature/pin-keyboard
Add ability to enable PIN keyboard
5 years ago
Michael Schättgen 0c0e8c0d66 Add ability to enable PIN keyboard
Review fixes

Fix line
5 years ago
Alexander Bakker 06fd77b5f0 Rephrase the password reminder message to be a bit clearer 5 years ago
Alexander Bakker 9121922ef2 Set the correct navigation bar color pre API 27
Not very pretty, but I don't know of a better way.
5 years ago
Alexander Bakker 34888767ed Support importing proprietary tokens from Authy 5 years ago
linsui 61f2e6e020 Update Simplified Chinese Translation 5 years ago
Alexander Bakker ba3e6203ec Fix behavior of AuthActivity under certain conditions
- Properly use 'inhibitBioPrompt'
- Don't show the biometric prompt when a password reminder is needed
5 years ago
Alexander Bakker 906d1b453a Automatically focus the EditText when showing text/password dialogs 5 years ago
Alexander Bakker a9ccf412e7 Combine ACTION_PICK and ACTION_GET_CONTENT when selecting an icon 5 years ago
Alexander Bakker 21b588dc8b Add Arabic to the language list and sort it alphabetically 5 years ago
Alexander Bakker 90e5003418
Merge pull request #517 from nourserry/ar
Introducing Arabic language
5 years ago
Alexander Bakker f8cf87aae9
Merge pull request #513 from LucasVhc/portuguese-translation
Add brazilian portuguese translation
5 years ago
Sage Pointer a25dbc5cdd Add desugaring for Android < 7 compatibility 5 years ago
Alexander Bakker 2aa88a2921 Fix two minor issues in themes
- Neatly map configured themes to styles
- Make the dark NoActionBar themes inherit from Dark/AMOLED
5 years ago
Nour Serry 7fedb5ab83 Introducing Arabic language
Intitial Arabic language support.
All strings translated
5 years ago
Alexander Bakker 0eb9a25687 Add changelog of 1.2.1 and bump versionCode 5 years ago
Lucas 330e88c270 Add brazilian portuguese translation 5 years ago
Alexander Bakker de3d0d8515 Fix an issue where the progress bar refresher ran in a tight loop
If the animator scale setting is set to 0, the progress bar refresher would run
in a tight loop. This issue was introduced by
93cc945a2c and caused the UI tests to fail.
5 years ago
Alexander Bakker 57ef52d6ff
Merge pull request #502 from alexbakker/double-activity-guard
Guard against starting multiple instances of IntroActivity or AuthActivity
5 years ago
Alexander Bakker 189bd0d749 Guard against starting multiple instances of IntroActivity or AuthActivity
Apparently onResume of MainActivity is sometimes called even if it's not the top
level activity, causing IntroActivity or AuthActivity to be launched twice. This
patch (uglily) prevents that from happening.
5 years ago
Michael Schättgen 4ef8d9e826
Merge pull request #504 from alexbakker/fix-zero-div
Fix division by zero when calculating progress for large periods
5 years ago
Michael Schättgen 7bb8d28b3b
Merge pull request #499 from alexbakker/fix-bioprompt-some-more
Improve the lifecycle handling of BiometricPrompt some more
5 years ago
Michael Schättgen 94ebc08097
Merge pull request #498 from alexbakker/slot-null
Allow changing the password if no password slot is present
5 years ago
Michael Schättgen a3e14c57e4
Merge pull request #493 from alexbakker/fix-export-filename-again
Fix export filename (again)
5 years ago
Michael Schättgen b55bdf8f04
Merge pull request #489 from alexbakker/fix-keystore-catch
Fix catching ProviderException with KeyStoreException as the cause
5 years ago
Michael Schättgen 3e0a97dbe0
Merge pull request #488 from alexbakker/explain-backups
Clarify that backups are automatic in the preference summary
5 years ago
Michael Schättgen 9b13a56002
Merge pull request #487 from alexbakker/transfer-entry-buttons
Make the buttons in TransferEntriesActivity behave like actual buttons
5 years ago
Michael Schättgen 32c145b02d
Merge pull request #481 from alexbakker/no-singletask
Unset "singleTask" as the launchMode for MainActivity
5 years ago
Michael Schättgen 25b359a136
Merge pull request #474 from alexbakker/fix-sql-import
Fix the flakiness of importing from SQLite databases
5 years ago
Michael Schättgen 0eb338a0bf
Merge pull request #464 from alexbakker/ui-tests
Add initial set of UI tests
5 years ago
Michael Schättgen b59a29cff4
Merge pull request #462 from alexbakker/better-rtl
Improve RTL support
5 years ago
Michael Schättgen c252e77c5b
Merge pull request #461 from alexbakker/better-scanner
Replace barcodescanner with CameraX and ZXing
5 years ago
Alexander Bakker 44ca712186 Improve RTL support
This addresses most of the issues reported in #418. The intro is still broken, however.

<img src="https://alexbakker.me/u/m9wfihdw4a.png" width="300"/>
5 years ago
Alexander Bakker 93cc945a2c Fix division by zero when calculating progress for large periods 5 years ago
Alexander Bakker 68d6c39dd4 Improve the lifecycle handling of BiometricPrompt some more
This is a different take on what db681273e6 was
trying to accomplish, with the additional benefit that the prompt will now no
longer be shown on auto-lock.
5 years ago
Alexander Bakker 3a5a185940 Allow changing the password if no password slot is present 5 years ago
Alexander Bakker 3d351ece05 Fix export filename (again)
I managed to clobber the filename of exports with fec2f3ff94.
5 years ago
Alexander Bakker c65ed16790 Replace barcodescanner with CameraX and ZXing
This removes the dependency on ``me.dm7.barcodescanner:zxing`` and replaces it
with our own QR code scanner implementation using CameraX and ZXing. The main
reason for this change is to hopefully get better compatibility with obscure
devices. The barcodescanner library we were previously using seems unmaintained,
while Google is apparently putting a lot of effort into CameraX.

ScannerActivity has been almost entirely rewritten, but the functionality is
exactly the same as before.
5 years ago
Alexander Bakker 7c147befcb Fix catching ProviderException with KeyStoreException as the cause
We're looking for android.security.KeyStoreException as the cause of
ProviderException, not java.security.KeyStoreException. Unfortunately this is a
hidden class, so all we can do is check the class name.
5 years ago
Vstory df0c6b5fa8 Update Chinese translation 5 years ago
Alexander Bakker 2ae7ec33f1 Clarify that backups are automatic in the preference summary 5 years ago
Alexander Bakker b5fa6192b3 Make the buttons in TransferEntriesActivity behave like actual buttons 5 years ago
Michael Schättgen 721a3d2d27 Change hidden text to the 'Black circle' character 5 years ago
Alexander Bakker bf9173301c
Merge pull request #442 from orangenbaumblatt/feature/password-strength
Add password strength meter
5 years ago
Alexander Bakker e2cf6a40cb Unset "singleTask" as the launchMode for MainActivity
We don't actually need this, and I have a feeling that it may be causing some of
the inexplicable crashes we're seeing in the Play Console. For example:
apparently the app sometimes gets itself into a state where the vault is
unlocked, but the user is still shown AuthActivity (possibly due to it being
launched twice). I can't prove that "singleTask" causes this, as I can't
reproduce the issue on my device or an emulator, but it's the only odd thing we
have in our activity lifecycle handling.

Test plan:
- Go through the intro, add an entry, change some settings, etc
- See if the app shortcuts still work. Scenarios:
    - The app is terminated.
    - The app is locked.
    - MainActivity is open.
    - Some other activity is open.
- See if auto-locking still works. Scenarios:
    - The app is locked.
    - MainActivity is open.
    - Some other activity is open.
- Turn on "Don't keep activities" in developer options and repeat the above
  steps.
5 years ago
Alexander Bakker 291fd5427b Let Android handle the lifecycle of BiometricPrompt
We previously stopped/started the biometric prompt every time in
onPause/onResume, but that's apparently not necessary (and discouraged according
to the documentation). This caused issues where the prompt would get stuck on
some devices. While working on this I ran into another issue where AuthActivity
was closed and reopened for no reason after rotation of the device, compounding
the issue. This patch also fixes that.
5 years ago
Alexander Bakker 362f1da11f Fix the flakiness of importing from SQLite databases
This patch ensures that we also copy over any files related to the SQLite
database (databases-shm, databases-wal, databases-journal) when copying it from
an app's internal storage.
5 years ago
orangenbaumblatt cc33c63501 Add password strength meter
String refactor


Layout improvements


Layout improvements


Fixes after rebuild
5 years ago
Alexander Bakker 6e54497492 Release v1.2 5 years ago
Michael Schättgen 7cd48f1c09 Fix menu item title for transfer 5 years ago
Michael Schättgen 4c3d277fce
Merge pull request #465 from alexbakker/backup-error-bar
Improve backup error handling and frequency
5 years ago
Alexander Bakker 0b83546db7 Fix an issue where codes were not refreshed
Sometimes I get so enthusiastic when refactoring that I accidentally remove too
much. This issue was introduced in 98a38b03e4
5 years ago
Alexander Bakker 08ab8237e7 Improve backup error handling and frequency
This patch improves our backup functionality in a number of ways:
- Only backup the vault when important changes are made, not when the order of
  entries is changed, for instance.
- Don't bubble up backup errors when saving the vault.
- Instead, show an error bar in the main view if the most recent backup attempt
  failed.

<img src="https://alexbakker.me/u/kbhhj2hcgx.png" width="300" />

Clicking on the error bar will take the user to the backup settings.
5 years ago
Alexander Bakker 39ecfba3e4 Add initial set of UI tests
This patch adds an initial set of UI tests for Aegis built using Espresso. It
covers a fair bit of the essential functionality of the app, but there are lots
more tests we could add later on.

This also reconfigures our Travis CI build manifest to run the tests on API 21,
23, 27 and 28 emulators. It was a real pain to get this to work well, but let's
hope it's stable now.

I had to downgrade ``com.google.android.material`` to 1.0.0, because 1.1.0
introduced an issue where the test would hang.
5 years ago
Alexander Bakker ae5502b650 Release v1.2-beta5 5 years ago
Michael Schättgen 821d0b5147
Merge pull request #460 from alexbakker/fix-intro-back
Disable wizard mode when the done slide of the intro is reached
5 years ago
Alexander Bakker b4ed1f35ce Disable wizard mode when the done slide of the intro is reached
This fixes a number of issues that can happen when navigating back to previous
slides, by disabling back navigation entirely. One such issue is that when
navigating back from the last slide, one would always land on the
password/biometrics setup slide, even if "none" was selected on the security
picker slide.
5 years ago
Alexander Bakker a468342187
Merge pull request #455 from michaelschattgen/feature/lock-screen
Add lockscreen overhaul
5 years ago
Michael Schättgen 4f6035dc49 Add lockscreen overhaul 5 years ago
Michael Schättgen 506adcf81f
Merge pull request #459 from alexbakker/fix-371
Don't allow drag and drop if the entry list is filtered in any way
5 years ago
Michael Schättgen 49c8c2d57d
Merge pull request #458 from alexbakker/respect-anim-settings
Respect the global animator duration scale setting
5 years ago
Alexander Bakker 770f5f9724 Rename the security slides of the intro
These names make it a bit more clear what each slide is for
5 years ago
Alexander Bakker 992dcd651b Don't allow drag and drop if the entry list is filtered in any way 5 years ago
Alexander Bakker 98a38b03e4 Respect the global animator duration scale setting
This changes the way the TOTP progress bar works, so that we can respect the
global animator duration scale setting.
5 years ago
Michael Schättgen 626995ec91
Merge pull request #445 from alexbakker/fix-reminder
Fix an issue where the password reminder popup was not shown
5 years ago
Michael Schättgen 00b0c8deaf
Merge pull request #439 from alexbakker/copy-on-tap-option
Add an option to copy tokens on tap (and disable it by default)
5 years ago
Alexander Bakker b81ec0f073 Fix importing andOTP backups with more than 10000 PBKDF iterations
These larger numbers of iterations cause the key derivation process to take
longer, so I also moved that task to the background. andOTP now also has a
proper "issuer" field, so we make use of that as well.

Also fixes an issue where padded base32 could not be decoded. This issue is only
present for the andOTP importer as far as I know, so that's why that change is
included here.
5 years ago
Alexander Bakker d49d42254b Add an option to copy tokens on tap (and disable it by default) 5 years ago
Michael Schättgen 95d5b4afa1
Merge pull request #437 from alexbakker/fix-copy-anim
Fix issue where the copy animation continued after view holder rebind
5 years ago
Alexander Bakker cca8c9bdf7
Merge pull request #428 from michaelschattgen/feature/qr-transfer
Add ability to transfer tokens with qr codes
5 years ago
Michael Schättgen 4e00191039 Add ability to transfer tokens with qr codes
Add minor improvements

Add label to activity
5 years ago
Michael Schättgen dd09595866
Merge pull request #435 from alexbakker/fix-363
Don't add new entries to the view if restoring from instance state
5 years ago
Michael Schättgen b27bfc3fa9
Merge pull request #432 from alexbakker/fix-252
Improve icon editing flow
5 years ago
Michael Schättgen c6a9716d16
Merge pull request #431 from alexbakker/update-deps-again
Update dependencies and sort them alphabetically
5 years ago
Michael Schättgen acd7a54ee9
Merge pull request #430 from orangenbaumblatt/feature/improve-action-bar-consistency
Improve Action Bar consistency for Settings and About
5 years ago
lotusexpeditor 70fedc53b9
Add Turkish Translation 5 years ago
Alexander Bakker bed8c9172d Release v1.2-beta4 5 years ago
Michael Schättgen ef1ac3e5e9
Merge pull request #441 from alexbakker/fix-lock-crash
Fix crash that would occur when locking the screen with a locked vault
5 years ago
Alexander Bakker cc163f952f Fix an issue where the password reminder popup was not shown
We no longer create BiometricPrompt prematurely, but forgot to adjust the check for the password reminder.
5 years ago
Alexander Bakker 56d7f0ef7b Fix an issue where backups where enabled when exporting the vault
This is really stupid.
5 years ago
Alexander Bakker fbd6a5931e Fix crash that would occur when locking the screen with a locked vault 5 years ago
Alexander Bakker 66dd3561cf Release v1.2-beta3 5 years ago
Alexander Bakker 92b6738ff4 Fix issue where VaultManager was erroneously initialized with creds in intro
Also fixes another issue where previously, if a user made it to the last intro
slide and then navigated back to change the security options, any changes would
be ignored.
5 years ago
Alexander Bakker 63f57667ba Fix issue where the copy animation continued after view holder rebind 5 years ago
Alexander Bakker 34718a7b89 Don't add new entries to the view if restoring from instance state
Also addresses other potential issues with the same cause. Fixes #363.
5 years ago
orangenbaumblatt 6ac91e6cf3 Improve Action Bar consistency for Settings and About
Change Group Manager back icon
5 years ago
Alexander Bakker a39d6ab346 Improve icon editing flow
This improves the entry icon editing flow as suggested in #252:
- Add an "Edit icon" menu item
- Save the icon even if the checkmark was not clicked
- Exit icon edit mode with the back button

Close #252.
5 years ago
Alexander Bakker 91d89670d2 Update dependencies and sort them alphabetically 5 years ago
Alexander Bakker 6a2992530e Release v1.2-beta2 5 years ago
Alexander Bakker 1f839a886d Don't replace the Bouncy Castle security provider
We only use Bouncy Castle for scrypt, so replacing the security provider was a
nice to have. It's causing issues because Proguard removes Bouncy Castle
classes. As we just released a beta, this is a quick fix and we may revisit this
later.
5 years ago
Alexander Bakker 91f9a6756a Release v1.2-beta1 5 years ago
Michael Schättgen ffa31c7aa3 Update translations 5 years ago
Alexander Bakker 3c887d8392 Replace SpongyCastle with BouncyCastle
SpongyCastle is a fork of BouncyCastle. We originally used this fork to 1) have
access to scrypt and 2) prevent a package name collision with the bundled
BouncyCastle. We don't actually need to use the fork anymore, because the
package name of the bundled BouncyCastle was changed in Android. SpongyCastle
has also gotten quite outdated in recent years.

The built-in version of BouncyCastle is replaced with the one bundled with the
app at runtime, so that we have a recent version even on older Android versions.

This also updates Gradle and the Gradle Android plugin, to fix a build error I
was running into when I added the dependency to BouncyCastle.
5 years ago
Michael Schättgen b4d2b6b113
Merge pull request #410 from alexbakker/fix-0-byte-export
Reuse existing PreferencesFragment when restoring from instance state
5 years ago
Michael Schättgen fe40c4b952
Merge pull request #407 from alexbakker/auth-plus-zip4j
Import from ZIP for the Authenticator Plus, instead of SQLite databases
5 years ago
Alexander Bakker 9319c74932
Merge pull request #403 from michaelschattgen/feature/card-entry-overhaul
Add minor card entry layout overhaul
5 years ago
Michael Schättgen 1a24f62074 Increase password reminder period to 30 days 5 years ago
Alexander Bakker 1824d38f75 Import from ZIP for the Authenticator Plus, instead of SQLite databases 5 years ago
Alexander Bakker ccc990f854 Reuse existing PreferencesFragment when restoring from instance state
This fixes an issue where the existing PreferencesFragment was discarded when
restoring PreferencesActivity from instance state. This issue caused the
PreferencesFragment to no longer receive activity results. Most notably, this
resulted in 0 byte vault files being created when exporting the vault.
5 years ago
Alexander Bakker 56bde0e19b Add support for importing from the new Google Authenticator export QR codes 5 years ago
Alexander Bakker 49a7fda932 Display a warning if automatic time sync is not enabled
This'll display a warning to users who don't have automatic time synchronization
enabled on their device. Aegis will try to take the user to the right settings
menu if they tap "Yes". Users also have the option to silence the warning.

[<img width=300 src="https://alexbakker.me/u/jf1o8087lr.png">](https://alexbakker.me/u/jf1o8087lr.png)
5 years ago
Michael Schättgen 3a85a05078 Add minor card entry layout overhaul 5 years ago
Alexander Bakker cda78c56c5 Improve overall exception handling and error feedback to the user
The main goals of this patch are to:
- Improve the exception handling in Aegis and the way we present errors messages
  to the user when they occur.
- Write exception stack traces to the log in more places, so that the ADB logs
  we ask for from our users when reporting bugs become more useful.
- Reduce the amount of times we throw a RuntimeException, particularly when an
  Android Keystore operation fails.

Achieving the above goals ended up resulting in a very large refactor. The
intro and unlock flow of the app need to be retested entirely.
5 years ago
Michael Schättgen 499f930086
Merge pull request #400 from NotWoods/about-activity
Change license link color so it is legible on dark
5 years ago
Michael Schättgen 393b815409
Merge pull request #394 from alexbakker/update-appintro
Update AppIntro to 6.0.0
5 years ago
Michael Schättgen 984010dc7a
Merge pull request #392 from alexbakker/export-filename
Append a timestamp to the filename of exported vaults
5 years ago
Michael Schättgen 0bbc413423
Merge pull request #389 from alexbakker/edit-entry-fix
Write entries to the vault directly in EditEntryActivity
5 years ago
Michael Schättgen 98a90e3e1e
Merge pull request #388 from alexbakker/proguard
Minify and optimize the APK using ProGuard
5 years ago
Tiger Oakes 3ccbece822 Change license link color so it is legible on dark 5 years ago
Alexander Bakker 0f81233d4f Add the Hungarian translation to the settings menu 5 years ago
Alexander Bakker 301476ff5c Write entries to the vault directly in EditEntryActivity
This makes it so that EditEntryActivity directly saves entries to the vault,
instead of passing them back to MainActivity through an Intent first. This
prevents crashes that can occur when an entry has a large icon and the Bundle
inside the Intent becomes too large.

This is the first part of a series of patches I plan on submitting, where I try
to repair the damage done by my misguided obsession of only touching the global
state in certain places.
5 years ago
Balázs Meskó 842afe6745 Add Hungarian translation 5 years ago
Alexander Bakker bc5fa68de8 Update AppIntro to 6.0.0 5 years ago
Alexander Bakker fec2f3ff94 Append a timestamp to the filename of exported vaults
Close #297
5 years ago
Alexander Bakker 77718809ef Minify and optimize the APK using ProGuard
This enables some minification and optimization options to shrink the size of
our APK. A release APK would previously be 12 MB in size, but would now be 8.2
MB.

To test, check if *all* of the functionality of the app still works,
particularly parts that refer to dependencies. You'll know if ProGuard broke
something when the app crashes with a ``ClassNotFoundException`` or similar
exception. I think I've covered all of the cases where ProGuard removed too much
in the rule file.

Also, I was curious why our APK had gotten so large to begin with. I did some
digging and found that this is caused by the SQLCipher dependency. The APK
shrinks down to 2.7 MB without it! We should consider whether having support for
importing from Authenticator Plus is worth the extra 5.5 MB in size.
5 years ago
Michael Schättgen 7773a51f2a Use most frequent period to show progress 5 years ago
Michael Schättgen f68badb659
Merge pull request #377 from alexbakker/fix-weird-reminder-crash
Show the password reminder popup after the window has been attached
5 years ago
Michael Schättgen 4ea8501fa9
Merge pull request #369 from Timbals/master
automatically adapt to system theme
5 years ago