From 88b1b82c86fa20e8529f4749a8b7b38df3914e63 Mon Sep 17 00:00:00 2001 From: ocean <503259349@qq.com> Date: Mon, 27 Oct 2025 17:09:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug=EF=BC=8C=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E4=BD=8E=E7=89=88=E6=9C=AC=E6=89=8B=E6=9C=BA=E7=9A=84?= =?UTF-8?q?=E6=9D=83=E9=99=90=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pdfreader/pro/app/ui/act/PdfViewActivity.kt | 4 ++-- .../pro/app/util/StoragePermissionHelper.kt | 17 ++++++++++++++--- .../pdfreader/pro/app/viewmodel/PdfViewModel.kt | 6 +++--- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/all/pdfreader/pro/app/ui/act/PdfViewActivity.kt b/app/src/main/java/com/all/pdfreader/pro/app/ui/act/PdfViewActivity.kt index 86b45ea..301cabb 100644 --- a/app/src/main/java/com/all/pdfreader/pro/app/ui/act/PdfViewActivity.kt +++ b/app/src/main/java/com/all/pdfreader/pro/app/ui/act/PdfViewActivity.kt @@ -155,7 +155,7 @@ class PdfViewActivity : BaseActivity(), OnLoadCompleteListener, OnPageChangeList viewModel.fileActionEvent.observeEvent(this) { event -> val file = File(pdfDocument.filePath) - loadPdfInternal(file, null) + loadPdfInternal(file, currentPassword) } viewModel.fileActionEvent.observeEvent(this) { event -> @@ -340,7 +340,6 @@ class PdfViewActivity : BaseActivity(), OnLoadCompleteListener, OnPageChangeList private fun showPasswordDialog(file: File) { PdfPasswordProtectionDialogFragment(file, onOkClick = { password -> tryLoadPdfWithPassword(file, password) - currentPassword = password }, onCancelClick = { finish() }).show(supportFragmentManager, TAG) @@ -348,6 +347,7 @@ class PdfViewActivity : BaseActivity(), OnLoadCompleteListener, OnPageChangeList private fun tryLoadPdfWithPassword(file: File, password: String) { loadPdfInternal(file, password) // 传入密码 + currentPassword = password } private fun loadPdfInternal(file: File, password: String?) { diff --git a/app/src/main/java/com/all/pdfreader/pro/app/util/StoragePermissionHelper.kt b/app/src/main/java/com/all/pdfreader/pro/app/util/StoragePermissionHelper.kt index 1327b1f..afdcaf3 100644 --- a/app/src/main/java/com/all/pdfreader/pro/app/util/StoragePermissionHelper.kt +++ b/app/src/main/java/com/all/pdfreader/pro/app/util/StoragePermissionHelper.kt @@ -27,13 +27,21 @@ object StoragePermissionHelper { Manifest.permission.READ_MEDIA_VIDEO ) } + Build.VERSION.SDK_INT >= Build.VERSION_CODES.R -> { // Android 11-12 - arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE) + arrayOf( + Manifest.permission.READ_EXTERNAL_STORAGE, + Manifest.permission.WRITE_EXTERNAL_STORAGE + ) } + else -> { // Android 10及以下 - arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE) + arrayOf( + Manifest.permission.READ_EXTERNAL_STORAGE, + Manifest.permission.WRITE_EXTERNAL_STORAGE + ) } } } @@ -47,7 +55,10 @@ object StoragePermissionHelper { // Android 10及以下检查基本存储权限 val permissions = getRequiredPermissions() permissions.all { permission -> - ContextCompat.checkSelfPermission(context, permission) == PackageManager.PERMISSION_GRANTED + ContextCompat.checkSelfPermission( + context, + permission + ) == PackageManager.PERMISSION_GRANTED } } } diff --git a/app/src/main/java/com/all/pdfreader/pro/app/viewmodel/PdfViewModel.kt b/app/src/main/java/com/all/pdfreader/pro/app/viewmodel/PdfViewModel.kt index 5928da0..94ab186 100644 --- a/app/src/main/java/com/all/pdfreader/pro/app/viewmodel/PdfViewModel.kt +++ b/app/src/main/java/com/all/pdfreader/pro/app/viewmodel/PdfViewModel.kt @@ -44,7 +44,7 @@ class PdfViewModel : ViewModel() { //触发修改文件名操作 fun renamePdf(filePath: String, newName: String) { - viewModelScope.launch { + viewModelScope.launch(Dispatchers.IO) { val oldFile = File(filePath) val renameResult = FileUtils.renameFile(oldFile, newName) Log.d( @@ -77,7 +77,7 @@ class PdfViewModel : ViewModel() { } fun deleteFile(filePath: String) { - viewModelScope.launch { + viewModelScope.launch(Dispatchers.IO) { val file = File(filePath) val deleteResult = FileDeleteUtil.deleteFile(file) Log.d("ocean", "deleteFile->file: $file, deleteResult=$deleteResult") @@ -128,7 +128,7 @@ class PdfViewModel : ViewModel() { } fun duplicateFile(context: Context, filePath: String) { - viewModelScope.launch { + viewModelScope.launch(Dispatchers.IO) { val file = FileUtils.duplicateFile(File(filePath)) Log.d("ocean", "duplicateFile->$file") if (file != null) {