Implement Storage Access Framework

* re-work finished mission database
* re-work DownloadMission and bump it Serializable version
* keep the classic Java IO API
* SAF Tree API support on Android Lollipop or higher
* add wrapper for SAF stream opening
* implement Closeable in SharpStream to replace the dispose() method

* do required changes for this API:
** remove any file creation logic from DownloadInitializer
** make PostProcessing Serializable and reduce the number of iterations
** update all strings.xml files
** storage helpers: StoredDirectoryHelper & StoredFileHelper
** best effort to handle any kind of SAF errors/exceptions
This commit is contained in:
kapodamy 2019-04-05 14:45:39 -03:00
parent 8d8059229f
commit 7ca7952790
62 changed files with 2439 additions and 1180 deletions

View file

@ -4,10 +4,26 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:title="@string/settings_category_downloads_title">
<Preference
app:iconSpaceReserved="false"
android:key="saf_test"
android:summary="Realiza una prueba del Storage Access Framework de Android"
android:title="Probar SAF"/>
<ListPreference
app:iconSpaceReserved="false"
android:defaultValue="@string/downloads_storage_api_default"
android:entries="@array/downloads_storage_api_description"
android:entryValues="@array/downloads_storage_api_values"
android:key="@string/downloads_storage_api"
android:summary="@string/downloads_storage_desc"
android:title="@string/downloads_storage" />
<Preference
app:iconSpaceReserved="false"
android:dialogTitle="@string/download_path_dialog_title"
android:key="@string/download_path_key"
android:key="@string/download_path_video_key"
android:summary="@string/download_path_summary"
android:title="@string/download_path_title"/>