Commit graph

173 commits

Author SHA1 Message Date
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
Fabian Henneke
d6db10e089 Match any path component in StrictDomain FilterMode 2020-04-15 22:47:41 +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
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
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
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
09005f8043
swipe to refresh using androidx SwipeRefreshLayout (#645)
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-03-01 02:20:09 +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
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
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
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
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
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
4c7f46aa8a
Switch to openpgp-ktx (#565)
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-11-12 02:14:28 +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
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
3c06063153 Rewrite Gradle configuration with Kotlin DSL (#488)
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-03-02 18:05:51 +01: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
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
oleg-fiksel
62954ee78f bump version (#459) 2018-12-23 16:34:29 +00:00
حسين
0382716c5e
bump version 2018-10-18 00:28:25 +01:00
حسين
88721f5905
bump version number
new versionCode format:
    1  - major version
    03 - minor version
    00 - revision
2018-10-16 13:38:31 +01:00
Harsh Shandilya
483e8d9310 Migrate to AndroidX (#430)
* Update gradle and external dependencies

- Switch away from deprecated compile directive
- Remove explicit buildToolsVersion, is defined by the gradle plugin now
- Fix build in SelectFolderActivity

Signed-off-by: Harsh Shandilya <harsh@prjkt.io>

* Upgrade gradle plugin and wrapper to latest alpha

Signed-off-by: Harsh Shandilya <harsh@prjkt.io>

* Don't use alpha gradle plugin

Signed-off-by: Harsh Shandilya <harsh@prjkt.io>

* Migrate to AndroidX

https://developer.android.com/jetpack/androidx/

Signed-off-by: Harsh Shandilya <harsh@prjkt.io>

* Upgrade AndroidX dependencies to stable release

Signed-off-by: Harsh Shandilya <harsh@prjkt.io>

* Enable Jetifier

Signed-off-by: Harsh Shandilya <harsh@prjkt.io>

* SelectFolderFragment: Fix build

Signed-off-by: Harsh Shandilya <harsh@prjkt.io>
2018-10-12 15:06:04 +01:00
Harsh Shandilya
8ff0039be4 Update gradle and external dependencies (#429)
* Update gradle and external dependencies

- Switch away from deprecated compile directive
- Remove explicit buildToolsVersion, is defined by the gradle plugin now
- Fix build in SelectFolderActivity

Signed-off-by: Harsh Shandilya <harsh@prjkt.io>

* Upgrade gradle plugin and wrapper to latest alpha

Signed-off-by: Harsh Shandilya <harsh@prjkt.io>

* Don't use alpha gradle plugin

Signed-off-by: Harsh Shandilya <harsh@prjkt.io>
2018-10-11 16:39:45 +01:00
Mohamed
c223a52a4b upgrade gradle, dependencies and bump version 2018-03-31 11:10:06 +02:00
Mohamed
0480e7cb02 version bump 2018-01-06 20:49:39 +01:00
Mohamed
2d543d8e98 update version 2018-01-06 20:49:10 +01:00
Wiktor Kwapisiewicz
3d5dd65e30 Display TOTP code if entry contains OTP secret
TOTP is calculated on display and on copy to clipboard from secret
embedded in entry (either in password or in extra) and the current time.
2017-11-19 11:14:45 +01:00
Mohamed
7b8aae3c7b bump version 2017-11-19 10:29:47 +01:00
zeapo
db97bb7b26 update buildToolsVersion and travis 2017-10-30 23:08:30 +01:00
zeapo
07b74de908 a bug fixes build, in alpha 2017-10-30 22:59:06 +01:00
zeapo
b6cb649f7c update gradle, support versions and target versions 2017-10-30 22:37:40 +01:00
zeapo
d284e29237 version bump 2017-08-10 11:58:33 +02:00
zeapo
b95754a90c go back to a newer version of commons-io as the ANR has been fixed 2017-08-10 11:44:01 +02:00
zeapo
96aa605b75 check that encryption works 2017-08-10 11:10:29 +02:00
Mohamed Zenadi
b145dfcf7f Add Espresso for testing 2017-08-10 11:10:29 +02:00
Mohamed Zenadi
c3eb4f0a41 initial work on pgp activity 2017-08-10 11:10:29 +02:00
Mohamed Zenadi
82011f7f8b adding kotlin 2017-08-10 11:10:29 +02:00
Mohamed Zenadi
bf70407aec version bump to 88 2017-08-05 18:57:56 +01:00
Felix Bechstein
e169235d96 Fix more lint (#325)
* fix/ignore lint errors, run lint on travis

* fix/ignore some lint warnings
2017-08-02 10:15:31 +01:00
Mohamed Zenadi
37329a67f7 typo =_= 2017-08-02 10:14:28 +01:00
Mohamed Zenadi
650246a82f downgrade commons-io
The current version generated ANRs such as: `Input dispatching timed
out (Waiting to send non-key event because the touched window has not
finished processing certain input events that were delivered to it over
500.0ms ago. Wait queue length: 11. Wait queue head age: 8523.6ms.)`
when listing / opening files
2017-08-02 09:08:06 +01:00
Mohamed Zenadi
b29695ec3e version bump 2017-07-29 11:04:13 +01:00