Merge pull request #1 from gedoor/master

merge
pull/416/head
口口吕 5 years ago committed by GitHub
commit ccb6b812b6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      app/src/main/assets/updateLog.md
  2. 2
      app/src/main/java/io/legado/app/constant/PreferKey.kt
  3. 4
      app/src/main/java/io/legado/app/help/BookHelp.kt
  4. 16
      app/src/main/java/io/legado/app/help/ReadBookConfig.kt
  5. 2
      app/src/main/java/io/legado/app/help/storage/Restore.kt
  6. 11
      app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt
  7. 1
      app/src/main/java/io/legado/app/service/CheckSourceService.kt
  8. 2
      app/src/main/java/io/legado/app/service/help/ReadAloud.kt
  9. 2
      app/src/main/java/io/legado/app/ui/book/read/config/ReadStyleDialog.kt
  10. 2
      app/src/main/java/io/legado/app/ui/book/read/page/provider/ChapterProvider.kt
  11. 5
      app/src/main/java/io/legado/app/ui/book/source/manage/BookSourceActivity.kt
  12. 8
      app/src/main/java/io/legado/app/ui/widget/image/photo/RotateGestureDetector.kt
  13. 2
      app/src/main/res/values/pref_key_value.xml
  14. 2
      build.gradle

@ -3,13 +3,15 @@
* 关注合作公众号 **[小说拾遗]()** 获取好看的小说。
- 旧版数据导入教程:先在旧版阅读(2.x)中进行备份,然后在新版阅读(3.x)【我的】->【备份与恢复】,选择【导入旧版本数据】。
**2020/10/04**
**2020/10/07**
* 更新时预下载10章
* 支持更多分组
* url添加js参数,解析url时执行,可在访问url时处理url,例
```
https://www.baidu.com,{"js":"java.headerMap.put('xxx', 'yyy')"}
https://www.baidu.com,{"js":"java.url=java.url+'yyyy'"}
```
* 修复bug
**2020/10/02**
* 优化规则解析

