| Age | Commit message (Collapse) | Author | Files | Lines |
|
* idea: default test runner to Gradle
* Kick off package structure revamp
* Reparent all classes under dev.msfjarvis.aps
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
|
|
* Revert "Add option to automatically sync repository on app launch (#1137)"
Fixes #1163
This reverts commit 92f1aab25da12411aa256c3b763e0cb6182e9320.
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* CHANGELOG: add entry for auto sync rollback
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
|
|
* autofill: remove Accessibility backend
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* CHANGELOG: update
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
|
|
* Add option to automatically sync repository on app launch
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* Pull repo if user is not authenticated
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* Address review comments
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Hijack incoming intent rather than copying it
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Initialize password repository before using it
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
|
|
|
|
The newest versions of AndroidX Activity and Fragments correctly enforce the
requirement for all contracts to be registered at class init or before
the lifecycle has reached `Lifecycle.State.STARTED`. To comply with these requirements,
move all instances of `registerForActivityResult` being called at arbitrary points
in the code to be done at class init.
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
|
|
|
|
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
Co-authored-by: Fabian Henneke <fabian@henneke.me>
|
|
* OnboardingActivity: fix directory change option
Add an else clause to cover the case when storage permission is granted already
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* all: rename permission grant method
The new name is a bit more explicit about its purpose
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* UserPreference: add static method for external directory selection intent
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
|
|
|
|
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
|
|
|
|
* build: uprev dependencies
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Address deprecation warnings
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Update autofill, appcompat and core
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
|
|
* build: update to Kotlin 1.4
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* UserPreference: finish if directory selection was triggered from an intent
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* PasswordStore: switch permission request to ActivityResultContracts
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* PasswordStore: fix activity reference
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* GitOperationActivity: make invalid values more obvious
Would have caught this issue much sooner if I had just done this
Fixes: 3d8cea596600 ("Improve permission handling logic (#732)")
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Assorted collection of hackery to make external storage use palatable
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Update changelog
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
|
|
* Make Git config URL-based and refactor
* Use Kotlin style null handling for string prefs
* Also show an error if generated URL can't be parsed
* Add some testcases for migration strategy
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
|
|
* Refactor uses of applicationContext and startActivityForResult
This commit applies three types of refactoring:
1. Remove context argument from PasswordRepository companion functions
by relying on Application.instance.
2. Introduce a sharedPrefs extension function on Context that returns
the default SharedPreferences for the applicationContext.
3. Use OpenDocument() and OpenDocumentTree() contracts.
* Drop toPasswordItem argument
|
|
* build: uprev to Kotlin 1.4
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Remove explicit type argument
Not required anymore with Kotlin 1.4
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* build: enable Kotlin 1.4 language features
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* all: add trailing commas where reasonable
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
Co-authored-by: Fabian Henneke <FabianHenneke@users.noreply.github.com>
|
|
|
|
Co-authored-by: Aditya Wasan <adityawasan55@gmail.com>
Co-authored-by: Fabian Henneke <fabian@henneke.me>
|
|
|
|
* Move password export to the IO dispatcher
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Simplify snackbars and disable exit operations during export
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Move export password logic to service
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* Reformat
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Use explicit null check
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Remove unneeded hack
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Fixup strings
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Don't use coroutines in a service
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* Update notification icon
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* Rollback unwanted formatting
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
Co-authored-by: Aditya Wasan <adityawasan55@gmail.com>
|
|
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
|
|
|
|
* Move git directory selection to ActivityResultContracts
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* global: replace all android.app.Activity references
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* res: resolve ObsoleteSdkInt lint warning
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* layout: silence some overdraw warnings
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* PasswordFragment: address deprecation
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* PasswordStore: start addressing deprecation warnings
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* autofill: silence deprecation warnings for legacy implementation
I don't want to ever touch these files
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Reset scrollTarget after use
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Refresh password list after each swipe
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Convert if to when
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Migrate UserPreference to ActivityResultContracts
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Also validate result in git directory selection
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* AutofillSaveActivity: Switch to ActivityResultContracts
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* AutofillDecryptActivity: Switch to ActivityResultContracts
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* AutofillFilterActivity: Switch to ActivityResultContracts
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Improve deletion flow
- Silently delete empty directory
- Always refresh password list upon completion
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Uniform naming for activity result handlers
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
Co-authored-by: Fabian Henneke <FabianHenneke@users.noreply.github.com>
|
|
* Use PreferenceKeys file to manage SharedPreferences keys.
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* Use PreferenceKeys in all files
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* Divide PreferenceKeys into multiple regions
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* Fix build error
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* Use PreferenceKeys in more files
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* Reformat code
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* Fix build error
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* Fix merge issues
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
|
|
|
|
|
|
|
|
|
|
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
|
|
Adds a preference that allows the user to specify domains that are then
treated as additional public suffixes for the purposes of Autofill.
|
|
|
|
* 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>
|
|
- 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
|
|
|
|
|
|
Fixes #461
|
|
|
|
* 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>
|
|
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
|
|
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
|
|
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
|
|
* 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>
|
|
* 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>
|
|
* Improve SSH private key validation
* Address review comment
|
|
* 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>
|
|
* Add annotations to and reformat SearchableRepositoryViewModel.kt
* Address build warnings other than meaningful deprecations
* Deal with warnings in UserPreference.kt
|
|
|
|
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
|
|
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>
|