Commit graph

1132 commits

Author SHA1 Message Date
Fabian Henneke
42981cd52b Improve Git/HTTPS URL generation 2020-05-14 12:00:30 +02:00
Fabian Henneke
698499ba6d
treewide: Reformat XML resources again (#774) 2020-05-14 00:22:49 +05:30
Harsh Shandilya
c0332c42ff
treewide: fix copyright template and apply to all files (#773)
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-05-13 21:01:41 +05:30
Fabian Henneke
d695d21497
Make APS buildable on F-Droid (#762)
* Include lib-publicsuffixlist in tree with proper license attribution

* Exclude lib-publicsuffixlist from code style

* Move applicationId to app/build.gradle

* build: add distributionSha256Sum to Gradle

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>

* Initial workflow configuration for PSL update

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>

* Initial check-in of PSL data

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>

Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2020-05-12 11:17:08 +02:00
Harsh Shandilya
b16620b55c
Add setting for fallback username (#772)
* PasswordEntry: remove useless annotations

Turns out VisibleForTesting only applies for documentation purposes. Boo >:(

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>

* PasswordEntry: silence locale warning

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>

* Add setting for fallback username

Fixes #763

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-05-11 22:13:03 +02:00
Harsh Shandilya
041cf00510
Treewide codestyle cleanup (#765)
- Updated gitignore and checked in the IDE's codestyle config
- Removed spotless as the underlying ktlint backend has failed to resolve the super frustrating import order bug[1] in nearly a year
- Reformat the entire codebase based on the previously committed code style configuration.

1: https://github.com/pinterest/ktlint/issues/527
2020-05-10 19:21:39 +05:30
Harsh Shandilya
94dc92f8d7
Miscellaneous UI tweaking (#771)
* Remove dangling UI element and relayout authentication modes

* Drop unnecessary actionBarPopupTheme declaration

* Improve ssh keygen UI

* Commonize button styling

* Tweak save button in server config

* Tweak generate button in ssh keygen

* Commonize OutlinedButton style

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-05-10 14:25:59 +05:30
Fabian Henneke
9a77f6bbea
Use NoBackgroundTheme for utility activities (#770) 2020-05-09 19:44:24 +02:00
Harsh Shandilya
4c461fb174
Introduce no-auth mode for connections (#768)
Fixes #758
Fixes #526
2020-05-08 20:50:04 +05:30
Harsh Shandilya
ed3312b303
PasswordEntry: add user to the potential candidates for username (#766) 2020-05-06 13:59:48 +05:30
Harsh Shandilya
feab56994d
PasswordEntry: add more potential fields for username (#764) 2020-05-06 01:58:05 +05:30
Harsh Shandilya
69e887f3d8
Better handle non-git repositories (#756) 2020-05-03 01:39:16 +05:30
Harsh Shandilya
ced8bcca01
Confirm password move if it will replace an existing one (#757)
* Confirm password move if it will replace an existing one

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>

* CHANGELOG: update

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-05-01 16:32:58 +05:30
Fabian Henneke
c41100eff9
Use official FastScroll fix and refactor PasswordFragment (#753) 2020-04-29 08:53:27 +02:00
Harsh Shandilya
edc6dcda88
build: update to openpgp-ktx 2.0 (#749)
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-29 11:01:22 +05:30
Harsh Shandilya
27cc0728d4
build: prepare next release
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-29 03:15:05 +05:30
Harsh Shandilya
1e67936751
build: bump version
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-29 03:12:29 +05:30
Fabian Henneke
d1abc09ef7
Fix Autofill icons in dark mode (#748) 2020-04-28 13:30:22 +05:30
Harsh Shandilya
8cada17bcb
Add toggle for debug logging (#745) 2020-04-25 20:34:33 +05:30
Harsh Shandilya
f89d5c282f
Improve UX around settings items (#744)
Fixes #461
2020-04-25 16:53:40 +05:30
Maxime Catrice
f7dbac4649
Fix search if external root dir starts with a dot (#743)
Fixes #740
Co-Authored-By: Fabian Henneke <FabianHenneke@users.noreply.github.com>
2020-04-25 15:18:19 +05:30
Harsh Shandilya
73695e2493
auth: redo implementation with a cleaner and simpler API surface (#741) 2020-04-24 15:00:33 +05:30
Harsh Shandilya
bee20ac44a
Better detect uninitialized repositories and offer to clone (#738)
* PasswordRepository: more comprehensive check for valid repository

* PasswordFragment: Give 'repo uninitialized' Snackbar some purpose in life

* GitOperationActivity: finish immediately when an unhandled request code is used

* PasswordFragment: Make uninitialized repo Snackbar indefinite

* spotless

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-24 02:05:07 +05:30
Harsh Shandilya
b3f6fc20c4
build: prepare next development version
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-23 12:54:09 +05:30
Harsh Shandilya
9a843b08f3
build: bump version for patch release
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-23 12:52:24 +05:30
Harsh Shandilya
3d8cea5966
Improve permission handling logic (#732)
* Improve permission handling logic

Ensure we always ask for storage permissions when required

* Refactor storage permission checks and invert return value

* PasswordStore: improve permission grant flow

* strings: slightly reword permission grant request message

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>

Co-authored-by: Fabian Henneke <fabian@henneke.me>
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-22 21:57:52 +05:30
Fabian Henneke
00361a58c7
Fix crash when using type independent sort (#734) 2020-04-22 18:13:56 +02:00
Fabian Henneke
9c1cc8690d
Mark Autofill onboarding dialog as seen on dismiss (#731) 2020-04-22 14:44:25 +05:30
Fabian Henneke
c302d6fe58
Never obscure OK button in Autofill onboarding UI (#729) 2020-04-21 21:38:02 +02:00
Harsh Shandilya
0c0649b86d
build: prepare next development version
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-21 18:39:02 +05:30
Harsh Shandilya
ec0d478b85
build: bump version to 1.7.0
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-21 18:39:01 +05:30
Harsh Shandilya
3d0850fa1f
build: inline versionCode and versionName at destination
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-21 18:39:01 +05:30
Harsh Shandilya
e6ea5f6a08
PasswordStore: onboard users to Oreo autofill
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-21 18:39:00 +05:30
Harsh Shandilya
b0774febb1
Application: only install logging tree in debug features build
We should be at a stability level now that does not require logging in prod

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-21 15:55:26 +05:30
Harsh Shandilya
500ab60973
treewide: switch to logging via timberkt
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-21 15:55:26 +05:30
Harsh Shandilya
72166c6912
treewide: use getSystemService extension everywhere
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-21 15:55:25 +05:30
Harsh Shandilya
d505151662
treewide: use edit extension and cleanup some deprecation
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-21 15:55:25 +05:30
Harsh Shandilya
e1921b26e0
Remove unused import
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-21 15:55:25 +05:30
Harsh Shandilya
77096c1702
BaseGitActivity: don't remove saved password unnecessarily
if previousUrl is empty it means that this the first time the method is being called, and url
has not been built yet. We let things slide for the first pass so that the actual logic
only kicks in when it needs to.

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-21 15:36:30 +05:30
Harsh Shandilya
47c2875e93
Fix protocol validation (#726)
* GitOperation: code cleanup

* WIP: Fix validation

* Fixup SSH validation

* Spotless

* Remove logging of MalformedURLException

Co-authored-by: Fabian Henneke <fabian@henneke.me>
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-20 13:29:10 +05:30
Harsh Shandilya
99aa0d9bb2
Validate hostname protocol before saving (#723)
* RFC: protocol validation

* Use java.net.URL for saner parsing

* Improve protocol correction; handle ssh://

Co-authored-by: Fabian Henneke <fabian@henneke.me>
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-19 17:13:39 +05:30
Harsh Shandilya
aaeb899fb6
PgpActivity: hide category view when there's no text
Co-Authored-By: Fabian Henneke <fabian@henneke.me>
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-19 14:11:19 +05:30
Harsh Shandilya
17385892cb
PasswordFragment: Replace fab options with descriptive bottom sheet
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-19 14:11:19 +05:30
Harsh Shandilya
eb5a30c3a9
PasswordFragment: animate FAB in action mode
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-19 14:11:18 +05:30
Fabian Henneke
e5d178ea3c
Work around incompatibility between AndroidFastScroll and recyclerview-selection (#721)
* Work around incompatibility between AndroidFastScroll and recyclerview-selection

* move hacked recyclerview into separate package

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>

* Make RecyclerViewHelper private static

Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-19 10:40:49 +02:00
Harsh Shandilya
934c256edd
Resolve lint warnings
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-18 23:52:16 +05:30
Harsh Shandilya
5d884a8a74
SshKeygenTask: fix build error
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-18 23:52:15 +05:30
Harsh Shandilya
beaec159e8
Update SSH clear passphrase preference to handle HTTPS (#716)
* Update SSH clear passphrase preference to handle HTTPS

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>

* Address review comments

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>

* Address review comments

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>

* Explicitly set preference to visible if it can do anything

* Address review comments

Co-authored-by: Fabian Henneke <FabianHenneke@users.noreply.github.com>
Co-authored-by: Fabian Henneke <fabian@henneke.me>
2020-04-17 20:12:48 +02:00
Harsh Shandilya
0e1dd641d2
AutofillDecryptActivity: Show toast on Main dispatcher (#717)
Without this the activity will crash rather than display the error

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-17 23:04:18 +05:30
Harsh Shandilya
b94b52a42d
Refactor Git related activities (#685)
* Refactor git logic into separate parts

* Extract hardcoded strings

* Add KDoc to updateHostname, remove unused field

* Cleanups

* Fix dialog message

* Wire in repository clone flow

* spotless

* Remove unused method

* Cleanup GitActivity

- Rename to GitOperationActivity.
- Ensure identityBuilder is always closed regardless of what fragment uses it.
- Remove hardcoded "Operation" strings and replace with REQUEST_ARG_OP.
- Apply a transparent theme to GitOperationActivity make the UI less jarring.

* Tweak some stupidly worded dialog messages

As pointed out in #629, these strings are shoddily worded and do not express any clear intent to the
user, leaving them confused and angry.

* GitOperationActivity: wrap Context to ensure right theme is used

* spotless

* undo build.gradle change

* Use correct parent theme, remove now useless wrapping

* GitServerConfigActivity: fix repository clone flow

* temp: disable leakcanary

framework leaks on Samsung are pissing me off

* Make system bars transparent in git activity

* Tweak HTTPS password layout

* Unhardcode wrong passphrase string

* Store SSH passphrase in EncryptedSharedPreferences

Also revamp the dialog to look a bit better

* Implement support for remembering HTTPS password

Fixes #521

* Try to patch HTTPS remote creation logic

* Update security-crypto

* Clear saved passphrase/password on auth failure

* Revert "Update security-crypto"

Broken on R DP2.1

This reverts commit 4b20371dd42c512a3dd3b759859abb6c1ffd2961.

* Revert "temp: disable leakcanary"

This reverts commit 2db7d41bd67b79c6dc8c5b359a7b27100379f45f.

* Update CHANGELOG

* Remove spacer

* Remove useless override

* Wrap git server activity in a ScrollView

* GitOperation: always finish calling activity when dialogs are dismissed

* Wipe saved password/passphrase when hostname changes

* Don't commit prefs updates

* Don't call listFiles excessively

* Finish activity after saving configuration

* Make ConnectionMode and Protocol enum classes

* Change SSH key passphrase key, don't wipe on host change

* Reimplement BaseGitActivity.updateUrl (was updateHostname)

* Use SharedPreferences.edit KTX extension

* Disable inapplicable connection modes depending on scheme

* BaseGitActivity: annotate onDestroy with CallSuper

We'll leak the identityBuilder connection otherwise

* Move input hack for AlertDialog into an extension function

We re-use this in many places

* Fix protocol/mode toggle issue and consistenly name options

* Fix a crash when opening GitServerConfigActivity without a repo

* Fix OpenKeychain callbacks by moving onActivityResult to BaseGitActivity

* Run spotlessApply

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
Co-authored-by: Fabian Henneke <fabian@henneke.me>
2020-04-17 18:36:07 +05:30
Harsh Shandilya
4ffd7ed9bf
Enable emulator tests (#708)
* github: Enable instrumentation testing in PRs

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>

* Upgrade to Gradle 6.3

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>

* Remove outdated and broken tests, redo PasswordEntryTest in Kotlin

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>

* Remove now unused test assets

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>

* github: Disable debug APK uploads in PR testing

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>

* Update .github/workflows/pull_request.yml

* Update .github/workflows/pull_request.yml

Switching to Ubuntu fails due to the SDK 29 missing.

Co-authored-by: Fabian Henneke <FabianHenneke@users.noreply.github.com>
2020-04-17 00:24:13 +05:30
Fabian Henneke
8b4751f825
Improve SSH private key validation (#713)
* Improve SSH private key validation

* Address review comment
2020-04-16 18:34:55 +05:30
Diogenes Molinares
f269bc7d28
See file's metadata to validate SSH key (#709)
* See file's metadata to validate SSH key

* See file's metadata to validate SSH key

* change exception to throw and refactoring

* catch IOException and IllegalArgumentException as equal

* run ./gradlew spotlessApply

* Apply suggestions from code review

* validate BEGIN, END markers and size != 0

* Apply suggestions from code review

* Update app/src/main/java/com/zeapo/pwdstore/UserPreference.kt

* Don't throw on SSH key import failure

* Style nits

* Codestyle and copy nits

Co-authored-by: Fabian Henneke <fabian@henneke.me>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-16 17:21:24 +05:30
Fabian Henneke
e4aa673537
Reduce build warnings (#712)
* Add annotations to and reformat SearchableRepositoryViewModel.kt

* Address build warnings other than meaningful deprecations

* Deal with warnings in UserPreference.kt
2020-04-16 12:20:45 +02:00
Fabian Henneke
2a6326ec0e Address review comments 2020-04-15 22:47:41 +05:30
Fabian Henneke
7cd6f1d1cf Add a switch between Fuzzy and StrictDomain mode to Autofill search view 2020-04-15 22:47:41 +05:30
Fabian Henneke
441b4d3b68 Add support for "work/example.org.gpg" folder layout 2020-04-15 22:47:41 +05:30
Fabian Henneke
5a3220527f Respect encrypted username when filling Autofill generated entry 2020-04-15 22:47:41 +05:30
Fabian Henneke
d6db10e089 Match any path component in StrictDomain FilterMode 2020-04-15 22:47:41 +05:30
Fabian Henneke
b633cc1f3d Make existing tests buildable again 2020-04-15 22:47:41 +05:30
Fabian Henneke
db2743289d
Fix crash on Autofill save introduced by #699 (#706) 2020-04-15 21:13:31 +05:30
Fabian Henneke
75a70543b3
Improve search logic and UI (#703)
* Don't list the current directory in search results

* Scroll to top result when search term is changed

* Match relative path in StrictDomain filter mode

* Improve and document DirectoryStructure null handling

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-15 00:57:51 +05:30
Fabian Henneke
ec8bcae8fa
Improve Autofill enable UI and flaky browser list (#704) 2020-04-14 11:43:57 +02:00
Fabian Henneke
ef0cc9f047
Always refresh password list when navigating back (#701) 2020-04-14 14:05:06 +05:30
Fabian Henneke
b82303d5dd
Don't trigger onMenuItemActionCollapse on navigation (#702) 2020-04-14 13:09:52 +05:30
Fabian Henneke
0d54a687d6
Fix repository corruption by AutofillSaveActivity (#699) 2020-04-14 03:51:59 +05:30
Fabian Henneke
11c7e36986
Raise targetSdk to 29 (#682)
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-13 00:40:40 +05:30
Harsh Shandilya
4f20c49abb
Request WRITE_EXTERNAL_STORAGE for external password repository (#698)
* PasswordStore: request WRITE_EXTERNAL_STORAGE permission instead

We wish to be able to write to our password store directory as well.

Fixes #697
Fixes #365

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>

* Reword changelog entry

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-13 00:31:25 +05:30
Harsh Shandilya
f21b6426af
Switch refactored entities to ViewBinding (#695)
* build: Enable ViewBinding

* autofill: oreo: Switch to ViewBinding

* PasswordFragment: switch to ViewBinding

* AutofillPublisherChangedActivity: use with(binding) { } syntax

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-11 01:07:49 +05:30
Fabian Henneke
575ef84726
Modernize legacy RecyclerView adapters (#694)
* Modernize legacy RecyclerView adapters

Introduces new adapters based on the SearchableRepositoryViewModel and
using androidx.recyclerview.selection for multiselection support.

The following positive effects in behavior are observable to end-users:

- Search and navigation actions are executed on IO threads.
- RecyclerViews are now animated during searches (but not navigations).
- Exact scroll position is restored when navigating back.
- The ActionBar title is updated with the current folder name.

The following negative effects may warrant attention:

- Support for the "always search from root" setting has been removed.
- Due to a limitation of the fast scroll dependency, using the scroller
  may result in unwanted multiselections. If this is not fixed in the
  library, native fast scroller capabilities could be used, but these
  are more limited in appearance and to not offer popups.

* Fix lint

* Fix FastScroller/SelectionTracker incompatibility

* Immediately react to settings changes

* List directory entries when search term is blank

* Use isEmpty() instead of == ""

* Replace adapter inheritance with builders and fix selection drags

* Remove dividers in password lists

* Run spotlessApply

* Use a more logical string in action mode

* Commonize and constify path bundle key

* Make lambda parameter name explicit

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-10 16:48:42 +05:30
Fabian Henneke
2738d7500f
Remove an erroneous check on directory moves (#693) 2020-04-08 18:25:44 +05:30
Hussein Al Abry
ab034a8ba3
pull translations from transifex (#691)
russian translation at 99%
2020-04-07 21:11:49 +00:00
Fabian Henneke
e3a49e2632
Modernize file listing and search in AutofillFilterActivity (#683)
* WIP: Modernize file listing and search

* Refactor

* Implement fuzzy search

* Improve ViewModel API and introduce Adapter

* Integrate new search into AutofillFilterActivity and dedebounce

* Improve no results layout

* Reformat

* Highlight origin in FileBased directory structure

* Extract highlighting logic into DirectoryStructure

* Trim whitespace before searching

* Remove debug logging

* Remove more debug logging

* Organize imports

* Remove imports

* Update app/src/main/java/com/zeapo/pwdstore/SearchableRepositoryViewModel.kt

Co-Authored-By: Harsh Shandilya <me@msfjarvis.dev>

* Address review comments

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-07 02:26:52 +05:30
Fabian Henneke
034babcbf4
Fix AutofillFilterActivity icons in dark mode (#689) 2020-04-06 17:06:02 +05:30
Fabian Henneke
6a54404462
Fix: Make path editable when generating a password (#688) 2020-04-06 08:02:06 +02:00
Fabian Henneke
4e8f5e0f69
Fix: Make generated entry path editable without suggested username (#687)
The path of a new entry created via Autofill should always be editable, even when no username is prefilled (e.g., when generating a new password or saving a form with no detected username field).
2020-04-05 20:34:40 +05:30
Harsh Shandilya
bc463f3c64
Significantly improve app theming (#679)
* Update CHANGELOG

* Use outlined box style in folder creation dialog

* Add user-facing choice for app theme

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-03-29 20:03:50 +05:30
Fabian Henneke
6e84ca1f3c
Fix PgpActivity crash on orientation change (#681)
Currently, PgpActivity resets or crashes when the orientation (or
screen size) changes.

Since we do not use separate resources in landscape mode, the easiest
and only slightly hacky solution is to tell the system to not recreate
the activity in response to these changes.
2020-03-29 18:46:42 +05:30
Harsh Shandilya
f228dc4a98
Don't inflate menu multiple times (#678)
Otherwise you get this insanity https://i.imgur.com/N918NFG.png

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-03-29 15:19:44 +05:30
Fabian Henneke
6aed471f31
Workaround and potential fix for search issues (#677) 2020-03-29 13:05:54 +05:30
Fabian Henneke
29427a061b
Add "alias" to the username heuristic terms (#676) 2020-03-28 20:30:18 +05:30
Fabian Henneke
453cf58b38
Let IME button dismiss keyboard during search (#673)
The IME search button is currently without function while the
PasswordStore SearchView is focused, which means that the keyboard
hides part of the search result until back is pressed.

This commit makes the IME button function like the back key in this
situation, dismissing the keyboard.

Co-authored-by: Harsh Shandilya <msfjarvis@gmail.com>
2020-03-27 10:06:16 +01:00
Fabian Henneke
94b0b64501
Fix: Restore store scroll position on back press (#670)
Restoring the scroll position in the main store fragment is currently
broken since the stored state (recyclerView.verticalScrollbarPosition)
is always 0 - it is just an enum that governs where the scrollbar is
placed on the screen.

The fix is to remember the list position of the last fully visible item
and scroll to it when restoring the scroll position.

Co-authored-by: Harsh Shandilya <msfjarvis@gmail.com>
2020-03-27 10:02:31 +01:00
Fabian Henneke
791868f3d6
Fix: Set childCount correctly on recycled rows (#675)
The childCount is not set explicitly for empty directories, which means
that the childCount of the entry from which the current row was
recycled is preserved. This results in empty directories being shown
with seemingly random child counts.

The fix is to always set text and visibility for the childCount view.

Co-authored-by: Harsh Shandilya <msfjarvis@gmail.com>
2020-03-27 09:58:41 +01:00
Fabian Henneke
0153d3215e
Un-hack focus gain in folder creation dialog (#672)
The current way to let the folder name EditText in the folder creation
dialog gain focus is... slightly hacky.

This commit proposes a more conceptual solution, which, if it works
reliably, could be much easier to maintain.
2020-03-27 09:53:49 +01:00
Fabian Henneke
b21c032f31
Improve Autofill heuristic terms (#674)
Add "e-mail" and "login" as username terms and sort the lists.

Co-authored-by: Harsh Shandilya <msfjarvis@gmail.com>
2020-03-27 13:38:29 +05:30
Fabian Henneke
b6730ac123
Make folder creation dialog cancelable (#671) 2020-03-27 13:27:22 +05:30
Fabian Henneke
57771c4dfe
Fix: Commit file after Autofill generate/save (#669)
Currently, password files generated via the Autofill generate or save
flow are not committed to the Git repository and therefore also not
synchronized to the remote.

The root cause is that it was missed that PgpActivity relies on
PasswordStore to commit the changes when it returns an appropriate
result code.

The fix is to extract the commit code into the companion object of
PasswordStore and call it from AutofillSaveActivity's onActivityResult.
2020-03-26 19:49:28 +01:00
Fabian Henneke
de4cc63860
Fix deletion of individual password files (#668)
Commit fde8137b (#659) introduced a regression that results in Password Store crashing when the user tries to delete a single password file as opposed to a directory.

The root cause is a call of FileUtils.listFiles() on the selected item, which only works for directories.

The fix is to work with a list consisting only of the selected item if it happens to be a file.
2020-03-26 19:08:01 +01:00
Fabian Henneke
a736dcc255
Fix: Don't apply single-origin mode to native apps (#667)
An unwarranted use of the Elivs operator in Form.kt makes it such that
the restrictions of single-origin mode also apply to native apps.

This commit fixes the bug and also reduces the number of intermediate
values that can mask mistakes like this one.

It also renames saveFlag to saveFlags in BrowserAutofillSupportInfo
since this variable is not limited to contain only a single flag.
2020-03-26 20:59:19 +05:30
Fabian Henneke
5445899ab8
Workaround: Prevent fill-in datasets from being shown on Android… (#666) 2020-03-26 14:33:54 +05:30
Fabian Henneke
8f722a2219
Fix: Properly handle IP addresses and invalid domains in Autofill (#664)
Mozilla's getPublicSuffixPlusOne is only meant to be invoked on syntactically
valid domain names. In particular, it does not give reasonable results for IP
addresses.

This commit ensures that the domain passed to getPublicSuffixPlusOne is
syntactically valid and not an IP address (the latter is unfortunately
considered a domain by the Android validation patterns).
2020-03-25 20:21:56 +01:00
Fabian Henneke
fde16c60f4
Make preferred directory structure for Autofill configurable (#660)
Some users keep their password files in a directory structure such as:
/example.org/john@doe.org.gpg
while others prefer the style:
/example.org/john@doe.org/password.gpg

This commit adds a setting that allows to switch between the two. All Autofill
operations, such as search, match, generate and save, respect this setting.

Note: The first style seems to be the most widely used and is therefore kept as
the default. The second style is mentioned on the official Pass website at:
https://www.passwordstore.org/#organization
2020-03-25 18:13:04 +01:00
Fabian Henneke
973e023dda
Add "pass" as a hint pattern for password fields (#661) 2020-03-25 18:00:44 +01:00
Fabian Henneke
5164b6951b
Add more lenient rules that apply only on manual request (#662)
Add rules that match password/username fields even if no heuristic matches, but
only when the user explicitly requests Autofill. Since there is now a generic
way to always trigger Autofill (at least in apps), other rules no longer need
to match fields that fail the heuristics.

Along the way, the apply functions in AutofillStrategy.kt are renamed to match
in order to not conflict with the Kotlin apply() extension function.
Furthermore, named parameters are used more widely now to pass around Booleans.
2020-03-25 17:53:58 +01:00
Fabian Henneke
fde8137b62
Delete AutofillMatches when deleting files (#659) 2020-03-25 17:13:30 +01:00
Fabian Henneke
bebe434683
Add support for Oreo Autofill (#653)
Adds support for the Autofill feature first available in Android Oreo.

In compatible apps and browsers, login forms are automatically detected and
the user is presented with options to fill or generate credentials. In most apps
and certain browsers, the service will also offer to create new Password Store
entries from credentials entered into login forms.

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2020-03-24 14:03:40 +01:00
Harsh Shandilya
98e9f6734a
Revise copy (#656)
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-03-21 17:44:13 +05:30
Harsh Shandilya
793abd690d Codestyle cleanup
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-03-20 14:48:53 +05:30
Harsh Shandilya
0aeb51efa4 ClipboardService: Fix icon
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-03-20 14:48:53 +05:30
Aditya Wasan
65b8e77f92
Show snackbar when git repo is not initialized (#651)
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
2020-03-07 21:54:34 +05:30
Harsh Shandilya
29f124a0bc
Upgrade all dependencies (#649)
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-03-07 17:45:18 +05:30
Harsh Shandilya
73058d10a8
Resolve various memory leaks (#637)
This migrates the clipboard clear logic into a foreground service that allows us to also provide a notification that runs the clear task immediately on click, rather than wait for the timeout.

Co-authored-by: Aditya Wasan <adityawasan55@gmail.com>
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-03-05 21:05:50 +05:30
glowinthedark
addefdc9a3
Swipe2refresh fix (#647) 2020-03-01 21:05:11 +05:30
glowinthedark
09005f8043
swipe to refresh using androidx SwipeRefreshLayout (#645)
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-03-01 02:20:09 +05:30
glowinthedark
947e41105b
Add xkpasswd-style password generator (#633)
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-03-01 02:16:31 +05:30
Gigahawk
4afb23bbb4
Add longpress to copy implicit username (#635)
* Add longpress to copy implicit username

* Address review comments

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2020-02-24 07:37:29 +05:30
Harsh Shandilya
1a38ecbe75
Delete passwords recursively (#639)
Delete passwords recursively

* Fixes #638 
* Update CHANGELOG

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-02-22 22:52:35 +05:30
Harsh Shandilya
af9f8f529b UserPreference: Fix changes from 9787489bc5
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-02-21 23:01:54 +05:30
Harsh Shandilya
812b92ab38 AutofillService: Speed item loading
Don't make cacheable function calls in loops

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-02-21 23:01:54 +05:30
Harsh Shandilya
9787489bc5
Resolve some crashes reported on Play Store (#631)
* ShowSshKeyFragment: Resolve illegal casts

* UserPreference: Try harder to not crash

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-02-21 12:42:27 +05:30
Gigahawk
9255583f2d
Better UI flow (#630)
* Filter against entire pathname when searching

* Add option to directly open search dialog on start

* Replace basic search filter with fuzzy search

* Update CHANGELOG

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>

* Open search in onResume, force search icon to always show

* Add option to always search from root directory

Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2020-02-20 11:49:09 +05:30
Harsh Shandilya
bcdc43b1f1 Gain focus in folder creation dialog (#624)
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
Co-authored-by: Aditya Wasan <adityawasan55@gmail.com>
2020-02-10 09:47:07 +05:30
Harsh Shandilya
085b946c7d
Theming related fixes (#627)
* Make navigation match window background

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>

* Remove light navigation flag

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>

* Use black navbar in light theme

windowLightNavigationBar is not portable across API 23 to 29 so we're better off with this solution

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>

* Simplify folder dialog title UI

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>

* Make night theme completely flat

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>

* Remove unnecessary type

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>

* Don't try to use non-existent external repo

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>

Co-authored-by: Aditya Wasan <adityawasan55@gmail.com>
2020-02-01 23:41:44 +05:30
Harsh Shandilya
74bb1c4357
Autofill UX improvements and code cleanup (#626)
Co-authored-by: Aditya Wasan <adityawasan55@gmail.com>
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2020-01-30 20:01:06 +05:30
Harsh Shandilya
d350a27611
Update license headers (#625)
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2020-01-30 01:00:20 +05:30
Harsh Shandilya
f295e97de6
Allow creating folders (#623)
* Introduce EmitExpandableTransformationBehaviour

* Implement expand transition

* More folder work

* Add icons and tweak layout clipping

Rishi again with the icon rescue

* Theming rework

* Dont set tag

* Update list and commit after creating folder

* Fix theme issues

* Add dialog title
* Fix hint text color

* Remove commit method

* Cleanup

* Update CHANGELOG

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
Co-authored-by: Aditya Wasan <adityawasan55@gmail.com>
2020-01-28 01:49:37 +05:30
Harsh Shandilya
ab5aebeda3 Improved debugging tools (#620)
* Add WhatTheStack

* Add leakcanary

* Codestyle nit

* Support snapshot builds for debug tooling

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2020-01-27 23:24:04 +05:30
Harsh Shandilya
27e1952375 Add fastscroller with alphabetic hints (#616)
* Setup basic fast scroll

Work towards #558 

* Implement PopupTextProvider

Fixes #558

* Update changes

* Hide system scrollbars

* Port fastscroll to autofill preferences

* Spotless

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2020-01-26 11:49:45 +05:30
Harsh Shandilya
2c78470642
Switch to Timber for logging (#617)
* Switch to Timber for logging

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>

* Update changelog

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>

* Fix rebase error

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2020-01-26 11:35:10 +05:30
Harsh Shandilya
14f1fa6538
Correctly unmarshal errors from OpenKeychain (#615)
Fixes #614 

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2020-01-25 20:19:49 +05:30
Gigahawk
c129fb347e Add full path open in autofill dialog (#609) (#610)
Fixes #609
2020-01-21 09:18:39 +05:30
Gigahawk
44f0f22574 Fix autofill window size (#611) (#612) 2020-01-21 09:10:44 +05:30
Harsh Shandilya
382ab97b7c Update and cleanup dependencies (#607)
* Remove unused cardview dependency

* Remove unused test dependencies and update junit

* Update spotless

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2020-01-11 17:50:00 +05:30
kpengboy
e6ba1fcf1c Update/correct some zh-CN strings (#606)
Namely those for git_commit_{edit,add}_text
2020-01-05 15:56:32 +05:30
Harsh Shandilya
039685a6db Update proguard configuration (#605)
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2020-01-01 18:52:38 +05:30
Harsh Shandilya
d5a744bd37 Prepare for new Play Store listing (#602)
* Gradle cleanup

* Update package name

* Remove release APK from git

This should have never been here

* Move package name to dependencies.gradle

* github: Setup caching for gradle

* Update Play Store art

* gradle: Use constraints API in place of deprecated force

* Update dependencies

* Raise minSdk to 23

* Target SDK 28 for now

External storage handling changes are atrocious to support in this codebase so we'll be holding out as far as we can.

* Revert "Opt into legacy external storage handling (#595)"

Not needed on SDK 28

This reverts commit 3f249e4bff.

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-12-31 20:57:38 +05:30
Harsh Shandilya
bfbbdecc07 Fix release builds (#601)
* proguard: Don't obfuscate stacktraces

* Deploy snapshots from this branch

* PasswordRepository: Handle uninitialized settings

* Keep classes that are used in parcels

* Revert "Deploy snapshots from this branch"

This reverts commit 66918ca2b90dbf7629bd56606eb3d3f578d96105.

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-12-16 12:46:06 +05:30
Harsh Shandilya
e61551bf37
Setup snapshot deployment (#599)
* Setup snapshot deployment

* README: Update repository links

* README: Update workflow badge link

* README: Add link to Snapshot builds

* Fix snapshot/pull-request build conflict

* Deploy from feature/deploy-snapshots as well

* Revert "Deploy from feature/deploy-snapshots as well"

Confirmed it works well

This reverts commit 06f6bc0e8c19f238643655d09ca20f83dd416283.

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-12-16 03:19:18 +05:30
Harsh Shandilya
3a7c541360 Fix missing margin in server config view (#594)
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-12-15 21:59:53 +05:30
Harsh Shandilya
3f249e4bff Opt into legacy external storage handling (#595)
The app is too messy to migrate properly to SAF so let's just take the easier route for now.

Fixes #593

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-12-15 21:53:36 +05:30
Harsh Shandilya
0a01911d87
Update to openpgp-ktx 1.0.0 (#585)
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-29 15:55:16 +05:30
Harsh Shandilya
fdbbb467b2
LaunchActivity: Optionally delay finish call to allow transition… (#583)
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-29 14:47:23 +05:30
Harsh Shandilya
df0c886152 Rewrite Gradle configuration to simplify further (#581)
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-26 23:48:18 +05:30
Harsh Shandilya
1d081b9054 Tweak password row layout some more (#567)
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-16 12:08:31 +05:30
Harsh Shandilya
de9a201587 Also count subdirectories in child count (#573)
* Also count sub-directories in child count

* Respect hidden folders setting in child count

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-15 12:05:53 +05:30
Aditya Wasan
9892799824 Prevent an activity loop when no OpenPGP Provider is selected (#572)
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
2019-11-13 12:31:02 +05:30
Harsh Shandilya
1f158c5ca6
Add option to show hidden folders (#571)
* Add option to show hidden folders

Fixes #446

* Simplify filtering

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-13 11:34:57 +05:30
Harsh Shandilya
4c751a175f
Fix snackbars drawing behind input methods
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-13 02:21:34 +05:30
Aditya Wasan
9acad2abf6 Convert java files to kotlin (#570)
* Break SshKeyGen into multiple files

* Use tinted material button

* Convert PasswordStore to kotlin

* Remove SshKeyGen

* Remove explicit imports and other tweaks

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
2019-11-13 00:55:56 +05:30
Harsh Shandilya
5749c97d7c
PasswordGeneratorDialogFragment: Rewrite in Kotlin (#569)
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-12 21:55:59 +05:30
Harsh Shandilya
4c7f46aa8a
Switch to openpgp-ktx (#565)
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-12 02:14:28 +05:30
Harsh Shandilya
eb9754ba79
Switch clear icon to outlined variant
Also missed in #566

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-11 21:03:38 +05:30
Harsh Shandilya
12054836e5
Switch share icon to outlined variant
Missed it in #566

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-11 21:00:59 +05:30
Harsh Shandilya
b9e39671a4
Redo in-app iconography (#566)
* Switch out folder icon

* Switch out password icon

* Switch out 'save and copy' icon

* Switch out save icon

* Switch out move icon

* Switch out delete icon

* Switch out edit icon

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-10 12:39:51 +05:30
Harsh Shandilya
e4eaae37eb
Re-add OpenPgpAppPreference (#564)
Re-add OpenPgpAppPreference
2019-11-08 12:54:50 +05:30
Harsh Shandilya
67160f50d1
Re-add OpenPgpAppPreference
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-08 12:30:14 +05:30
dependabot-preview[bot]
6ab66f9f0e Bump junit from 4.13-beta-3 to 4.13-rc-1
Bumps [junit](https://github.com/junit-team/junit4) from 4.13-beta-3 to 4.13-rc-1.
- [Release notes](https://github.com/junit-team/junit4/releases)
- [Changelog](https://github.com/junit-team/junit4/blob/master/doc/ReleaseNotes4.12.md)
- [Commits](https://github.com/junit-team/junit4/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-06 19:38:39 +00:00
Harsh Shandilya
b9e2d6d498
Manifest cleanup
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-07 01:04:42 +05:30
Harsh Shandilya
3b758928ff
Stop relying on parent activties in subsettings
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-06 19:58:09 +05:30
Harsh Shandilya
be0d89958a
treewide: Reformat with latest ktlint
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-06 19:42:39 +05:30
Harsh Shandilya
b2d352e3ea
Revert back to Groovy DSL
The Kotlin DSL's API is extremely terrible and makes the simplest tasks annoying. It also introduces a very noticeable build overhead that I'd rather not have.

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-06 19:41:15 +05:30
Harsh Shandilya
94e56ce812
Improve light mode list select color
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-05 02:26:50 +05:30
Harsh Shandilya
0d5672dd11
Switch up folder icon
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-05 02:20:34 +05:30
Harsh Shandilya
a47af477b6
Remove useless parent layout
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-04 23:16:25 +05:30
Harsh Shandilya
13abcdeb80
password_row: Improve alignment
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-04 23:08:00 +05:30
Harsh Shandilya
91c55d4446
Fix multiselect color on light theme
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-04 21:40:50 +05:30
Harsh Shandilya
a21353cb06
Add child count to folders
Fixes #559

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-04 20:13:19 +05:30
Harsh Shandilya
159e8967b6
Redesign onboarding fragment
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-04 20:13:18 +05:30
Harsh Shandilya
be47f13d75
Add UI indicator for folders
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-04 20:13:18 +05:30
Harsh Shandilya
ed02961315
Cleanup comments
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-04 20:13:09 +05:30
Harsh Shandilya
8fc7dd3d42
Rewrite PasswordFragment in Kotlin
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-04 19:50:48 +05:30
Harsh Shandilya
14d997f500
Cleanup
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-04 19:50:48 +05:30
Harsh Shandilya
077e67d8e3
PasswordRepository: Refactor getRepositoryDirectory to be non-nullable
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-04 19:50:48 +05:30
Harsh Shandilya
a409cae2a8
Improve IDE visualization of password recyclerview
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-04 19:50:48 +05:30
Harsh Shandilya
6b228a80ef
Improve password row UI (#561)
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-03 23:42:11 +05:30
Harsh Shandilya
13a4bf12c3
PasswordRepository: Rewrite and micro-optimize password loader
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-03 23:35:45 +05:30
Harsh Shandilya
a520b3db64
Convert SelectFolderFragment to Kotlin
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-03 20:46:03 +05:30
Harsh Shandilya
25029c9055
Reorganize package structure
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-03 18:05:23 +05:30
Harsh Shandilya
8c00708d9f
Use SwitchPreferenceCompat
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-03 18:05:07 +05:30
Harsh Shandilya
2be6302b6b
PgpActivity: Use snackbars instead of toasts
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-10-31 17:39:48 +05:30
Harsh Shandilya
a0372d78bc
PgpActivity: Fix exception in copy
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-10-31 11:17:13 +05:30
Harsh Shandilya
5df7be10b5
Authenticator: Allow using PIN/password/pattern as fallbacks
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-10-27 18:21:19 +05:30
Harsh Shandilya
cdf45bc323
Add setting to save OpenKeychain auth keyid (#554)
* Add setting to save OpenKeychain auth keyid

* Hide pref not disable

Co-Authored-By: Reagan Sanders <vexofp@gmail.com>
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-10-27 00:14:42 +05:30
Harsh Shandilya
2fcec8685b
Update dependencies
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-10-24 12:25:01 +05:30
Harsh Shandilya
7a80be7732
treewide: Fix typo in license header
While we're here, also clarify we're strictly GPL-3.0 and not automatically
opting into future revisions of the license.

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-10-02 20:10:07 +05:30
Harsh Shandilya
ee3535482a
treewide: Add copyrights
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-10-02 18:11:22 +05:30
Harsh Shandilya
f1f59dc1ed
Add Spotless to regulate codestyle (#550)
* Add Spotless to regulate codestyle

* treewide: Run spotless

* Add spotlessCheck to CI test

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-10-02 18:04:18 +05:30
Harsh Shandilya
9a1a54a6fc
Initial biometric authentication support (#541)
* [WIP] Initial biometric authentication support

* Redirect decryption app shortcut to go through LaunchActivity

* UserPreference: Clear existing shortcuts when toggling password auth

Clears out any auth-bypassed entries that exist

* Fix hilarious copypasta derp

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-10-02 11:00:45 +05:30
Harsh Shandilya
073346c157
Redesign UI and introduce dark theme (#519)
Caveats:

- The openpgp preference had to be removed because the open-intents developers are too lazy to update their libraries. Over the coming weeks I will be reimplementing a local solution for this instead.

- The autofill dialog is broken but I since it is being worked on in #410 already I'm not going to bother fixing it.
2019-10-01 22:14:28 +05:30
Harsh Shandilya
c9dc4034f1
pwgen: Cleanup some variable declarations
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-10-01 20:54:04 +05:30
Alex Burka
4169af453b don't update nonexistent progress bar (#549) 2019-09-30 10:28:20 +05:30
Harsh Shandilya
77af0669ed
Reformat
[skip travis]

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-09-15 05:16:59 +05:30
Alex Burka
367e55de3c add save-and-copy button (#537) 2019-09-14 13:18:18 +05:30
zeapo
7062156b1a version bump 2019-09-09 21:22:06 +02:00
Harsh Shandilya
0516e3153f
Uprev dependencies
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-09-08 22:03:24 +05:30
Harsh Shandilya
9882680826
Bump recyclerview from 1.1.0-beta01 to 1.1.0-beta02
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-08-11 11:06:24 +05:30
Harsh Shandilya
682e8a5715
Add explicit documentfile dependency
We were previously depending on it transitively coming into
the dependency graph but AndroidX artifacts are increasingly
getting rid of transitive deps so let's start being explicit about
our dependencies.

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-08-03 13:32:48 +05:30
Harsh Shandilya
cc4b3ebd64
Bump commons-codec from 1.12 to 1.13
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-08-03 13:28:54 +05:30
Harsh Shandilya
867f352691
Bump material from 1.1.0-alpha08 to 1.1.0-alpha09
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-08-03 13:28:54 +05:30
Harsh Shandilya
be206d796d
treewide: Remove more useless log prints
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-07-30 06:33:57 +05:30
Harsh Shandilya
5ce19cd92d
Ensure git commit time doesn't overflow
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-07-30 06:27:19 +05:30
Harsh Shandilya
36b0a41578
Ensure we always have valid timestamps
Non-git repositories deserve love too!

Fixes #530

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-07-30 06:24:06 +05:30
Harsh Shandilya
c635704032
PasswordStore: Remove useless log prints
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-07-30 06:20:36 +05:30
Harsh Shandilya
d583609b28
AutofillFragment: Explicitly declare type
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-07-30 06:15:56 +05:30
Harsh Shandilya
80c397ef7b
treewide: Reformat
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-07-30 05:59:10 +05:30
Harsh Shandilya
baf82943cf
Switch to androidx preference manager
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-07-28 12:09:29 +05:30
Harsh Shandilya
499c4ef460
Configure compiler options
Enable Kotlin 1.3.41's new type inference
Warn about deprecated methods in Java

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-07-28 12:09:29 +05:30
Harsh Shandilya
1fd5f202b0
Fix compile errors
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-07-28 12:07:42 +05:30
Harsh Shandilya
5fe2c74cc7
Target Android Q
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-07-28 12:07:36 +05:30
Harsh Shandilya
699007c53b
PasswordStore: Clear some lint warnings and deprecated API
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-07-28 12:07:04 +05:30
xPMo
eaeeaf4115 Fix typo in username toast (#525) 2019-07-22 03:24:32 +05:30
Harsh Shandilya
0889cbe7d2
Dependency upgrades
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-07-16 18:33:13 +05:30
Harsh Shandilya
27377c284f
proguard: Fix SearchView FQCN
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-07-16 18:24:07 +05:30
Harsh Shandilya
54d2c04cc1
Add missing super calls
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-07-05 15:58:27 +05:30
Harsh Shandilya
c6363dc86d
AutofillFragment: Repair semantics for newest AppCompat changes
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-07-05 15:23:15 +05:30
Harsh Shandilya
4207bfe2de
Uprev all dependencies
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-07-04 12:47:24 +05:30
Miles Breslin
2e8fe06b2b Allow alternate totp format (#523)
Fixes #495
2019-07-04 12:44:47 +05:30
Harsh Shandilya
56e53d36fd
GitAsyncTask: Acquire WeakReference of activity to prevent context leaks
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-05-31 13:26:56 +05:30
Harsh Shandilya
68d20c5f2f
Convert Git and SSH config factories to Kotlin
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-05-31 13:23:37 +05:30
Harsh Shandilya
f05c0b37ca
GitActivity: Cleanup obvious code smells
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-05-31 13:15:47 +05:30
Harsh Shandilya
168c3d42aa
Convert GitOperation API and implementations to Kotlin
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-05-31 13:15:29 +05:30
Harsh Shandilya
daafc01ce2
Otp: Remove string concatenation from calculation hot path
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-05-31 12:57:39 +05:30
Harsh Shandilya
30b6d2346a
Fix instrumentation tests
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-05-31 12:57:18 +05:30
Harsh Shandilya
8c0bce3e98
treewide: Resolve layout warnings
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-05-31 12:47:07 +05:30
Harsh Shandilya
75a595f07f
Dependency updates
Mockito 2.28.2
AndroidX Test 1.2.0
AndroidX Espresso 3.2.0
AGP 3.4.1

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-05-31 12:27:48 +05:30
Harsh Shandilya
53b42905f1
Convert autofill package to Kotlin (#515)
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-05-29 00:42:09 +05:30
Harsh Shandilya
321035c319
Simplify password row layout and resolve icon tints
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-05-26 14:56:43 +05:30
Emmanuel Corrales
c46f50f86f Added a "SHOW EXTRA CONTENT" button under the "SHOW PASSWORD" button. (#510)
* Add 'SHOW EXTRA CONTENT' button.

* Show the extra content after clicking the 'SHOW EXTRA CONTENT' button.

* Change the regular button to a toggle button and add text for hiding extra contents.

* Change the implementaton of showing/hiding extra contents to accomodate using a toggle button.

* Add padding to the top of the button.
2019-05-26 14:54:16 +05:30
Harsh Shandilya
b06420eb83
Improve nullability coverage (#514)
* Switch to in-built RV divider

* Switch getActivity calls to requireActivity

This enforces non-null activity and throws a proper exception when it is
null for some reason.

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-05-26 12:40:03 +05:30
Harsh Shandilya
5078da4490
Vectorize drawables (#516)
All icons were sourced from material.io/icons

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-05-25 22:32:30 +05:30
zeapo
bca66a12e9 a signed build 2019-05-25 10:51:19 +02:00
Bastian Köcher
055cacdd91 Fix finding Otp digits (#511)
If no `digits` was present, this function failed with a
`NullPointerException`.
2019-05-16 13:19:18 +05:30
Mohamed Zenadi
064a3fad99
Allow the user to push local master to a new branch in case of conflict (#508)
* detect that we're in a detached head and show the message

* add a new way to clean local repo in case of failed rebase
2019-05-15 11:22:07 +02:00
Harsh Shandilya
127a8b8c8a
Update mockito and fix dependency updates task
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-05-01 17:03:58 +05:30
Harsh Shandilya
00e2cf352f
PasswordStore: Resolve some IDE warnings
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-04-25 09:18:31 +05:30
Hussein Al Abry
e54010906f Use storage access framework (#469)
* use storage access framework

* UserPreference: Add back warning about using SDCard root directory

* UserPreference: Fix IDE warnings

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-04-25 09:11:32 +05:30
vexofp
f272e4dde2 Authentication using OpenKeystore SSH API (#486)
* Implemented OpenKeystore SSH API as a new authentication option

* Fix formatting problems

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>

* Addressed review comments.

Removed leftover debugging code.
Wrapped excessively long lines.
Added missing new parameter to Javadoc.

* Merge remote-tracking branch 'upstream/master' into gpg-ssh-key
2019-04-06 00:14:38 +02:00
Harsh Shandilya
94bf103b33
Merge pull request #491 from igaryhe/master
Read OTP digits, algorithm, period from URI, support Steam Guard
2019-03-19 20:34:41 +05:30
Dan Ho
2ca59d95f9 fixed accidental newlines 2019-03-15 23:19:49 +08:00
Dan Ho
9137dadcbd minor spelling mistake fix 2019-03-15 22:49:14 +08:00
Dan Ho
f5139320db break several lines to limit the line length 2019-03-15 22:20:30 +08:00
Harsh Shandilya
cb47792ae6
Dependency updates
Mockito core 2.25.0
AGP 3.3.2

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-03-15 18:33:51 +05:30
Dan Ho
b2eb150c0f Read OTP digits, algorithm, period from uri, support Steam Guard 2019-03-14 08:16:24 +08:00
Harsh Shandilya
6d909abde8
Switch to kotlin jdk8 stdlib
We're targetting Java version 1.8 so reflect that change
here too.

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-03-03 12:51:09 +05:30
Harsh Shandilya
ffe489c293 Dependency updates (#489)
* Configure dependencyUpdates task

Configured to emit JSON reports in build directory and to
only use stable releases.

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>

* Update dependencies

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-03-02 19:08:57 +01:00
Harsh Shandilya
3c06063153 Rewrite Gradle configuration with Kotlin DSL (#488)
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-03-02 18:05:51 +01:00
rk0n
0b6ba542a8 Fix clear clipboard 20 times history (#465) (#487) 2019-02-28 20:15:35 +01:00
Harsh Shandilya
88c84e4400 [ImgBot] Optimize images (#485)
*Total -- 32.98kb -> 20.64kb (37.43%)

/app/src/main/res/drawable-xxxhdpi/ic_content_copy.png -- 1.30kb -> 0.61kb (52.75%)
/app/src/main/res/drawable-nodpi/autofill_ins_2.png -- 6.69kb -> 3.97kb (40.69%)
/app/src/main/res/drawable-nodpi/autofill_ins_1.png -- 11.65kb -> 7.15kb (38.61%)
/app/src/main/res/drawable-nodpi/autofill_ins_3.png -- 10.47kb -> 6.48kb (38.18%)
/app/src/main/res/drawable-xxhdpi/ic_content_copy.png -- 0.80kb -> 0.50kb (37.76%)
/app/src/main/res/drawable-xhdpi/ic_content_copy.png -- 0.55kb -> 0.47kb (13.73%)
/app/src/main/res/drawable-xxhdpi/ic_action_secure.png -- 0.61kb -> 0.57kb (7.21%)
/app/src/main/res/drawable-hdpi/ic_content_copy.png -- 0.41kb -> 0.40kb (2.84%)
/app/src/main/res/drawable-xhdpi/ic_action_secure.png -- 0.50kb -> 0.49kb (1.37%)
2019-02-21 22:43:51 +01:00
Harsh Shandilya
86696c668c Convert PasswordEntry to Kotlin (#477)
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-02-03 12:24:15 +01:00
reroman
a819343c74 Allow to create passwords without lowercase letters. (#478)
* Clipboard now is cleared after manual copy

* Spanish translation added

* Spanish translations for commit messages updated

* Now can generate passwords free of lowercase (for example only numbers, uppercase or symbols)

Also it makes sure that uppercase is included when the generated char is ambiguous and discarded
2019-02-03 12:22:12 +01:00
reroman
723a40a216 Clipboard now is cleared with manual copy (#464)
* Clipboard now is cleared after manual copy

* Spanish translation added

* Spanish translations for commit messages updated

* Validation of value 0 in general_show_time before start timer

The clear_after_copy preference is disabled according with that value.

* Like clear_after_copy, clear_clipboard_20x now depends on the value of general_show_time too
2019-01-13 23:13:11 +00:00
Harsh Shandilya
d09de8bbf5 Suppress lint warning (#475)
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-01-13 23:11:25 +00:00
Timo Loewe
bedda61088 Use different colors for debug app icon (#472) 2019-01-12 13:56:29 +00:00
Timo Loewe
2a921aec65 Fix autofill preference referencing hard-coded application id (#473) 2019-01-12 13:54:54 +00:00
Timo Loewe
094c6da53e Enable parallel installation of release and debug builds (#471)
* Specify applicationIdSuffix for debug build type

This allows installing debug and release versions of the app
alongside each other.

* Get rid of obsolete repository declaration in app/build.gradle
2019-01-06 16:32:32 +01:00
Harsh Shandilya
f34ce30cc7 GitOperation: Dismiss activity on cancel (#468)
Fixes the issue where starting a repository sync and then
hitting cancel in the password dialog leaves you with an empty activity
which needs to be dismissed to get back to where you were.

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-01-03 10:54:45 +00:00
حسين
249248e168
improve translations with format strings
delete dialog format string

dialog text format
2019-01-02 19:18:18 +00:00
Harsh Shandilya
c200566bca Bump minSdk to 21 (#466)
* Bump minSdk to 21

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>

* PasswordGenerator: Constify things

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>

* Deprecate PRNG fixes

The problem being fixed doesn't exist on SDK 21 and above.

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>

* treewide: Switch to lambdas

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>

* treewide: Formatting fixes

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>

* treewide: Remove useless casts and add missing annotations

Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-01-02 17:14:52 +00:00
حسين
06a7d79260
set untranslateable strings 2019-01-02 14:30:11 +00:00