kunfei 4 anos atrás
pai
commit
2e51782a3c
21 arquivos alterados com 47 adições e 29 exclusões
  1. 5 1
      app/src/main/java/io/legado/app/App.kt
  2. 5 1
      app/src/main/java/io/legado/app/api/controller/BookController.kt
  3. 4 1
      app/src/main/java/io/legado/app/data/entities/RemoteBook.kt
  4. 1 1
      app/src/main/java/io/legado/app/help/storage/Backup.kt
  5. 1 1
      app/src/main/java/io/legado/app/help/webdav/AppWebDav.kt
  6. 3 4
      app/src/main/java/io/legado/app/help/webdav/RemoteBookWebDav.kt
  7. 1 1
      app/src/main/java/io/legado/app/model/ReadBook.kt
  8. 1 1
      app/src/main/java/io/legado/app/model/localBook/LocalBook.kt
  9. 3 2
      app/src/main/java/io/legado/app/ui/book/cache/CacheViewModel.kt
  10. 1 1
      app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt
  11. 1 0
      app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt
  12. 1 1
      app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt
  13. 8 5
      app/src/main/java/io/legado/app/ui/book/remote/RemoteBookActivity.kt
  14. 1 0
      app/src/main/java/io/legado/app/ui/book/remote/RemoteBookAdapter.kt
  15. 1 0
      app/src/main/java/io/legado/app/ui/book/remote/RemoteBookManager.kt
  16. 1 1
      app/src/main/java/io/legado/app/ui/book/remote/RemoteBookSort.kt
  17. 5 4
      app/src/main/java/io/legado/app/ui/book/remote/RemoteBookViewModel.kt
  18. 1 1
      app/src/main/java/io/legado/app/ui/config/BackupConfigFragment.kt
  19. 1 1
      app/src/main/java/io/legado/app/ui/config/ConfigViewModel.kt
  20. 1 1
      app/src/main/java/io/legado/app/ui/main/MainActivity.kt
  21. 1 1
      app/src/main/java/io/legado/app/ui/main/MainViewModel.kt

+ 5 - 1
app/src/main/java/io/legado/app/App.kt

@@ -16,11 +16,15 @@ import io.legado.app.constant.AppConst.channelIdReadAloud
 import io.legado.app.constant.AppConst.channelIdWeb
 import io.legado.app.constant.AppConst.channelIdWeb
 import io.legado.app.constant.PreferKey
 import io.legado.app.constant.PreferKey
 import io.legado.app.data.appDb
 import io.legado.app.data.appDb
-import io.legado.app.help.*
+import io.legado.app.help.BookHelp
+import io.legado.app.help.CrashHandler
+import io.legado.app.help.LifecycleHelp
+import io.legado.app.help.RuleBigDataHelp
 import io.legado.app.help.config.AppConfig
 import io.legado.app.help.config.AppConfig
 import io.legado.app.help.config.ThemeConfig.applyDayNight
 import io.legado.app.help.config.ThemeConfig.applyDayNight
 import io.legado.app.help.coroutine.Coroutine
 import io.legado.app.help.coroutine.Coroutine
 import io.legado.app.help.http.cronet.CronetLoader
 import io.legado.app.help.http.cronet.CronetLoader
+import io.legado.app.help.webdav.AppWebDav
 import io.legado.app.model.BookCover
 import io.legado.app.model.BookCover
 import io.legado.app.utils.defaultSharedPreferences
 import io.legado.app.utils.defaultSharedPreferences
 import io.legado.app.utils.getPrefBoolean
 import io.legado.app.utils.getPrefBoolean

+ 5 - 1
app/src/main/java/io/legado/app/api/controller/BookController.kt

@@ -7,8 +7,12 @@ import io.legado.app.data.appDb
 import io.legado.app.data.entities.Book
 import io.legado.app.data.entities.Book
 import io.legado.app.data.entities.BookProgress
 import io.legado.app.data.entities.BookProgress
 import io.legado.app.data.entities.BookSource
 import io.legado.app.data.entities.BookSource
-import io.legado.app.help.*
+import io.legado.app.help.BookHelp
+import io.legado.app.help.CacheManager
+import io.legado.app.help.ContentProcessor
 import io.legado.app.help.glide.ImageLoader
 import io.legado.app.help.glide.ImageLoader
