diff --git a/app/build.gradle b/app/build.gradle
index 3c8a18f6c..9175af2d1 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -37,6 +37,7 @@ android {
targetSdkVersion 29
versionCode gitCommits
versionName version
+ flavorDimensions "versionCode"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
project.ext.set("archivesBaseName", name + "_" + version)
multiDexEnabled true
@@ -73,7 +74,15 @@ android {
}
}
}
-
+ productFlavors{
+ app{
+ manifestPlaceholders = [APP_CHANNEL_VALUE:"app"]
+ }
+ google{
+ applicationId "io.legado.play"
+ manifestPlaceholders = [APP_CHANNEL_VALUE:"google"]
+ }
+ }
compileOptions {
// Flag to enable support for the new language APIs
//coreLibraryDesugaringEnabled true
@@ -99,7 +108,7 @@ kapt {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
- testImplementation 'junit:junit:4.12'
+ testImplementation 'junit:junit:4.13'
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
//kotlin
@@ -119,7 +128,7 @@ dependencies {
implementation 'androidx.viewpager2:viewpager2:1.0.0'
implementation 'com.google.android.material:material:1.1.0'
implementation 'com.google.android:flexbox:1.1.0'
- implementation 'com.google.code.gson:gson:2.8.5'
+ implementation 'com.google.code.gson:gson:2.8.6'
//lifecycle
def lifecycle_version = '2.2.0'
@@ -127,12 +136,12 @@ dependencies {
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
//room
- def room_version = '2.2.4'
+ def room_version = '2.2.5'
implementation "androidx.room:room-runtime:$room_version"
kapt "androidx.room:room-compiler:$room_version"
//paging
- implementation 'androidx.paging:paging-runtime:2.1.1'
+ implementation 'androidx.paging:paging-runtime:2.1.2'
//anko
def anko_version = '0.10.8'
@@ -148,26 +157,26 @@ dependencies {
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version"
//规则相关
- implementation 'org.jsoup:jsoup:1.12.1'
+ implementation 'org.jsoup:jsoup:1.13.1'
implementation 'cn.wanghaomiao:JsoupXpath:2.3.2'
implementation 'com.jayway.jsonpath:json-path:2.4.0'
//JS rhino
implementation 'com.github.gedoor:rhino-android:1.4'
- //Retrofit
- implementation 'com.squareup.okhttp3:logging-interceptor:4.1.0'
- implementation 'com.squareup.retrofit2:retrofit:2.6.1'
+ //网络
+ //noinspection GradleDependency
+ implementation 'com.squareup.retrofit2:retrofit:2.7.2'
//Glide
- implementation 'com.github.bumptech.glide:glide:4.9.0'
+ implementation 'com.github.bumptech.glide:glide:4.11.0'
//webServer
implementation 'org.nanohttpd:nanohttpd:2.3.1'
implementation 'org.nanohttpd:nanohttpd-websocket:2.3.1'
//二维码
- implementation 'cn.bingoogolapple:bga-qrcode-zxing:1.3.6'
+ implementation 'cn.bingoogolapple:bga-qrcode-zxing:1.3.7'
//颜色选择
implementation 'com.jaredrummler:colorpicker:1.1.0'
@@ -177,7 +186,7 @@ dependencies {
implementation 'org.apache.commons:commons-text:1.8'
//MarkDown
- implementation 'ru.noties.markwon:core:3.0.2'
+ implementation 'ru.noties.markwon:core:3.1.0'
//转换繁体
implementation 'com.github.houbb:opencc4j:1.4.0'
diff --git a/app/google-services.json b/app/google-services.json
index fb88090cb..314a5ea7c 100644
--- a/app/google-services.json
+++ b/app/google-services.json
@@ -92,6 +92,35 @@
]
}
}
+ },
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:453392274790:android:b891abd2331577dff624a7",
+ "android_client_info": {
+ "package_name": "io.legado.play.release"
+ }
+ },
+ "oauth_client": [
+ {
+ "client_id": "453392274790-hnbpatpce9hbjiggj76hgo7queu86atq.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ],
+ "api_key": [
+ {
+ "current_key": "AIzaSyD90mfNLhA7cAzzI9SonpSz5mrF5BnmyJA"
+ }
+ ],
+ "services": {
+ "appinvite_service": {
+ "other_platform_oauth_client": [
+ {
+ "client_id": "453392274790-hnbpatpce9hbjiggj76hgo7queu86atq.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ]
+ }
+ }
}
],
"configuration_version": "1"
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
index 9af1203b9..1e8ab731b 100644
--- a/app/proguard-rules.pro
+++ b/app/proguard-rules.pro
@@ -160,7 +160,6 @@
-dontwarn rx.**
-dontwarn okio.**
--dontwarn retrofit2.**
-dontwarn javax.annotation.**
-dontwarn org.apache.log4j.lf5.viewer.**
-dontnote org.apache.log4j.lf5.viewer.**
@@ -172,7 +171,6 @@
-dontwarn com.jeremyliao.liveeventbus.**
-keep class com.jeremyliao.liveeventbus.** { *; }
--keep class retrofit2.**{*;}
-keep class okhttp3.**{*;}
-keep class okio.**{*;}
-keep class com.hwangjr.rxbus.**{*;}
diff --git a/app/src/debug/res/values/strings.xml b/app/src/debug/res/values/strings.xml
index b91572ada..e4464c88d 100644
--- a/app/src/debug/res/values/strings.xml
+++ b/app/src/debug/res/values/strings.xml
@@ -1,4 +1,4 @@
- 阅读.debug
- 阅读.debug·搜索
+ 阅读·D
+ 阅读·D·搜索
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5256b0ebc..97b4132cb 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -23,6 +23,7 @@
android:label="@string/app_name"
android:networkSecurityConfig="@xml/network_security_config"
android:supportsRtl="true"
+ android:requestLegacyExternalStorage="true"
android:theme="@style/AppTheme.Light"
tools:ignore="AllowBackup,GoogleAppIndexingWarning,UnusedAttribute">
@@ -78,6 +79,48 @@
android:resource="@xml/shortcuts"
android:launchMode="singleTask" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:launchMode="singleTop" />
+
+
+
+
@@ -177,42 +224,55 @@
android:scheme="yuedu" />
+
+
+
+
+
+
+
+
+
+
+
+
@@ -227,6 +287,19 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -250,6 +323,10 @@
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
+
+
\ No newline at end of file
diff --git a/app/src/main/assets/help.md b/app/src/main/assets/help.md
new file mode 100644
index 000000000..9f77645b6
--- /dev/null
+++ b/app/src/main/assets/help.md
@@ -0,0 +1,129 @@
+## 常见问题
+
+1.为什么第一次安装好之后什么东西都没有?
+* 因为阅读只是一个转码工具,不提供内容,第一次安装app,需要自己手动导入书源,可以从QQ群、公众号“开源阅读软件”、酷安评论里获取由书友制作分享的书源。
+
+2.如何导入本地书源文件?
+* 下载群文件里的书源文件(书源格式后缀有txt、json,其中json文件某些情况下无法导入,需要修改后缀为txt格式才可导入);
+* 打开阅读软件;
+* 我的 - 点击“书源管理”;
+* 点击右上角选择“本地导入”;
+* 左下角选择书源文件所在的路径;
+* 点击书源文件导入;
+* 导入后返回书源管理界面;
+* 新版qq下载路径:Android/data/com.tencent.mobileqq/Tencent/QQfile_recv/
+
+3.如何新建大佬发的单独书源?
+* 复制书源代码;
+* 打开阅读软件;
+* 我的 - 点击“书源管理”;
+* 右上角选择“新建书源”;
+* 进入新建书源后点击右上角“粘贴源”;
+* 粘贴书源完成后点击上方保存;
+* 本次新建单独书源操作完成。
+* 注:如果书源有错误或者复制不全会显示格式错误,请重新复制。
+
+4.为什么导入2.0书源后看不了书?
+* 2.0部分书源并不适用3.0,建议导入后进行筛选。
+
+5.阅读2.0数据如何导入阅读3.0?
+* 先对阅读2.0的数据进行备份,然后进入阅读3.0,点击“我的”,选择“备份与恢复”,再点击“导入旧版本数据”。
+
+6.如何给朋友分享我的书源?
+* 打开阅读软件;
+* 点击备份;
+* 打开手机自带的文件管理;
+* 手机自带内存根目录找到YueDu3.0文件夹;
+* 找到myBookSource.json长按选择分享;
+* 选择微信分享或者QQ分享;
+* 选择你要分享的好友点击发送;
+* 好友接收后在手机自带内存根目录找到myBookSource.json文件(QQ在tencent--QQfile_recv微信在Tencent--MicroMsg--Download);
+* 复制该文件到手机自带内存根目录找到YueDu3.0文件夹(如已有该文件请先删除该文件或者备份到其他地方再复制到文件夹);
+* 打开阅读软件点击恢复。
+* 注:备份路径如已修改过请在修改后的路径下查找书源文件。
+
+7.目前阅读支持哪些格式的本地书籍?
+* 目前支持TXT、EPUB格式(只支持显示EPUB里的文本内容,还不支持显示图片)。
+
+8.如何刷新书架?
+* 在书架界面下拉即可刷新。
+
+9.书架界面书籍右上角的红色或者灰色背景小数字代表什么?
+* 红色代表书籍有更新,灰色代表无更新,数字代表未读章节。
+
+10.如何查看书籍详情?
+* 长按书籍。
+
+11.如何对书架上的书进行删除、切换书架的操作?
+* 书籍详情页操作即可。
+
+12.如何禁止或允许某本书更新?
+* 书籍详情页,点击右上角 - “允许更新”。
+
+13.如何更换小说封面、名字、作者或简介?
+* 书籍详情页,点击右上角修改按钮。
+
+14.怎么使用自定义字体?
+* 阅读界面 - 字体-点击右上角选择字体文件路径。
+
+15.目前支持哪些格式的字体文件?
+* 目前支持ttf、otf格式。
+
+16.书籍经常“正在加载中”怎么办?
+* 在线书籍出现这个问题通常是由于源质量不好或不兼容引起的,可以换其它源多试试;本地书籍出现这个问题大概率是目录规则问题,手动切换规则可以解决。
+
+17.书籍内容只有标题,正文内容是路径怎么办?
+* 通常是缓存路径引起的,更换缓存路径即可。
+
+18.效验书源显示失效就说明书源不能用了吗?
+* 效验书源只是测试书源,可以做个参考,失效了不代表书源不能用了。
+
+19.发现和正版书源能不能使用?
+* 发现和正版书源只能用来找书,看排行榜,不能用来看书,如需看书请切换书源。
+
+20.替换净化是什么?
+* 替换净化可以去除书籍内容里的广告、错别字、屏蔽词等。
+
+21.如何自己填写净化替换规则?
+* 第一行:替换规则名称 - 根据自己需求对替换净化规则进行命名;
+* 第二行:分组 - 净化规则的分组组别;
+* 第三行:替换规则 - 填写需要被替换的内容;
+* 第四行:替换为 - 填写想替换成的内容(如不填则默认表示删除第二行里填写的内容);
+* 第五行:替换范围,选填书名或者源名 - 填写此替换净化规则需要对哪本书籍或者哪个书源生效(如不填则对所有书籍和书源生效)。
+* 注:如常规去除方法去除不掉,则需要勾选“使用正则表达式”,同时第二行里的替换规则也需要按照正则表达式来填写(正则表达式填写方法可自行百度学习)。
+
+22.如何听书?
+* 可以使用手机自带的朗读引擎,也可使用第三方如谷歌、小米等朗读引擎。
+* 【具体操作:安装-系统设置-其他高级设置-辅助功能-TTS输出-选择安装的朗读引擎(不同品牌手机的操作方法及步骤也不同,视情况而定)。】
+
+23.如何设置屏幕方向、屏幕显示时长、显示/隐藏状态栏、显示/隐藏导航栏、音量键翻页、长按选择文本、点击总是翻下一页、自定义翻页案件?
+* 阅读界面,设置(可上划,下面还有其他设置)。
+
+24.搜索的时候感觉手机卡顿,如何解决?
+* 我的 - 其他设置 - “更新和搜索线程数”调低。
+
+25.更新前有什么注意事项?
+* 要做好备份。
+
+26.看书时如遇到“目录为空”、“加载失败”和长串英文等情况怎么办?
+* 一般是书源问题,切换书源即可。
+
+27.为什么书源这么多,发现里却只有一点点?
+* 书源想要在发现界面里显示需要在书源里添加发现规则,并不是所有书源都有发现规则。
+
+28.云备份在哪?
+* 我的 - 备份与恢复 - WebDav设置。
+
+29.如何操作进行云备份?
+* 侧栏设置,WebDav设置;
+* 正确填写WebDAV 服务器地址、WebDAV 账号、WebDAV 密码;(要获得这三项的信息,需要注册一个坚果云账号,如果直接在手机上注册,坚果云会让你下载app,过程比较麻烦,为了一步到位,最好是在电脑上打开这个注册链接:https://www.jianguoyun.com/d/signup;注册后,进入坚果云;点击右上角账户名处选择 “账户信息”,然后选择“安全选项”;在“安全选项” 中找到“第三方应用管理”,并选择“添加应用”,输入名称如“阅读”后,会生成密码,选择完成;其中https://dav.jianguoyun.com/dav/就是填入“WebDAV 服务器地址”的内容,“使用情况”后面的邮箱地址就是你的“WebDAV 账号”,点击显示密码后得到的密码就是你的“WebDAV 密码”。)
+* 无需操作,APP默认每天自动云备份一次。
+
+30.关于云备份的相关说明
+* 在正确设置好云备份的情况下,APP默认每天自动云备份一次,当日多次手动云备份会对当日的旧云备份文件进行覆盖,并不会覆盖之前及之后不同日期的备份文件,每天所自动云备份的文件会按照日期进行命名。
+
+31.本地备份和云备份都能备份哪些东西?
+* 书架、看书进度、搜索记录、书源、替换、APP设置等都会备份,基本涵盖所有内容。
+
+32.出现某些未知bug怎么办?
+* 清除软件数据试试看,不行再进行反馈。
\ No newline at end of file
diff --git a/app/src/main/assets/txtTocRule.json b/app/src/main/assets/txtTocRule.json
index fc5469653..ececb6800 100644
--- a/app/src/main/assets/txtTocRule.json
+++ b/app/src/main/assets/txtTocRule.json
@@ -2,73 +2,97 @@
{
"enable": true,
"name": "目录",
- "rule": "^[ \\t]{0,4}(?:(?:内容|文章)?简介|文案|前言|序章|楔子|正文(?!完)|终章|后记|尾声|番外|第?\\s{0,4}[\\d零一二两三四五六七八九十百千万壹贰叁肆伍陆柒捌玖拾佰仟]+?\\s{0,4}(?:章|节(?!课)|卷|集(?![合和])|部(?!分)|篇(?!张))).{0,30}$",
+ "rule": "^[ \\t]{0,4}(?:(?:内容|文章)?简介|文案|前言|序章|楔子|正文(?!完|结)|终章|后记|尾声|番外|第?\\s{0,4}[\\d零一二两三四五六七八九十百千万壹贰叁肆伍陆柒捌玖拾佰仟]+?\\s{0,4}(?:章|节(?!课)|卷|集(?![合和])|部(?!分)|篇(?!张))).{0,30}$",
"serialNumber": 0
},
{
"enable": false,
- "name": "目录(不匹配行前空白)",
- "rule": "^(?<= |\\s)(?:(?:内容|文章)?简介|文案|前言|序章|楔子|正文(?!完)|终章|后记|尾声|番外|第?\\s{0,4}[\\d零一二两三四五六七八九十百千万壹贰叁肆伍陆柒捌玖拾佰仟]+?\\s{0,4}(?:章|节(?!课)|卷|集(?![合和])|部(?!分)|篇(?!张))).{0,30}$",
+ "name": "目录(去空白)",
+ "rule": "(?<=[ \\s])(?:(?:内容|文章)?简介|文案|前言|序章|楔子|正文(?!完|结)|终章|后记|尾声|番外|第?\\s{0,4}[\\d零一二两三四五六七八九十百千万壹贰叁肆伍陆柒捌玖拾佰仟]+?\\s{0,4}(?:章|节(?!课)|卷|集(?![合和])|部(?!分)|篇(?!张))).{0,30}$",
"serialNumber": 1
},
{
"enable": false,
"name": "目录(去简介)",
- "rule": "^(?<= |\\s)(?:前言|序章|楔子|正文(?!完)|终章|后记|尾声|番外|第?\\s{0,4}[\\d零一二两三四五六七八九十百千万壹贰叁肆伍陆柒捌玖拾佰仟]+?\\s{0,4}(?:章|节(?!课)|卷|集(?![合和])|部(?!分)|回(?![合来事去])|场(?![和合比电是])|篇(?!张))).{0,30}$",
+ "rule": "(?<=[ \\s])(?:前言|序章|楔子|正文(?!完|结)|终章|后记|尾声|番外|第?\\s{0,4}[\\d零一二两三四五六七八九十百千万壹贰叁肆伍陆柒捌玖拾佰仟]+?\\s{0,4}(?:章|节(?!课)|卷|集(?![合和])|部(?!分)|回(?![合来事去])|场(?![和合比电是])|篇(?!张))).{0,30}$",
"serialNumber": 2
},
{
"enable": false,
"name": "目录(古典、轻小说备用)",
- "rule": "^[ \\t]{0,4}(?:前言|序章|楔子|正文(?!完)|终章|后记|尾声|番外|第?\\s{0,4}[\\d零一二两三四五六七八九十百千万壹贰叁肆伍陆柒捌玖拾佰仟]+?\\s{0,4}(?:章|节(?!课)|卷|集(?![合和])|部(?!分)|回(?![合来事去])|场(?![和合比电是])|篇(?!张))).{0,30}$",
+ "rule": "^[ \\t]{0,4}(?:前言|序章|楔子|正文(?!完|结)|终章|后记|尾声|番外|第?\\s{0,4}[\\d零一二两三四五六七八九十百千万壹贰叁肆伍陆柒捌玖拾佰仟]+?\\s{0,4}(?:章|节(?!课)|卷|集(?![合和])|部(?!分)|回(?![合来事去])|场(?![和合比电是])|篇(?!张))).{0,30}$",
"serialNumber": 3
},
+ {
+ "enable": false,
+ "name": "数字(纯数字标题)",
+ "rule": "(?<=[ \\s])\\d+[ \\t]{0,4}$",
+ "serialNumber": 4
+ },
{
"enable": true,
"name": "数字 分隔符 标题名称",
"rule": "^[ \\t]{0,4}\\d{1,5}[\\,\\., 、\\-].{1,30}$",
- "serialNumber": 4
+ "serialNumber": 5
},
{
"enable": true,
"name": "正文 标题/序号",
- "rule": "^[ \\t]{0,4}正文\\s{1,4}.{0,20}$",
- "serialNumber": 5
+ "rule": "^[ \\t]{0,4}正文[ ]{1,4}.{0,20}$",
+ "serialNumber": 6
},
{
"enable": true,
"name": "Chapter/Section/Part/Episode 序号 标题",
+ "rule": "^[ \\t]{0,4}(?:[Cc]hapter|[Ss]ection|[Pp]art|PART|[Ee]pisode|(?:内容|文章)?简介|文案|前言|序章|楔子|正文(?!完|结)|终章|后记|尾声|番外)\\s{0,4}\\d{1,4}.{0,30}$",
+ "serialNumber": 7
+ },
+ {
+ "enable": false,
+ "name": "Chapter(去简介)",
"rule": "^[ \\t]{0,4}(?:[Cc]hapter|[Ss]ection|[Pp]art|PART|[Ee]pisode)\\s{0,4}\\d{1,4}.{0,30}$",
- "serialNumber": 6
+ "serialNumber": 8
},
{
"enable": true,
"name": "特殊符号 序号 标题",
- "rule": "^[ \\t]{0,4}[〈〖〔【][第卷][\\d零一二两三四五六七八九十百千万壹贰叁肆伍陆柒捌玖拾佰仟]{1,10}[章节][\\.:: \f\t].{0,30}$",
- "serialNumber": 7
+ "rule": "(?<=[\\s ]{0,4}).{1,3}(?:第|卷|[Cc]hapter)[\\d零一二两三四五六七八九十百千万壹贰叁肆伍陆柒捌玖拾佰仟]{1,10}[章节]?[\\.:: \f\t].{0,20}$",
+ "serialNumber": 9
},
{
- "enable": true,
- "name": "特殊符号 标题",
- "rule": "^[ \\t]{0,4}[\\[〈「『〖〔《(【\\(☆★].{1,30}[\\)】)》〕〗』」〉\\]]?\\s{0,4}$",
- "serialNumber": 8
+ "enable": false,
+ "name": "特殊符号 标题(成对)",
+ "rule": "(?<=[\\s ]{0,4})(?:[\\[〈「『〖〔《(【\\(].{1,30}[\\)】)》〕〗』」〉\\]]?|(?:内容|文章)?简介|文案|前言|序章|楔子|正文(?!完|结)|终章|后记|尾声|番外)[ ]{0,4}$",
+ "serialNumber": 10
},
{
- "enable":false,
- "name": "特殊符号 标题(不匹配空白字符)",
- "rule": "^(?<= |\\s)[\\[〈「『〖〔《(【\\(☆★].{1,30}[\\)】)》〕〗』」〉\\]]?\\s{0,4}$",
- "serialNumber": 9
+ "enable":true,
+ "name": "特殊符号 标题(单个)",
+ "rule": "(?<=[\\s ]{0,4})(?:[☆★✦✧].{1,30}|(?:内容|文章)?简介|文案|前言|序章|楔子|正文(?!完|结)|终章|后记|尾声|番外)[ ]{0,4}$",
+ "serialNumber": 11
},
{
"enable": true,
"name": "章/卷 序号 标题",
- "rule": "^[ \\t]{0,4}(?:(?:内容|文章)?简介|文案|前言|序章|楔子|正文(?!完)|终章|后记|尾声|番外|[卷章][\\d零一二两三四五六七八九十百千万壹贰叁肆伍陆柒捌玖拾佰仟]{1,8})\\s{0,4}.{0,30}$",
- "serialNumber": 10
+ "rule": "^[ \\t ]{0,4}(?:(?:内容|文章)?简介|文案|前言|序章|楔子|正文(?!完|结)|终章|后记|尾声|番外|[卷章][\\d零一二两三四五六七八九十百千万壹贰叁肆伍陆柒捌玖拾佰仟]{1,8})[ ]{0,4}.{0,30}$",
+ "serialNumber": 12
},
{
"enable":false,
"name": "顶格标题",
"rule": "^\\S.{1,20}$",
- "serialNumber": 11
+ "serialNumber": 13
+ },
+ {
+ "enable":false,
+ "name": "双标题(前向)",
+ "rule": "(?m)(?<=[ \\t ]{0,4})第[\\d零一二两三四五六七八九十百千万壹贰叁肆伍陆柒捌玖拾佰仟]{1,8}章.{0,30}$(?=[\\s ]{0,8}第[\\d零一二两三四五六七八九十百千万壹贰叁肆伍陆柒捌玖拾佰仟]{1,8}章)",
+ "serialNumber": 14
+ },
+ {
+ "enable":false,
+ "name": "双标题(后向)",
+ "rule": "(?m)(?<=[ \\t ]{0,4}第[\\d零一二两三四五六七八九十百千万壹贰叁肆伍陆柒捌玖拾佰仟]{1,8}章.{0,30}$[\\s ]{0,8})第[\\d零一二两三四五六七八九十百千万壹贰叁肆伍陆柒捌玖拾佰仟]{1,8}章.{0,30}$",
+ "serialNumber": 15
}
]
diff --git a/app/src/main/assets/updateLog.md b/app/src/main/assets/updateLog.md
index 7ace22ee4..2dab7f915 100644
--- a/app/src/main/assets/updateLog.md
+++ b/app/src/main/assets/updateLog.md
@@ -1,6 +1,102 @@
## 更新日志
* 旧版数据导入教程:先在旧版阅读(2.x)中进行备份,然后在新版阅读(3.x)【我的】->【备份与恢复】,选择【导入旧版本数据】。
-* 请关注[开源阅读软件]()支持我,同时关注合作公众号[小说拾遗](),阅读公众号小编。
+* 请关注[开源阅读]()支持我,同时关注合作公众号[小说拾遗](),阅读公众号小编。
+* 弄了个企业公众号[开源阅读](),后面弄好后会把原来的[开源阅读软件]()迁移过来
+
+**2020/03/29**
+* 添加退出软件后是否响应耳机按键的开关
+* 优化书源校验
+
+**2020/03/26**
+* 修复txt目录bug
+* 最近工作比较忙,只有晚上有时间写软件,bug之类的不要催,白天不回消息
+
+**2020/03/25**
+* 修复7.1.1的网络问题,是retrofit2库最新版本的bug,暂时退回上版本
+* 去除下载路径的配置,减少错误
+* 添加隐藏状态栏是否扩展到刘海
+
+**2020/03/24**
+* txt文件第一章之前的文字不再放到简介里
+* 优化txt目录识别,章节超过3万字判断为目录识别错误重新识别
+* 修复文件关联 by wqfantexi
+
+**2020/03/22**
+* 添加文件关联 by wqfantexi
+* 手动排序可以了,在书架整理里面拖动排序
+* 删除分组时同时删除书籍里的分组信息,下次添加新分组时不会自动出现在分组内
+* 修复换源丢失分组信息的bug
+* 修复部分朗读引擎不自动朗读下一章的bug
+
+**2020/03/21**
+* 详情页点击书名搜索
+
+**2020/03/20**
+* 自动备份文件和手动备份文件分开
+* 修复一些rss收藏取消不了的bug
+* 修复rss请求头无效bug
+
+**2020/03/19**
+* 美化界面我的 by yangyxd
+* 优化搜索
+
+**2020/03/18**
+* 尝试修复搜索时崩溃
+* 解决看过书籍的移到顶部需要向上滚动才能看到的bug
+* 只有再书源被删除找不到书源时才会自动换源
+* 美化界面 by yangyxd
+* 订阅后台播放
+
+**2020/03/16**
+* 修复滚动模式切换章节位置不归0的bug
+* 修复文字选择更多菜单在部分手机上报错的bug
+* 修复文字选择菜单问题
+
+**2020/03/15**
+* 加载正文无书源时自动换源
+
+**2020/03/14**
+* 修改导航栏图标
+
+**2020/03/13**
+* 更改书架控件,ViewPager2替换回2.0使用的ViewPager,解决下拉不流畅问题
+* 修复点击作者搜索后,打开的详情页还是原来的书籍的bug
+* 修改朗读菜单
+* 优化rss朗读
+
+**2020/03/12**
+* 导入本地添加需要权限模式
+
+**2020/03/11**
+* 修复调节上边距时下边距一起动的bug
+* 适配沚水的web阅读 by 六月
+* 分组管理页面调整 by yangyxd
+
+**2020/03/10**
+* 优化文字选择菜单弹出位置
+* 添加屏幕方向控制
+* 添加点击作者搜索
+
+**2020/03/09**
+* 底部文字对齐
+* 主题添加阴影调节 by yangyxd
+
+**2020/03/08**
+* 订阅长按保存图片
+* 订阅全屏播放
+* 书架全部分组可以隐藏了
+* 内置web书架基本能用了 by 六月
+* 书架整理加入未分组
+* 显示总进度
+* 隐藏状态栏时,标题显示在上方
+
+**2020/03/07**
+* 添加标题上下间距调整
+* 添加标题大小调整
+* 书籍整理添加批量启用禁用更新
+* 换源禁用书源不显示
+* 修复搜索界面简介最下面显示半行文字
+* 搜索历史改为多行
**2020/03/06**
* 添加隐藏标题
@@ -195,14 +291,7 @@
- 调试正文页>>输入正文页URL,如:`--https://www.zhaishuyuan.com/chapter/30394/20940996`
* 修改订阅中自动添加style的情景
- 订阅源的内容规则中存在`
- ```
+ 订阅源的内容规则中存在`