Skip to content

Commit

Permalink
feat!: 移除 自定义闪屏页,关闭闪屏 合并至拦截设置列表 -> 闪屏广告页面
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 4, 2023
1 parent e0ff176 commit 520ae38
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 278 deletions.
11 changes: 0 additions & 11 deletions app/src/main/kotlin/cn/xihan/qdds/HookEntry.kt
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,6 @@ class HookEntry : IYukiHookXposedInit {
tag = "yuki"
isEnable = BuildConfig.DEBUG
}
debugLog {
elements(TAG, PRIORITY, PACKAGE_NAME, USER_ID)
isEnable = BuildConfig.DEBUG
isRecord = BuildConfig.DEBUG
}
}

override fun onHook() = YukiHookAPI.encase {
Expand Down Expand Up @@ -468,12 +463,6 @@ class HookEntry : IYukiHookXposedInit {
customBookShelfTopImage(versionCode)
}

splashPage(
versionCode = versionCode,
isEnableSplash = optionEntity.splashOption.enableSplash,
isEnableCustomSplash = optionEntity.splashOption.enableCustomSplash
)

shieldOption(versionCode, optionEntity.shieldOption.configurations)

if (optionEntity.shieldOption.enableQuickShieldDialog) {
Expand Down
62 changes: 43 additions & 19 deletions app/src/main/kotlin/cn/xihan/qdds/Intercept.kt
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package cn.xihan.qdds


import com.highcapable.yukihookapi.hook.factory.current
import com.highcapable.yukihookapi.hook.param.PackageParam
import com.highcapable.yukihookapi.hook.type.android.BundleClass
import com.highcapable.yukihookapi.hook.type.android.IntentClass
import com.highcapable.yukihookapi.hook.type.java.BooleanType
import com.highcapable.yukihookapi.hook.type.java.StringClass
Expand Down Expand Up @@ -168,33 +170,55 @@ fun PackageParam.interceptQSNModeRequest(version: Int) {
* 拦截闪屏广告页面
* SplashManager
* SettingSplashEnableGDT
* com.qidian.QDReader.ui.activity.MainGroupActivity.onCreate
* SplashManager.c().h(this.getApplicationContext());
*/
fun PackageParam.interceptSplashAdActivity(version: Int) {
val needHookClass = when (version) {
in 884..900 -> "g6.search"
in 906..916 -> "j6.search"
924 -> "k6.search"
in 932..938 -> "n6.search"
in 944..950 -> "m6.search"
958 -> "k6.search"
970 -> "j6.search"
in 980..994 -> "d6.search"
else -> null
}
val needHookMethod = when (version) {
in 884..994 -> "b"
else -> null
}
fun PackageParam.interceptSplashAdActivity(versionCode: Int) {
val map = mapOf(
"needHookClass" to when (versionCode) {
in 884..900 -> "g6.search"
in 906..916 -> "j6.search"
924 -> "k6.search"
in 932..938 -> "n6.search"
in 944..950 -> "m6.search"
958 -> "k6.search"
970 -> "j6.search"
in 980..994 -> "d6.search"
else -> null
},
"needHookMethod" to when (versionCode) {
in 884..994 -> "b"
else -> null
},
"needHookMethod2" to when (versionCode) {
in 758..878 -> "k"
in 884..999 -> "h"
else -> null
}
)

needHookClass?.hook {
map["needHookClass"]?.hook {
injectMember {
method {
name = needHookMethod!!
name = map["needHookMethod"]!!
returnType = BooleanType
}
replaceToFalse()
}
} ?: "拦截闪屏广告页面".printlnNotSupportVersion(version)
}

map["needHookMethod2"]?.let {
findClass("com.qidian.QDReader.bll.splash.SplashManager").hook {
injectMember {
method {
name = it
paramCount(1)
returnType = UnitType
}
intercept()
}
}
}
}

/**
Expand Down
73 changes: 0 additions & 73 deletions app/src/main/kotlin/cn/xihan/qdds/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -1230,79 +1230,6 @@ fun MainScreen(
}
}
}

Card(
modifier = Modifier
.fillMaxWidth()
.padding(8.dp),
shape = RoundedCornerShape(8.dp),
elevation = CardDefaults.cardElevation(4.dp)
) {

TextSetting(title = "闪屏设置", showRightIcon = false, bigTitle = true)

Column(modifier = Modifier.padding(4.dp)) {

val enableSplash =
rememberMutableStateOf(value = HookEntry.optionEntity.splashOption.enableSplash)

SwitchSetting(title = "启用闪屏页", checked = enableSplash, onCheckedChange = {
HookEntry.optionEntity.splashOption.enableSplash = it
})

if (enableSplash.value) {

SwitchSetting(title = "闪屏页显示全部按钮",
checked = rememberMutableStateOf(value = HookEntry.optionEntity.splashOption.enableCustomSplash),
onCheckedChange = {
HookEntry.optionEntity.splashOption.enableCustomSplash = it
})

val customSplash =
rememberMutableStateOf(value = HookEntry.optionEntity.splashOption.enableCustomSplash)

SwitchSetting(title = "启用自定义闪屏页",
checked = customSplash,
onCheckedChange = {
HookEntry.optionEntity.splashOption.enableCustomSplash = it
})

if (customSplash.value) {

EditTextSetting(title = "填入自定义闪屏页跳转到书籍页面的关键词",
subTitle = "填入书籍的BookId,详情页分享链接里面\"bookid=\"后面到\"&\"前那串数字就是了",
text = rememberMutableStateOf(value = HookEntry.optionEntity.splashOption.customBookId),
onTextChange = {
HookEntry.optionEntity.splashOption.customBookId = it
})

EditTextSetting(title = "自定义闪屏页类型",
subTitle = "填入 0 或者 1 其他数字可能无效喔~",
text = rememberMutableStateOf(value = HookEntry.optionEntity.splashOption.customSplashType.toString()),
onTextChange = {
if (it.isNotBlank() && it.isNumber()) {
HookEntry.optionEntity.splashOption.customSplashType =
it.toInt()
}
})

EditTextSetting(title = "自定义闪屏页图片",
subTitle = "填入图片所在绝对路径,如失败请给起点存储权限,或检查是否填写正确,留空默认",
text = rememberMutableStateOf(value = HookEntry.optionEntity.splashOption.customSplashImageFilePath),
onTextChange = {
HookEntry.optionEntity.splashOption.customSplashImageFilePath = it
})


}


}


}
}

}
}

Expand Down
22 changes: 0 additions & 22 deletions app/src/main/kotlin/cn/xihan/qdds/Option.kt
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ import java.io.File
* @param mainOption 主配置
* @param advOption 广告配置
* @param shieldOption 屏蔽配置
* @param splashOption 闪屏配置
* @param startImageOption 启动图配置
* @param bookshelfOption 书架配置
* @param readPageOption 阅读页配置
Expand All @@ -44,7 +43,6 @@ data class OptionEntity(
@SerialName("advOption") var advOption: AdvOption = AdvOption(),
@SerialName("mainOption") var mainOption: MainOption = MainOption(),
@SerialName("shieldOption") var shieldOption: ShieldOption = ShieldOption(),
@SerialName("splashOption") var splashOption: SplashOption = SplashOption(),
@SerialName("startImageOption") var startImageOption: StartImageOption = StartImageOption(),
@SerialName("bookshelfOption") var bookshelfOption: BookshelfOption = BookshelfOption(),
@SerialName("readPageOption") var readPageOption: ReadPageOption = ReadPageOption(),
Expand Down Expand Up @@ -162,26 +160,6 @@ data class OptionEntity(
@SerialName("enableBookTypeEnhancedBlocking") var enableBookTypeEnhancedBlocking: Boolean = false,
)

/**
* 闪屏页配置
* @param enableSplash 启用闪屏页
* @param enableCustomSplash 启用自定义闪屏页
* @param enableCustomSplashAllButton 启用自定义闪屏页全部按钮
* @param customBookId 自定义闪屏页书籍id
* @param customSplashType 自定义闪屏页类型
* @param customSplashImageFilePath 自定义闪屏页图片路径
*/
@Keep
@Serializable
data class SplashOption(
@SerialName("customBookId") var customBookId: String = "",
@SerialName("customSplashImageFilePath") var customSplashImageFilePath: String = "",
@SerialName("customSplashType") var customSplashType: Int = 0,
@SerialName("enableCustomSplash") var enableCustomSplash: Boolean = false,
@SerialName("enableCustomSplashAllButton") var enableCustomSplashAllButton: Boolean = false,
@SerialName("enableSplash") var enableSplash: Boolean = false,
)

/**
* 启动图配置
* @param enableCustomStartImage 启用自定义启动图
Expand Down
153 changes: 0 additions & 153 deletions app/src/main/kotlin/cn/xihan/qdds/Splash.kt

This file was deleted.

0 comments on commit 520ae38

Please sign in to comment.