Commit graph

95 commits

Author SHA1 Message Date
Torsten Grote
82f23b7800
Set minSdk to 32 and remove code for old SDKs
We can't go to 33 yet, because roboelectric doesn't support that
2022-08-23 11:44:18 -03:00
Aayush Gupta
4b8427821b gradle: Enable java 11 language features
Also unify the style while at it

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2022-08-23 14:43:34 +05:30
Aayush Gupta
f0a3acf4fc {seedvault|storage}: Add explicit dependencies for kotlin coroutines
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2022-08-23 14:43:34 +05:30
Aayush Gupta
6f81e48dc1 storage: Switch to inWholeMilliseconds property
W: 'toLongMilliseconds(): Long' is deprecated. Use inWholeMilliseconds property instead.

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2022-08-23 14:43:34 +05:30
Aayush Gupta
288daadd8b storage: Address experimental time API errors
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2022-08-23 14:43:33 +05:30
Aayush Gupta
c48aa73ad0 gradle: Bump kotlin and dependencies version for Android 13
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2022-08-23 14:43:33 +05:30
Torsten Grote
b856782d33 [storage] Make backup content selection work better with screen readers 2022-07-08 20:11:38 +05:30
Michael W
4576c6d332 Seedvault: Redesign SUW activities for 12
* 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
2022-05-26 12:35:48 +02:00
Michel Le Bihan
e26081fcfa Translated using Weblate (Polish)
Currently translated at 100.0% (16 of 16 strings)

Translated using Weblate (Polish)

Currently translated at 84.6% (143 of 169 strings)

