575ef84726
* 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> |
||
---|---|---|
.github | ||
.tx | ||
app | ||
contrib/oisafe2pstore | ||
gradle/wrapper | ||
media | ||
release | ||
scripts | ||
.gitignore | ||
.gitmodules | ||
build.gradle | ||
CHANGELOG.md | ||
dependencies.gradle | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
LICENSE.txt | ||
README.md | ||
settings.gradle | ||
spotless.gradle | ||
spotless.license | ||
spotless.root.gradle |
Password Store
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:
- OpenKeyChain for encryption and decryption of passwords.
- JGit git library.
- Apache's FileUtils for file manipulations.
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!
Backers
Thank you to all our backers! 🙏 [Become a backer]
Sponsors
Support this project by becoming a sponsor. Your logo will show up here with a link to your website.[Become a sponsor]