Merge branch 'master' into master
This commit is contained in:
@@ -11,6 +11,12 @@
|
|||||||
* 正文出现缺字漏字、内容缺失、排版错乱等情况,有可能是净化规则或简繁转换出现问题。
|
* 正文出现缺字漏字、内容缺失、排版错乱等情况,有可能是净化规则或简繁转换出现问题。
|
||||||
* 漫画源看书显示乱码,**阅读与其他软件的源并不通用**,请导入阅读的支持的漫画源!
|
* 漫画源看书显示乱码,**阅读与其他软件的源并不通用**,请导入阅读的支持的漫画源!
|
||||||
|
|
||||||
|
**2022/01/26**
|
||||||
|
|
||||||
|
* 修复web写源订阅源保存失败bug
|
||||||
|
* http朗读下载错误连续5次后自动暂停
|
||||||
|
* 其它一些优化
|
||||||
|
|
||||||
**2022/01/20**
|
**2022/01/20**
|
||||||
|
|
||||||
* 添加payAction规则,返回购买链接
|
* 添加payAction规则,返回购买链接
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ function rule2json() {
|
|||||||
RuleJSON.enabled = RuleJSON.enabled == '' || String(RuleJSON.enabled).toLocaleLowerCase().replace(/^\s*|\s*$/g, '') == 'true';
|
RuleJSON.enabled = RuleJSON.enabled == '' || String(RuleJSON.enabled).toLocaleLowerCase().replace(/^\s*|\s*$/g, '') == 'true';
|
||||||
RuleJSON.enableJs = RuleJSON.enableJs == '' || String(RuleJSON.enableJs).toLocaleLowerCase().replace(/^\s*|\s*$/g, '') == 'true';
|
RuleJSON.enableJs = RuleJSON.enableJs == '' || String(RuleJSON.enableJs).toLocaleLowerCase().replace(/^\s*|\s*$/g, '') == 'true';
|
||||||
RuleJSON.loadWithBaseUrl = RuleJSON.loadWithBaseUrl == '' || String(RuleJSON.loadWithBaseUrl).toLocaleLowerCase().replace(/^\s*|\s*$/g, '') == 'true';
|
RuleJSON.loadWithBaseUrl = RuleJSON.loadWithBaseUrl == '' || String(RuleJSON.loadWithBaseUrl).toLocaleLowerCase().replace(/^\s*|\s*$/g, '') == 'true';
|
||||||
RuleJSON.singleUrl = RuleJSON.singleUrl == '' || String(RuleJSON.singleUrl).toLocaleLowerCase().replace(/^\s*|\s*$/g, '') == 'true';
|
RuleJSON.singleUrl = String(RuleJSON.singleUrl).toLocaleLowerCase().replace(/^\s*|\s*$/g, '') == 'true';
|
||||||
return RuleJSON;
|
return RuleJSON;
|
||||||
}
|
}
|
||||||
// 将源对象填充到源表单
|
// 将源对象填充到源表单
|
||||||
|
|||||||
@@ -163,6 +163,12 @@ object ReadBookConfig {
|
|||||||
|
|
||||||
val config get() = if (shareLayout) shareConfig else durConfig
|
val config get() = if (shareLayout) shareConfig else durConfig
|
||||||
|
|
||||||
|
var bgAlpha: Int
|
||||||
|
get() = config.bgAlpha
|
||||||
|
set(value) {
|
||||||
|
config.bgAlpha = value
|
||||||
|
}
|
||||||
|
|
||||||
var pageAnim: Int
|
var pageAnim: Int
|
||||||
get() = config.curPageAnim()
|
get() = config.curPageAnim()
|
||||||
set(value) {
|
set(value) {
|
||||||
@@ -419,7 +425,8 @@ object ReadBookConfig {
|
|||||||
var name: String = "",
|
var name: String = "",
|
||||||
var bgStr: String = "#EEEEEE",//白天背景
|
var bgStr: String = "#EEEEEE",//白天背景
|
||||||
var bgStrNight: String = "#000000",//夜间背景
|
var bgStrNight: String = "#000000",//夜间背景
|
||||||
var bgStrEInk: String = "#FFFFFF",
|
var bgStrEInk: String = "#FFFFFF",//EInk背景
|
||||||
|
var bgAlpha: Int = 100,//背景透明度
|
||||||
var bgType: Int = 0,//白天背景类型 0:颜色, 1:assets图片, 2其它图片
|
var bgType: Int = 0,//白天背景类型 0:颜色, 1:assets图片, 2其它图片
|
||||||
var bgTypeNight: Int = 0,//夜间背景类型
|
var bgTypeNight: Int = 0,//夜间背景类型
|
||||||
var bgTypeEInk: Int = 0,
|
var bgTypeEInk: Int = 0,
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ object ThemeUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@JvmOverloads
|
|
||||||
fun resolveDrawable(context: Context, @AttrRes attr: Int): Drawable? {
|
fun resolveDrawable(context: Context, @AttrRes attr: Int): Drawable? {
|
||||||
val a = context.theme.obtainStyledAttributes(intArrayOf(attr))
|
val a = context.theme.obtainStyledAttributes(intArrayOf(attr))
|
||||||
return try {
|
return try {
|
||||||
|
|||||||
@@ -180,22 +180,26 @@ class HttpReadAloudService : BaseReadAloudService(),
|
|||||||
is SocketTimeoutException, is ConnectException -> {
|
is SocketTimeoutException, is ConnectException -> {
|
||||||
removeSpeakCache(fileName)
|
removeSpeakCache(fileName)
|
||||||
downloadErrorNo++
|
downloadErrorNo++
|
||||||
if (playErrorNo > 5) {
|
if (downloadErrorNo > 5) {
|
||||||
downloadErrorNo = 0
|
|
||||||
createSilentSound(fileName)
|
|
||||||
val msg = "tts超时或连接错误超过5次\n${it.localizedMessage}"
|
val msg = "tts超时或连接错误超过5次\n${it.localizedMessage}"
|
||||||
AppLog.put(msg, it)
|
AppLog.put(msg, it)
|
||||||
toastOnUi(msg)
|
toastOnUi(msg)
|
||||||
|
pauseReadAloud(true)
|
||||||
} else {
|
} else {
|
||||||
downloadAudio()
|
downloadAudio()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
removeSpeakCache(fileName)
|
removeSpeakCache(fileName)
|
||||||
createSilentSound(fileName)
|
downloadErrorNo++
|
||||||
val msg = "tts下载错误\n${it.localizedMessage}"
|
val msg = "tts下载错误\n${it.localizedMessage}"
|
||||||
AppLog.put(msg, it)
|
AppLog.put(msg, it)
|
||||||
Timber.e(it)
|
Timber.e(it)
|
||||||
|
if (downloadErrorNo > 5) {
|
||||||
|
pauseReadAloud(true)
|
||||||
|
} else {
|
||||||
|
createSilentSound(fileName)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1005,6 +1005,7 @@ class ReadBookActivity : BaseReadBookActivity(),
|
|||||||
upSystemUiVisibility()
|
upSystemUiVisibility()
|
||||||
readView.upBg()
|
readView.upBg()
|
||||||
readView.upStyle()
|
readView.upStyle()
|
||||||
|
readView.upBgAlpha()
|
||||||
if (it) {
|
if (it) {
|
||||||
ReadBook.loadContent(resetPageOffset = false)
|
ReadBook.loadContent(resetPageOffset = false)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import android.view.Gravity
|
|||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.view.WindowManager
|
import android.view.WindowManager
|
||||||
|
import android.widget.SeekBar
|
||||||
import androidx.documentfile.provider.DocumentFile
|
import androidx.documentfile.provider.DocumentFile
|
||||||
import com.jaredrummler.android.colorpicker.ColorPickerDialog
|
import com.jaredrummler.android.colorpicker.ColorPickerDialog
|
||||||
import io.legado.app.R
|
import io.legado.app.R
|
||||||
@@ -29,6 +30,7 @@ import io.legado.app.lib.theme.getPrimaryTextColor
|
|||||||
import io.legado.app.lib.theme.getSecondaryTextColor
|
import io.legado.app.lib.theme.getSecondaryTextColor
|
||||||
import io.legado.app.ui.book.read.ReadBookActivity
|
import io.legado.app.ui.book.read.ReadBookActivity
|
||||||
import io.legado.app.ui.document.HandleFileContract
|
import io.legado.app.ui.document.HandleFileContract
|
||||||
|
import io.legado.app.ui.widget.seekbar.SeekBarChangeListener
|
||||||
import io.legado.app.utils.*
|
import io.legado.app.utils.*
|
||||||
import io.legado.app.utils.viewbindingdelegate.viewBinding
|
import io.legado.app.utils.viewbindingdelegate.viewBinding
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
@@ -108,6 +110,7 @@ class BgTextConfigDialog : BaseDialogFragment(R.layout.dialog_read_bg_text) {
|
|||||||
ivImport.setColorFilter(primaryTextColor)
|
ivImport.setColorFilter(primaryTextColor)
|
||||||
ivExport.setColorFilter(primaryTextColor)
|
ivExport.setColorFilter(primaryTextColor)
|
||||||
ivDelete.setColorFilter(primaryTextColor)
|
ivDelete.setColorFilter(primaryTextColor)
|
||||||
|
tvBgAlpha.setTextColor(primaryTextColor)
|
||||||
tvBgImage.setTextColor(primaryTextColor)
|
tvBgImage.setTextColor(primaryTextColor)
|
||||||
recyclerView.adapter = adapter
|
recyclerView.adapter = adapter
|
||||||
adapter.addHeaderView {
|
adapter.addHeaderView {
|
||||||
@@ -130,6 +133,7 @@ class BgTextConfigDialog : BaseDialogFragment(R.layout.dialog_read_bg_text) {
|
|||||||
private fun initData() = with(ReadBookConfig.durConfig) {
|
private fun initData() = with(ReadBookConfig.durConfig) {
|
||||||
binding.tvName.text = name.ifBlank { "文字" }
|
binding.tvName.text = name.ifBlank { "文字" }
|
||||||
binding.swDarkStatusIcon.isChecked = curStatusIconDark()
|
binding.swDarkStatusIcon.isChecked = curStatusIconDark()
|
||||||
|
binding.sbBgAlpha.progress = bgAlpha
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("InflateParams")
|
@SuppressLint("InflateParams")
|
||||||
@@ -205,6 +209,15 @@ class BgTextConfigDialog : BaseDialogFragment(R.layout.dialog_read_bg_text) {
|
|||||||
toastOnUi("数量已是最少,不能删除.")
|
toastOnUi("数量已是最少,不能删除.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
binding.sbBgAlpha.setOnSeekBarChangeListener(object : SeekBarChangeListener {
|
||||||
|
override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) {
|
||||||
|
ReadBookConfig.bgAlpha = progress
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onStopTrackingTouch(seekBar: SeekBar) {
|
||||||
|
postEvent(EventBus.UP_CONFIG, false)
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("BlockingMethodInNonBlockingContext")
|
@Suppress("BlockingMethodInNonBlockingContext")
|
||||||
|
|||||||
@@ -185,7 +185,12 @@ class PageView(context: Context) : FrameLayout(context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun setBg(bg: Drawable?) {
|
fun setBg(bg: Drawable?) {
|
||||||
binding.pagePanel.background = bg
|
binding.vwBg.background = bg
|
||||||
|
upBgAlpha()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun upBgAlpha() {
|
||||||
|
binding.vwBg.alpha = ReadBookConfig.bgAlpha / 100f
|
||||||
}
|
}
|
||||||
|
|
||||||
fun upTime() {
|
fun upTime() {
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ class ReadView(context: Context, attrs: AttributeSet) :
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setRect9x() {
|
private fun setRect9x() {
|
||||||
tlRect.set(0f, 0f, width * 0.33f, height * 0.33f)
|
tlRect.set(0f, 0f, width * 0.33f, height * 0.33f)
|
||||||
tcRect.set(width * 0.33f, 0f, width * 0.66f, height * 0.33f)
|
tcRect.set(width * 0.33f, 0f, width * 0.66f, height * 0.33f)
|
||||||
trRect.set(width * 0.36f, 0f, width.toFloat(), height * 0.33f)
|
trRect.set(width * 0.36f, 0f, width.toFloat(), height * 0.33f)
|
||||||
@@ -534,6 +534,12 @@ class ReadView(context: Context, attrs: AttributeSet) :
|
|||||||
nextPage.setBg(ReadBookConfig.bg)
|
nextPage.setBg(ReadBookConfig.bg)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun upBgAlpha() {
|
||||||
|
curPage.upBgAlpha()
|
||||||
|
prevPage.upBgAlpha()
|
||||||
|
nextPage.upBgAlpha()
|
||||||
|
}
|
||||||
|
|
||||||
fun upTime() {
|
fun upTime() {
|
||||||
curPage.upTime()
|
curPage.upTime()
|
||||||
prevPage.upTime()
|
prevPage.upTime()
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ import io.legado.app.utils.*
|
|||||||
import io.legado.app.utils.viewbindingdelegate.viewBinding
|
import io.legado.app.utils.viewbindingdelegate.viewBinding
|
||||||
import kotlinx.coroutines.Dispatchers.IO
|
import kotlinx.coroutines.Dispatchers.IO
|
||||||
import kotlinx.coroutines.Job
|
import kotlinx.coroutines.Job
|
||||||
import kotlinx.coroutines.flow.collect
|
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
|
|
||||||
|
|||||||
@@ -12,8 +12,8 @@
|
|||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:padding="6dp"
|
android:gravity="center_vertical"
|
||||||
android:gravity="center_vertical">
|
android:padding="6dp">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tv_name_title"
|
android:id="@+id/tv_name_title"
|
||||||
@@ -36,9 +36,9 @@
|
|||||||
android:id="@+id/iv_edit"
|
android:id="@+id/iv_edit"
|
||||||
android:layout_width="20dp"
|
android:layout_width="20dp"
|
||||||
android:layout_height="20dp"
|
android:layout_height="20dp"
|
||||||
|
android:contentDescription="@string/edit"
|
||||||
android:src="@drawable/ic_edit"
|
android:src="@drawable/ic_edit"
|
||||||
app:tint="@color/secondaryText"
|
app:tint="@color/secondaryText" />
|
||||||
android:contentDescription="@string/edit" />
|
|
||||||
|
|
||||||
<Space
|
<Space
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
@@ -59,7 +59,8 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:padding="6dp"
|
android:padding="6dp"
|
||||||
android:text="@string/dark_status_icon" />
|
android:text="@string/dark_status_icon"
|
||||||
|
tools:ignore="TouchTargetSizeCheck" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
@@ -140,6 +141,23 @@
|
|||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_bg_alpha"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingLeft="6dp"
|
||||||
|
android:paddingRight="6dp"
|
||||||
|
android:text="@string/bg_alpha" />
|
||||||
|
|
||||||
|
<io.legado.app.lib.theme.view.ThemeSeekBar
|
||||||
|
android:id="@+id/sb_bg_alpha"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:min="10"
|
||||||
|
android:max="100"
|
||||||
|
android:padding="6dp"
|
||||||
|
tools:ignore="UnusedAttribute" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tv_bg_image"
|
android:id="@+id/tv_bg_image"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|||||||
@@ -1,22 +1,30 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:id="@+id/page_panel"
|
android:background="@color/background"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:id="@+id/vw_bg"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"/>
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
android:id="@+id/vw_status_bar"
|
android:id="@+id/vw_status_bar"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content" />
|
android:layout_height="wrap_content"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"/>
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:id="@+id/ll_header"
|
android:id="@+id/ll_header"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:gravity="center_vertical">
|
android:gravity="center_vertical"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/vw_status_bar">
|
||||||
|
|
||||||
<io.legado.app.ui.widget.BatteryView
|
<io.legado.app.ui.widget.BatteryView
|
||||||
android:id="@+id/tv_header_left"
|
android:id="@+id/tv_header_left"
|
||||||
@@ -75,26 +83,31 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="0.5dp"
|
android:layout_height="0.5dp"
|
||||||
android:background="@color/divider"
|
android:background="@color/divider"
|
||||||
android:visibility="invisible" />
|
android:visibility="invisible"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/ll_header"/>
|
||||||
|
|
||||||
<io.legado.app.ui.book.read.page.ContentTextView
|
<io.legado.app.ui.book.read.page.ContentTextView
|
||||||
android:id="@+id/content_text_view"
|
android:id="@+id/content_text_view"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
android:layout_weight="1" />
|
android:layout_weight="1"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/vw_top_divider"
|
||||||
|
app:layout_constraintBottom_toTopOf="@id/vw_bottom_divider"/>
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:id="@+id/vw_bottom_divider"
|
android:id="@+id/vw_bottom_divider"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="0.5dp"
|
android:layout_height="0.5dp"
|
||||||
android:background="@color/divider"
|
android:background="@color/divider"
|
||||||
android:visibility="invisible" />
|
android:visibility="invisible"
|
||||||
|
app:layout_constraintBottom_toTopOf="@id/ll_footer"/>
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:id="@+id/ll_footer"
|
android:id="@+id/ll_footer"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:gravity="center_vertical">
|
android:gravity="center_vertical"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent">
|
||||||
|
|
||||||
<io.legado.app.ui.widget.BatteryView
|
<io.legado.app.ui.widget.BatteryView
|
||||||
android:id="@+id/tv_footer_left"
|
android:id="@+id/tv_footer_left"
|
||||||
@@ -148,4 +161,4 @@
|
|||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
@@ -913,5 +913,6 @@
|
|||||||
<string name="expand_text_menu">展开文本选择菜单</string>
|
<string name="expand_text_menu">展开文本选择菜单</string>
|
||||||
<string name="book_tree_uri_t">书籍保存位置</string>
|
<string name="book_tree_uri_t">书籍保存位置</string>
|
||||||
<string name="book_tree_uri_s">从其它应用打开的书籍保存位置</string>
|
<string name="book_tree_uri_s">从其它应用打开的书籍保存位置</string>
|
||||||
|
<string name="bg_alpha">背景透明度</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -916,5 +916,6 @@
|
|||||||
<string name="expand_text_menu">展开文本选择菜单</string>
|
<string name="expand_text_menu">展开文本选择菜单</string>
|
||||||
<string name="book_tree_uri_t">书籍保存位置</string>
|
<string name="book_tree_uri_t">书籍保存位置</string>
|
||||||
<string name="book_tree_uri_s">从其它应用打开的书籍保存位置</string>
|
<string name="book_tree_uri_s">从其它应用打开的书籍保存位置</string>
|
||||||
|
<string name="bg_alpha">背景透明度</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -418,6 +418,7 @@
|
|||||||
<string name="rule_chapter_list">目录列表规则(capítuloLista)</string>
|
<string name="rule_chapter_list">目录列表规则(capítuloLista)</string>
|
||||||
<string name="rule_chapter_name">章节名称规则(capítuloNome)</string>
|
<string name="rule_chapter_name">章节名称规则(capítuloNome)</string>
|
||||||
<string name="rule_chapter_url">章节URL规则(capítuloUrl)</string>
|
<string name="rule_chapter_url">章节URL规则(capítuloUrl)</string>
|
||||||
|
<string name="rule_is_volume">卷标识(isVolume)</string>
|
||||||
<string name="rule_is_vip">VIP标识(éVip)</string>
|
<string name="rule_is_vip">VIP标识(éVip)</string>
|
||||||
<string name="rule_update_time">更新时间(capítuloInfo)</string>
|
<string name="rule_update_time">更新时间(capítuloInfo)</string>
|
||||||
<string name="rule_book_content">正文规则(conteúdo)</string>
|
<string name="rule_book_content">正文规则(conteúdo)</string>
|
||||||
@@ -426,6 +427,7 @@
|
|||||||
<string name="rule_source_regex">资源正则(fonteRegex)</string>
|
<string name="rule_source_regex">资源正则(fonteRegex)</string>
|
||||||
<string name="rule_replace_regex">替换规则(substRegex)</string>
|
<string name="rule_replace_regex">替换规则(substRegex)</string>
|
||||||
<string name="rule_image_style">图片样式(imagemFormato)</string>
|
<string name="rule_image_style">图片样式(imagemFormato)</string>
|
||||||
|
<string name="rule_pay_action">购买操作(payAction)</string>
|
||||||
|
|
||||||
<string name="source_icon">图标(fonteÍcone)</string>
|
<string name="source_icon">图标(fonteÍcone)</string>
|
||||||
<string name="r_articles">列表规则(regrasArtigos)</string>
|
<string name="r_articles">列表规则(regrasArtigos)</string>
|
||||||
@@ -914,5 +916,6 @@
|
|||||||
<string name="expand_text_menu">展开文本选择菜单</string>
|
<string name="expand_text_menu">展开文本选择菜单</string>
|
||||||
<string name="book_tree_uri_t">书籍保存位置</string>
|
<string name="book_tree_uri_t">书籍保存位置</string>
|
||||||
<string name="book_tree_uri_s">从其它应用打开的书籍保存位置</string>
|
<string name="book_tree_uri_s">从其它应用打开的书籍保存位置</string>
|
||||||
|
<string name="bg_alpha">背景透明度</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -913,5 +913,6 @@
|
|||||||
<string name="expand_text_menu">展开文本选择菜单</string>
|
<string name="expand_text_menu">展开文本选择菜单</string>
|
||||||
<string name="book_tree_uri_t">书籍保存位置</string>
|
<string name="book_tree_uri_t">书籍保存位置</string>
|
||||||
<string name="book_tree_uri_s">从其它应用打开的书籍保存位置</string>
|
<string name="book_tree_uri_s">从其它应用打开的书籍保存位置</string>
|
||||||
|
<string name="bg_alpha">背景透明度</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -915,5 +915,6 @@
|
|||||||
<string name="search_content_size">搜尋結果</string>
|
<string name="search_content_size">搜尋結果</string>
|
||||||
<string name="book_tree_uri_t">書籍儲存位置</string>
|
<string name="book_tree_uri_t">書籍儲存位置</string>
|
||||||
<string name="book_tree_uri_s">從其它應用程式打開的書籍儲存位置</string>
|
<string name="book_tree_uri_s">從其它應用程式打開的書籍儲存位置</string>
|
||||||
|
<string name="bg_alpha">背景透明度</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -915,5 +915,6 @@
|
|||||||
<string name="expand_text_menu">展开文本选择菜单</string>
|
<string name="expand_text_menu">展开文本选择菜单</string>
|
||||||
<string name="book_tree_uri_t">书籍保存位置</string>
|
<string name="book_tree_uri_t">书籍保存位置</string>
|
||||||
<string name="book_tree_uri_s">从其它应用打开的书籍保存位置</string>
|
<string name="book_tree_uri_s">从其它应用打开的书籍保存位置</string>
|
||||||
|
<string name="bg_alpha">背景透明度</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -418,7 +418,7 @@
|
|||||||
<string name="rule_chapter_list">目录列表规则(chapterList)</string>
|
<string name="rule_chapter_list">目录列表规则(chapterList)</string>
|
||||||
<string name="rule_chapter_name">章节名称规则(ChapterName)</string>
|
<string name="rule_chapter_name">章节名称规则(ChapterName)</string>
|
||||||
<string name="rule_chapter_url">章节URL规则(chapterUrl)</string>
|
<string name="rule_chapter_url">章节URL规则(chapterUrl)</string>
|
||||||
<string name="rule_is_volume">Volume标识(isVolume)</string>
|
<string name="rule_is_volume">卷标识(isVolume)</string>
|
||||||
<string name="rule_is_vip">VIP标识(isVip)</string>
|
<string name="rule_is_vip">VIP标识(isVip)</string>
|
||||||
<string name="rule_update_time">更新时间(ChapterInfo)</string>
|
<string name="rule_update_time">更新时间(ChapterInfo)</string>
|
||||||
<string name="rule_book_content">正文规则(content)</string>
|
<string name="rule_book_content">正文规则(content)</string>
|
||||||
@@ -919,6 +919,7 @@
|
|||||||
<string name="book_tree_uri_s">从其它应用打开的书籍保存位置</string>
|
<string name="book_tree_uri_s">从其它应用打开的书籍保存位置</string>
|
||||||
<string name="select_book_folder">选择保存书籍的文件夹</string>
|
<string name="select_book_folder">选择保存书籍的文件夹</string>
|
||||||
<string name="user_agent">用户代理</string>
|
<string name="user_agent">用户代理</string>
|
||||||
|
<string name="bg_alpha">背景透明度</string>
|
||||||
|
|
||||||
<!-- check source config string -->
|
<!-- check source config string -->
|
||||||
<string name="check_source_config">校验设置</string>
|
<string name="check_source_config">校验设置</string>
|
||||||
|
|||||||
+1
-1
@@ -13,7 +13,7 @@ buildscript {
|
|||||||
//maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
|
//maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:7.0.4'
|
classpath 'com.android.tools.build:gradle:7.1.0'
|
||||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||||
classpath 'de.timfreiheit.resourceplaceholders:placeholders:0.4'
|
classpath 'de.timfreiheit.resourceplaceholders:placeholders:0.4'
|
||||||
classpath 'de.undercouch:gradle-download-task:4.1.2'
|
classpath 'de.undercouch:gradle-download-task:4.1.2'
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
#Fri May 07 15:24:46 CST 2021
|
#Fri May 07 15:24:46 CST 2021
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
|||||||
Reference in New Issue
Block a user