Co-authored-by: Michel Le Bihan <michel@lebihan.pl>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/pl/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/pl/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault storage backup
2022-04-29 23:55:05 +05:30
Atrate
8f2b59229e Translated using Weblate (Polish)
Currently translated at 62.5% (10 of 16 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (1 of 1 strings)

Co-authored-by: Atrate <Atrate@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_contactsbackup/pl/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/pl/
Translation: CalyxOS/Seedvault contacts backup
Translation: CalyxOS/Seedvault storage backup
2022-04-29 23:55:05 +05:30
Torsten Grote
d598aac81e Clean up system USB storage feature a bit 2022-04-29 23:43:09 +05:30
Oliver Scott
dd57828697 Allow secondary user backup to USB
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
2022-04-29 23:43:09 +05:30
Nextross
fa93d5dfcc Translated using Weblate (Czech)
Currently translated at 100.0% (16 of 16 strings)

Translated using Weblate (Czech)

Currently translated at 99.4% (168 of 169 strings)

Co-authored-by: Nextross <onlineservices.aminolysis@aleeas.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/cs/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/cs/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault storage backup
2022-03-24 21:18:05 +05:30
Chirayu Desai
c832f71a29 Deleted translation using Weblate (Uyghur)
Deleted translation using Weblate (Uyghur)

Deleted translation using Weblate (Uyghur)

Co-authored-by: Chirayu Desai <chirayudesai1@gmail.com>
2022-03-24 21:18:05 +05:30
Micovec
31d31bd6f9 Translated using Weblate (Czech)
Currently translated at 93.7% (15 of 16 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (1 of 1 strings)

Translated using Weblate (Czech)

Currently translated at 91.1% (154 of 169 strings)

Translated using Weblate (Czech)

Currently translated at 76.9% (130 of 169 strings)

Co-authored-by: Micovec <jiri.vokrinek@email.cz>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/cs/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_contactsbackup/cs/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/cs/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault contacts backup
Translation: CalyxOS/Seedvault storage backup
2022-03-24 21:18:05 +05:30
Baptiste H
d5cf2a371a Translated using Weblate (French)
Currently translated at 100.0% (16 of 16 strings)

Translated using Weblate (French)

Currently translated at 100.0% (1 of 1 strings)

Translated using Weblate (French)

Currently translated at 100.0% (169 of 169 strings)

Co-authored-by: Baptiste H <baptiste.huchon@bechamail.fr>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/fr/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_contactsbackup/fr/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/fr/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault contacts backup
Translation: CalyxOS/Seedvault storage backup
2022-03-24 21:18:05 +05:30
Yaron Shahrabani
cf6c709616 Translated using Weblate (Hebrew)
Currently translated at 100.0% (16 of 16 strings)

Translated using Weblate (Hebrew)

Currently translated at 100.0% (1 of 1 strings)

Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_contactsbackup/he/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/he/
Translation: CalyxOS/Seedvault contacts backup
Translation: CalyxOS/Seedvault storage backup
2022-03-24 21:18:05 +05:30
kbci_wcn
4a1aa34eee Translated using Weblate (Catalan)
Currently translated at 100.0% (16 of 16 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (169 of 169 strings)

Translated using Weblate (Catalan)

Currently translated at 87.5% (148 of 169 strings)

Translated using Weblate (Catalan)

Currently translated at 80.4% (136 of 169 strings)

Translated using Weblate (Catalan)

Currently translated at 71.0% (120 of 169 strings)

Translated using Weblate (Catalan)

Currently translated at 20.7% (35 of 169 strings)

Translated using Weblate (Catalan)

Currently translated at 15.3% (26 of 169 strings)

Translated using Weblate (Catalan)

Currently translated at 5.9% (10 of 169 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (1 of 1 strings)

Translated using Weblate (Catalan)

Currently translated at 4.7% (8 of 169 strings)

Co-authored-by: kbci_wcn <kbci_wcn@aleeas.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ca/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_contactsbackup/ca/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/ca/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault contacts backup
Translation: CalyxOS/Seedvault storage backup
2022-03-24 21:18:05 +05:30
Nikita Epifanov
cd71458a5c Translated using Weblate (Russian)
Currently translated at 93.7% (15 of 16 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (1 of 1 strings)

Translated using Weblate (Russian)

Currently translated at 98.2% (166 of 169 strings)

Co-authored-by: Nikita Epifanov <nikgreens@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ru/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_contactsbackup/ru/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/ru/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault contacts backup
Translation: CalyxOS/Seedvault storage backup
2022-03-24 21:18:05 +05:30
nzgha
b47f3efa9d Translated using Weblate (Spanish)
Currently translated at 100.0% (16 of 16 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (1 of 1 strings)

Co-authored-by: nzgha <nzgha.hw@runbox.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_contactsbackup/es/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/es/
Translation: CalyxOS/Seedvault contacts backup
Translation: CalyxOS/Seedvault storage backup
2022-03-24 21:18:05 +05:30
Me0wzz
cb9f9e35ca Translated using Weblate (Korean)
Currently translated at 100.0% (16 of 16 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (1 of 1 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (169 of 169 strings)

Translated using Weblate (Korean)

Currently translated at 81.6% (138 of 169 strings)

Co-authored-by: Me0wzz <me0wzz@protonmail.ch>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ko/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_contactsbackup/ko/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/ko/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault contacts backup
Translation: CalyxOS/Seedvault storage backup
2022-03-24 21:18:05 +05:30
nautilusx
4c8896e46f Translated using Weblate (German)
Currently translated at 100.0% (16 of 16 strings)

Translated using Weblate (German)

Currently translated at 100.0% (1 of 1 strings)

Translated using Weblate (German)

Currently translated at 100.0% (169 of 169 strings)

Co-authored-by: nautilusx <translate@disroot.org>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/de/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_contactsbackup/de/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/de/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault contacts backup
Translation: CalyxOS/Seedvault storage backup
2022-03-24 21:18:05 +05:30
Gabriel Cardoso
64d30f8849 Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.8% (167 of 169 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (16 of 16 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 43.7% (7 of 16 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (1 of 1 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.8% (167 of 169 strings)

Co-authored-by: Gabriel Cardoso <g.cardoso@mailfence.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_contactsbackup/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/pt_BR/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault contacts backup
Translation: CalyxOS/Seedvault storage backup
2022-03-24 21:18:05 +05:30
Oğuz Ersen
ce0e8af4db Translated using Weblate (Turkish)
Currently translated at 100.0% (16 of 16 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (1 of 1 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (169 of 169 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (164 of 164 strings)

Co-authored-by: Oğuz Ersen <oguzersen@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/tr/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_contactsbackup/tr/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/tr/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault contacts backup
Translation: CalyxOS/Seedvault storage backup
2022-03-24 21:18:05 +05:30
Weblate
4c829c6760 Added translation using Weblate (Uyghur)
Added translation using Weblate (Uyghur)

Added translation using Weblate (Uyghur)

Added translation using Weblate (English (India))

Added translation using Weblate (Norwegian Bokmål)

Added translation using Weblate (Serbian (latin))

Added translation using Weblate (Spanish (American))

Added translation using Weblate (French (Canada))

Added translation using Weblate (Chinese (Simplified))

Added translation using Weblate (Chinese (Traditional))

Added translation using Weblate (English (Canada))

Added translation using Weblate (English (Australia))

Added translation using Weblate (Burmese)

Added translation using Weblate (Assamese)

Added translation using Weblate (Tagalog)

Added translation using Weblate (Portuguese (Portugal))

Added translation using Weblate (Uzbek)

Added translation using Weblate (Urdu)

Added translation using Weblate (Kyrgyz)

Added translation using Weblate (Slovenian)

Added translation using Weblate (Sinhala)

Added translation using Weblate (Slovak)

Added translation using Weblate (Khmer (Central))

Added translation using Weblate (Kannada)

Added translation using Weblate (Korean)

Added translation using Weblate (Albanian)

Added translation using Weblate (Serbian)

Added translation using Weblate (Kazakh)

Added translation using Weblate (Georgian)

Added translation using Weblate (Finnish)

Added translation using Weblate (Persian)

Added translation using Weblate (Swedish)

Added translation using Weblate (French)

Added translation using Weblate (Spanish)

Added translation using Weblate (Nepali)

Added translation using Weblate (Dutch)

Added translation using Weblate (Indonesian)

Added translation using Weblate (Azerbaijani)

Added translation using Weblate (Zulu)

Added translation using Weblate (Arabic)

Added translation using Weblate (Italian)

Added translation using Weblate (Amharic)

Added translation using Weblate (Swahili)

Added translation using Weblate (Afrikaans)

Added translation using Weblate (Marathi)

Added translation using Weblate (Malay)

Added translation using Weblate (Polish)

Added translation using Weblate (Macedonian)

Added translation using Weblate (Mongolian)

Added translation using Weblate (Malayalam)

Added translation using Weblate (Hebrew)

Added translation using Weblate (Hindi)

Added translation using Weblate (Hungarian)

Added translation using Weblate (Croatian)

Added translation using Weblate (Armenian)

Added translation using Weblate (English (United Kingdom))

Added translation using Weblate (Icelandic)

Added translation using Weblate (Vietnamese)

Added translation using Weblate (Punjabi)

Added translation using Weblate (Portuguese)

Added translation using Weblate (Czech)

Added translation using Weblate (Catalan)

Added translation using Weblate (Odia)

Added translation using Weblate (Japanese)

Added translation using Weblate (Bosnian)

Added translation using Weblate (Ukrainian)

Added translation using Weblate (Bulgarian)

Added translation using Weblate (Belarusian)

Added translation using Weblate (Bengali)

Added translation using Weblate (Romanian)

Added translation using Weblate (Russian)

Added translation using Weblate (Estonian)

Added translation using Weblate (Basque)

Added translation using Weblate (Danish)

Added translation using Weblate (German)

Added translation using Weblate (Portuguese (Brazil))

Added translation using Weblate (Chinese (Traditional, Hong Kong))

Added translation using Weblate (Tamil)

Added translation using Weblate (Telugu)

Added translation using Weblate (Thai)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Latvian)

Added translation using Weblate (Turkish)

Added translation using Weblate (Lao)

Added translation using Weblate (Galician)

Added translation using Weblate (Gujarati)

Added translation using Weblate (English (India))

Added translation using Weblate (Norwegian Bokmål)

Added translation using Weblate (Serbian (latin))

Added translation using Weblate (Spanish (American))

Added translation using Weblate (French (Canada))

Added translation using Weblate (Chinese (Simplified))

Added translation using Weblate (Chinese (Traditional))

Added translation using Weblate (English (Canada))

Added translation using Weblate (English (Australia))

Added translation using Weblate (Burmese)

Added translation using Weblate (Assamese)

Added translation using Weblate (Tagalog)

Added translation using Weblate (Portuguese (Portugal))

Added translation using Weblate (Uzbek)

Added translation using Weblate (Urdu)

Added translation using Weblate (Kyrgyz)

Added translation using Weblate (Slovenian)

Added translation using Weblate (Sinhala)

Added translation using Weblate (Slovak)

Added translation using Weblate (Khmer (Central))

Added translation using Weblate (Kannada)

Added translation using Weblate (Korean)

Added translation using Weblate (Albanian)

Added translation using Weblate (Serbian)

Added translation using Weblate (Kazakh)

Added translation using Weblate (Georgian)

Added translation using Weblate (Finnish)

Added translation using Weblate (Persian)

Added translation using Weblate (Swedish)

Added translation using Weblate (French)

Added translation using Weblate (Spanish)

Added translation using Weblate (Nepali)

Added translation using Weblate (Dutch)

Added translation using Weblate (Indonesian)

Added translation using Weblate (Azerbaijani)

Added translation using Weblate (Zulu)

Added translation using Weblate (Arabic)

Added translation using Weblate (Italian)

Added translation using Weblate (Amharic)

Added translation using Weblate (Swahili)

Added translation using Weblate (Afrikaans)

Added translation using Weblate (Marathi)

Added translation using Weblate (Malay)

Added translation using Weblate (Polish)

Added translation using Weblate (Macedonian)

Added translation using Weblate (Mongolian)

Added translation using Weblate (Malayalam)

Added translation using Weblate (Hebrew)

Added translation using Weblate (Hindi)

Added translation using Weblate (Hungarian)

Added translation using Weblate (Croatian)

Added translation using Weblate (Armenian)

Added translation using Weblate (English (United Kingdom))

Added translation using Weblate (Icelandic)

Added translation using Weblate (Vietnamese)

Added translation using Weblate (Punjabi)

Added translation using Weblate (Portuguese)

Added translation using Weblate (Czech)

Added translation using Weblate (Catalan)

Added translation using Weblate (Odia)

Added translation using Weblate (Japanese)

Added translation using Weblate (Bosnian)

Added translation using Weblate (Ukrainian)

Added translation using Weblate (Bulgarian)

Added translation using Weblate (Belarusian)

Added translation using Weblate (Bengali)

Added translation using Weblate (Romanian)

Added translation using Weblate (Russian)

Added translation using Weblate (Estonian)

Added translation using Weblate (Basque)

Added translation using Weblate (Danish)

Added translation using Weblate (German)

Added translation using Weblate (Portuguese (Brazil))

Added translation using Weblate (Chinese (Traditional, Hong Kong))

Added translation using Weblate (Tamil)

Added translation using Weblate (Telugu)

Added translation using Weblate (Thai)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Latvian)

Added translation using Weblate (Turkish)

Added translation using Weblate (Lao)

Added translation using Weblate (Galician)

Added translation using Weblate (Gujarati)

Co-authored-by: Weblate <noreply@weblate.org>
2022-03-24 21:18:05 +05:30
Michael Bestas
c06cab77cc Translated using Weblate (Greek)
Currently translated at 100.0% (169 of 169 strings)

Translated using Weblate (Greek)

Currently translated at 100.0% (16 of 16 strings)

Translated using Weblate (Greek)

Currently translated at 100.0% (164 of 164 strings)

Added translation using Weblate (Greek)

Translated using Weblate (Greek)

Currently translated at 100.0% (1 of 1 strings)

Translated using Weblate (Greek)

Currently translated at 100.0% (164 of 164 strings)

Added translation using Weblate (Greek)

Translated using Weblate (Greek)

Currently translated at 99.3% (163 of 164 strings)

Co-authored-by: Michael Bestas <mkbestas@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/el/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_contactsbackup/el/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/el/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault contacts backup
Translation: CalyxOS/Seedvault storage backup
2022-03-24 21:18:05 +05:30
Michael Bestas
06417651bc Bump org.jetbrains.dokka version to remove jcenter dependency
Change-Id: Icf05e7a51221a7b5af58c0c45d5a2c14d9fb65c3
2022-01-14 00:49:48 +05:30
Torsten Grote
c5a295d31c Allow storage backups to launch foreground service from background 2021-10-13 16:25:41 +05:30
Torsten Grote
b184f208c4 Show storage backup notification immediately 2021-10-13 16:25:41 +05:30
Torsten Grote
97398f1c5c Build build storage backup lib within AOSP
This removes the AAR binary from the repo as it isn't needed anymore. Also room schema migrations will need to be one manually in the future as schema export doesn't seem to work in AOSP.
2021-10-13 16:25:41 +05:30
Torsten Grote
579919d5e7 Code style and lint after Android 12 version bumps 2021-10-13 16:25:41 +05:30
Torsten Grote
7f4b565d2a First version bumps for Android 12 2021-10-13 16:25:41 +05:30
Torsten Grote
3ffb79b04f Write metadata with new version 1
Reading still supports version 0
2021-10-13 16:15:20 +05:30
Torsten Grote
23e8f6503c Upgrade storage lib after recent set of changes 2021-07-05 20:08:29 +05:30
Torsten Grote
d13b9ea3fd Always run storage backups in a foreground service
otherwise we get killed for using too much CPU
2021-07-05 20:08:29 +05:30
Torsten Grote
056bdc3bf3 Fix crash that happens when starting RestoreActivity without key
This instantiates all sorts of classes down to Restore which accessed the streamKey that is still unavailable at this point. Now it is only instantiated lazily when actually starting a restore.
2021-07-05 20:08:29 +05:30
Torsten Grote
781bcd28d3 Remove storage snapshots from list if we can't decrypt them 2021-07-05 20:08:29 +05:30
Torsten Grote
347d2a316f Allow using the same storage location on different devices or user profiles
Previously, we would put our files directly in the root of the storage location and delete any existing backups there. When used by different devices or user profiles, these would keep deleting each other's backups.
2021-07-05 20:08:29 +05:30
Torsten Grote
342bd2068a Clear existing storage snapshots from storage medium
because that scenario isn't supported at the moment
2021-07-05 20:08:29 +05:30
Torsten Grote
e77d5cad2c Update storage design document and add some TODOs to the code 2021-07-05 20:08:29 +05:30
Torsten Grote
0aee5cc2aa Provide correct version to associated data 2021-07-05 20:08:29 +05:30
Torsten Grote
e7a8ad50e8 Add version number to chunks cache
so we can later do in-place version upgrades and find out which chunks we need to store new versions for
2021-07-05 20:08:29 +05:30
Torsten Grote
61fe823a04 Check that version in snapshot matches the one in chunks 2021-07-05 20:08:29 +05:30
Torsten Grote
b8ac11e724 apply ktlint to storage.lib as well 2021-07-05 20:08:29 +05:30
Torsten Grote
6c633b70c3 Add storage library (and demo app)
and use for periodic files backup
2021-07-05 20:08:29 +05:30