Commit graph

164 commits

Author SHA1 Message Date
Michael Schättgen
b4d2b6b113
Merge pull request #410 from alexbakker/fix-0-byte-export
Reuse existing PreferencesFragment when restoring from instance state
2020-05-16 12:27:52 +02:00
Alexander Bakker
9319c74932
Merge pull request #403 from michaelschattgen/feature/card-entry-overhaul
Add minor card entry layout overhaul
2020-05-16 12:20:46 +02:00
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.
2020-05-11 17:15:54 +02:00
Alexander Bakker
56bde0e19b Add support for importing from the new Google Authenticator export QR codes 2020-05-11 14:02:59 +02:00
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)
2020-05-09 18:14:10 +02:00
Michael Schättgen
3a85a05078 Add minor card entry layout overhaul 2020-05-09 16:55:27 +02:00
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.
2020-05-09 16:12:38 +02:00
Michael Schättgen
499f930086
Merge pull request #400 from NotWoods/about-activity
Change license link color so it is legible on dark
2020-05-09 14:53:54 +02:00
Michael Schättgen
393b815409
Merge pull request #394 from alexbakker/update-appintro
Update AppIntro to 6.0.0
2020-05-09 14:42:23 +02:00
Michael Schättgen
984010dc7a
Merge pull request #392 from alexbakker/export-filename
Append a timestamp to the filename of exported vaults
2020-05-09 14:39:18 +02:00
Tiger Oakes
3ccbece822 Change license link color so it is legible on dark 2020-05-06 17:48:48 -07:00
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.
2020-05-06 15:07:19 +02:00
Alexander Bakker
bc5fa68de8 Update AppIntro to 6.0.0 2020-05-05 19:14:10 +02:00
Alexander Bakker
fec2f3ff94 Append a timestamp to the filename of exported vaults
Close #297
2020-05-03 18:30:59 +02:00
Michael Schättgen
7773a51f2a Use most frequent period to show progress 2020-04-27 02:29:10 +02:00
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
2020-04-26 23:33:10 +02:00
Michael Schättgen
4ea8501fa9
Merge pull request #369 from Timbals/master
automatically adapt to system theme
2020-04-26 19:59:39 +02:00
Alexander Bakker
faf24e15bd Allow password reminder popup dismissal by typing
Close #379
2020-04-26 11:12:25 +02:00
Maxim Baz
ad05e375f1
Show account name only if it's set 2020-04-25 12:39:06 +02:00
Alexander Bakker
8b30d451a4 Show the password reminder popup after the window has been attached
I noticed a strange crash in the Play Console:

```
android.view.WindowManager$BadTokenException:
  at android.view.ViewRootImpl.setView (ViewRootImpl.java:828)
  at android.view.WindowManagerGlobal.addView (WindowManagerGlobal.jav>
  at android.view.WindowManagerImpl.addView (WindowManagerImpl.java:93)
  at android.widget.PopupWindow.invokePopup (PopupWindow.java:1434)
  at android.widget.PopupWindow.showAsDropDown (PopupWindow.java:1284)
  at android.widget.PopupWindow.showAsDropDown (PopupWindow.java:1240)
  at android.widget.PopupWindow.showAsDropDown (PopupWindow.java:1219)
  at com.beemdevelopment.aegis.ui.AuthActivity.lambda$showPasswordRemi>
  at com.beemdevelopment.aegis.ui.-$$Lambda$AuthActivity$WWHxRKllBPcyH>
  at android.os.Handler.handleCallback (Handler.java:873)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loop (Looper.java:220)
  at android.app.ActivityThread.main (ActivityThread.java:6929)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (Runt>
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:870)
```

