diff --git a/app/src/main/java/io/legado/app/base/BaseDialogFragment.kt b/app/src/main/java/io/legado/app/base/BaseDialogFragment.kt index 3df39f3f2..8bf17aecd 100644 --- a/app/src/main/java/io/legado/app/base/BaseDialogFragment.kt +++ b/app/src/main/java/io/legado/app/base/BaseDialogFragment.kt @@ -8,6 +8,7 @@ import androidx.annotation.LayoutRes import androidx.fragment.app.DialogFragment import androidx.fragment.app.FragmentManager import io.legado.app.R +import io.legado.app.constant.AppLog import io.legado.app.help.coroutine.Coroutine import io.legado.app.lib.theme.ThemeStore import kotlinx.coroutines.CoroutineScope @@ -54,6 +55,8 @@ abstract class BaseDialogFragment( //在每个add事务前增加一个remove事务,防止连续的add manager.beginTransaction().remove(this).commit() super.show(manager, tag) + }.onFailure { + AppLog.put("显示对话框失败 tag:$tag", it) } } diff --git a/app/src/main/java/io/legado/app/ui/document/HandleFileActivity.kt b/app/src/main/java/io/legado/app/ui/document/HandleFileActivity.kt index 761ebc90f..34c125515 100644 --- a/app/src/main/java/io/legado/app/ui/document/HandleFileActivity.kt +++ b/app/src/main/java/io/legado/app/ui/document/HandleFileActivity.kt @@ -6,6 +6,7 @@ import android.os.Bundle import android.webkit.MimeTypeMap import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.viewModels +import androidx.lifecycle.lifecycleScope import io.legado.app.R import io.legado.app.base.VMBaseActivity import io.legado.app.constant.AppConst @@ -25,9 +26,8 @@ import io.legado.app.utils.viewbindingdelegate.viewBinding import java.io.File class HandleFileActivity : - VMBaseActivity( - theme = Theme.Transparent - ), FilePickerDialog.CallBack { + VMBaseActivity(), + FilePickerDialog.CallBack { override val binding by viewBinding(ActivityTranslucenceBinding::inflate) override val viewModel by viewModels() @@ -104,24 +104,32 @@ class HandleFileActivity : }.onFailure { AppLog.put(getString(R.string.open_sys_dir_picker_error), it) toastOnUi(R.string.open_sys_dir_picker_error) - FilePickerDialog.show( - supportFragmentManager, - mode = HandleFileContract.FILE, - allowExtensions = allowExtensions - ) + checkPermissions { + FilePickerDialog.show( + supportFragmentManager, + mode = HandleFileContract.FILE, + allowExtensions = allowExtensions + ) + } } 10 -> checkPermissions { - FilePickerDialog.show( - supportFragmentManager, - mode = HandleFileContract.DIR - ) + @Suppress("DEPRECATION") + lifecycleScope.launchWhenResumed { + FilePickerDialog.show( + supportFragmentManager, + mode = HandleFileContract.DIR + ) + } } 11 -> checkPermissions { - FilePickerDialog.show( - supportFragmentManager, - mode = HandleFileContract.FILE, - allowExtensions = allowExtensions - ) + @Suppress("DEPRECATION") + lifecycleScope.launchWhenResumed { + FilePickerDialog.show( + supportFragmentManager, + mode = HandleFileContract.FILE, + allowExtensions = allowExtensions + ) + } } 111 -> getFileData()?.let { viewModel.upload(it.first, it.second, it.third) { url ->