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) {