I can't reproduce this on my device, and we haven't received any reports from
users, but it would be pretty bad if Aegis crashes on some devices when showing
the password reminder popup. This patch is an attempt to fix that (see:
https://stackoverflow.com/a/33809860/12972657).
2020-04-25 12:21:34 +02:00
Lukas Marchesi
00e2e90aa7 Add setting to change from 3 digit group size to 2 digit group size 2020-04-23 23:19:38 +02:00
Tim Balsfulland
f37d70b58e
automatically adapt to system theme
added two new theme options:
SYSTEM: dynamically switches between light and dark
SYSTEM_AMOLED: dynamically switches between light and amoled

reversed workaround for amoled themed preferences
launch screen now always follows the system theme
2020-04-20 15:29:41 +02:00
Michael Schättgen
ad58960831 Fix bug where multiselect triggers copy animation
Fix multiselect
2020-04-19 14:18:57 +02:00
orangenbaumblatt
7ce74d378f
Added selection indicator in icon slot (#344)
Changed selection color for black theme


Changed indicator color to black secondary


Fix indicator flickering when scrolling


Applied patch


Fix unsharp selection icon


Add selection indicators to small and compact view
2020-04-18 18:54:37 +02:00
Michael Schättgen
c578543e18
Merge pull request #341 from alexbakker/backups
Add support for backups
2020-04-18 13:44:44 +02:00
Alexander Bakker
d247750e62
Merge pull request #323 from michaelschattgen/feature-copied
Improve method to notify users on copy
2020-04-18 13:42:12 +02:00
Alexander Bakker
4a69e9efb4 Add support for backups
Allow users to select a folder where automatic backups will be created. This
also bumps minSdkVersion to 21.
2020-04-18 13:38:25 +02:00
Michael Schättgen
b43bac37db Improve method to notify users on copy
Add minor code improvements
2020-04-18 13:17:08 +02:00
Alexander Bakker
0a4a933a2a Rename "profile" text to "entry" 2020-04-11 14:37:28 +02:00
Alexander Bakker
3d51b84188
Merge pull request #325 from michaelschattgen/fix-confirm-password
Improve confirm password functionality
2020-03-04 10:25:29 +01:00
Michael Schättgen
d39e3d7b90 Improve confirm password functionality 2020-03-03 23:43:33 +01:00
Michael Schättgen
bd66659b92 Set confirmation not required on BiometricPrompt 2020-03-03 22:14:53 +01:00
Michael Schättgen
2519633265
Merge pull request #318 from alexbakker/fix-bna
Make the parsing logic of the QR code URI more robust
2020-02-24 21:31:37 +01:00
Alexander Bakker
2a4bb902df Add support for importing encrypted and manually entered tokens from Authy 2020-02-19 12:02:17 +01:00
Alexander Bakker
2bf3546971 Make the parsing logic of the QR code URI more robust 2020-02-19 11:17:16 +01:00
Alexander Bakker
10ac1af6b0 Replace implementations of Base16, Base32 and Base64 with Guava
I kept the classes in the encoding package and turned them into wrappers for
Guava. I also changed the functions in the Base32 class to take and return
strings insteads if character arrays.
2020-02-01 14:11:55 +01:00
Alexander Bakker
c52e60b410
Merge pull request #288 from michaelschattgen/set-locale
Fix setting locale on 7.0
2020-01-20 21:35:04 +01:00
Michael Schättgen
8020792024 Fix setting locale on 7.0 2020-01-20 21:01:17 +01:00
Michael Schättgen
837a27f9d7
Merge pull request #293 from alexbakker/password-reminder
Remind users who use biometrics to enter their password periodically
2020-01-20 11:56:49 -08:00
Alexander Bakker
bbea6c2ae4 Fix #295 2020-01-19 23:00:03 +01:00
Alexander Bakker
fa799e9542 Remind users who use biometrics to enter their password periodically
Instead of showing the reminder after x unlocks, I decided to show the reminder
2 weeks after the vault was last unlocked with the password. Let me know if you
agree with that.

![](https://alexbakker.me/u/115z6be7go.png)
2020-01-19 15:53:04 +01:00
Michael Schättgen
dc6bf3795a
Merge pull request #286 from alexbakker/intro-text
Add explanation for the security options
2020-01-12 07:58:17 -08:00
Alexander Bakker
85c358043d Add explanation for the security options
This adds some extra explanation of the security options to the intro, as well
as a warning when setting a password.

[<img width=200 src="https://alexbakker.me/u/jipc03u3hx.png">](https://alexbakker.me/u/jipc03u3hx.png)
[<img width=200 src="https://alexbakker.me/u/uw9nbsd95s.png">](https://alexbakker.me/u/uw9nbsd95s.png)
[<img width=200 src="https://alexbakker.me/u/mdoe5m8c3o.png">](https://alexbakker.me/u/mdoe5m8c3o.png)
2020-01-11 13:57:08 +01:00
Alexander Bakker
ab8f01284a Remove EXTERNAL_STORAGE permissions
As we switched to the SAF, we don't need these permissions anymore.
2020-01-11 12:59:09 +01:00
Alexander Bakker
97d824d779
Merge pull request #279 from michaelschattgen/feature/multi-select
Add ability to select multiple entries
2020-01-05 11:42:36 +01:00
Alexander Bakker
1ede56e137 Rewrite the export functionality to use the Storage Access Framework
We noticed after the v1.1 release that we need to switch our external storage
access code over to use the Storage Access Framework. The export functionality
was the only piece of code that still used the deprecated method and this patch
addresses that.

The Storage Access Framework is a little annoying to work with, but I don't
think it'll be too painful for our usecase. This switch comes with some nice
benefits for users as well. Users are now able to select a custom storage
location, which can be local or in the cloud.

This also removes ``requestLegacyExternalStorage`` from the manifest, as we
don't need it anymore.
2020-01-04 22:09:13 +01:00
Michael Schättgen
f8c106bcb9 Add ability to select multiple entries
Improve code and add select listeners
2020-01-04 21:15:17 +01:00
Michael Schättgen
fc96e7919a Replace changelog css colors 2019-12-26 23:25:05 +01:00
Michael Schättgen
08b80d2e72 Fix build 2019-12-26 22:17:32 +01:00
Michael Schättgen
051cf9370b
Merge pull request #257 from alexbakker/action-copy
Add a 'copy' button to the entry action mode menu in MainActivity
2019-12-26 22:14:07 +01:00