diff --git a/app/src/main/assets/web/help/md/jsHelp.md b/app/src/main/assets/web/help/md/jsHelp.md
index e4d9219f2..6354b2a1a 100644
--- a/app/src/main/assets/web/help/md/jsHelp.md
+++ b/app/src/main/assets/web/help/md/jsHelp.md
@@ -45,7 +45,7 @@
* 调用阅读搜索
```js
-java.searchBook(bookName: string)
+java.searchBook(bookName: String)
```
* 添加书架
@@ -232,6 +232,13 @@ java.s2t(text: String): String
* 时间格式化
```js
java.timeFormatUTC(time: Long, format: String, sh: Int): String?
+java.timeFormat(time: Long): String
+```
+
+* html格式化
+
+```js
+java.htmlFormat(str: String): String
```
* 文件
> 所有对于文件的读写删操作都是相对路径,只能操作阅读缓存/android/data/{package}/cache/内的文件
@@ -441,9 +448,11 @@ cache.putFile(key: String, value: String, saveTime: Int)
读取文件内容
cache.getFile(key: String): String?
保存到内存
-cache.deleteMemory(key: String)
-cache.getFromMemory(key: String): Any?
cache.putMemory(key: String, value: Any)
+读取内存
+cache.getFromMemory(key: String): Any?
+删除内存
+cache.deleteMemory(key: String)
```
diff --git a/app/src/main/java/io/legato/kazusa/App.kt b/app/src/main/java/io/legato/kazusa/App.kt
index 19a342257..155e762e0 100644
--- a/app/src/main/java/io/legato/kazusa/App.kt
+++ b/app/src/main/java/io/legato/kazusa/App.kt
@@ -7,6 +7,7 @@ import android.app.NotificationManager
import android.content.Context
import android.content.pm.ApplicationInfo
import android.content.res.Configuration
+import android.os.Build
import com.github.liuyueyi.quick.transfer.constants.TransType
import com.google.android.material.color.DynamicColors
import com.jeremyliao.liveeventbus.LiveEventBus
@@ -141,6 +142,9 @@ class App : Application() {
* @return
*/
private fun installGmsTlsProvider(context: Context) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
+ return
+ }
try {
val gmsPackageName = "com.google.android.gms"
val appInfo = packageManager.getApplicationInfo(gmsPackageName, 0)
diff --git a/app/src/main/java/io/legato/kazusa/base/BaseService.kt b/app/src/main/java/io/legato/kazusa/base/BaseService.kt
index 411fd4eb3..8d3bc52d7 100644
--- a/app/src/main/java/io/legato/kazusa/base/BaseService.kt
+++ b/app/src/main/java/io/legato/kazusa/base/BaseService.kt
@@ -75,9 +75,9 @@ abstract class BaseService : LifecycleService() {
}
@CallSuper
- override fun onTimeout(startId: Int) {
- super.onTimeout(startId)
- LogUtils.d(simpleName, "onTimeout startId:$startId")
+ override fun onTimeout(startId: Int, fgsType: Int) {
+ super.onTimeout(startId, fgsType)
+ LogUtils.d(simpleName, "onTimeout startId:$startId fgsType:$fgsType")
stopSelf()
}
diff --git a/app/src/main/java/io/legato/kazusa/constant/AppPattern.kt b/app/src/main/java/io/legato/kazusa/constant/AppPattern.kt
index 074e545a7..bd73ed6f1 100644
--- a/app/src/main/java/io/legato/kazusa/constant/AppPattern.kt
+++ b/app/src/main/java/io/legato/kazusa/constant/AppPattern.kt
@@ -9,7 +9,8 @@ object AppPattern {
val EXP_PATTERN: Pattern = Pattern.compile("\\{\\{([\\w\\W]*?)\\}\\}")
//匹配格式化后的图片格式
- val imgPattern: Pattern = Pattern.compile("
]*src=\"([^\"]*(?:\"[^>]+\\})?)\"[^>]*>")
+ val imgPattern: Pattern =
+ Pattern.compile("
]*src=['\"]([^'\"]*(?:['\"][^>]+\\})?)['\"][^>]*>")
//dataURL图片类型
val dataUriRegex = Regex("^data:.*?;base64,(.*)")
diff --git a/app/src/main/java/io/legato/kazusa/constant/EventBus.kt b/app/src/main/java/io/legato/kazusa/constant/EventBus.kt
index 6b6c4cb89..f23fe405a 100644
--- a/app/src/main/java/io/legato/kazusa/constant/EventBus.kt
+++ b/app/src/main/java/io/legato/kazusa/constant/EventBus.kt
@@ -32,4 +32,5 @@ object EventBus {
const val READ_ALOUD_PLAY = "readAloudPlay"
const val EXPORT_BOOK = "exportBook"
const val UP_MANGA_CONFIG = "upMangaConfig"
+ const val PLAY_MODE_CHANGED = "playModeChanged"
}
\ No newline at end of file
diff --git a/app/src/main/java/io/legato/kazusa/constant/PreferKey.kt b/app/src/main/java/io/legato/kazusa/constant/PreferKey.kt
index df20ed725..b2e8d8bd4 100644
--- a/app/src/main/java/io/legato/kazusa/constant/PreferKey.kt
+++ b/app/src/main/java/io/legato/kazusa/constant/PreferKey.kt
@@ -170,14 +170,12 @@ object PreferKey {
const val showMangaUi = "showMangaUi"
const val disableMangaScale = "disableMangaScale"
const val firebaseEnabled = "firebaseEnabled"
-
const val cPrimary = "colorPrimary"
const val cAccent = "colorAccent"
const val cBackground = "colorBackground"
const val cBBackground = "colorBottomBackground"
const val bgImage = "backgroundImage"
const val bgImageBlurring = "backgroundImageBlurring"
-
const val cNPrimary = "colorPrimaryNight"
const val cNAccent = "colorAccentNight"
const val cNBackground = "colorBackgroundNight"
@@ -187,7 +185,6 @@ object PreferKey {
const val showReadTitleAddition = "showReadTitleAddition"
const val readBarStyleFollowPage = "readBarStyleFollowPage"
const val contentSelectSpeakMod = "contentReadAloudMod"
-
const val themePref = "themePref"
const val bookshelfSortOrder = "bookshelfSortOrder"
const val showBottomView = "showBottomView"
@@ -208,5 +205,5 @@ object PreferKey {
const val permissionChecked = "permissionChecked"
const val notificationsPost = "notificationsPost"
const val ignoreBatteryPermission = "ignoreBatteryPermission"
-
+ const val paddingDisplayCutouts = "paddingDisplayCutouts"
}
diff --git a/app/src/main/java/io/legato/kazusa/data/dao/BookDao.kt b/app/src/main/java/io/legato/kazusa/data/dao/BookDao.kt
index 98e86f182..36029ac27 100644
--- a/app/src/main/java/io/legato/kazusa/data/dao/BookDao.kt
+++ b/app/src/main/java/io/legato/kazusa/data/dao/BookDao.kt
@@ -5,6 +5,7 @@ import androidx.room.Delete
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
+import androidx.room.Transaction
import androidx.room.Update
import io.legato.kazusa.constant.BookType
import io.legato.kazusa.data.entities.Book
@@ -150,6 +151,12 @@ interface BookDao {
@Delete
fun delete(vararg book: Book)
+ @Transaction
+ fun replace(oldBook: Book, newBook: Book) {
+ delete(oldBook)
+ insert(newBook)
+ }
+
@Query("update books set durChapterPos = :pos where bookUrl = :bookUrl")
fun upProgress(bookUrl: String, pos: Int)
diff --git a/app/src/main/java/io/legato/kazusa/data/entities/BaseSource.kt b/app/src/main/java/io/legato/kazusa/data/entities/BaseSource.kt
index 5a3203bf7..baa245b98 100644
--- a/app/src/main/java/io/legato/kazusa/data/entities/BaseSource.kt
+++ b/app/src/main/java/io/legato/kazusa/data/entities/BaseSource.kt
@@ -13,7 +13,6 @@ import io.legato.kazusa.help.config.AppConfig
import io.legato.kazusa.help.crypto.SymmetricCryptoAndroid
import io.legato.kazusa.help.http.CookieStore
import io.legato.kazusa.help.source.getShareScope
-import io.legato.kazusa.model.Debug
import io.legato.kazusa.utils.GSON
import io.legato.kazusa.utils.GSONStrict
import io.legato.kazusa.utils.fromJsonArray
@@ -116,7 +115,7 @@ interface BaseSource : JsExtensions {
GSONStrict.fromJsonObject