Commit graph

694 commits

Author SHA1 Message Date
Torsten Grote
690017c050
Only back up APK and write metadata when app was actually backed up
Apps that have nothing to back up start a backup but then get a call to cancelFullBackup()
and never even call finishBackup().
Do not write metadata for such apps, the call got moved to finishBackup().
2020-01-14 07:45:39 -03:00
Torsten Grote
2f352fe828
Show list of packages that we could restore data for 2020-01-14 07:45:39 -03:00
Torsten Grote
96a4642f4f
Show list of re-installed apps and let the user review it before restoring data 2020-01-14 07:45:38 -03:00
Torsten Grote
debaca0e2c
Ignore RestoreSets with no last backup time 2020-01-14 07:45:38 -03:00
Torsten Grote
f562857514
Expose APK backup feature as a setting, so the user can disable it
The user might not want to have their apps copied to the storage,
because it is very slow or for other reasons.
2020-01-14 07:45:38 -03:00
Torsten Grote
7605762631
Re-install backed-up APKs before restoring from backup 2020-01-14 07:45:37 -03:00
Torsten Grote
569e3db385
Fix device initialization and generation of new backup tokens 2020-01-14 07:45:37 -03:00
Torsten Grote
81c2031ce7
Back up APKs to storage (when they changed) and save metadata about them 2020-01-14 07:45:37 -03:00
Torsten Grote
b9cac5ea87
Introduce MetadataManager to handle all metadata related to backups
This now updates the metadata on remote storage and internal cache
after each successful package backup.
2020-01-14 07:45:36 -03:00
Torsten Grote
e1d55c8a4e
Add information about packages to backup metadata
This will be needed when backing up APKs.

ATTENTION: This is a breaking change, we only do because the app hasn't
been released.
2020-01-14 07:45:36 -03:00
Steve Soltys
f8846ffe45
Merge pull request #47 from stevesoltys/develop
Merge develop into master
2019-12-22 20:31:55 -05:00
Steve Soltys
01098a4d97
Merge pull request #60 from grote/check-messages
Encrypt values of key/value backups with multiple segments if needed
2019-12-22 20:24:33 -05:00
Steve Soltys
b9f748a009
Merge pull request #56 from grote/koin
Use dependency injection with Koin
2019-12-22 20:23:48 -05:00
Steve Soltys
217f498c2f
Merge pull request #55 from stevesoltys/feature/update-license-changelog
Update license and changelog
2019-12-22 20:21:07 -05:00
Steve Soltys
c140981576 Update license to Apache-2.0 2019-12-22 20:20:19 -05:00
Steve Soltys
dcfdb5a2e6 Update changelog and readme for 1.0.0-alpha1 2019-12-22 20:20:12 -05:00
Torsten Grote
58a8f29b51
Encrypt values of key/value backups with multiple segments if needed
This turned out to be necessary, because some values on production
devices are exceeding the maximum segment size.
2019-12-19 08:55:57 -03:00
Torsten Grote
177e714001
Add error messages for unexpected state to ease debugging 2019-12-18 15:50:34 -03:00
Torsten Grote
94c7663daf
Use dependency injection with Koin 2019-12-17 09:56:45 -03:00
Steve Soltys
bb9d498ea8
Merge pull request #54 from grote/nextcloud-restore
Support restore from Nextcloud account even if not installed or set up
2019-12-16 11:47:46 -05:00
Torsten Grote
137e8033a7
Update time of backup progress notifications 2019-12-16 09:11:53 -03:00
Torsten Grote
d30cb309ca
Be more forgiving when checking available restore sets 2019-12-16 09:11:53 -03:00
Torsten Grote
440491425a
Work around DocumentFile bug happening with cloud-based DocumentsProviders
These might return outdated or now content when queried,
then check their cloud storage and report back with up-to-date content.
We now detect this (when looking for backups on newly setup storage)
and wait until the content has been loaded before acting on the
response.

