Commit Graph

903 Commits (v2.0.3-release)

Author SHA1 Message Date
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
Alexander Bakker faf24e15bd Allow password reminder popup dismissal by typing
Close #379
5 years ago
Maxim Baz ad05e375f1
Show account name only if it's set 5 years ago
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).
5 years ago
Lukas Marchesi 00e2e90aa7 Add setting to change from 3 digit group size to 2 digit group size 5 years ago
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
5 years ago
Michael Schättgen ad58960831 Fix bug where multiselect triggers copy animation
Fix multiselect
5 years ago
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
5 years ago
Michael Schättgen 8c0ba2dd1b
Merge pull request #366 from alexbakker/steam-otpauth
Add support for otpauth://steam URI's
5 years ago
Michael Schättgen 016c64610e
Merge pull request #359 from alexbakker/othauth-importer
Add support for importing a plain text Google Authenticator URI file
5 years ago
Michael Schättgen c578543e18
Merge pull request #341 from alexbakker/backups
Add support for backups
5 years ago
Alexander Bakker d247750e62
Merge pull request #323 from michaelschattgen/feature-copied
Improve method to notify users on copy
5 years ago
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.
5 years ago
Michael Schättgen b43bac37db Improve method to notify users on copy
Add minor code improvements
5 years ago
Alexander Bakker 0c7b41747e Add support for otpauth://steam URI's
Close #343
5 years ago
Alexander Bakker 8fda6937a5 Add support for importing a plain text Google Authenticator URI file
This is the "standard" format discussed in #138.
5 years ago
Alexander Bakker 0a4a933a2a Rename "profile" text to "entry" 5 years ago
Vstory 866466d158
Update Chinese translation (#337)
* Update Chinese translation

* Remove extra characters
5 years ago
orangenbaumblatt 6885463b11 Keep groups when importing from Authenticator Plus 5 years ago
Alexander Bakker a273fdaa1d
Merge pull request #326 from andreysaksonov/master
Update Russian localization for new strings
5 years ago
orangenbaumblatt dc0f7c4668 Added Database Import from Authenticator Plus
Added copyright notice


Rearrange item position in import dialog


Refactor SqlImportHelper to support SQLCipher


Improved stream handling
5 years ago
Andrey Saksonov ba7fe15a57
update Russian localization 5 years ago
Alexander Bakker 3d51b84188
Merge pull request #325 from michaelschattgen/fix-confirm-password
Improve confirm password functionality
5 years ago
Andrey Saksonov 9e355c8e52
update Russian localization 5 years ago
Andrey Saksonov 9ce0982191
update Russian localization 5 years ago
Andrey Saksonov f543802f9e
Merge remote-tracking branch 'upstream/master' 5 years ago
Andrey Saksonov 32aecadf75
update Russian localization 5 years ago
Michael Schättgen d39e3d7b90 Improve confirm password functionality 5 years ago
Michael Schättgen bd66659b92 Set confirmation not required on BiometricPrompt 5 years ago
Alexander Bakker 1a7a794dc9 Bump versionCode to 29
The APK released to the Play Store has versionCode set to 29 instead of 28,
because the update had to be resubmitted due to an erroneous rejection by
Google.
5 years ago
Michael Schättgen 2519633265
Merge pull request #318 from alexbakker/fix-bna
Make the parsing logic of the QR code URI more robust
5 years ago
Michael Schättgen e38121efee
Merge pull request #306 from alexbakker/atomic-file
Protect writes of the vault file against corruption with AtomicFile
5 years ago
h4waii 7e857b53a7
Update strings.xml 6 years ago
Michael Schättgen 73e1d72403
Merge pull request #305 from alexbakker/fix-authy
Add support for importing encrypted and manually entered tokens from Authy
6 years ago
Alexander Bakker 5731cccddc Fix build 6 years ago
Michael Schättgen 48d22fc06d
Merge pull request #304 from alexbakker/microsoft-auth
Add support for importing from Microsoft Authenticator
6 years ago
Alexander Bakker 2a4bb902df Add support for importing encrypted and manually entered tokens from Authy 6 years ago
Alexander Bakker d3463b82bc Add support for importing from Microsoft Authenticator
Adds support for importing TOTP and Microsoft accounts from Microsoft
Authenticator. Microsoft accounts also use TOTP, but with 8 digits instead
of 6.

This implementation suffers from the same bug (#82) as Google Authenticator, but I
haven't thought of a nice way to solve it yet. We should fix that before
including this feature in a release, though.
6 years ago
Alexander Bakker ef536a0c07 Abstract away the SQLite database reading logic into a separate class 6 years ago
Alexander Bakker 7e7c5317b1 Add support for importing from TOTP Authenticator
This is by far the most ridiculous format/'security' I've seen so far.
6 years ago
Alexander Bakker 2bf3546971 Make the parsing logic of the QR code URI more robust 6 years ago
Alexander Bakker 4ba3caeaf4 Protect writes of the vault file against corruption with AtomicFile
This adds a recovery mechanism for (probably extremely rare) cases where the app
may be killed before it is finished writing the vault file to disk. In the
example below, we see that AtomicFile moved ``aegis.json`` to ``aegis.json.bak``
before writing to ``aegis.json``.

```
bonito:/ # ls -lah /data/data/com.beemdevelopment.aegis.debug/files
total 27M
drwxrwx--x 2 u0_a306 u0_a306 3.4K 2020-02-02 13:22 .
drwx------ 6 u0_a306 u0_a306 3.4K 2020-02-01 19:51 ..
-rw------- 1 u0_a306 u0_a306  19M 2020-02-02 13:22 aegis.json
-rw------- 1 u0_a306 u0_a306  34M 2020-02-02 13:21 aegis.json.bak
```

Because the app was killed before it could
finish writing, it is only 19M in size, instead of the expected 34M. The next
time the app starts, AtomicFile will notice that the .bak file is still present,
and use that instead of the corrupted ``aegis.json`` file.
6 years ago
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.
6 years ago
Andrea Colombo 7bbd80ed21 Add navigation bar color to themes 6 years ago
Alexander Bakker dbedc9d1d3 Release v1.1.4 6 years ago
Alexander Bakker d0108e9859 Append ".json" extension to export filenames
Apparently not all SAF providers append a file extension based on the specified
MIME type.
6 years ago
Alexander Bakker 025c89d78c Release v1.1.3 6 years ago
Alexander Bakker c52e60b410
Merge pull request #288 from michaelschattgen/set-locale
Fix setting locale on 7.0
6 years ago
Michael Schättgen 3cc644193f Update languages and gitignore 6 years ago
Michael Schättgen 8020792024 Fix setting locale on 7.0 6 years ago
Michael Schättgen 837a27f9d7
Merge pull request #293 from alexbakker/password-reminder
Remind users who use biometrics to enter their password periodically
6 years ago
Alexander Bakker bbea6c2ae4 Fix #295 6 years ago
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)
6 years ago
Alexander Bakker 7f1ce1e645 Release v1.1.2 6 years ago
Michael Schättgen dc6bf3795a
Merge pull request #286 from alexbakker/intro-text
Add explanation for the security options
6 years ago
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)
6 years ago
Alexander Bakker ab8f01284a Remove EXTERNAL_STORAGE permissions
As we switched to the SAF, we don't need these permissions anymore.
6 years ago
Alexander Bakker 97d824d779
Merge pull request #279 from michaelschattgen/feature/multi-select
Add ability to select multiple entries
6 years ago
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.
6 years ago
Michael Schättgen f8c106bcb9 Add ability to select multiple entries
Improve code and add select listeners
6 years ago
Alexander Bakker 10c206270a Release v1.1.1 6 years ago
Alexander Bakker f5e8ba96e6 Set requestLegacyExternalStorage to true in AndroidManifest
This is a temporary workaround while we work on support for the Storage Access Framework.
6 years ago
Alexander Bakker 3506fdaad9 Release v1.1 6 years ago
Alexander Bakker 4cab92d615 Always cancel the persistent notification when the app task is removed 6 years ago
Alexander Bakker 35a14d3198
Merge pull request #269 from beemdevelopment/update-translations
Update translations
6 years ago
Michael Schättgen e46041ece0 Update translations 6 years ago
Michael Schättgen fc96e7919a Replace changelog css colors 6 years ago
Michael Schättgen 08b80d2e72 Fix build 6 years ago
Michael Schättgen 051cf9370b
Merge pull request #257 from alexbakker/action-copy
Add a 'copy' button to the entry action mode menu in MainActivity
6 years ago
Michael Schättgen 3d13296890
Merge pull request #267 from alexbakker/biometric-update
Update gradle and dependencies
6 years ago
Alexander Bakker f168768033 Update gradle and dependencies 6 years ago
Alexander Bakker 5ab4307963 Rename "Database" to "Vault"
We decided on calling the state file the "vault" a while back. This patch makes
the naming consistent across the codebase. I left "DatabaseImporter" classes
alone, because I'm not sure what a better name for those would be.
6 years ago
Alexander Bakker d0baeef064 Release v1.1-beta1 6 years ago
Michael Schättgen 44b83c888c
Merge pull request #255 from alexbakker/hightlight-and-reveal
Make the behavior of highlighting and revealing entries consistent
6 years ago
Michael Schättgen da45fa1969
Merge pull request #240 from alexbakker/biometric
Replace the custom fingerprint auth UI with BiometricPrompt
6 years ago
Christian Basler 9ec94a472f Fix exception when importing an old export 6 years ago
Alexander Bakker 4e4c39eea4 Add a 'copy' button to the entry action mode menu in MainActivity 6 years ago
Alexander Bakker 3be9aecb88 Replace the custom fingerprint auth UI with BiometricPrompt
This patch replaces the usage of the deprecated FingerprintManager API with
BiometricPrompt. This uses the Android X library, so we get the native biometric
prompt on recent versions of Android and a Google-made one on older versions. By
not working with custom prompts for biometric authentication like we do now, we
can be sure that any issues like #70, #81, #237 are not actually our fault.
Here's what it looks like:

