commit
b6dd225818
@ -1,69 +0,0 @@ |
||||
{ |
||||
"project_info": { |
||||
"project_number": "453392274790", |
||||
"firebase_url": "https://legado-fca69.firebaseio.com", |
||||
"project_id": "legado-fca69", |
||||
"storage_bucket": "legado-fca69.appspot.com" |
||||
}, |
||||
"client": [ |
||||
{ |
||||
"client_info": { |
||||
"mobilesdk_app_id": "1:453392274790:android:1d2b1eefbe0e78cff624a7", |
||||
"android_client_info": { |
||||
"package_name": "io.legado.app" |
||||
} |
||||
}, |
||||
"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 |
||||
} |
||||
] |
||||
} |
||||
} |
||||
}, |
||||
{ |
||||
"client_info": { |
||||
"mobilesdk_app_id": "1:453392274790:android:c4eac14b1410eec5f624a7", |
||||
"android_client_info": { |
||||
"package_name": "io.legado.app.debug" |
||||
} |
||||
}, |
||||
"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" |
||||
} |
@ -1,62 +1,68 @@ |
||||
[ |
||||
{ |
||||
"enable": true, |
||||
"name": "数字 分隔符 标题名称", |
||||
"rule": "^[ \\t]{0,4}\\d{1,5}[\\,\\., 、\\-].{1,30}$", |
||||
"serialNumber": 0 |
||||
}, |
||||
{ |
||||
"enable": true, |
||||
"name": "目录", |
||||
"rule": "^[ \\t]{0,4}(?:(?:内容|文章)?简介|前言|序章|楔子|正文(?!完)|[Cc]hapter|[Ss]ection|终章|后记|尾声|番外|第?\\s{0,4}[\\d零一二两三四五六七八九十百千万壹贰叁肆伍陆柒捌玖拾佰仟]+?\\s{0,4}(?:章|节(?!课)|卷|集(?![合和])|部(?!分)|篇(?!张))).{0,30}$", |
||||
"serialNumber": 1 |
||||
}, |
||||
{ |
||||
"enable": false, |
||||
"name": "目录(不匹配行前空白)", |
||||
"rule": "^(?<=\\s)(?:(?:内容|文章)?简介|前言|序章|楔子|正文(?!完)|[Cc]hapter|[Ss]ection|终章|后记|尾声|番外|第?\\s{0,4}[\\d零一二两三四五六七八九十百千万壹贰叁肆伍陆柒捌玖拾佰仟]+?\\s{0,4}(?:章|节(?!课)|卷|集(?![合和])|部(?!分)|篇(?!张))).{0,30}$", |
||||
"serialNumber": 2 |
||||
}, |
||||
{ |
||||
"enable": false, |
||||
"name": "目录(去简介)", |
||||
"rule": "^(?<=\\s)(?:前言|序章|楔子|正文(?!完)|[Cc]hapter|[Ss]ection|终章|后记|尾声|番外|第?\\s{0,4}[\\d零一二两三四五六七八九十百千万壹贰叁肆伍陆柒捌玖拾佰仟]+?\\s{0,4}(?:章|节(?!课)|卷|集(?![合和])|部(?!分)|篇(?!张))).{0,30}$", |
||||
"serialNumber": 3 |
||||
}, |
||||
{ |
||||
"enable": false, |
||||
"name": "目录(古典小说备用)", |
||||
"rule": "^[ \\t]{0,4}(?:前言|序章|楔子|正文(?!完)|[Cc]hapter|[Ss]ection|终章|后记|尾声|番外|第?\\s{0,4}[\\d零一二两三四五六七八九十百千万壹贰叁肆伍陆柒捌玖拾佰仟]+?\\s{0,4}(?:章|节(?!课)|卷|集(?![合和])|部(?!分)|场(?![和合比电是])|篇(?!张))).{0,30}$", |
||||
"serialNumber": 4 |
||||
}, |
||||
{ |
||||
"enable": true, |
||||
"name": "Chapter/Section/Part 序号 标题", |
||||
"rule": "^[ \\t]{0,4}(?:[Cc]hapter|[Ss]ection|[Pp]art)\\s{0,4}\\d{1,4}.{0,30}$", |
||||
"serialNumber": 5 |
||||
}, |
||||
{ |
||||
"enable": true, |
||||
"name": "正文 标题/序号", |
||||
"rule": "^[ \\t]{0,4}正文\\s{1,4}.{0,20}$", |
||||
"serialNumber": 6 |
||||
}, |
||||
{ |
||||
"enable": true, |
||||
"name": "特殊符号 序号 标题", |
||||
"rule": "^[ \\t]{0,4}[〈〖〔【][第卷][\\d零一二两三四五六七八九十百千万壹贰叁肆伍陆柒捌玖拾佰仟]{1,10}[章节][\\.:: \f\t].{0,30}$", |
||||
"serialNumber": 7 |
||||
}, |
||||
{ |
||||
"enable": true, |
||||
"name": "特殊符号 标题", |
||||
"rule": "^[ \\t]{0,4}[〈〖〔【☆★].{1,30}[】〕〗〉]?\\s{0,4}$", |
||||
"serialNumber": 8 |
||||
}, |
||||
{ |
||||
"enable":false, |
||||
"name": "特殊符号 标题(不匹配空白字符)", |
||||
"rule": "(?<=\\s)[〈〖〔【☆★].{1,30}[】〕〗〉]?\\s{0,4}$", |
||||
"serialNumber": 9 |
||||
} |
||||
{ |
||||
"enable": true, |
||||
"name": "目录", |
||||
"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}$", |
||||
"serialNumber": 1 |
||||
}, |
||||
{ |
||||
"enable": false, |
||||
"name": "目录(去简介)", |
||||
"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}$", |
||||
"serialNumber": 3 |
||||
}, |
||||
{ |
||||
"enable": true, |
||||
"name": "数字 分隔符 标题名称", |
||||
"rule": "^[ \\t]{0,4}\\d{1,5}[\\,\\., 、\\-].{1,30}$", |
||||
"serialNumber": 4 |
||||
}, |
||||
{ |
||||
"enable": true, |
||||
"name": "正文 标题/序号", |
||||
"rule": "^[ \\t]{0,4}正文\\s{1,4}.{0,20}$", |
||||
"serialNumber": 5 |
||||
}, |
||||
{ |
||||
"enable": true, |
||||
"name": "Chapter/Section/Part 序号 标题", |
||||
"rule": "^[ \\t]{0,4}(?:[Cc]hapter|[Ss]ection|[Pp]art)\\s{0,4}\\d{1,4}.{0,30}$", |
||||
"serialNumber": 6 |
||||
}, |
||||
{ |
||||
"enable": true, |
||||
"name": "特殊符号 序号 标题", |
||||
"rule": "^[ \\t]{0,4}[〈〖〔【][第卷][\\d零一二两三四五六七八九十百千万壹贰叁肆伍陆柒捌玖拾佰仟]{1,10}[章节][\\.:: \f\t].{0,30}$", |
||||
"serialNumber": 7 |
||||
}, |
||||
{ |
||||
"enable": true, |
||||
"name": "特殊符号 标题", |
||||
"rule": "^[ \\t]{0,4}[\\[〈「『〖〔《(【\\(☆★].{1,30}[\\)】)》〕〗』」〉\\]]?\\s{0,4}$", |
||||
"serialNumber": 8 |
||||
}, |
||||
{ |
||||
"enable":false, |
||||
"name": "特殊符号 标题(不匹配空白字符)", |
||||
"rule": "^(?<=\\s)[\\[〈「『〖〔《(【\\(☆★].{1,30}[\\)】)》〕〗』」〉\\]]?\\s{0,4}$", |
||||
"serialNumber": 9 |
||||
}, |
||||
{ |
||||
"enable":false, |
||||
"name": "顶格标题", |
||||
"rule": "^\\S.{1,20}$", |
||||
"serialNumber": 10 |
||||
} |
||||
] |
||||
|
@ -0,0 +1,105 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:padding="16dp" |
||||
xmlns:app="http://schemas.android.com/apk/res-auto"> |
||||
|
||||
<LinearLayout |
||||
android:id="@+id/ll_layout" |
||||
android:layout_width="0dp" |
||||
android:layout_height="wrap_content" |
||||
android:orientation="vertical" |
||||
app:layout_constraintRight_toLeftOf="@+id/ll_sort" |
||||
app:layout_constraintTop_toTopOf="parent" |
||||
app:layout_constraintLeft_toLeftOf="parent"> |
||||
|
||||
<io.legado.app.ui.widget.text.AccentTextView |
||||
android:layout_width="match_parent" |
||||
android:layout_height="match_parent" |
||||
android:padding="6dp" |
||||
android:text="@string/view" |
||||
android:textSize="16sp" /> |
||||
|
||||
<RadioGroup |
||||
android:id="@+id/rg_layout" |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:orientation="vertical"> |
||||
|
||||
<RadioButton |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:text="@string/layout_list" /> |
||||
|
||||
<RadioButton |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:text="@string/layout_grid3" /> |
||||
|
||||
<RadioButton |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:text="@string/layout_grid4" /> |
||||
|
||||
<RadioButton |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:text="@string/layout_grid5" /> |
||||
|
||||
<RadioButton |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:text="@string/layout_grid6" /> |
||||
</RadioGroup> |
||||
|
||||
</LinearLayout> |
||||
|
||||
<LinearLayout |
||||
android:id="@+id/ll_sort" |
||||
android:layout_width="0dp" |
||||
android:layout_height="wrap_content" |
||||
android:orientation="vertical" |
||||
app:layout_constraintLeft_toRightOf="@+id/ll_layout" |
||||
app:layout_constraintTop_toTopOf="parent" |
||||
app:layout_constraintRight_toRightOf="parent"> |
||||
|
||||
<io.legado.app.ui.widget.text.AccentTextView |
||||
android:layout_width="match_parent" |
||||
android:layout_height="match_parent" |
||||
android:padding="6dp" |
||||
android:text="@string/sort" |
||||
android:textSize="16sp" /> |
||||
|
||||
<RadioGroup |
||||
android:id="@+id/rg_sort" |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:orientation="vertical"> |
||||
|
||||
<RadioButton |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:text="@string/bookshelf_px_0" /> |
||||
|
||||
<RadioButton |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:text="@string/bookshelf_px_1" /> |
||||
|
||||
<RadioButton |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:text="@string/bookshelf_px_2" /> |
||||
|
||||
<RadioButton |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:text="@string/bookshelf_px_3" /> |
||||
|
||||
</RadioGroup> |
||||
|
||||
</LinearLayout> |
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout> |
@ -1,8 +1,27 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<androidx.recyclerview.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android" |
||||
android:id="@+id/recycler_view" |
||||
<androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android" |
||||
android:layout_width="wrap_content" |
||||
android:layout_height="wrap_content" |
||||
android:layout_gravity="center" |
||||
android:background="@drawable/shape_card_view" |
||||
android:padding="5dp" /> |
||||
android:padding="5dp" |
||||
android:orientation="horizontal"> |
||||
|
||||
<androidx.recyclerview.widget.RecyclerView |
||||
android:id="@+id/recycler_view" |
||||
android:layout_width="wrap_content" |
||||
android:layout_height="wrap_content" |
||||
android:layout_gravity="center" /> |
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView |
||||
android:id="@+id/iv_menu_more" |
||||
android:layout_width="24dp" |
||||
android:layout_height="24dp" |
||||
android:background="?attr/selectableItemBackground" |
||||
android:src="@drawable/ic_more_vert" |
||||
android:tint="@color/tv_text_default" |
||||
android:visibility="gone" |
||||
android:contentDescription="@string/more_menu" |
||||
android:layout_gravity="center_vertical" /> |
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat> |
||||
|
||||
|
Loading…
Reference in new issue