When `android.permission.MANAGE_DOCUMENTS` is not granted, Seedvault
prompts to select a storage location. Do not insist on resolving the
storage's actual root, as it will likely (or perhaps always) fail.
Use a fake storage root as is done for USB and app-based options.
Known issues:
* Selected location is assumed not to be USB and not to require
network access in its storage options.
Change-Id: I357b4c68673d71c087be41e9c94c2841c1d6658e
* We've had a love/hate relationship with the combination of
SAF + Nextcloud app + Nextcloud server
* SAF is quite limiting, and that causes it's own issues
* On top of that, Nextcloud app has it's own issues. We've
even sent patches for some things, but there's only so much one can do
https://github.com/nextcloud/android/pulls?q=is%3Apr+author%3Agrote
* With the DAVx5 WebDAV support, it seems to work better.
* However, most recently a server side change broke things entirely, with either apps
https://github.com/seedvault-app/seedvault/issues/490#issuecomment-1368032414
* Due of all of this, it just leads to a bad backup experience.
As such, let's just say this is not recommended at all entirely
* Hopefully in the future we'll be able to support more options
Change-Id: I0b46dd11df7c31606131bf311583fe4777536463
* We already pre-fill the code on debug builds to make testing easier
* Allow screenshots too so we don't have to note down the code right away
when testing
Change-Id: Ie9cc3080616b78a6e5f9b427c080f10c146a036d
additionally adding a test to ensure the storage provider is excluded.
Otherwise, when the storage provider (i.e. DAVx5 or Nextcloud) is installed,
it will be terminated, and the restoration process will be interrupted.
Change-Id: Ic1be201b673d718b416009ff61f5d975c89b6a62
* Pressing "Backup now" should not just ignore you when it's not actually
enabled
* Add a toast message telling you it's not enabled
Fixes: #390
Change-Id: I5d698a244652e094b0acfc42cdea017a0af9a20b
* New SetupWizard uses external/setupdesign (sud) and
external/setupcompat (suc) to achieve the desired looks
* It prevents proper previews when included in any app, though, so
we better try achieving the same by manually styling the activities
for 12
* This patch mimics the design by applying styles similar to the ones
from sud, sometimes reusing parts taken from there
Change-Id: Iccf588e5239aeb00645f97b095910986f32c52d0
By default, Android exposes USB devices only to the main user.
In order to query, read and write to it, the signature permission INTERACT_ACROSS_USERS_FULL (optional) is granted to create Seedvault's context as the system user.
Issue: calyxos#437
Issue: https://github.com/seedvault-app/seedvault/issues/77
Change-Id: I0b1b4c8c5aeeb226419ff94e15f631ebe1db66df
On Android 11 this worked fine, but on Android 12 onStart() happens before activity results get delivered. We finish the activity when receiving a cancelled result. However, when onStart() gets called before we know the result, we relaunch an activity required for provisioning again instead of finishing.
Before, we were faking a backup and just returned true, but remembering that next time, we need to do a fresh non-incremental @pm@ backup.
Now, we backup to local cache, but don't upload it. On next run, when we can do backups again, we will upload the updated cache. This simplifies things and reduces the special logic required.