diff --git a/app/src/main/java/io/legado/app/ui/file/HandleFileActivity.kt b/app/src/main/java/io/legado/app/ui/file/HandleFileActivity.kt index 3ccc52d5a..0c9022e1d 100644 --- a/app/src/main/java/io/legado/app/ui/file/HandleFileActivity.kt +++ b/app/src/main/java/io/legado/app/ui/file/HandleFileActivity.kt @@ -11,6 +11,7 @@ import io.legado.app.R import io.legado.app.base.VMBaseActivity import io.legado.app.constant.AppLog import io.legado.app.databinding.ActivityTranslucenceBinding +import io.legado.app.databinding.DialogEditTextBinding import io.legado.app.help.IntentData import io.legado.app.lib.dialogs.SelectItem import io.legado.app.lib.dialogs.alert @@ -140,6 +141,10 @@ class HandleFileActivity : } } + 112 -> { // 手动输入目录路径 + showInputDirectoryDialog() + } + else -> { val path = item.title val uri = if (path.isContentScheme()) { @@ -157,6 +162,30 @@ class HandleFileActivity : } } + private fun showInputDirectoryDialog() { + val alertBinding = DialogEditTextBinding.inflate(layoutInflater).apply { + editView.hint = getString(R.string.enter_directory_path) + } + + alert(getString(R.string.manual_input)) { + customView { alertBinding.root } + okButton { + val inputPath = alertBinding.editView.text.toString() + if (inputPath.isNotBlank()) { + val file = File(inputPath) + if (file.exists() && file.isDirectory && file.canRead()) { + onResult(Intent().setData(Uri.fromFile(file))) + } else { + toastOnUi(getString(R.string.invalid_directory)) + } + } else { + toastOnUi(getString(R.string.empty_directory_input)) + } + } + cancelButton() + } + } + private fun getFileData(): Triple? { val fileName = intent.getStringExtra("fileName") val file = intent.getStringExtra("fileKey")?.let { @@ -171,11 +200,15 @@ class HandleFileActivity : private fun getDirActions(onlySys: Boolean = false): ArrayList> { return if (onlySys) { - arrayListOf(SelectItem(getString(R.string.sys_folder_picker), HandleFileContract.DIR)) + arrayListOf( + SelectItem(getString(R.string.sys_folder_picker), HandleFileContract.DIR), + SelectItem(getString(R.string.manual_input), 112) // 添加手动输入选项 + ) } else { arrayListOf( SelectItem(getString(R.string.sys_folder_picker), HandleFileContract.DIR), - SelectItem(getString(R.string.app_folder_picker), 10) + SelectItem(getString(R.string.app_folder_picker), 10), + SelectItem(getString(R.string.manual_input), 112) // 添加手动输入选项 ) } } @@ -243,5 +276,4 @@ class HandleFileActivity : finish() } } - } \ No newline at end of file diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index e5ee2e95b..d8557456b 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -25,6 +25,11 @@ Ir a Ajustes No se puede ir a los ajustes. + Entrada manual + Introduzca la ruta del directorio + Ruta de directorio no válida + La ruta del directorio no puede estar vacía + Reintentar Cargando Advertencia diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml index c3651790c..f0e1677de 100644 --- a/app/src/main/res/values-ja-rJP/strings.xml +++ b/app/src/main/res/values-ja-rJP/strings.xml @@ -25,6 +25,11 @@ Go to Settings Cannot jump to Settings. + Manual Input + Enter directory path + Invalid directory path + Directory path cannot be empty + Retry Loading Warning diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index b3bd0b2ae..a69399a9f 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -25,6 +25,11 @@ Vá até às Configurações Não foi possível abrir Configurações. + Entrada manual + Digite o caminho do diretório + Caminho do diretório inválido + O caminho do diretório não pode estar vazio + Tentar novamente Carregando Aviso diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 329ec0d70..e0e0d9269 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -24,6 +24,11 @@ Đi tới cài đặt Không thể chuyển đến cài đặt. + Nhập thủ công + Nhập đường dẫn thư mục + Đường dẫn thư mục không hợp lệ + Đường dẫn thư mục không được để trống + Thử lại Đang tải Cảnh báo diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index c4ca202ec..749e7aa9c 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -24,6 +24,11 @@ 去设置 无法跳转至设置界面 + 手动输入 + 请输入目录路径 + 目录路径无效 + 目录路径不能为空 + 点击重试 正在加载 提醒 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1f23e8e14..ee31367f6 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -25,6 +25,11 @@ Go to Settings Cannot jump to Settings. + Manual Input + Enter directory path + Invalid directory path + Directory path cannot be empty + Retry Loading Warning