This is affecting and was tested with NextCloud.
2019-12-16 09:11:52 -03:00
Torsten Grote
bbc8bdfaa5
Allow the user to leave the recovery code input if called from setup wizard 2019-12-11 13:48:00 -03:00
Torsten Grote
791f68300d
Allow to setup NextCloud account during restore
This is especially useful when restore is only allowed during
SetupWizard and the backup was stored on a NextCloud account.
2019-12-11 13:48:00 -03:00
Steve Soltys
2ebc7c9479
Merge pull request #48 from stevesoltys/feature/update-readme
Update README.md to reflect latest features and permissions
2019-12-07 22:32:35 -05:00
Steve Soltys
cf86c57760
Merge pull request #52 from grote/about-page
Add About page
2019-12-07 15:13:01 -05:00
Steve Soltys
34d0eb15ca
Merge pull request #53 from grote/50-oem-storage-whitelist
Allow OEMs to configure backup storage whitelist
2019-12-07 15:12:00 -05:00
Torsten Grote
88a250ff5c
Use separate dev config and document existing config
Attention: This also changes the action to launch restore activity
2019-12-06 12:33:50 -03:00
Torsten Grote
49ce4b393f
Add a configurable white-list for backup storage 2019-12-06 12:21:49 -03:00
Torsten Grote
f246d16492
Upgrade Kotlin and Android Gradle Plugin 2019-12-06 11:31:32 -03:00
Torsten Grote
6520f6aa04
Upgrade Kotlin and Android Gradle Plugin 2019-12-06 09:38:07 -03:00
Torsten Grote
3093e3a789
Add About DialogFragment reachable from main overflow menu 2019-12-06 09:31:48 -03:00
Steve Soltys
525cfae960 Update README.md to reflect latest features and permissions 2019-11-30 14:32:39 -05:00
Steve Soltys
8686ee6c90 Fix APK deployment to prebuilt repo 2019-10-28 23:53:47 -04:00
Steve Soltys
ed8f4a6fef
Merge pull request #46 from stevesoltys/feature/rebranding
Rebrand application
2019-10-28 22:03:56 -04:00
Steve Soltys
32f558faf1 Rebrand application as 'Seedvault' 2019-10-28 21:57:47 -04:00
Steve Soltys
8ea68ea6ca
Merge pull request #44 from grote/cleanup
Cleanup unused code
2019-09-25 21:14:57 -04:00
Torsten Grote
c9a29810fc
Remove unused code and resources 2019-09-25 11:04:24 -03:00
Torsten Grote
d81c355799
Advance a step when returning to SetupWizard from restore 2019-09-25 11:04:23 -03:00
Steve Soltys
77cb935fa4 Fix multiline prebuilt repo commit message 2019-09-25 01:20:33 -04:00
Steve Soltys
d944f985a0
Merge pull request #42 from grote/usb
Various optimizations for using a USB flash drive as backup storage medium
2019-09-25 01:06:17 -04:00
Steve Soltys
927e0d5dd8
Merge pull request #43 from stevesoltys/feature/prebuilt-repo
Add source tree commit URL to prebuilt repo commit message
2019-09-25 01:05:53 -04:00
Steve Soltys
57e2096596 Add source tree commit URL to prebuilt repo commit message 2019-09-23 19:04:22 -04:00
Torsten Grote
470b5a2ccf
Tolerate backup attempts when flash drive is not plugged in
Also remove hardcoding of PACKAGE_MANAGER_SENTINEL constant
2019-09-23 10:29:01 -03:00
Torsten Grote
08018fcc9b
Do not allow manual backup/restore operations when removable storage is not available 2019-09-23 10:10:28 -03:00
Torsten Grote
cc2bb4a651
When selecting USB storage, do a backup right away
This is because USB drives are rarely plugged in,
so we should use every chance we get to do a backup.
2019-09-23 10:10:27 -03:00
Torsten Grote
26f23e95fe
Disable automatic backups when a removable USB flash drive is used
as storage location.

The backup backoff time is not reliable for this as the system still
attempts to backup the magic @pm@ package without checking for the
backoff value.
2019-09-23 10:10:27 -03:00
Torsten Grote
2c4d44c5b9
Grant MANAGE_USB permission, so we can get USB serial numbers
This is needed to reliably identify USB mass storage devices.
If someone has several identical thumb drives,
this prevents a backup from being performed when non-backup drives get attached.
2019-09-23 10:10:27 -03:00
Torsten Grote
007dd7759d
Save the time of the last backup and only do automatic flash drive backups once a day
This commit also turns SettingsManager into a class, so we can mock
and later also inject it.
2019-09-23 10:10:27 -03:00