mirror of
https://github.com/rhunk/SnapEnhance.git
synced 2025-06-12 13:17:42 +02:00
refactor: debug properties
This commit is contained in:
@ -24,8 +24,8 @@ import me.rhunk.snapenhance.core.event.EventBus
|
||||
import me.rhunk.snapenhance.core.event.EventDispatcher
|
||||
import me.rhunk.snapenhance.core.features.Feature
|
||||
import me.rhunk.snapenhance.core.logger.CoreLogger
|
||||
import me.rhunk.snapenhance.core.manager.impl.ActionManager
|
||||
import me.rhunk.snapenhance.core.manager.impl.FeatureManager
|
||||
import me.rhunk.snapenhance.core.action.ActionManager
|
||||
import me.rhunk.snapenhance.core.features.FeatureManager
|
||||
import me.rhunk.snapenhance.core.messaging.CoreMessagingBridge
|
||||
import me.rhunk.snapenhance.core.messaging.MessageSender
|
||||
import me.rhunk.snapenhance.core.scripting.CoreScriptRuntime
|
||||
|
@ -132,7 +132,6 @@ class SnapEnhance {
|
||||
}
|
||||
|
||||
reloadConfig()
|
||||
actionManager.init()
|
||||
initConfigListener()
|
||||
initWidgetListener()
|
||||
initNative()
|
||||
@ -175,7 +174,10 @@ class SnapEnhance {
|
||||
|
||||
private fun initNative() {
|
||||
// don't initialize native when not logged in
|
||||
if (appContext.androidContext.getSharedPreferences("user_session_shared_pref", 0).getString("key_user_id", null) == null) return
|
||||
if (
|
||||
appContext.androidContext.getSharedPreferences("user_session_shared_pref", 0).getString("key_user_id", null) == null &&
|
||||
appContext.bridgeClient.getDebugProp("force_native_load", null) != "true"
|
||||
) return
|
||||
if (appContext.config.experimental.nativeHooks.globalState != true) return
|
||||
|
||||
lateinit var unhook: () -> Unit
|
||||
|
@ -1,4 +1,4 @@
|
||||
package me.rhunk.snapenhance.core.manager.impl
|
||||
package me.rhunk.snapenhance.core.action
|
||||
|
||||
import android.content.Intent
|
||||
import me.rhunk.snapenhance.common.action.EnumAction
|
||||
@ -7,11 +7,10 @@ import me.rhunk.snapenhance.core.action.impl.BulkMessagingAction
|
||||
import me.rhunk.snapenhance.core.action.impl.CleanCache
|
||||
import me.rhunk.snapenhance.core.action.impl.ExportChatMessages
|
||||
import me.rhunk.snapenhance.core.action.impl.ExportMemories
|
||||
import me.rhunk.snapenhance.core.manager.Manager
|
||||
|
||||
class ActionManager(
|
||||
private val modContext: ModContext,
|
||||
) : Manager {
|
||||
) {
|
||||
|
||||
private val actions by lazy {
|
||||
mapOf(
|
||||
@ -26,9 +25,6 @@ class ActionManager(
|
||||
}.toMap().toMutableMap()
|
||||
}
|
||||
|
||||
override fun init() {
|
||||
}
|
||||
|
||||
fun onNewIntent(intent: Intent?) {
|
||||
val action = intent?.getStringExtra(EnumAction.ACTION_PARAMETER) ?: return
|
||||
intent.removeExtra(EnumAction.ACTION_PARAMETER)
|
@ -209,4 +209,6 @@ class BridgeClient(
|
||||
fun closeSettingsOverlay() = safeServiceCall { service.closeSettingsOverlay() }
|
||||
|
||||
fun registerConfigStateListener(listener: ConfigStateListener) = safeServiceCall { service.registerConfigStateListener(listener) }
|
||||
|
||||
fun getDebugProp(name: String, defaultValue: String? = null) = safeServiceCall { service.getDebugProp(name, defaultValue) }
|
||||
}
|
||||
|
@ -17,7 +17,6 @@ import me.rhunk.snapenhance.common.util.ktx.getInteger
|
||||
import me.rhunk.snapenhance.common.util.ktx.getStringOrNull
|
||||
import me.rhunk.snapenhance.common.util.protobuf.ProtoReader
|
||||
import me.rhunk.snapenhance.core.ModContext
|
||||
import me.rhunk.snapenhance.core.manager.Manager
|
||||
import me.rhunk.snapenhance.nativelib.NativeLib
|
||||
|
||||
|
||||
@ -30,7 +29,7 @@ enum class DatabaseType(
|
||||
|
||||
class DatabaseAccess(
|
||||
private val context: ModContext
|
||||
) : Manager {
|
||||
) {
|
||||
private val openedDatabases = mutableMapOf<DatabaseType, SQLiteDatabase>()
|
||||
|
||||
private fun useDatabase(database: DatabaseType, writeMode: Boolean = false): SQLiteDatabase? {
|
||||
@ -118,7 +117,7 @@ class DatabaseAccess(
|
||||
fun hasMain(): Boolean = useDatabase(DatabaseType.MAIN)?.isOpen == true
|
||||
fun hasArroyo(): Boolean = useDatabase(DatabaseType.ARROYO)?.isOpen == true
|
||||
|
||||
override fun init() {
|
||||
fun init() {
|
||||
// perform integrity check on databases
|
||||
DatabaseType.entries.forEach { type ->
|
||||
useDatabase(type, writeMode = true)?.apply {
|
||||
|
@ -7,7 +7,6 @@ import android.view.ViewGroup.LayoutParams
|
||||
import me.rhunk.snapenhance.common.util.snap.SnapWidgetBroadcastReceiverHelper
|
||||
import me.rhunk.snapenhance.core.ModContext
|
||||
import me.rhunk.snapenhance.core.event.events.impl.*
|
||||
import me.rhunk.snapenhance.core.manager.Manager
|
||||
import me.rhunk.snapenhance.core.util.hook.HookStage
|
||||
import me.rhunk.snapenhance.core.util.hook.Hooker
|
||||
import me.rhunk.snapenhance.core.util.hook.hook
|
||||
@ -23,7 +22,7 @@ import java.nio.ByteBuffer
|
||||
|
||||
class EventDispatcher(
|
||||
private val context: ModContext
|
||||
) : Manager {
|
||||
) {
|
||||
private fun hookViewBinder() {
|
||||
context.mappings.useMapper(ViewBinderMapper::class) {
|
||||
val cachedHooks = mutableListOf<String>()
|
||||
@ -60,8 +59,7 @@ class EventDispatcher(
|
||||
|
||||
}
|
||||
|
||||
|
||||
override fun init() {
|
||||
fun init() {
|
||||
context.classCache.conversationManager.hook("sendMessageWithContent", HookStage.BEFORE) { param ->
|
||||
context.event.post(SendMessageWithContentEvent(
|
||||
destinations = MessageDestinations(param.arg(0)),
|
||||
|
@ -1,12 +1,9 @@
|
||||
package me.rhunk.snapenhance.core.manager.impl
|
||||
package me.rhunk.snapenhance.core.features
|
||||
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import me.rhunk.snapenhance.core.ModContext
|
||||
import me.rhunk.snapenhance.core.features.Feature
|
||||
import me.rhunk.snapenhance.core.features.FeatureLoadParams
|
||||
import me.rhunk.snapenhance.core.features.MessagingRuleFeature
|
||||
import me.rhunk.snapenhance.core.features.impl.ConfigurationOverride
|
||||
import me.rhunk.snapenhance.core.features.impl.MixerStories
|
||||
import me.rhunk.snapenhance.core.features.impl.OperaViewerParamsOverride
|
||||
@ -16,7 +13,9 @@ import me.rhunk.snapenhance.core.features.impl.downloader.ProfilePictureDownload
|
||||
import me.rhunk.snapenhance.core.features.impl.experiments.*
|
||||
import me.rhunk.snapenhance.core.features.impl.global.*
|
||||
import me.rhunk.snapenhance.core.features.impl.messaging.*
|
||||
import me.rhunk.snapenhance.core.features.impl.spying.*
|
||||
import me.rhunk.snapenhance.core.features.impl.spying.HalfSwipeNotifier
|
||||
import me.rhunk.snapenhance.core.features.impl.spying.MessageLogger
|
||||
import me.rhunk.snapenhance.core.features.impl.spying.StealthMode
|
||||
import me.rhunk.snapenhance.core.features.impl.tweaks.BypassScreenshotDetection
|
||||
import me.rhunk.snapenhance.core.features.impl.tweaks.CameraTweaks
|
||||
import me.rhunk.snapenhance.core.features.impl.tweaks.DisablePermissionRequests
|
||||
@ -24,17 +23,21 @@ import me.rhunk.snapenhance.core.features.impl.tweaks.PreventMessageListAutoScro
|
||||
import me.rhunk.snapenhance.core.features.impl.tweaks.UnsaveableMessages
|
||||
import me.rhunk.snapenhance.core.features.impl.ui.*
|
||||
import me.rhunk.snapenhance.core.logger.CoreLogger
|
||||
import me.rhunk.snapenhance.core.manager.Manager
|
||||
import me.rhunk.snapenhance.core.ui.menu.MenuViewInjector
|
||||
import kotlin.reflect.KClass
|
||||
import kotlin.system.measureTimeMillis
|
||||
|
||||
class FeatureManager(
|
||||
private val context: ModContext
|
||||
) : Manager {
|
||||
) {
|
||||
private val features = mutableMapOf<KClass<out Feature>, Feature>()
|
||||
|
||||
private fun register(vararg featureList: Feature) {
|
||||
if (context.bridgeClient.getDebugProp("disable_feature_loading") == "true") {
|
||||
context.log.warn("Feature loading is disabled")
|
||||
return
|
||||
}
|
||||
|
||||
runBlocking {
|
||||
featureList.forEach { feature ->
|
||||
launch(Dispatchers.IO) {
|
||||
@ -58,7 +61,7 @@ class FeatureManager(
|
||||
|
||||
fun getRuleFeatures() = features.values.filterIsInstance<MessagingRuleFeature>().sortedBy { it.ruleType.ordinal }
|
||||
|
||||
override fun init() {
|
||||
fun init() {
|
||||
register(
|
||||
EndToEndEncryption(),
|
||||
ScopeSync(),
|
||||
@ -174,7 +177,7 @@ class FeatureManager(
|
||||
}
|
||||
}
|
||||
|
||||
override fun onActivityCreate() {
|
||||
fun onActivityCreate() {
|
||||
measureTimeMillis {
|
||||
initFeatures(
|
||||
FeatureLoadParams.ACTIVITY_CREATE_SYNC,
|
@ -1,6 +0,0 @@
|
||||
package me.rhunk.snapenhance.core.manager
|
||||
|
||||
interface Manager {
|
||||
fun init() {}
|
||||
fun onActivityCreate() {}
|
||||
}
|
Reference in New Issue
Block a user