Initial commit
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
package com.nothing.camera2magic
|
||||
|
||||
import android.app.Activity
|
||||
import android.app.Application
|
||||
import android.content.Context
|
||||
import android.widget.Toast
|
||||
import com.nothing.camera2magic.hook.SourceManager
|
||||
import de.robv.android.xposed.IXposedHookLoadPackage
|
||||
import de.robv.android.xposed.XC_MethodHook
|
||||
import de.robv.android.xposed.XposedHelpers
|
||||
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam
|
||||
|
||||
class MagicHook : IXposedHookLoadPackage {
|
||||
init {
|
||||
System.loadLibrary("camera3")
|
||||
}
|
||||
companion object {
|
||||
private const val TAG = "[MagicHook]"
|
||||
private const val MODULE_PACKAGE_NAME = "com.nothing.camera2magic"
|
||||
}
|
||||
override fun handleLoadPackage(lpparam: LoadPackageParam) {
|
||||
if (lpparam.packageName == MODULE_PACKAGE_NAME) return
|
||||
GlobalState.packageName = lpparam.packageName
|
||||
|
||||
XposedHelpers.findAndHookMethod(Application::class.java,
|
||||
"onCreate", object : XC_MethodHook() {
|
||||
override fun afterHookedMethod(param: MethodHookParam) {
|
||||
GlobalState.appContext = param.thisObject as Context
|
||||
//TODO:
|
||||
}
|
||||
})
|
||||
|
||||
XposedHelpers.findAndHookMethod(Activity::class.java,
|
||||
"onStart", object : XC_MethodHook() {
|
||||
override fun afterHookedMethod(param: MethodHookParam) {
|
||||
val activity = param.thisObject as Activity
|
||||
GlobalState.activityCount ++
|
||||
if (GlobalState.activityCount == 1) {
|
||||
SourceManager.refreshAndDispatch()
|
||||
activity.runOnUiThread {
|
||||
val text = "[✨] " + SourceManager.toastMessage
|
||||
Toast.makeText(activity, text, Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
XposedHelpers.findAndHookMethod(Activity::class.java,
|
||||
"onStop", object : XC_MethodHook() {
|
||||
override fun afterHookedMethod(param: MethodHookParam) {
|
||||
GlobalState.activityCount--
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user