* 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>
* Remove CI specific gradle props
They are installed by the CI pipeline automatically
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Upgrade AGP to 3.6.2
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Suppress android.useMinimalKeepRules warning
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Update to Spotless 3.28.1
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
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>
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>
* 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>
* 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>