@ -21,7 +21,6 @@ object PreferKey {
const val processText = "process_text"
const val cleanCache = "cleanCache"
const val saveTabPosition = "saveTabPosition"
const val pageAnim = "pageAnim"
const val fontFolder = "fontFolder"
const val backupPath = "backupUri"
const val restoreIgnore = "restoreIgnore"
@ -40,7 +39,6 @@ object PreferKey {
const val launcherIcon = "launcherIcon"
const val textSelectAble = "selectText"
const val lastBackup = "lastBackup"
const val bodyIndent = "textIndent"
const val shareLayout = "shareLayout"
const val readStyleSelect = "readStyleSelect"
const val systemTypefaces = "system_typefaces"

@ -327,10 +327,10 @@ object BookHelp {
if (contents.isEmpty()) {
contents.add(title)
if (str != title && it.isNotEmpty()) {
contents.add("${ReadBookConfig.bodyIndent}$str")
contents.add("${ReadBookConfig.paragraphIndent}$str")
}
} else if (str.isNotEmpty()) {
contents.add("${ReadBookConfig.bodyIndent}$str")
contents.add("${ReadBookConfig.paragraphIndent}$str")
}
}
return contents

@ -162,15 +162,6 @@ object ReadBookConfig {
val clickTurnPage get() = App.INSTANCE.getPrefBoolean(PreferKey.clickTurnPage, true)
val textFullJustify get() = App.INSTANCE.getPrefBoolean(PreferKey.textFullJustify, true)
val textBottomJustify get() = App.INSTANCE.getPrefBoolean(PreferKey.textBottomJustify, true)
var bodyIndentCount = App.INSTANCE.getPrefInt(PreferKey.bodyIndent, 2)
set(value) {
field = value
bodyIndent = " ".repeat(value)
if (App.INSTANCE.getPrefInt(PreferKey.bodyIndent, 2) != value) {
App.INSTANCE.putPrefInt(PreferKey.bodyIndent, value)
}
}
var bodyIndent = " ".repeat(bodyIndentCount)
var hideStatusBar = App.INSTANCE.getPrefBoolean(PreferKey.hideStatusBar)
var hideNavigationBar = App.INSTANCE.getPrefBoolean(PreferKey.hideNavigationBar)
@ -242,6 +233,12 @@ object ReadBookConfig {
config.titleBottomSpacing = value
}
var paragraphIndent: String
get() = config.paragraphIndent
set(value) {
config.paragraphIndent = value
}
var paddingBottom: Int
get() = config.paddingBottom
set(value) {
@ -392,6 +389,7 @@ object ReadBookConfig {
var titleSize: Int = 0,
var titleTopSpacing: Int = 0,
var titleBottomSpacing: Int = 0,
var paragraphIndent: String = "  ",//段落缩进
var paddingBottom: Int = 6,
var paddingLeft: Int = 16,
var paddingRight: Int = 16,

@ -63,7 +63,6 @@ object Restore {
PreferKey.shareLayout,
PreferKey.hideStatusBar,
PreferKey.hideNavigationBar,
PreferKey.bodyIndent,
PreferKey.autoReadSpeed
)
@ -216,7 +215,6 @@ object Restore {
shareLayout = App.INSTANCE.getPrefBoolean(PreferKey.shareLayout)
hideStatusBar = App.INSTANCE.getPrefBoolean(PreferKey.hideStatusBar)
hideNavigationBar = App.INSTANCE.getPrefBoolean(PreferKey.hideNavigationBar)
bodyIndentCount = App.INSTANCE.getPrefInt(PreferKey.bodyIndent, 2)
autoReadSpeed = App.INSTANCE.getPrefInt(PreferKey.autoReadSpeed, 46)
}
ChapterProvider.upStyle()

@ -105,13 +105,11 @@ class AnalyzeUrl(
when {
ruleStr.startsWith("<js>") -> {
ruleStr = ruleStr.substring(4, ruleStr.lastIndexOf("<"))
ruleUrl =
evalJS(ruleStr, ruleUrl) as String
ruleUrl = evalJS(ruleStr, ruleUrl) as String
}
ruleStr.startsWith("@js", true) -> {
ruleStr = ruleStr.substring(4)
ruleUrl =
evalJS(ruleStr, ruleUrl) as String
ruleUrl = evalJS(ruleStr, ruleUrl) as String
}
else -> ruleUrl = ruleStr.replace("@result", ruleUrl)
}
@ -258,10 +256,7 @@ class AnalyzeUrl(
/**
* 执行JS
*/
private fun evalJS(
jsStr: String,
result: Any? = null
): Any {
private fun evalJS(jsStr: String, result: Any? = null): Any? {
val bindings = SimpleBindings()
bindings["java"] = this
bindings["page"] = page

@ -78,6 +78,7 @@ class CheckSourceService : BaseService() {
allIds.addAll(ids)
processIndex = 0
threadCount = min(allIds.size, threadCount)
postEvent(EventBus.CHECK_INIT, allIds.size)
updateNotification(0, getString(R.string.progress_show, "", 0, allIds.size))
for (i in 0 until threadCount) {
check()

@ -18,7 +18,6 @@ object ReadAloud {
private fun getReadAloudClass(): Class<*> {
val spId = App.INSTANCE.getPrefLong(PreferKey.speakEngine)
httpTTS = App.db.httpTTSDao().get(spId)
stop(App.INSTANCE)
return if (httpTTS != null) {
HttpReadAloudService::class.java
} else {
@ -27,6 +26,7 @@ object ReadAloud {
}
fun upReadAloudClass() {
stop(App.INSTANCE)
aloudClass = getReadAloudClass()
}

@ -126,7 +126,7 @@ class ReadStyleDialog : BaseDialogFragment(), FontSelectDialog.CallBack {
title = getString(R.string.text_indent),
items = resources.getStringArray(R.array.indent).toList()
) { _, index ->
ReadBookConfig.bodyIndentCount = index
ReadBookConfig.paragraphIndent = " ".repeat(index)
postEvent(EventBus.UP_CONFIG, true)
}
}

@ -272,7 +272,7 @@ object ChapterProvider {
)
return
}
val bodyIndent = ReadBookConfig.bodyIndent
val bodyIndent = ReadBookConfig.paragraphIndent
val icw = StaticLayout.getDesiredWidth(bodyIndent, textPaint) / bodyIndent.length
bodyIndent.toStringArray().forEach {
val x1 = x + icw

@ -299,15 +299,14 @@ class BookSourceActivity : VMBaseActivity<BookSourceViewModel>(R.layout.activity
CheckSource.keyword = it
}
}
if (AppConfig.backgroundVerification) {
CheckSource.start(this@BookSourceActivity, adapter.getSelection())
} else {
if (!AppConfig.backgroundVerification) {
val bundle = Bundle()
bundle.putInt("maxProgress", adapter.getSelection().size)
CheckSourceDialog().apply {
arguments = bundle
}.show(supportFragmentManager, "CheckDialog")
}
CheckSource.start(this@BookSourceActivity, adapter.getSelection())
}
noButton { }
}.show().applyTint()

@ -21,10 +21,10 @@ class RotateGestureDetector(private val mListener: OnRotateListener) {
when (event.actionMasked) {
MotionEvent.ACTION_POINTER_DOWN,
MotionEvent.ACTION_POINTER_UP -> {
if (event.pointerCount == 2) mPrevSlope = caculateSlope(event)
if (event.pointerCount == 2) mPrevSlope = calculateSlope(event)
}
MotionEvent.ACTION_MOVE -> if (event.pointerCount > 1) {
mCurrSlope = caculateSlope(event)
mCurrSlope = calculateSlope(event)
val currDegrees = Math.toDegrees(atan(mCurrSlope.toDouble()));
val prevDegrees = Math.toDegrees(atan(mPrevSlope.toDouble()));
@ -32,7 +32,7 @@ class RotateGestureDetector(private val mListener: OnRotateListener) {
val deltaSlope = currDegrees - prevDegrees;
if (abs(deltaSlope) <= MAX_DEGREES_STEP) {
mListener?.onRotate(deltaSlope.toFloat(), (x2 + x1) / 2, (y2 + y1) / 2);
mListener.onRotate(deltaSlope.toFloat(), (x2 + x1) / 2, (y2 + y1) / 2);
}
mPrevSlope = mCurrSlope;
}
@ -40,7 +40,7 @@ class RotateGestureDetector(private val mListener: OnRotateListener) {
}
private fun caculateSlope(event: MotionEvent): Float {
private fun calculateSlope(event: MotionEvent): Float {
val x1 = event.getX(0);
val y1 = event.getY(0);
val x2 = event.getX(1);

@ -21,5 +21,5 @@
<string name="home_page_url" translatable="false">https://gedoor.github.io/MyBookshelf/</string>
<string name="latest_release_url" translatable="false">https://github.com/gedoor/legado/releases/latest</string>
<string name="latest_release_api" translatable="false">https://api.github.com/repos/gedoor/legado/releases/latest</string>
<string name="tg_url" translatable="false">https://t.me/joinchat/S_beh0a2BD-g01HCHUZOfQ</string>
<string name="tg_url" translatable="false">https://t.me/joinchat/S_beh0a2BD_pGiHjrmGixA</string>
</resources>

@ -12,7 +12,7 @@ buildscript {
maven { url 'https://plugins.gradle.org/m2/' }
}
dependencies {
classpath 'com.android.tools.build:gradle:4.0.1'
classpath 'com.android.tools.build:gradle:4.0.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'de.timfreiheit.resourceplaceholders:placeholders:0.3'
classpath 'com.google.gms:google-services:4.3.3'

Loading…
Cancel
Save