No description
Find a file
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
.github Enable emulator tests (#708) 2020-04-17 00:24:13 +05:30
.tx tx: Update language mapping 2020-04-08 04:06:12 +05:30
app Refactor Git related activities (#685) 2020-04-17 18:36:07 +05:30
contrib/oisafe2pstore oisafe2pstore.hs: script to migrate from OI Safe 2016-07-23 15:51:37 +03:00
gradle/wrapper Enable emulator tests (#708) 2020-04-17 00:24:13 +05:30
media Prepare for new Play Store listing (#602) 2019-12-31 20:57:38 +05:30
release CI workflow improvements (#642) 2020-02-25 15:22:05 +05:30
scripts Add support for Oreo Autofill (#653) 2020-03-24 14:03:40 +01:00
.gitignore Setup snapshot deployment (#599) 2019-12-16 03:19:18 +05:30
.gitmodules remove openpgp submodule 2015-05-12 22:33:46 +02:00
build.gradle Reduce build warnings (#712) 2020-04-16 12:20:45 +02:00
CHANGELOG.md Refactor Git related activities (#685) 2020-04-17 18:36:07 +05:30
dependencies.gradle Refactor Git related activities (#685) 2020-04-17 18:36:07 +05:30
gradle.properties Update dependencies and fix Gradle props (#684) 2020-04-02 13:55:20 +05:30
gradlew Update wrapper scripts to Gradle 5.6.3 2019-10-19 18:02:32 +05:30
gradlew.bat Update AGP and Gradle 2020-02-25 08:21:56 +05:30
LICENSE.txt added license 2014-08-10 14:03:54 +01:00
README.md README: Update Play Store link 2020-01-21 21:21:58 +05:30
settings.gradle Update license headers (#625) 2020-01-30 01:00:20 +05:30
spotless.gradle Update license headers (#625) 2020-01-30 01:00:20 +05:30
spotless.license Update license headers (#625) 2020-01-30 01:00:20 +05:30
spotless.root.gradle Update license headers (#625) 2020-01-30 01:00:20 +05:30

Password Store

Android Arsenal GitHub workflow Backers on Open Collective Sponsors on Open Collective

This application tries to be 100% compatible with pass

You can install the application from:

Pull requests are more than welcome (see TODO).

Features

  • Clone an existing pass repository (ssh-key and user/pass support)
  • List the passwords
  • Handle the directories as categories
  • Decrypt the password files (first line is the password, the rest is extra data)
  • Add a new password to the current category (or no category if added at the root)
  • Pull and Push changes to the remote repository
  • Ability to change remote repository info

How-To

See the wiki for a newer written version of the following gif walkthrough

FAQ

Q: What kind of repository can I clone from?

A: Make sure to only clone from bare repositories (see git-clone(1) for how to create a bare repository from an existing one). Otherwise the clone will fail.

Q: I get a "Permission Denied" error when trying to import my ssh-key, why?

A: ssh-key files are usually created with permissions set to 600 , meaning that only the creator of this key has the right to read from it. The application needs a read access, at least temporarily, make the permissions to 644 , import the key, then set them back to 600 .

Q I get the error No encrypted data with known secret key found in stream

A In OpenKeyChain (under the left drawer) Apps > Password Store > Accounts > (select the account) > Account key select the key used to encrypt your passwords.

Q OpenKeyChain's password prompt doesn't show up when I tap on my passwords

A Be sure to disable battery optimisation for OpenKeychain in your device's settings and make sure there is no task killer running.

Community

Ways to get in touch:

  • Github issues, use it if you have a bug report, you do not understand how something works or you want to submit a feature request.

Contributing Translations

Interested in helping to translate Password Store? Contribute here!

Libraries

Libraries that this project uses:

Contributors

This project exists thanks to all the people who contribute. Want to contribute? See if you can find an issue you wanna close, then send a PR!

Opencollective

Backers

Thank you to all our backers! 🙏 [Become a backer]

Backers

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website.[Become a sponsor]

Triplebyte Applicative GmbH ScrapingBee Become a Sponsor