+import io.legado.app.help.isLocal
+import io.legado.app.help.webdav.AppWebDav
 import io.legado.app.model.BookCover
 import io.legado.app.model.BookCover
 import io.legado.app.model.localBook.LocalBook
 import io.legado.app.model.localBook.LocalBook
 import io.legado.app.model.webBook.WebBook
 import io.legado.app.model.webBook.WebBook

+ 4 - 1
app/src/main/java/io/legado/app/ui/book/remote/RemoteBook.kt → app/src/main/java/io/legado/app/data/entities/RemoteBook.kt

@@ -1,5 +1,8 @@
-package io.legado.app.ui.book.remote
+package io.legado.app.data.entities
 
 
+import com.android.tools.r8.Keep
+
+@Keep
 data class RemoteBook(
 data class RemoteBook(
     val filename: String,
     val filename: String,
     val path: String,
     val path: String,

+ 1 - 1
app/src/main/java/io/legado/app/help/storage/Backup.kt

@@ -6,12 +6,12 @@ import androidx.documentfile.provider.DocumentFile
 import io.legado.app.constant.AppLog
 import io.legado.app.constant.AppLog
 import io.legado.app.constant.PreferKey
 import io.legado.app.constant.PreferKey
 import io.legado.app.data.appDb
 import io.legado.app.data.appDb
-import io.legado.app.help.AppWebDav
 import io.legado.app.help.DirectLinkUpload
 import io.legado.app.help.DirectLinkUpload
 import io.legado.app.help.config.LocalConfig
 import io.legado.app.help.config.LocalConfig
 import io.legado.app.help.config.ReadBookConfig
 import io.legado.app.help.config.ReadBookConfig
 import io.legado.app.help.config.ThemeConfig
 import io.legado.app.help.config.ThemeConfig
 import io.legado.app.help.coroutine.Coroutine
 import io.legado.app.help.coroutine.Coroutine
+import io.legado.app.help.webdav.AppWebDav
 import io.legado.app.utils.*
 import io.legado.app.utils.*
 import kotlinx.coroutines.Dispatchers.IO
 import kotlinx.coroutines.Dispatchers.IO
 import kotlinx.coroutines.ensureActive
 import kotlinx.coroutines.ensureActive

+ 1 - 1
app/src/main/java/io/legado/app/help/AppWebDav.kt → app/src/main/java/io/legado/app/help/webdav/AppWebDav.kt

@@ -1,4 +1,4 @@
-package io.legado.app.help
+package io.legado.app.help.webdav
 
 
 import android.content.Context
 import android.content.Context
 import io.legado.app.R
 import io.legado.app.R

+ 3 - 4
app/src/main/java/io/legado/app/ui/book/remote/manager/RemoteBookWebDav.kt → app/src/main/java/io/legado/app/help/webdav/RemoteBookWebDav.kt

@@ -1,15 +1,14 @@
-package io.legado.app.ui.book.remote.manager
+package io.legado.app.help.webdav
 
 
 import android.net.Uri
 import android.net.Uri
 import io.legado.app.constant.AppPattern.bookFileRegex
 import io.legado.app.constant.AppPattern.bookFileRegex
 import io.legado.app.constant.BookType
 import io.legado.app.constant.BookType
 import io.legado.app.data.entities.Book
 import io.legado.app.data.entities.Book
+import io.legado.app.data.entities.RemoteBook
 import io.legado.app.exception.NoStackTraceException
 import io.legado.app.exception.NoStackTraceException
-import io.legado.app.help.AppWebDav
 import io.legado.app.lib.webdav.WebDav
 import io.legado.app.lib.webdav.WebDav
 import io.legado.app.lib.webdav.WebDavFile
 import io.legado.app.lib.webdav.WebDavFile
 import io.legado.app.model.localBook.LocalBook
 import io.legado.app.model.localBook.LocalBook
-import io.legado.app.ui.book.remote.RemoteBook
 import io.legado.app.ui.book.remote.RemoteBookManager
 import io.legado.app.ui.book.remote.RemoteBookManager
 import io.legado.app.utils.NetworkUtils
 import io.legado.app.utils.NetworkUtils
 import io.legado.app.utils.isContentScheme
 import io.legado.app.utils.isContentScheme
@@ -89,7 +88,7 @@ object RemoteBookWebDav : RemoteBookManager() {
     override suspend fun upload(book: Book): Boolean {
     override suspend fun upload(book: Book): Boolean {
         if (!NetworkUtils.isAvailable()) return false
         if (!NetworkUtils.isAvailable()) return false
         val localBookUri = Uri.parse(book.bookUrl)
         val localBookUri = Uri.parse(book.bookUrl)
-        val putUrl = "${rootBookUrl}${File.separator}${book.originName}"
+        val putUrl = "$rootBookUrl${File.separator}${book.originName}"
         AppWebDav.authorization?.let {
         AppWebDav.authorization?.let {
             if (localBookUri.isContentScheme()) {
             if (localBookUri.isContentScheme()) {
                 WebDav(putUrl, it).upload(
                 WebDav(putUrl, it).upload(

+ 1 - 1
app/src/main/java/io/legado/app/model/ReadBook.kt

@@ -3,13 +3,13 @@ package io.legado.app.model
 import io.legado.app.constant.AppLog
 import io.legado.app.constant.AppLog
 import io.legado.app.data.appDb
 import io.legado.app.data.appDb
 import io.legado.app.data.entities.*
 import io.legado.app.data.entities.*
-import io.legado.app.help.AppWebDav
 import io.legado.app.help.BookHelp
 import io.legado.app.help.BookHelp
 import io.legado.app.help.ContentProcessor
 import io.legado.app.help.ContentProcessor
 import io.legado.app.help.config.AppConfig
 import io.legado.app.help.config.AppConfig
 import io.legado.app.help.config.ReadBookConfig
 import io.legado.app.help.config.ReadBookConfig
 import io.legado.app.help.coroutine.Coroutine
 import io.legado.app.help.coroutine.Coroutine
 import io.legado.app.help.isLocal
 import io.legado.app.help.isLocal
+import io.legado.app.help.webdav.AppWebDav
 import io.legado.app.model.webBook.WebBook
 import io.legado.app.model.webBook.WebBook
 import io.legado.app.service.BaseReadAloudService
 import io.legado.app.service.BaseReadAloudService
 import io.legado.app.ui.book.read.page.entities.TextChapter
 import io.legado.app.ui.book.read.page.entities.TextChapter

+ 1 - 1
app/src/main/java/io/legado/app/model/localBook/LocalBook.kt

@@ -14,11 +14,11 @@ import io.legado.app.data.entities.Book
 import io.legado.app.data.entities.BookChapter
 import io.legado.app.data.entities.BookChapter
 import io.legado.app.exception.NoStackTraceException
 import io.legado.app.exception.NoStackTraceException
 import io.legado.app.exception.TocEmptyException
 import io.legado.app.exception.TocEmptyException
-import io.legado.app.help.AppWebDav
 import io.legado.app.help.BookHelp
 import io.legado.app.help.BookHelp
 import io.legado.app.help.config.AppConfig
 import io.legado.app.help.config.AppConfig
 import io.legado.app.help.isEpub
 import io.legado.app.help.isEpub
 import io.legado.app.help.isUmd
 import io.legado.app.help.isUmd
+import io.legado.app.help.webdav.AppWebDav
 import io.legado.app.lib.webdav.WebDav
 import io.legado.app.lib.webdav.WebDav
 import io.legado.app.model.analyzeRule.AnalyzeUrl
 import io.legado.app.model.analyzeRule.AnalyzeUrl
 import io.legado.app.utils.*
 import io.legado.app.utils.*

+ 3 - 2
app/src/main/java/io/legado/app/ui/book/cache/CacheViewModel.kt

@@ -18,13 +18,14 @@ import io.legado.app.data.appDb
 import io.legado.app.data.entities.Book
 import io.legado.app.data.entities.Book
 import io.legado.app.data.entities.BookChapter
 import io.legado.app.data.entities.BookChapter
 import io.legado.app.exception.NoStackTraceException
 import io.legado.app.exception.NoStackTraceException
-import io.legado.app.help.AppWebDav
 import io.legado.app.help.BookHelp
 import io.legado.app.help.BookHelp
 import io.legado.app.help.ContentProcessor
 import io.legado.app.help.ContentProcessor
 import io.legado.app.help.config.AppConfig
 import io.legado.app.help.config.AppConfig
 import io.legado.app.help.coroutine.OrderCoroutine
 import io.legado.app.help.coroutine.OrderCoroutine
+import io.legado.app.help.webdav.AppWebDav
 import io.legado.app.utils.*
 import io.legado.app.utils.*
-import kotlinx.coroutines.*
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.ensureActive
 import kotlinx.coroutines.sync.Mutex
 import kotlinx.coroutines.sync.Mutex
 import kotlinx.coroutines.sync.withLock
 import kotlinx.coroutines.sync.withLock
 import me.ag2s.epublib.domain.*
 import me.ag2s.epublib.domain.*

+ 1 - 1
app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt

@@ -23,6 +23,7 @@ import io.legado.app.help.config.AppConfig
 import io.legado.app.help.isAudio
 import io.legado.app.help.isAudio
 import io.legado.app.help.isLocal
 import io.legado.app.help.isLocal
 import io.legado.app.help.isLocalTxt
 import io.legado.app.help.isLocalTxt
+import io.legado.app.help.webdav.RemoteBookWebDav
 import io.legado.app.lib.dialogs.alert
 import io.legado.app.lib.dialogs.alert
 import io.legado.app.lib.theme.backgroundColor
 import io.legado.app.lib.theme.backgroundColor
 import io.legado.app.lib.theme.bottomBackground
 import io.legado.app.lib.theme.bottomBackground
@@ -36,7 +37,6 @@ import io.legado.app.ui.book.changesource.ChangeBookSourceDialog
 import io.legado.app.ui.book.group.GroupSelectDialog
 import io.legado.app.ui.book.group.GroupSelectDialog
 import io.legado.app.ui.book.info.edit.BookInfoEditActivity
 import io.legado.app.ui.book.info.edit.BookInfoEditActivity
 import io.legado.app.ui.book.read.ReadBookActivity
 import io.legado.app.ui.book.read.ReadBookActivity
-import io.legado.app.ui.book.remote.manager.RemoteBookWebDav
 import io.legado.app.ui.book.search.SearchActivity
 import io.legado.app.ui.book.search.SearchActivity
 import io.legado.app.ui.book.source.edit.BookSourceEditActivity
 import io.legado.app.ui.book.source.edit.BookSourceEditActivity
 import io.legado.app.ui.book.toc.TocActivityResult
 import io.legado.app.ui.book.toc.TocActivityResult

+ 1 - 0
app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt

@@ -28,6 +28,7 @@ import io.legado.app.help.config.ReadBookConfig
 import io.legado.app.help.config.ReadTipConfig
 import io.legado.app.help.config.ReadTipConfig
 import io.legado.app.help.coroutine.Coroutine
 import io.legado.app.help.coroutine.Coroutine
 import io.legado.app.help.storage.Backup
 import io.legado.app.help.storage.Backup
+import io.legado.app.help.webdav.AppWebDav
 import io.legado.app.lib.dialogs.SelectItem
 import io.legado.app.lib.dialogs.SelectItem
 import io.legado.app.lib.dialogs.alert
 import io.legado.app.lib.dialogs.alert
 import io.legado.app.lib.dialogs.selector
 import io.legado.app.lib.dialogs.selector

+ 1 - 1
app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt

@@ -15,12 +15,12 @@ import io.legado.app.data.entities.Book
 import io.legado.app.data.entities.BookChapter
 import io.legado.app.data.entities.BookChapter
 import io.legado.app.data.entities.BookProgress
 import io.legado.app.data.entities.BookProgress
 import io.legado.app.exception.NoStackTraceException
 import io.legado.app.exception.NoStackTraceException
-import io.legado.app.help.AppWebDav
 import io.legado.app.help.BookHelp
 import io.legado.app.help.BookHelp
 import io.legado.app.help.ContentProcessor
 import io.legado.app.help.ContentProcessor
 import io.legado.app.help.config.AppConfig
 import io.legado.app.help.config.AppConfig
 import io.legado.app.help.coroutine.Coroutine
 import io.legado.app.help.coroutine.Coroutine
 import io.legado.app.help.isLocal
 import io.legado.app.help.isLocal
+import io.legado.app.help.webdav.AppWebDav
 import io.legado.app.model.ReadAloud
 import io.legado.app.model.ReadAloud
 import io.legado.app.model.ReadBook
 import io.legado.app.model.ReadBook
 import io.legado.app.model.analyzeRule.AnalyzeRule
 import io.legado.app.model.analyzeRule.AnalyzeRule

+ 8 - 5
app/src/main/java/io/legado/app/ui/book/remote/RemoteBookActivity.kt

@@ -10,6 +10,7 @@ import androidx.core.view.isGone
 import androidx.recyclerview.widget.LinearLayoutManager
 import androidx.recyclerview.widget.LinearLayoutManager
 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.data.entities.RemoteBook
 import io.legado.app.databinding.ActivityImportBookBinding
 import io.legado.app.databinding.ActivityImportBookBinding
 import io.legado.app.lib.theme.backgroundColor
 import io.legado.app.lib.theme.backgroundColor
 import io.legado.app.ui.about.AppLogDialog
 import io.legado.app.ui.about.AppLogDialog
@@ -50,7 +51,7 @@ class RemoteBookActivity : VMBaseActivity<ActivityImportBookBinding, RemoteBookV
         binding.selectActionBar.setCallBack(this)
         binding.selectActionBar.setCallBack(this)
     }
     }
 
 
-    private fun sortCheck(sortKey: Sort) {
+    private fun sortCheck(sortKey: RemoteBookSort) {
         if (viewModel.sortKey == sortKey) {
         if (viewModel.sortKey == sortKey) {
             viewModel.sortAscending = !viewModel.sortAscending
             viewModel.sortAscending = !viewModel.sortAscending
         } else {
         } else {
@@ -89,12 +90,12 @@ class RemoteBookActivity : VMBaseActivity<ActivityImportBookBinding, RemoteBookV
             R.id.menu_log -> showDialogFragment<AppLogDialog>()
             R.id.menu_log -> showDialogFragment<AppLogDialog>()
             R.id.menu_sort_name -> {
             R.id.menu_sort_name -> {
                 item.isChecked = true
                 item.isChecked = true
-                sortCheck(Sort.Name)
+                sortCheck(RemoteBookSort.Name)
                 upPath()
                 upPath()
             }
             }
             R.id.menu_sort_time -> {
             R.id.menu_sort_time -> {
                 item.isChecked = true
                 item.isChecked = true
-                sortCheck(Sort.Default)
+                sortCheck(RemoteBookSort.Default)
                 upPath()
                 upPath()
             }
             }
         }
         }
@@ -104,8 +105,10 @@ class RemoteBookActivity : VMBaseActivity<ActivityImportBookBinding, RemoteBookV
     override fun onPrepareOptionsMenu(menu: Menu): Boolean {
     override fun onPrepareOptionsMenu(menu: Menu): Boolean {
         groupMenu = menu.findItem(R.id.menu_sort)?.subMenu
         groupMenu = menu.findItem(R.id.menu_sort)?.subMenu
         groupMenu?.setGroupCheckable(R.id.menu_group_sort, true, true)
         groupMenu?.setGroupCheckable(R.id.menu_group_sort, true, true)
-        groupMenu?.findItem(R.id.menu_sort_name)?.isChecked = viewModel.sortKey == Sort.Name
-        groupMenu?.findItem(R.id.menu_sort_time)?.isChecked = viewModel.sortKey == Sort.Default
+        groupMenu?.findItem(R.id.menu_sort_name)?.isChecked =
+            viewModel.sortKey == RemoteBookSort.Name
+        groupMenu?.findItem(R.id.menu_sort_time)?.isChecked =
+            viewModel.sortKey == RemoteBookSort.Default
         return super.onPrepareOptionsMenu(menu)
         return super.onPrepareOptionsMenu(menu)
     }
     }
 
 

+ 1 - 0
app/src/main/java/io/legado/app/ui/book/remote/RemoteBookAdapter.kt

@@ -7,6 +7,7 @@ import io.legado.app.R
 import io.legado.app.base.adapter.ItemViewHolder
 import io.legado.app.base.adapter.ItemViewHolder
 import io.legado.app.base.adapter.RecyclerAdapter
 import io.legado.app.base.adapter.RecyclerAdapter
 import io.legado.app.constant.AppConst
 import io.legado.app.constant.AppConst
+import io.legado.app.data.entities.RemoteBook
 import io.legado.app.databinding.ItemImportBookBinding
 import io.legado.app.databinding.ItemImportBookBinding
 import io.legado.app.utils.ConvertUtils
 import io.legado.app.utils.ConvertUtils
 import io.legado.app.utils.gone
 import io.legado.app.utils.gone

+ 1 - 0
app/src/main/java/io/legado/app/ui/book/remote/RemoteBookManager.kt

@@ -2,6 +2,7 @@ package io.legado.app.ui.book.remote
 
 
 import android.net.Uri
 import android.net.Uri
 import io.legado.app.data.entities.Book
 import io.legado.app.data.entities.Book
+import io.legado.app.data.entities.RemoteBook
 
 
 abstract class RemoteBookManager {
 abstract class RemoteBookManager {
     protected val remoteBookFolder : String = "books"
     protected val remoteBookFolder : String = "books"

+ 1 - 1
app/src/main/java/io/legado/app/ui/book/remote/Sort.kt → app/src/main/java/io/legado/app/ui/book/remote/RemoteBookSort.kt

@@ -1,5 +1,5 @@
 package io.legado.app.ui.book.remote
 package io.legado.app.ui.book.remote
 
 
-enum class Sort {
+enum class RemoteBookSort {
     Default, Name
     Default, Name
 }
 }

+ 5 - 4
app/src/main/java/io/legado/app/ui/book/remote/RemoteBookViewModel.kt

@@ -4,8 +4,9 @@ import android.app.Application
 import io.legado.app.base.BaseViewModel
 import io.legado.app.base.BaseViewModel
 import io.legado.app.constant.AppLog
 import io.legado.app.constant.AppLog
 import io.legado.app.constant.BookType
 import io.legado.app.constant.BookType
+import io.legado.app.data.entities.RemoteBook
+import io.legado.app.help.webdav.RemoteBookWebDav
 import io.legado.app.model.localBook.LocalBook
 import io.legado.app.model.localBook.LocalBook
-import io.legado.app.ui.book.remote.manager.RemoteBookWebDav
 import io.legado.app.utils.toastOnUi
 import io.legado.app.utils.toastOnUi
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.channels.awaitClose
 import kotlinx.coroutines.channels.awaitClose
@@ -15,7 +16,7 @@ import kotlinx.coroutines.flow.map
 import java.util.*
 import java.util.*
 
 
 class RemoteBookViewModel(application: Application) : BaseViewModel(application) {
 class RemoteBookViewModel(application: Application) : BaseViewModel(application) {
-    var sortKey = Sort.Default
+    var sortKey = RemoteBookSort.Default
     var sortAscending = false
     var sortAscending = false
     val dirList = arrayListOf<RemoteBook>()
     val dirList = arrayListOf<RemoteBook>()
 
 
@@ -49,10 +50,10 @@ class RemoteBookViewModel(application: Application) : BaseViewModel(application)
         }
         }
     }.map { list ->
     }.map { list ->
         if (sortAscending) when (sortKey) {
         if (sortAscending) when (sortKey) {
-            Sort.Name -> list.sortedWith(compareBy({ !it.isDir }, { it.filename }))
+            RemoteBookSort.Name -> list.sortedWith(compareBy({ !it.isDir }, { it.filename }))
             else -> list.sortedWith(compareBy({ !it.isDir }, { it.lastModify }))
             else -> list.sortedWith(compareBy({ !it.isDir }, { it.lastModify }))
         } else when (sortKey) {
         } else when (sortKey) {
-            Sort.Name -> list.sortedWith { o1, o2 ->
+            RemoteBookSort.Name -> list.sortedWith { o1, o2 ->
                 val compare = -compareValues(o1.isDir, o2.isDir)
                 val compare = -compareValues(o1.isDir, o2.isDir)
                 if (compare == 0) {
                 if (compare == 0) {
                     return@sortedWith -compareValues(o1.filename, o2.filename)
                     return@sortedWith -compareValues(o1.filename, o2.filename)

+ 1 - 1
app/src/main/java/io/legado/app/ui/config/BackupConfigFragment.kt

@@ -18,7 +18,6 @@ import androidx.preference.Preference
 import io.legado.app.R
 import io.legado.app.R
 import io.legado.app.constant.AppLog
 import io.legado.app.constant.AppLog
 import io.legado.app.constant.PreferKey
 import io.legado.app.constant.PreferKey
-import io.legado.app.help.AppWebDav
 import io.legado.app.help.config.AppConfig
 import io.legado.app.help.config.AppConfig
 import io.legado.app.help.config.LocalConfig
 import io.legado.app.help.config.LocalConfig
 import io.legado.app.help.coroutine.Coroutine
 import io.legado.app.help.coroutine.Coroutine
@@ -26,6 +25,7 @@ import io.legado.app.help.storage.Backup
 import io.legado.app.help.storage.BackupConfig
 import io.legado.app.help.storage.BackupConfig
 import io.legado.app.help.storage.ImportOldData
 import io.legado.app.help.storage.ImportOldData
 import io.legado.app.help.storage.Restore
 import io.legado.app.help.storage.Restore
+import io.legado.app.help.webdav.AppWebDav
 import io.legado.app.lib.dialogs.alert
 import io.legado.app.lib.dialogs.alert
 import io.legado.app.lib.permission.Permissions
 import io.legado.app.lib.permission.Permissions
 import io.legado.app.lib.permission.PermissionsCompat
 import io.legado.app.lib.permission.PermissionsCompat

+ 1 - 1
app/src/main/java/io/legado/app/ui/config/ConfigViewModel.kt

@@ -3,8 +3,8 @@ package io.legado.app.ui.config
 import android.app.Application
 import android.app.Application
 import io.legado.app.R
 import io.legado.app.R
 import io.legado.app.base.BaseViewModel
 import io.legado.app.base.BaseViewModel
-import io.legado.app.help.AppWebDav
 import io.legado.app.help.BookHelp
 import io.legado.app.help.BookHelp
+import io.legado.app.help.webdav.AppWebDav
 import io.legado.app.utils.FileUtils
 import io.legado.app.utils.FileUtils
 import io.legado.app.utils.toastOnUi
 import io.legado.app.utils.toastOnUi
 
 

+ 1 - 1
app/src/main/java/io/legado/app/ui/main/MainActivity.kt

@@ -21,12 +21,12 @@ import io.legado.app.constant.AppConst.appInfo
 import io.legado.app.constant.EventBus
 import io.legado.app.constant.EventBus
 import io.legado.app.constant.PreferKey
 import io.legado.app.constant.PreferKey
 import io.legado.app.databinding.ActivityMainBinding
 import io.legado.app.databinding.ActivityMainBinding
-import io.legado.app.help.AppWebDav
 import io.legado.app.help.BookHelp
 import io.legado.app.help.BookHelp
 import io.legado.app.help.config.AppConfig
 import io.legado.app.help.config.AppConfig
 import io.legado.app.help.config.LocalConfig
 import io.legado.app.help.config.LocalConfig
 import io.legado.app.help.coroutine.Coroutine
 import io.legado.app.help.coroutine.Coroutine
 import io.legado.app.help.storage.Backup
 import io.legado.app.help.storage.Backup
+import io.legado.app.help.webdav.AppWebDav
 import io.legado.app.lib.dialogs.alert
 import io.legado.app.lib.dialogs.alert
 import io.legado.app.lib.theme.elevation
 import io.legado.app.lib.theme.elevation
 import io.legado.app.lib.theme.primaryColor
 import io.legado.app.lib.theme.primaryColor

+ 1 - 1
app/src/main/java/io/legado/app/ui/main/MainViewModel.kt

@@ -9,12 +9,12 @@ import io.legado.app.constant.EventBus
 import io.legado.app.data.appDb
 import io.legado.app.data.appDb
 import io.legado.app.data.entities.Book
 import io.legado.app.data.entities.Book
 import io.legado.app.data.entities.BookSource
 import io.legado.app.data.entities.BookSource
-import io.legado.app.help.AppWebDav
 import io.legado.app.help.BookHelp
 import io.legado.app.help.BookHelp
 import io.legado.app.help.DefaultData
 import io.legado.app.help.DefaultData
 import io.legado.app.help.config.AppConfig
 import io.legado.app.help.config.AppConfig
 import io.legado.app.help.config.LocalConfig
 import io.legado.app.help.config.LocalConfig
 import io.legado.app.help.isLocal
 import io.legado.app.help.isLocal
+import io.legado.app.help.webdav.AppWebDav
 import io.legado.app.model.CacheBook
 import io.legado.app.model.CacheBook
 import io.legado.app.model.analyzeRule.AnalyzeRule
 import io.legado.app.model.analyzeRule.AnalyzeRule
 import io.legado.app.model.webBook.WebBook
 import io.legado.app.model.webBook.WebBook