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

View File

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