Kaynağa Gözat

Merge remote-tracking branch 'origin/master'

kunfei 3 yıl önce
ebeveyn
işleme
3775716d33

+ 3 - 0
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.DialogFragment
 import androidx.fragment.app.FragmentManager
 import androidx.fragment.app.FragmentManager
 import io.legado.app.R
 import io.legado.app.R
+import io.legado.app.constant.AppLog
 import io.legado.app.help.coroutine.Coroutine
 import io.legado.app.help.coroutine.Coroutine
 import io.legado.app.lib.theme.ThemeStore
 import io.legado.app.lib.theme.ThemeStore
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.CoroutineScope
@@ -54,6 +55,8 @@ abstract class BaseDialogFragment(
             //在每个add事务前增加一个remove事务,防止连续的add
             //在每个add事务前增加一个remove事务,防止连续的add
             manager.beginTransaction().remove(this).commit()
             manager.beginTransaction().remove(this).commit()
             super.show(manager, tag)
             super.show(manager, tag)
+        }.onFailure {
+            AppLog.put("显示对话框失败 tag:$tag", it)
         }
         }
     }
     }
 
 

+ 25 - 17
app/src/main/java/io/legado/app/ui/document/HandleFileActivity.kt

@@ -6,6 +6,7 @@ import android.os.Bundle
 import android.webkit.MimeTypeMap
 import android.webkit.MimeTypeMap
 import androidx.activity.result.contract.ActivityResultContracts
 import androidx.activity.result.contract.ActivityResultContracts
 import androidx.activity.viewModels
 import androidx.activity.viewModels
+import androidx.lifecycle.lifecycleScope
 import io.legado.app.R
 import io.legado.app.R
 import io.legado.app.base.VMBaseActivity
 import io.legado.app.base.VMBaseActivity
 import io.legado.app.constant.AppConst
 import io.legado.app.constant.AppConst
@@ -25,9 +26,8 @@ import io.legado.app.utils.viewbindingdelegate.viewBinding
 import java.io.File
 import java.io.File
 
 
 class HandleFileActivity :
 class HandleFileActivity :
-    VMBaseActivity<ActivityTranslucenceBinding, HandleFileViewModel>(
-        theme = Theme.Transparent
-    ), FilePickerDialog.CallBack {
+    VMBaseActivity<ActivityTranslucenceBinding, HandleFileViewModel>(),
+    FilePickerDialog.CallBack {
 
 
     override val binding by viewBinding(ActivityTranslucenceBinding::inflate)
     override val binding by viewBinding(ActivityTranslucenceBinding::inflate)
     override val viewModel by viewModels<HandleFileViewModel>()
     override val viewModel by viewModels<HandleFileViewModel>()
@@ -104,24 +104,32 @@ class HandleFileActivity :
                     }.onFailure {
                     }.onFailure {
                         AppLog.put(getString(R.string.open_sys_dir_picker_error), it)
                         AppLog.put(getString(R.string.open_sys_dir_picker_error), it)
                         toastOnUi(R.string.open_sys_dir_picker_error)
                         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 {
                     10 -> checkPermissions {
-                        FilePickerDialog.show(
-                            supportFragmentManager,
-                            mode = HandleFileContract.DIR
-                        )
+                        @Suppress("DEPRECATION")
+                        lifecycleScope.launchWhenResumed {
+                            FilePickerDialog.show(
+                                supportFragmentManager,
+                                mode = HandleFileContract.DIR
+                            )
+                        }
                     }
                     }
                     11 -> checkPermissions {
                     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 {
                     111 -> getFileData()?.let {
                         viewModel.upload(it.first, it.second, it.third) { url ->
                         viewModel.upload(it.first, it.second, it.third) { url ->