diff --git a/app/src/main/java/io/legado/app/ui/config/BackupRestoreUi.kt b/app/src/main/java/io/legado/app/ui/config/BackupRestoreUi.kt
index 5fde57fb7..ba1b8dd5a 100644
--- a/app/src/main/java/io/legado/app/ui/config/BackupRestoreUi.kt
+++ b/app/src/main/java/io/legado/app/ui/config/BackupRestoreUi.kt
@@ -3,6 +3,7 @@ package io.legado.app.ui.config
import android.app.Activity.RESULT_OK
import android.content.Intent
import android.net.Uri
+import android.os.Build
import androidx.documentfile.provider.DocumentFile
import androidx.fragment.app.Fragment
import io.legado.app.App
@@ -17,10 +18,7 @@ import io.legado.app.help.storage.ImportOldData
import io.legado.app.help.storage.Restore
import io.legado.app.help.storage.WebDavHelp
import io.legado.app.lib.dialogs.alert
-import io.legado.app.lib.dialogs.noButton
-import io.legado.app.lib.dialogs.yesButton
import io.legado.app.ui.filechooser.FileChooserDialog
-import io.legado.app.utils.applyTint
import io.legado.app.utils.getPrefString
import io.legado.app.utils.isContentPath
import io.legado.app.utils.toast
@@ -169,26 +167,44 @@ object BackupRestoreUi {
}
fun importOldData(fragment: Fragment) {
- try {
- val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
- intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
- fragment.startActivityForResult(intent, oldDataRequestCode)
- } catch (e: Exception) {
- fragment.alert(title = "导入") {
- message = "是否导入旧版本数据"
- yesButton {
- PermissionsCompat.Builder(fragment)
- .addPermissions(*Permissions.Group.STORAGE)
- .rationale(R.string.tip_perm_request_storage)
- .onGranted {
- ImportOldData.import(fragment.requireContext())
+ fragment.alert {
+ titleResource = R.string.select_folder
+ items(fragment.resources.getStringArray(R.array.select_folder).toList()) { _, index ->
+ when (index) {
+ 0 -> importOldUsePermission(fragment)
+ 1 -> {
+ try {
+ val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
+ intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
+ fragment.startActivityForResult(intent, oldDataRequestCode)
+ } catch (e: java.lang.Exception) {
+ e.printStackTrace()
+ fragment.toast(e.localizedMessage ?: "ERROR")
}
- .request()
- }
- noButton {
+ }
+ 2 -> {
+ FileChooserDialog.show(
+ fragment.childFragmentManager,
+ oldDataRequestCode,
+ mode = FileChooserDialog.DIRECTORY
+ )
+ }
}
- }.show().applyTint()
+ }
+ }.show()
+ }
+
+ private fun importOldUsePermission(fragment: Fragment) {
+ if (Build.VERSION.SDK_INT > Build.VERSION_CODES.P) {
+ fragment.toast(R.string.a10_permission_toast)
}
+ PermissionsCompat.Builder(fragment)
+ .addPermissions(*Permissions.Group.STORAGE)
+ .rationale(R.string.tip_perm_request_storage)
+ .onGranted {
+ ImportOldData.import(fragment.requireContext())
+ }
+ .request()
}
fun onFilePicked(requestCode: Int, currentPath: String) {
diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml
deleted file mode 100644
index 78554f9eb..000000000
--- a/app/src/main/res/values-zh/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 584ac698a..8094ad0df 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -601,6 +601,7 @@
正在启动服务\n具体信息查看通知栏
默认路径
系统文件夹选择器
- 自带选择器(Android10以上可能会失效)
+ 自带选择器
+ Android10以上因为权限限制可能无法读取文件