You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.5 KiB
Kotlin
80 lines
2.5 KiB
Kotlin
/*
|
|
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
|
|
*/
|
|
|
|
package com.fox2code.mmm
|
|
|
|
import android.content.Context
|
|
import android.content.Intent
|
|
import android.content.pm.PackageManager
|
|
import android.webkit.WebView
|
|
import androidx.annotation.Keep
|
|
import com.fox2code.mmm.manager.ModuleManager
|
|
import com.fox2code.mmm.repo.RepoManager
|
|
|
|
/**
|
|
* Class made to expose some manager functions to xposed modules.
|
|
* It will not be obfuscated on release builds
|
|
*/
|
|
@Suppress("UNUSED_PARAMETER")
|
|
@Keep
|
|
enum class XHooks {
|
|
;
|
|
|
|
companion object {
|
|
@JvmStatic
|
|
@Keep
|
|
fun onRepoManagerInitialize() {
|
|
// Call addXRepo here if you are an XPosed module
|
|
}
|
|
|
|
@JvmStatic
|
|
@Keep
|
|
fun onRepoManagerInitialized() {
|
|
}
|
|
|
|
@JvmStatic
|
|
@Keep
|
|
fun isModuleActive(moduleId: String?): Boolean {
|
|
return ModuleManager.isModuleActive(moduleId!!)
|
|
}
|
|
|
|
@Suppress("DEPRECATION")
|
|
@JvmStatic
|
|
@Keep
|
|
@Throws(PackageManager.NameNotFoundException::class)
|
|
fun checkConfigTargetExists(context: Context, packageName: String, config: String) {
|
|
if ("org.lsposed.manager" == config && "org.lsposed.manager" == packageName &&
|
|
(isModuleActive("riru_lsposed") || isModuleActive("zygisk_lsposed"))
|
|
) return // Skip check for lsposed as it is probably injected into the system.
|
|
context.packageManager.getPackageInfo(packageName, 0)
|
|
}
|
|
|
|
@Suppress("UNUSED_PARAMETER")
|
|
@JvmStatic
|
|
@Keep
|
|
fun getConfigIntent(context: Context, packageName: String?, config: String?): Intent? {
|
|
return context.packageManager.getLaunchIntentForPackage(packageName!!)
|
|
}
|
|
|
|
@JvmStatic
|
|
@Keep
|
|
fun onWebViewInitialize(webView: WebView?, allowInstall: Boolean) {
|
|
if (webView == null) throw NullPointerException("WebView is null!")
|
|
}
|
|
|
|
@Keep
|
|
fun addXRepo(url: String?, fallbackName: String?): XRepo {
|
|
return url?.let { RepoManager.iNSTANCE_UNSAFE?.addOrGet(it, fallbackName) }!!
|
|
}
|
|
|
|
@Keep
|
|
fun getXRepo(url: String?): XRepo {
|
|
return RepoManager.iNSTANCE_UNSAFE?.get(url) ?: throw NullPointerException("Repo not found!")
|
|
}
|
|
|
|
@get:Keep
|
|
val xRepos: Collection<XRepo>
|
|
get() = RepoManager.iNSTANCE_UNSAFE!!.xRepos
|
|
}
|
|
} |