feat: more native bridge methods

This commit is contained in:
PalmDevs 2025-09-15 22:52:14 +07:00
parent 06878b3135
commit 21d693290a
No known key found for this signature in database
GPG key ID: 6FAE8F8677ACA8BA
3 changed files with 50 additions and 1 deletions

View file

@ -9,9 +9,11 @@ class Constants {
const val CACHE_DIR = "cache/pyoncord"
const val MAIN_SCRIPT_FILE = "bundle.js"
const val LOG_TAG = "Revenge"
const val LOADER_NAME = "RevengeXposed"
const val USER_AGENT = "RevengeXposed"
}
}

View file

@ -11,6 +11,7 @@ import io.github.revenge.xposed.modules.*
import io.github.revenge.xposed.modules.appearance.FontsModule
import io.github.revenge.xposed.modules.appearance.SysColorsModule
import io.github.revenge.xposed.modules.appearance.ThemeModule
import io.github.revenge.xposed.modules.bridge.AdditionalBridgeMethodsModule
import io.github.revenge.xposed.modules.bridge.BridgeModule
class Main : Module(), IXposedHookLoadPackage, IXposedHookZygoteInit {
@ -18,12 +19,13 @@ class Main : Module(), IXposedHookLoadPackage, IXposedHookZygoteInit {
private val modules = mutableListOf(
HookScriptLoaderModule(),
BridgeModule(),
AdditionalBridgeMethodsModule(),
UpdaterModule(),
FixResourcesModule(),
LogBoxModule(),
FontsModule(),
ThemeModule(),
SysColorsModule(),
SysColorsModule()
)
init {

View file

@ -0,0 +1,45 @@
package io.github.revenge.xposed.modules.bridge
import android.app.AlertDialog
import android.content.ClipData
import android.content.ClipboardManager
import android.content.Context
import android.os.Build
import android.widget.Toast
import io.github.revenge.xposed.Module
class AdditionalBridgeMethodsModule : Module() {
override fun onContext(context: Context) = with(context) {
BridgeModule.registerMethod("revenge.alertError") {
val (error, version) = it
val app = getAppInfo()
val errorString = "$error"
val clipboard = applicationContext.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
val clip = ClipData.newPlainText("Stack Trace", errorString)
AlertDialog.Builder(this)
.setTitle("Revenge Error")
.setMessage(
"""
Revenge: $version
${app.name}: ${app.version} (${app.versionCode})
Device: ${Build.MANUFACTURER} ${Build.MODEL}
""".trimIndent() + errorString
)
.setPositiveButton("OK") { dialog, _ ->
dialog.dismiss()
}
.setNeutralButton("Copy") { dialog, _ ->
clipboard.setPrimaryClip(clip)
Toast.makeText(applicationContext, "Copied stack trace", Toast.LENGTH_SHORT).show()
dialog.dismiss()
}
.show()
null
}
}
}