![](https://alexbakker.me/u/b2rmf3x0b9.jpeg)

As a nice aside, this also adds support for the new facial recognition as an
authentication method on Pixel 4 phones.

This is still a draft, but early feedback is welcome.
6 years ago
Alexander Bakker a6a5af781e Make the behavior of highlighting and revealing entries consistent
I think this makes the highlight/reveal functionality feel a bit more
consistent, by not allowing multiple entries to be revealed at the same time,
just like you can't have multiple highlighted entries. Here's video of what it
looks like: https://alexbakker.me/u/3a9dhplrj2.mp4.
6 years ago
Alexander Bakker 82135c8b9d
Merge pull request #238 from michaelschattgen/feature-togglepassword
Add checkbox to toggle visibility in password fields
6 years ago
Michael Schättgen 9f248e0802 Add checkbox to toggle visibility in password fields
Make string translatable
6 years ago
Michael Schättgen be3f30e666 Add minor text improvement 6 years ago
Michael Schättgen 34ef4b3fb4
Merge pull request #232 from alexbakker/chromebook
Explicitly state in AndroidManifest that a camera is not required
6 years ago
Michael Schättgen 63b0f6bb99
Merge pull request #220 from alexbakker/highlight-entry
Add the option to highlight entries when tapped
6 years ago
Michael Schättgen 36973669ea
Merge pull request #219 from alexbakker/new-andotp-format
Add support for the new andOTP backup format
6 years ago
Alexander Bakker 8b063815ab Explicitly state in AndroidManifest that a camera is not required
This hopefully fixes #226. I tested this on a Chromebook emulator, but it let me
install the app even without this patch, so we'll have to wait and see if this
fixes it when we release a new version.
6 years ago
Alexander Bakker 75b79d3d4a
Merge pull request #203 from michaelschattgen/feature-winauthimport
Add WinAuth importer
6 years ago
Michael Schättgen b61b73685f Add WinAuth importer
Fix WinAuthImporter
6 years ago
Alexander Bakker 864e3bd6f4 Merge pull request #218 from michaelschattgen/feature-translation 6 years ago
Alexander Bakker 51a0a16afb Add the option to highlight entries when tapped
This adds an option to highlight tapped entries, so that it's easier to
distinguisch between the one you're trying to enter into a website and the other
ones.

Only one entry can be highlighted at a time. Perhaps it would make sense to
change our tap to reveal functionality to behave the same, so that the two
features are nicely in sync. I can address that in a separate PR if we decide to
do so.
6 years ago
Alexander Bakker a5165e2345 Add support for the new andOTP backup format
This patch adds support for the new backup file format of andOTP. andOTP has
improved their security by switching from SHA-256 to PBKDF2 to derive the key
for encrypted backups.

Glad to see this has been addressed now. Awesome work, @flocke!

See: andOTP/andOTP@d96b037.
6 years ago
Alexander Bakker e58dec35c0 Target API 29, update gradle and update the dependencies
This also fixes an issue with the use of the Iconics library where it was
initialized twice. I also removed the dependency to [AndroidX Preference
eXtended](https://github.com/takisoft/preferencex-android), as there don't seem
to be any issues with using the vanilla AndroidX preference library anymore.
6 years ago
Michael Schättgen 45de9cea3a Add Crowdin support 6 years ago
Michael Schättgen 9f075e7bc6 Add ungrouped filter 6 years ago
Michael Schättgen a88d1cf11e
Merge pull request #211 from alexbakker/show-account-default
Set pref_account_name to true by default
6 years ago
Michael Schättgen a6eec88dcb
Merge pull request #195 from alexbakker/about-version-git
Add git commit hash and branch information to AboutActivity for debug builds
6 years ago
Michael Schättgen 3c4afe36e8
Merge pull request #202 from simonporte/patch-1
Update french translation
6 years ago
simonporte 5b71df37ec Update french translation.
Change a single word in english : change log --> changelog
6 years ago
Alexander Bakker d7d3d52a30 Set pref_account_name to true by default
This changes the default settings so that account names are shown by default
6 years ago
Alexander Bakker ac222c4946
Merge pull request #201 from michaelschattgen/feature-usernamesearch
Add ability to search in account names
6 years ago
奔跑的梅洛斯 0200287203 Add Simplified Chinese translation (#198) 6 years ago
Alexander Bakker 5677bd4112 Copy the version to the clipboard when tapped in AboutActivity 6 years ago
Alexander Bakker cbe3697d68 Add git commit hash and branch information to AboutActivity for debug builds
This will help us differentiate between custom/debug builds and release builds
of Aegis.
6 years ago
Michael Schättgen 445410fcd7 Add ability to search in account names 6 years ago
Michael Schättgen 1d513441c6 Release v1.0.2 6 years ago
Michael Schättgen 0a31103f91 Disable automatic backups through Google Play
Backups from the Google Play Store had some unintended consequences...
6 years ago
Michael Schättgen 85bf4adc72 Enable and fix search feature again
For some reason we used the old SearchView. Changed it to androidx.appcompat.widget.SearchView and it works on Huawei devices again.
6 years ago
Alexander Bakker cc55a6dacb Release v1.0.1 6 years ago
Alexander Bakker e099e2cacd Add missing null check in onBackPressed for SearchView 6 years ago
Michael Schättgen 658946ff70 Temporarily disable search feature when unavailable
Which isn't working on Huawei devices
6 years ago
Alexander Bakker b6a31ed789 Release v1.0 6 years ago
Michael Schättgen 3e626a37db Add AboutActivity
Add DialogStyles for different themes

Add review fixes

Remove unused usings
6 years ago
Alexander Bakker e2150e3823
Merge pull request #194 from michaelschattgen/feature-empty-dataset
Add placeholder for empty recyclerview
6 years ago
Michael Schättgen 6480fef315 Add placeholder for empty recyclerview 6 years ago
Alexander Bakker 95df2ceb42
Merge pull request #193 from michaelschattgen/fix-icon-onboarding
Fix app icon in IntroActivity
6 years ago
Michael Schättgen 189698dddb
Merge pull request #189 from alexbakker/entry-defaults
Set a default value for period and digits for new entries
6 years ago
Michael Schättgen 438d5581aa Fix app icon in IntroActivity 6 years ago
Alexander Bakker 7af78b11f5
Merge pull request #192 from michaelschattgen/feature-fixbackpress
Add temporary backpress fix
6 years ago
Michael Schättgen a7e1a88dc8 Add temporary backpress fix 6 years ago
Alexander Bakker 79279630ba Fix all linter errors
Well almost all, just ignore missing translation errors
6 years ago
Alexander Bakker e019fb6db2 Set a default value for period and digits for new entries
This is also in preparation for #24, but I haven't fully figured out how to do
that nicely yet, so that'll come later.
6 years ago
Alexander Bakker 85bdecc573 Fix syntax error in the XML file of the German translation 6 years ago
Andrey Saksonov 21f3d93295 Update Russian localization (#170) 6 years ago
xopez 888e9d0e4a Added German Translation (#188)
* Added German Translation

* Update arrays.xml
6 years ago
Alexander Bakker e6d84e6859 Release v1.0-beta1 6 years ago
Alexander Bakker 65371f18d4
Merge pull request #184 from michaelschattgen/feature-setgroupautomatically
Set group on new entries automatically when group filter is active
6 years ago
Michael Schättgen 1b5ab33c25 Add way to pass selected group to edit entry activity 6 years ago
Michael Schättgen c774796422 Change auto lock preference visibility behaviour 6 years ago
Alexander Bakker c12c6ab107
Merge pull request #173 from michaelschattgen/feature-tapholdswipe
Overhaul entry interaction
6 years ago
Michael Schättgen e3b9b67fee
Merge pull request #181 from alexbakker/fix-152
Check for the possibility of an overflow when parsing OTP period
6 years ago
Michael Schättgen 2407b4b780 Overhaul entry interaction
Add support for different card background colors
Add minor bug fixes
Add minor fixes

Fix minor bugs where action mode kept active
6 years ago
Michael Schättgen e962d91c77
Merge pull request #177 from alexbakker/fix-175
Correctly display codes with an uneven number of digits
6 years ago
Michael Schättgen d0afa2f61f Fix app icon 6 years ago
Alexander Bakker 58d13ba9e3 Check for the possibility of an overflow when parsing OTP period
The conversion of the OTP period value to milliseconds may overflow for large
values, causing the result to wrap around to Integer.MIN_VALUE. This
subsequently caused a crash when calling ObjectAnimator.setDuration.
6 years ago
Alexander Bakker 631ca76136 Correctly display codes with an uneven number of digits 6 years ago
Alexander Bakker 2323d89938 Introduce UUIDMap for storing objects that are keyed by a UUID
This patch introduces the new ``UUIDMap`` type, reducing code duplication and
making UUID lookups faster. We currently already use UUIDs as the identifier for
the ``DatabaseEntry`` and ``Slot`` types, but the way lookups by UUID work are
kind of ugly, as we simply iterate over the list until we find a match. As we're
probably going to have more types like this soon (groups and icons, for
example), I figured it'd be good to abstract this away into a separate type and
make it a map instead of a list.

The only thing that has gotten slower is the ``swap`` method. The internal
``LinkedHashMap`` retains insertion order with a linked list, but does not know
about the position of the values, so we basically have to copy the entire map to
simply swap two values. I don't think it's too big of a deal, because swap
operations still take less than a millisecond even with large vaults, but
suggestions for improving this are welcome.

I had to update gradle and JUnit to be able to use the new ``assertThrows``
assertion method, so this patch includes that as well.
6 years ago
Michael Schättgen 6769fefd00
Merge pull request #106 from alexbakker/feature-import-freeotp+
Add support for importing from FreeOTP+
6 years ago
Alexander Bakker 5dbf1c7ce2
Merge pull request #172 from michaelschattgen/feature-otpauthuri
Add support for deeplinking otpauth uris
6 years ago
Michael Schättgen 8d3c113475 Add support for deeplinking otpauth uris
Fix bug
6 years ago
Alexander Bakker 087bf08d44
Merge pull request #169 from michaelschattgen/feature-showpassword
Add ability to toggle password visibility
6 years ago
Michael Schättgen 32b2ce280c
Merge pull request #144 from alexbakker/fix-lag-part1
Unregister any listeners when destroying EntryListView
6 years ago
Michael Schättgen 37c9b033c5
Merge pull request #141 from alexbakker/pref-lang
Add a language option to the preference menu
6 years ago
Alexander Bakker f8d806999d
Merge pull request #157 from BM835/master
Updated Russian translation
6 years ago
Michael Schättgen 86c4011797
Merge pull request #158 from alexbakker/fix-150
Get external storage read permissions before selecting an image to scan
6 years ago
Michael Schättgen bbc4c1d61c Add ability to toggle password visibility 6 years ago
Alexander Bakker 951e908d4b
Merge pull request #148 from michaelschattgen/feature-notification
Add notification to warn user about the unlock state
6 years ago
Michael Schättgen 1f5a46b883 Add notification to warn user about the unlock state
Clean up code

Add minor changes
6 years ago
Michael Schättgen 4cab47235b Add new icon 6 years ago
Kasper Seweryn a3cdfe693d
Fix #162 6 years ago
Alexander Bakker 9e4ad1495d Get external storage read permissions before selecting an image to scan
Fixes #150
6 years ago
BM835 914da94c01 Updated Russian translation 6 years ago
Alexander Bakker 950dcce803 Unregister any listeners when destroying EntryListView
We were leaking some resources by not unregistering listeners when destroying
the entry list view. The code refresh loop of the leaked view started running in
a tight infinite loop, which causes a lot of lag in the main activity.
6 years ago
Alexander Bakker 9c5726cbca Use glide to load and cache icons
This patch adds a dependency to glide to handle the loading and caching of
icons. In my testing it eliminated the lag previously experienced in the main
activity when quickly scrolling through a large list of entries. It does add an
extra 1MB to the APK size, but I think that's acceptable for the amount of
complexity it handles for us.
6 years ago
Michael Schättgen 550e53f225
Merge pull request #140 from alexbakker/debug-flag-secure
Disable screen security by default for debug builds
6 years ago
Alexander Bakker b014d95005 Add a language option to the preference menu 6 years ago
Alexander Bakker 0123b98e47 Disable screen security by default for debug builds
I've lost count of how many times I've tried to record a demo video with
screen security enabled.
6 years ago
Alexander Bakker d7093487dd Add support for importing from FreeOTP+
This also includes some other small changes:
- Make FreeOtpImporter more reusable
- Refactor preference file parsing logic into a separate class
- Add support for importing Steam tokens from FreeOTP(+)
- Make FileReader a bit leaner
- Add some missing @Override annotations
6 years ago
Alexander Bakker 02c9a0cb1c Move entry divider logic to EntryListView
This patch makes EntryListView responsible for providing the divider between
entries, instead of setting a margin on every entry like we do now. It also
fixes a couple of miscellaneous issues, like use of the old package name.
6 years ago
Michael Schättgen eb29be587f Fix bug where searchview did not reset properly 6 years ago
Alexander Bakker f64a23d98f Release v0.4.3 6 years ago
Alexander Bakker 4066cd83cc Limit the amount of entry info passed to SelectEntriesActivitiy
This horrid patch changes the vault import logic to pass an ImportEntry list to
SelectEntriesActivity, instead of a DatabaseEntry list. Previously, a crash
would occur when importing a vault with lots of icons, because the maximum
Parcel size was exceeded.

Storing icons in the vault file was a bad idea.
6 years ago
Alexander Bakker cca35bd5e5
Merge pull request #109 from michaelschattgen/feature-entrysearch
Add ability to search for entries in vault
6 years ago
Michael Schättgen 187adfa738 Add ability to search for entries
Fix bug where new entries did not get filtered

Fix IsEntryFiltered
6 years ago
Alexander Bakker 246c03dea1
Merge pull request #107 from michaelschattgen/feature-importauthy
Add support for importing from Authy
6 years ago
Alexander Bakker e68571a7a6
Merge pull request #108 from michaelschattgen/feature-qrshortcuticon
Add new QR shortcut icon which follows material guidelines
6 years ago
Michael Schättgen c75b25c4b6 Add new QR shortcut icon which follows material guidelines
Remove superfluous drawable files
6 years ago
Michael Schättgen 6abcfcea75 Add ability to import from Authy
Fix importer and appImporter lists
6 years ago
Alexander Bakker b300b72626 Don't ignore the result of IntroActivity when the vault is locked
This fixes a bug where AuthActivity would be shown after finishing the intro.
6 years ago
Alexander Bakker b2995955b6 Release v0.4.2 6 years ago
Alexander Bakker 1c9d07a47d Adapt the unlock button size in AuthActivity to the text width 6 years ago
Alexander Bakker 66f99eb4d4 Always launch AuthActivity on lock if MainActivity is resumed 6 years ago
Alexander Bakker ff584a323d Always try to decrypt the password slot first, before the fallback
This makes sure the case where a user set up Aegis v0.4 with a password of over
64 bytes is also covered.
6 years ago
Alexander Bakker 8c658ac930 Use the old encode method for passwords over 64 bytes and repair the slot (#98)
Commit afb9e59711 fixed a bug where the password
encode function would add null bytes to the end of the output. Luckily (I
thought), PBKDF2 produces collisions for inputs with trailing null bytes and
thus scrypt does this as well, so we could safely change that function to remove
the null bytes without any impact. Unfortunately, that doesn't hold up if the
password is over 64 bytes in size. So after that change, the KDF started
producing different keys than before for such passwords and thus some users
could no longer unlock their vault.

This patch addresses the issue by using the old password encode function for
passwords over 64 bytes and repairing the affected password slot.
6 years ago
mdmk 588c1c07df Update french translation (#97)
* Update strings.xml
6 years ago
Alexander Bakker f54639c791
Merge pull request #89 from michaelschattgen/feature-ignorespaces
Add possibility to ignore spaces in EditTexts
6 years ago
Alexander Bakker 7c78ddc929 Release v0.4.1 6 years ago
Alexander Bakker 9f3ccdc508 Force a period uniformity check when initializing EntryAdapter
This fixes a bug where the progress bar was not shown upon unlock.
We'll come up with a better solution later. This is just a hot fix.
6 years ago
Alexander Bakker 99c222cffa Release v0.4 6 years ago
Michael Schättgen 3556cd0e66 Add possibility to ignore spaces in EditTexts 6 years ago
Alexander Bakker 57e3574693 Fix a bug where Aegis would forcibly pop up after unlocking the device 6 years ago
Michael Schättgen b6a31e798f Select and focus password on failed unlock attempt 6 years ago
Michael Schättgen 5ebb714d05 Fix setting the preferred theme 6 years ago
Alexander Bakker 9958f73926 Set the Activity theme before calling super.onCreate (#84)
This fixes a NullPointerException that would occur when restoring from
savedInstanceState due to getSupportActionBar returning null. It also removes
the theme definitions from AndroidManifest as we override those anyway.
6 years ago
Alexander Bakker 0fb33744ae Update Krop to 0.44 (#83) 6 years ago
Alexander Bakker 6d26d1beb0 Fix the last couple of sorting bugs (#77)
This fixes the following bugs:
- Sort category is forgotten after lock/unlock
- The sort mode is not respected for new entries

I got a little carried away while working on this patch and also included the
following other enhancements:
- Simplify the SortCategory, Theme and ViewMode enums
- Simplify usage of string resources
- Don't call notifyDataSetChanged and runLayoutAnimation unnecessarily
6 years ago
Alexander Bakker 0a8dd56306 Escape apostrophes in the French translation 6 years ago
mdmk 8a8d714901 French translation and small changes to english strings. (#59)
* Typos in strings

- Double space.
- Missing verb in sentence. "need" makes sense here.
- Equal is a verb suitable for speaking of strings. For a final user, identical is more understandable.

* French translation
6 years ago
Alexander Bakker 9893b2f057 Add support for importing encrypted andOTP backups
This also refactors dialog_newgroup to serve as a generic text input dialog
6 years ago
Alexander Bakker 47df8968c7 Refactor database importer logic
Summary:
- Combine app and file importers into one type
- Split encrypted and plain text file logic into separate DatabaseImporter.State
  classes
- Add an abstract FileReader class that can handle reading from apps and files

The idea is that every importer implements its own UI logic to obtain
credentials for decryption through a dialog. Aegis databases are still an
exception to this rule as it still uses an Activity to ask for credentials. This
will be addressed in a future patch.

As a result of this change all app importers are now also available under
"Import from file".
6 years ago
Alexander Bakker 33b4b4b7ab
Merge pull request #72 from michaelschattgen/feature-selectentries
Add ability to select entries when importing
6 years ago
Michael Schättgen 21fd8fdd8d Add ability to select entries when importing
Move onScroll to seperate class to avoid duplicate code

Move importing logic back to the PreferencesFragment

Add minor changes

Add ImportEntry to properly track checked states

Minor layout changes
6 years ago
Alexander Bakker afb9e59711 Fix a bug where the password encode function added trailing null bytes
Funny story. Instead of	obtaining the actual bytes from the ByteBuffer in the
password encode function, we obtained the entire buffer. This caused some
trailing null bytes to be added to the encoded password. Luckily (and
strangely), PBKDF2 produces collisions for inputs with trailing null bytes and
thus scrypt does this as well. As such, this bug doesn't affect us right now,
but it would if we were to use that encode function for other purposes in the
future.

This also adds a test that checks for the expected collision behavior of scrypt.
6 years ago
Michael Schättgen 2de9b96138 Add ability to scan image for QR code 6 years ago
Alexander Bakker f4678e2813 Release v0.3.3 6 years ago
Michael Schättgen b958145761 Fix bug where parsing otp codes was impossible
Y I K E S
6 years ago
Alexander Bakker feea9a2e67 Fix crash when trying to auto lock a locked vault 6 years ago
Alexander Bakker ebb9d0be3f Make app importer path lookup more dynamic
Also fixes a crash in SteamAppImporter that occurred with empty dirs
6 years ago
Alexander Bakker f5cbec21f4 Release v0.3.2 6 years ago
Alexander Bakker cb01fb21d3 Remove extra translations to fix lint errors in release mode 6 years ago
Alexander Bakker c5be99e58d Release v0.3.1 6 years ago
Alexander Bakker 92458d0d3b Move setGlobalDurationScale to AegisActivity
Also, rename the method and make the error string translatable
6 years ago
Michael Schättgen 5d835b05ee
Merge pull request #56 from ByteHamster/krop-color
Darkened Krop color
6 years ago
Michael Schättgen 2a47fa4de5 Add method to set global duration scale
Fixes #35
6 years ago
Alexander Bakker 553cb16bc4
Merge pull request #57 from ByteHamster/arrays
Strings.xml cleanup
6 years ago
ByteHamster 47f8c9e648 Strings cleanup
- Removed unused strings
- Moved arrays to their own file, so translators do not have to deal with arrays
6 years ago
ByteHamster a415ef573e Show keyboard automatically 6 years ago
ByteHamster ffa2577cc2 Darkened Krop color 6 years ago
Alexander Bakker 2a0daae155 Fix crash that occurred when scheme of the URI in a QR code is missing 6 years ago
Michael Schättgen b41e328d22 Add ability to translate themes and viewmodes
Closes #50
6 years ago
Michael Schättgen 1ac42d85d6
Merge pull request #53 from alexbakker/feature-autolock
Add an option to automatically lock the app
6 years ago
Michael Schättgen 685a791aba
Merge pull request #49 from zaggo0/master
Add Dutch translations
6 years ago
Michael Schättgen 89a1663e28 Fix bug where entries didn't get sorted properly 6 years ago
Alexander Bakker 0563ac917a Fix some rare crashes when restoring the app after termination
Also fixes an issue where the app shortcuts would not work for unencrypted vaults
6 years ago
Patrick van der Linden 719ef3bc71 Add Dutch translations
+ Fix preference groups not being translated
6 years ago
Alexander Bakker 18fd88a441 Add an option to automatically lock the app
This adds an option to automatically lock the app when:
* The back button is pressed
* The device is locked

It's the first step towards implementing #7
6 years ago
Alexander Bakker 6d93b78f9a Fix a crash on KitKat when clearing the KeyStore
Apparently KitKat doesn't like KeyPermanentlyInvalidatedException
6 years ago
Alexander Bakker 4365a693f2 Get Cipher back from FingerprintManager,CryptoObject after auth 6 years ago
Alexander Bakker 14fa493ac9 Remove keys from the KeyStore when disabling encryption or fingerprint 6 years ago
Alexander Bakker 36e3dd559c Normalize formatting and 'optimize' imports 6 years ago
Michael Schättgen b7cf234db6 Add smaller view mode
Closes #39
6 years ago
Alexander Bakker f27dc54ec4 Release v0.3 6 years ago
Alexander Bakker 4c1dec613c Fallback to a 30 second period if an andOTP doesn't provide one 6 years ago
Alexander Bakker a251685002 Add a dialog that displays a list of errors that occurred during import 6 years ago
Alexander Bakker 118221e3df Add support for Steam tokens to the andOTP importer
Close #44
6 years ago
Alexander Bakker 1dd5f893da Add support for Steam OTP 6 years ago
Michael Schättgen a46640f43d Fix recreate when setting view mode 6 years ago
Michael Schättgen a293078603 Add way to set view mode 6 years ago
Michael Schättgen f3ed79dc71 Add ability to change view mode 6 years ago
Michael Schättgen ee8fd2e9f2 Hide divider in compact mode when progressbar is visible 6 years ago
Michael Schättgen 8b9ec5f976 Start working on compact mode 6 years ago
Michael Schättgen d283eae7a0 Add russian strings for authentication methods
#43
6 years ago
Michael Schättgen a854db760c
Merge pull request #41 from ferhadnecef/stringlate-ru-1048
Updated ru (Russian) translation
6 years ago