Fix data export/import on Android V
The mime type mapping for sqlite files was added in https://r.android.com/2988915.
This commit is contained in:
1 parent
be1eecf3b5
commit
26921c8ae1
2 files changed
+6
-2
No files matched your search
@@ -46,6 +46,7 @@ import com.hippo.ehviewer.util.Crash
|
|||||||
import com.hippo.ehviewer.util.ReadableTime
|
import com.hippo.ehviewer.util.ReadableTime
|
||||||
import com.hippo.ehviewer.util.getAppLanguage
|
import com.hippo.ehviewer.util.getAppLanguage
|
||||||
import com.hippo.ehviewer.util.getLanguages
|
import com.hippo.ehviewer.util.getLanguages
|
||||||
|
import com.hippo.ehviewer.util.isAtLeastV
|
||||||
import com.hippo.ehviewer.util.setAppLanguage
|
import com.hippo.ehviewer.util.setAppLanguage
|
||||||
import com.hippo.unifile.asUniFile
|
import com.hippo.unifile.asUniFile
|
||||||
import com.jamal.composeprefs3.ui.prefs.DropDownPref
|
import com.jamal.composeprefs3.ui.prefs.DropDownPref
|
||||||
@@ -179,11 +180,12 @@ fun AdvancedScreen(navigator: DestinationsNavigator) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
val exportFailed = stringResource(id = R.string.settings_advanced_export_data_failed)
|
val exportFailed = stringResource(id = R.string.settings_advanced_export_data_failed)
|
||||||
|
val now = ReadableTime.getFilenamableTime(System.currentTimeMillis())
|
||||||
LauncherPreference(
|
LauncherPreference(
|
||||||
title = stringResource(id = R.string.settings_advanced_export_data),
|
title = stringResource(id = R.string.settings_advanced_export_data),
|
||||||
summary = stringResource(id = R.string.settings_advanced_export_data_summary),
|
summary = stringResource(id = R.string.settings_advanced_export_data_summary),
|
||||||
contract = ActivityResultContracts.CreateDocument("application/vnd.sqlite3"),
|
contract = ActivityResultContracts.CreateDocument("application/vnd.sqlite3"),
|
||||||
key = ReadableTime.getFilenamableTime(System.currentTimeMillis()) + ".db",
|
key = if (isAtLeastV) now else "$now.db",
|
||||||
) { uri ->
|
) { uri ->
|
||||||
uri?.let {
|
uri?.let {
|
||||||
context.runCatching {
|
context.runCatching {
|
||||||
@@ -202,7 +204,7 @@ fun AdvancedScreen(navigator: DestinationsNavigator) {
|
|||||||
title = stringResource(id = R.string.settings_advanced_import_data),
|
title = stringResource(id = R.string.settings_advanced_import_data),
|
||||||
summary = stringResource(id = R.string.settings_advanced_import_data_summary),
|
summary = stringResource(id = R.string.settings_advanced_import_data_summary),
|
||||||
contract = ActivityResultContracts.GetContent(),
|
contract = ActivityResultContracts.GetContent(),
|
||||||
key = "application/octet-stream",
|
key = if (isAtLeastV) "application/vnd.sqlite3" else "application/octet-stream",
|
||||||
) { uri ->
|
) { uri ->
|
||||||
uri?.let {
|
uri?.let {
|
||||||
context.runCatching {
|
context.runCatching {
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.hippo.ehviewer.util
|
|||||||
|
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.ext.SdkExtensions
|
import android.os.ext.SdkExtensions
|
||||||
|
import androidx.core.os.BuildCompat
|
||||||
|
|
||||||
val isAtLeastN = Build.VERSION.SDK_INT >= Build.VERSION_CODES.N
|
val isAtLeastN = Build.VERSION.SDK_INT >= Build.VERSION_CODES.N
|
||||||
val isAtLeastO = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
|
val isAtLeastO = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
|
||||||
@@ -12,4 +13,5 @@ val isAtLeastR = Build.VERSION.SDK_INT >= Build.VERSION_CODES.R
|
|||||||
val isAtLeastS = Build.VERSION.SDK_INT >= Build.VERSION_CODES.S
|
val isAtLeastS = Build.VERSION.SDK_INT >= Build.VERSION_CODES.S
|
||||||
val isAtLeastT = Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU
|
val isAtLeastT = Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU
|
||||||
val isAtLeastU = Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE
|
val isAtLeastU = Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE
|
||||||
|
val isAtLeastV = BuildCompat.isAtLeastV()
|
||||||
val isAtLeastSExtension7 = isAtLeastR && SdkExtensions.getExtensionVersion(Build.VERSION_CODES.S) >= 7
|
val isAtLeastSExtension7 = isAtLeastR && SdkExtensions.getExtensionVersion(Build.VERSION_CODES.S) >= 7
|
||||||
Reference in new issue
Block a user