Modify move name to object const variable in YukiHookXposedProcessor, CodeSourceFileFactory

This commit is contained in:
2022-09-27 00:55:59 +08:00
parent 36237bf289
commit ea586fae53
2 changed files with 33 additions and 15 deletions

View File

@@ -35,6 +35,8 @@ import com.google.devtools.ksp.symbol.FileLocation
import com.google.devtools.ksp.symbol.KSAnnotated
import com.google.devtools.ksp.symbol.KSClassDeclaration
import com.highcapable.yukihookapi_ksp_xposed.bean.GenerateData
import com.highcapable.yukihookapi_ksp_xposed.factory.ClassName
import com.highcapable.yukihookapi_ksp_xposed.factory.PackageName
import com.highcapable.yukihookapi_ksp_xposed.factory.sources
import org.w3c.dom.Element
import org.w3c.dom.Node
@@ -233,15 +235,15 @@ class YukiHookXposedProcessor : SymbolProcessorProvider {
)
/** 插入 ModuleApplication_Impl 代码 */
createCodeFile(
fileName = "ModuleApplication_Impl",
packageName = "com.highcapable.yukihookapi.hook.xposed.application",
content = data.sources()["ModuleApplication_Impl"]
fileName = ClassName.ModuleApplication_Impl,
packageName = PackageName.ModuleApplication_Impl,
content = data.sources()[ClassName.ModuleApplication_Impl]
)
/** 插入 YukiHookBridge_Impl 代码 */
createCodeFile(
fileName = "YukiHookBridge_Impl",
packageName = "com.highcapable.yukihookapi.hook.xposed.bridge",
content = data.sources()["YukiHookBridge_Impl"]
fileName = ClassName.YukiHookBridge_Impl,
packageName = PackageName.YukiHookBridge_Impl,
content = data.sources()[ClassName.YukiHookBridge_Impl]
)
/** 插入 xposed_init 代码 */
createCodeFile(

View File

@@ -31,6 +31,22 @@ import com.highcapable.yukihookapi_ksp_xposed.bean.GenerateData
import java.text.SimpleDateFormat
import java.util.*
/**
* 包名常量定义类
*/
object PackageName {
const val ModuleApplication_Impl = "com.highcapable.yukihookapi.hook.xposed.application"
const val YukiHookBridge_Impl = "com.highcapable.yukihookapi.hook.xposed.bridge"
}
/**
* 类名常量定义类
*/
object ClassName {
const val ModuleApplication_Impl = "ModuleApplication_Impl"
const val YukiHookBridge_Impl = "YukiHookBridge_Impl"
}
/**
* 创建文件注释
* @param entryClassName 入口类名 - 空则不生成
@@ -39,7 +55,7 @@ import java.util.*
*/
private fun createCommentContent(entryClassName: String = "", currrentClassTag: String) =
("/**\n" +
" * $currrentClassTag Inject Class\n" +
" * $currrentClassTag Class\n" +
" *\n" +
" * Compiled from YukiHookXposedProcessor\n" +
" *\n" +
@@ -56,26 +72,26 @@ private fun createCommentContent(entryClassName: String = "", currrentClassTag:
* @return [Map]<[String],[String]>
*/
fun GenerateData.sources() = mapOf(
"ModuleApplication_Impl" to ("@file:Suppress(\"ClassName\")\n" +
ClassName.ModuleApplication_Impl to ("@file:Suppress(\"ClassName\")\n" +
"\n" +
"package com.highcapable.yukihookapi.hook.xposed.application\n" +
"package ${PackageName.ModuleApplication_Impl}\n" +
"\n" +
"import $entryPackageName.$entryClassName\n" +
"\n" +
createCommentContent(entryClassName, currrentClassTag = "ModuleApplication") +
"object ModuleApplication_Impl {\n" +
createCommentContent(entryClassName, ClassName.ModuleApplication_Impl) +
"object ${ClassName.ModuleApplication_Impl} {\n" +
"\n" +
" fun callHookEntryInit() = try {\n" +
" $entryClassName().onInit()\n" +
" } catch (_: Throwable) {\n" +
" }\n" +
"}"),
"YukiHookBridge_Impl" to ("@file:Suppress(\"ClassName\")\n" +
ClassName.YukiHookBridge_Impl to ("@file:Suppress(\"ClassName\")\n" +
"\n" +
"package com.highcapable.yukihookapi.hook.xposed.bridge\n" +
"package ${PackageName.YukiHookBridge_Impl}\n" +
"\n" +
createCommentContent(currrentClassTag = "YukiHookBridge") +
"object YukiHookBridge_Impl {\n" +
createCommentContent(currrentClassTag = ClassName.YukiHookBridge_Impl) +
"object ${ClassName.YukiHookBridge_Impl} {\n" +
"\n" +
" val compiledTimestamp get() = ${System.currentTimeMillis()}\n" +
"}"),