diff --git a/app/src/main/java/io/legado/app/App.kt b/app/src/main/java/io/legado/app/App.kt index 40466a446..be638a4d1 100644 --- a/app/src/main/java/io/legado/app/App.kt +++ b/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.PreferKey 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.ThemeConfig.applyDayNight import io.legado.app.help.coroutine.Coroutine 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.utils.defaultSharedPreferences import io.legado.app.utils.getPrefBoolean diff --git a/app/src/main/java/io/legado/app/api/controller/BookController.kt b/app/src/main/java/io/legado/app/api/controller/BookController.kt index 2209153c8..eaad3cf35 100644 --- a/app/src/main/java/io/legado/app/api/controller/BookController.kt +++ b/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.BookProgress 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.isLocal +import io.legado.app.help.webdav.AppWebDav import io.legado.app.model.BookCover import io.legado.app.model.localBook.LocalBook import io.legado.app.model.webBook.WebBook diff --git a/app/src/main/java/io/legado/app/ui/book/remote/RemoteBook.kt b/app/src/main/java/io/legado/app/data/entities/RemoteBook.kt similarity index 76% rename from app/src/main/java/io/legado/app/ui/book/remote/RemoteBook.kt rename to app/src/main/java/io/legado/app/data/entities/RemoteBook.kt index 672b26da3..da348703d 100644 --- a/app/src/main/java/io/legado/app/ui/book/remote/RemoteBook.kt +++ b/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( val filename: String, val path: String, diff --git a/app/src/main/java/io/legado/app/help/storage/Backup.kt b/app/src/main/java/io/legado/app/help/storage/Backup.kt index 10becc903..61d1d2e4c 100644 --- a/app/src/main/java/io/legado/app/help/storage/Backup.kt +++ b/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.PreferKey import io.legado.app.data.appDb -import io.legado.app.help.AppWebDav import io.legado.app.help.DirectLinkUpload import io.legado.app.help.config.LocalConfig import io.legado.app.help.config.ReadBookConfig import io.legado.app.help.config.ThemeConfig import io.legado.app.help.coroutine.Coroutine +import io.legado.app.help.webdav.AppWebDav import io.legado.app.utils.* import kotlinx.coroutines.Dispatchers.IO import kotlinx.coroutines.ensureActive diff --git a/app/src/main/java/io/legado/app/help/AppWebDav.kt b/app/src/main/java/io/legado/app/help/webdav/AppWebDav.kt similarity index 99% rename from app/src/main/java/io/legado/app/help/AppWebDav.kt rename to app/src/main/java/io/legado/app/help/webdav/AppWebDav.kt index 58a5e0464..ed3736d7a 100644 --- a/app/src/main/java/io/legado/app/help/AppWebDav.kt +++ b/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 io.legado.app.R diff --git a/app/src/main/java/io/legado/app/ui/book/remote/manager/RemoteBookWebDav.kt b/app/src/main/java/io/legado/app/help/webdav/RemoteBookWebDav.kt similarity index 95% rename from app/src/main/java/io/legado/app/ui/book/remote/manager/RemoteBookWebDav.kt rename to app/src/main/java/io/legado/app/help/webdav/RemoteBookWebDav.kt index 0489f15ef..b20990d3e 100644 --- a/app/src/main/java/io/legado/app/ui/book/remote/manager/RemoteBookWebDav.kt +++ b/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 io.legado.app.constant.AppPattern.bookFileRegex import io.legado.app.constant.BookType import io.legado.app.data.entities.Book +import io.legado.app.data.entities.RemoteBook 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.WebDavFile 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.utils.NetworkUtils import io.legado.app.utils.isContentScheme @@ -89,7 +88,7 @@ object RemoteBookWebDav : RemoteBookManager() { override suspend fun upload(book: Book): Boolean { if (!NetworkUtils.isAvailable()) return false val localBookUri = Uri.parse(book.bookUrl) - val putUrl = "${rootBookUrl}${File.separator}${book.originName}" + val putUrl = "$rootBookUrl${File.separator}${book.originName}" AppWebDav.authorization?.let { if (localBookUri.isContentScheme()) { WebDav(putUrl, it).upload( diff --git a/app/src/main/java/io/legado/app/model/ReadBook.kt b/app/src/main/java/io/legado/app/model/ReadBook.kt index bd5036b3f..9a12ea663 100644 --- a/app/src/main/java/io/legado/app/model/ReadBook.kt +++ b/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.data.appDb import io.legado.app.data.entities.* -import io.legado.app.help.AppWebDav import io.legado.app.help.BookHelp import io.legado.app.help.ContentProcessor import io.legado.app.help.config.AppConfig import io.legado.app.help.config.ReadBookConfig import io.legado.app.help.coroutine.Coroutine import io.legado.app.help.isLocal +import io.legado.app.help.webdav.AppWebDav import io.legado.app.model.webBook.WebBook import io.legado.app.service.BaseReadAloudService import io.legado.app.ui.book.read.page.entities.TextChapter diff --git a/app/src/main/java/io/legado/app/model/localBook/LocalBook.kt b/app/src/main/java/io/legado/app/model/localBook/LocalBook.kt index 1aa75029a..ef56d24f0 100644 --- a/app/src/main/java/io/legado/app/model/localBook/LocalBook.kt +++ b/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.exception.NoStackTraceException import io.legado.app.exception.TocEmptyException -import io.legado.app.help.AppWebDav import io.legado.app.help.BookHelp import io.legado.app.help.config.AppConfig import io.legado.app.help.isEpub import io.legado.app.help.isUmd +import io.legado.app.help.webdav.AppWebDav import io.legado.app.lib.webdav.WebDav import io.legado.app.model.analyzeRule.AnalyzeUrl import io.legado.app.utils.* diff --git a/app/src/main/java/io/legado/app/ui/book/cache/CacheViewModel.kt b/app/src/main/java/io/legado/app/ui/book/cache/CacheViewModel.kt index 4ea354390..54584361b 100644 --- a/app/src/main/java/io/legado/app/ui/book/cache/CacheViewModel.kt +++ b/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.BookChapter import io.legado.app.exception.NoStackTraceException -import io.legado.app.help.AppWebDav import io.legado.app.help.BookHelp import io.legado.app.help.ContentProcessor import io.legado.app.help.config.AppConfig import io.legado.app.help.coroutine.OrderCoroutine +import io.legado.app.help.webdav.AppWebDav 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.withLock import me.ag2s.epublib.domain.* diff --git a/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt b/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt index f5a579200..36bbe57ac 100644 --- a/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt +++ b/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.isLocal 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.theme.backgroundColor 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.info.edit.BookInfoEditActivity 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.source.edit.BookSourceEditActivity import io.legado.app.ui.book.toc.TocActivityResult diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt index 5841ba80c..d4d971485 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt +++ b/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.coroutine.Coroutine 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.alert import io.legado.app.lib.dialogs.selector diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt index 27ee29ac4..b24373ef9 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt +++ b/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.BookProgress import io.legado.app.exception.NoStackTraceException -import io.legado.app.help.AppWebDav import io.legado.app.help.BookHelp import io.legado.app.help.ContentProcessor import io.legado.app.help.config.AppConfig import io.legado.app.help.coroutine.Coroutine import io.legado.app.help.isLocal +import io.legado.app.help.webdav.AppWebDav import io.legado.app.model.ReadAloud import io.legado.app.model.ReadBook import io.legado.app.model.analyzeRule.AnalyzeRule diff --git a/app/src/main/java/io/legado/app/ui/book/remote/RemoteBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/remote/RemoteBookActivity.kt index abe4c3171..6a9b6f310 100644 --- a/app/src/main/java/io/legado/app/ui/book/remote/RemoteBookActivity.kt +++ b/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 io.legado.app.R import io.legado.app.base.VMBaseActivity +import io.legado.app.data.entities.RemoteBook import io.legado.app.databinding.ActivityImportBookBinding import io.legado.app.lib.theme.backgroundColor import io.legado.app.ui.about.AppLogDialog @@ -50,7 +51,7 @@ class RemoteBookActivity : VMBaseActivity showDialogFragment() R.id.menu_sort_name -> { item.isChecked = true - sortCheck(Sort.Name) + sortCheck(RemoteBookSort.Name) upPath() } R.id.menu_sort_time -> { item.isChecked = true - sortCheck(Sort.Default) + sortCheck(RemoteBookSort.Default) upPath() } } @@ -104,8 +105,10 @@ class RemoteBookActivity : VMBaseActivity() @@ -49,10 +50,10 @@ class RemoteBookViewModel(application: Application) : BaseViewModel(application) } }.map { list -> 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 when (sortKey) { - Sort.Name -> list.sortedWith { o1, o2 -> + RemoteBookSort.Name -> list.sortedWith { o1, o2 -> val compare = -compareValues(o1.isDir, o2.isDir) if (compare == 0) { return@sortedWith -compareValues(o1.filename, o2.filename) diff --git a/app/src/main/java/io/legado/app/ui/config/BackupConfigFragment.kt b/app/src/main/java/io/legado/app/ui/config/BackupConfigFragment.kt index 8c22a534d..e6beed7d5 100644 --- a/app/src/main/java/io/legado/app/ui/config/BackupConfigFragment.kt +++ b/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.constant.AppLog 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.LocalConfig 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.ImportOldData 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.permission.Permissions import io.legado.app.lib.permission.PermissionsCompat diff --git a/app/src/main/java/io/legado/app/ui/config/ConfigViewModel.kt b/app/src/main/java/io/legado/app/ui/config/ConfigViewModel.kt index dc408842b..f653744ea 100644 --- a/app/src/main/java/io/legado/app/ui/config/ConfigViewModel.kt +++ b/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 io.legado.app.R import io.legado.app.base.BaseViewModel -import io.legado.app.help.AppWebDav import io.legado.app.help.BookHelp +import io.legado.app.help.webdav.AppWebDav import io.legado.app.utils.FileUtils import io.legado.app.utils.toastOnUi diff --git a/app/src/main/java/io/legado/app/ui/main/MainActivity.kt b/app/src/main/java/io/legado/app/ui/main/MainActivity.kt index 1ec0cc648..b2976bec9 100644 --- a/app/src/main/java/io/legado/app/ui/main/MainActivity.kt +++ b/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.PreferKey import io.legado.app.databinding.ActivityMainBinding -import io.legado.app.help.AppWebDav import io.legado.app.help.BookHelp import io.legado.app.help.config.AppConfig import io.legado.app.help.config.LocalConfig import io.legado.app.help.coroutine.Coroutine 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.theme.elevation import io.legado.app.lib.theme.primaryColor diff --git a/app/src/main/java/io/legado/app/ui/main/MainViewModel.kt b/app/src/main/java/io/legado/app/ui/main/MainViewModel.kt index 57d401461..1c3c5568c 100644 --- a/app/src/main/java/io/legado/app/ui/main/MainViewModel.kt +++ b/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.entities.Book import io.legado.app.data.entities.BookSource -import io.legado.app.help.AppWebDav import io.legado.app.help.BookHelp import io.legado.app.help.DefaultData import io.legado.app.help.config.AppConfig import io.legado.app.help.config.LocalConfig import io.legado.app.help.isLocal +import io.legado.app.help.webdav.AppWebDav import io.legado.app.model.CacheBook import io.legado.app.model.analyzeRule.AnalyzeRule import io.legado.app.model.webBook.WebBook