Skip to content

Commit

Permalink
improvement: 重构 屏蔽选项列表
Browse files Browse the repository at this point in the history
Signed-off-by: xihan123 <srxqzxs@vip.qq.com>
  • Loading branch information
xihan123 committed Sep 2, 2023
1 parent c391b93 commit 9e3ec99
Show file tree
Hide file tree
Showing 5 changed files with 124 additions and 184 deletions.
52 changes: 18 additions & 34 deletions app/src/main/kotlin/cn/xihan/qdds/HookEntry.kt
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ import com.highcapable.yukihookapi.hook.type.java.LongType
import com.highcapable.yukihookapi.hook.type.java.StringClass
import com.highcapable.yukihookapi.hook.type.java.UnitType
import com.highcapable.yukihookapi.hook.xposed.proxy.IYukiHookXposedInit
import de.robv.android.xposed.XposedHelpers
import org.json.JSONArray
import org.json.JSONObject
import java.util.concurrent.CopyOnWriteArrayList
Expand Down Expand Up @@ -385,26 +384,28 @@ class HookEntry : IYukiHookXposedInit {
if (optionEntity.viewHideOption.bookLastPageOptions.enableHideBookLastPage) {
readBookLastPage(
versionCode = versionCode,
shieldAlsoRead = isEnableShieldOption(16),
shieldSimilarRecommend = isEnableShieldOption(17),
shieldRecommendation = isEnableShieldOption(18),
hideCircle = optionEntity.viewHideOption.bookLastPageOptions.configurations.isEnabled(
optionEntity.viewHideOption.bookLastPageOptions.configurations[0].title
shieldAlsoRead = optionEntity.shieldOption.configurations.isSelectedByTitle("阅读-最后一页-看过此书的人还看过"),
shieldSimilarRecommend = optionEntity.shieldOption.configurations.isSelectedByTitle(
"阅读-最后一页-同类作品推荐"
),
hideAlsoRead = optionEntity.viewHideOption.bookLastPageOptions.configurations.isEnabled(
optionEntity.viewHideOption.bookLastPageOptions.configurations[1].title
shieldRecommendation = optionEntity.shieldOption.configurations.isSelectedByTitle("阅读-最后一页-推荐"),
hideCircle = optionEntity.viewHideOption.bookLastPageOptions.configurations.isSelectedByTitle(
"书友圈"
),
hideRecommendation = optionEntity.viewHideOption.bookLastPageOptions.configurations.isEnabled(
optionEntity.viewHideOption.bookLastPageOptions.configurations[2].title
hideAlsoRead = optionEntity.viewHideOption.bookLastPageOptions.configurations.isSelectedByTitle(
"看过此书的人还看过"
),
hideSimilarRecommend = optionEntity.viewHideOption.bookLastPageOptions.configurations.isEnabled(
optionEntity.viewHideOption.bookLastPageOptions.configurations[3].title
hideRecommendation = optionEntity.viewHideOption.bookLastPageOptions.configurations.isSelectedByTitle(
"推荐"
),
hideBookList = optionEntity.viewHideOption.bookLastPageOptions.configurations.isEnabled(
optionEntity.viewHideOption.bookLastPageOptions.configurations[4].title
hideSimilarRecommend = optionEntity.viewHideOption.bookLastPageOptions.configurations.isSelectedByTitle(
"同类作品推荐"
),
hideTryRead = optionEntity.viewHideOption.bookLastPageOptions.configurations.isEnabled(
optionEntity.viewHideOption.bookLastPageOptions.configurations[5].title
hideBookList = optionEntity.viewHideOption.bookLastPageOptions.configurations.isSelectedByTitle(
"收录此书的书单"
),
hideTryRead = optionEntity.viewHideOption.bookLastPageOptions.configurations.isSelectedByTitle(
"试读"
),
hideAdView = optionEntity.advOption.configurations.isSelectedByTitle("阅读页-最后一页-中间广告")
)
Expand Down Expand Up @@ -436,9 +437,7 @@ class HookEntry : IYukiHookXposedInit {
isEnableCustomSplash = optionEntity.splashOption.enableCustomSplash
)

if (optionEntity.shieldOption.shieldOptionValueSet.isNotEmpty()) {
shieldOption(versionCode, optionEntity.shieldOption.shieldOptionValueSet)
}
shieldOption(versionCode, optionEntity.shieldOption.configurations)

if (optionEntity.shieldOption.enableQuickShieldDialog) {
quickShield(versionCode)
Expand Down Expand Up @@ -517,13 +516,6 @@ class HookEntry : IYukiHookXposedInit {
optionEntity.shieldOption.bookTypeList
}

/**
* 判断是否启用了屏蔽配置的选项
* @param optionValue 选项的值
*/
fun isEnableShieldOption(optionValue: Int) =
optionValue in optionEntity.shieldOption.shieldOptionValueSet

/**
* 判断是否需要屏蔽
* @param bookName 书名-可空
Expand Down Expand Up @@ -574,14 +566,6 @@ class HookEntry : IYukiHookXposedInit {
return false
}

/**
* 解析关键词组
* @param it 关键词组
*/
fun parseKeyWordOption(it: String = ""): MutableSet<String> =
it.split(";").filter { it.isNotBlank() }.map { it.replace(Regex(pattern = "\\s+"), "") }
.toMutableSet()

/**
* 解析需要屏蔽的书籍列表
*/
Expand Down
13 changes: 7 additions & 6 deletions app/src/main/kotlin/cn/xihan/qdds/Intercept.kt
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ fun PackageParam.interceptOption(
) {
if (configurations.isEmpty()) return
val interceptList = mutableListOf<String>()
configurations.filter { it.selected }.forEach { selected ->
configurations.filter { it.selected }.takeIf { it.isNotEmpty() }?.forEach { selected ->
when (selected.title) {
"隐私政策更新弹框" -> interceptPrivacyPolicy(versionCode)
"同意隐私政策弹框" -> interceptAgreePrivacyPolicy(versionCode)
Expand All @@ -33,7 +33,7 @@ fun PackageParam.interceptOption(
"阅读页水印" -> interceptReadBookPageWaterMark(versionCode)
"发帖图片水印" -> interceptPostImageWatermark(versionCode)
"自动跳转精选" -> interceptAutoJumpSelected(versionCode)
else -> interceptList.add(selected.title)
else -> interceptList += selected.title
}
}

Expand Down Expand Up @@ -245,16 +245,17 @@ fun PackageParam.interceptPostImageWatermark(versionCode: Int) {
}
}
}

else -> "发帖图片水印".printlnNotSupportVersion(versionCode)
}
}

/**
* 拦截自动跳转精选
*/
fun PackageParam.interceptAutoJumpSelected(versionCode: Int){
when(versionCode){
in 980..994 -> {
fun PackageParam.interceptAutoJumpSelected(versionCode: Int) {
when (versionCode) {
in 980..994 -> {
findClass("com.qidian.QDReader.ui.activity.MainGroupActivity").hook {
injectMember {
method {
Expand All @@ -265,7 +266,7 @@ fun PackageParam.interceptAutoJumpSelected(versionCode: Int){
intercept()
}
}
}
}
}
}

Expand Down

0 comments on commit 9e3ec99

Please sign in to comment.