diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AdvancedScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AdvancedScreen.kt index 44c0d2828..a0a0247c5 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AdvancedScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AdvancedScreen.kt @@ -46,6 +46,7 @@ import com.hippo.ehviewer.util.Crash import com.hippo.ehviewer.util.ReadableTime import com.hippo.ehviewer.util.getAppLanguage import com.hippo.ehviewer.util.getLanguages +import com.hippo.ehviewer.util.isAtLeastV import com.hippo.ehviewer.util.setAppLanguage import com.hippo.unifile.asUniFile 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 now = ReadableTime.getFilenamableTime(System.currentTimeMillis()) LauncherPreference( title = stringResource(id = R.string.settings_advanced_export_data), summary = stringResource(id = R.string.settings_advanced_export_data_summary), contract = ActivityResultContracts.CreateDocument("application/vnd.sqlite3"), - key = ReadableTime.getFilenamableTime(System.currentTimeMillis()) + ".db", + key = if (isAtLeastV) now else "$now.db", ) { uri -> uri?.let { context.runCatching { @@ -202,7 +204,7 @@ fun AdvancedScreen(navigator: DestinationsNavigator) { title = stringResource(id = R.string.settings_advanced_import_data), summary = stringResource(id = R.string.settings_advanced_import_data_summary), contract = ActivityResultContracts.GetContent(), - key = "application/octet-stream", + key = if (isAtLeastV) "application/vnd.sqlite3" else "application/octet-stream", ) { uri -> uri?.let { context.runCatching { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/util/SDKUtils.kt b/app/src/main/kotlin/com/hippo/ehviewer/util/SDKUtils.kt index 71f2f6ab2..09f3b0942 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/util/SDKUtils.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/util/SDKUtils.kt @@ -2,6 +2,7 @@ package com.hippo.ehviewer.util import android.os.Build import android.os.ext.SdkExtensions +import androidx.core.os.BuildCompat val isAtLeastN = Build.VERSION.SDK_INT >= Build.VERSION_CODES.N 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 isAtLeastT = Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU 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