commit f8898118ee978948c038cb44eef0e734d7c36409 parent cca6ce9ee3327076628858de650a4d86a9cd622f Author: rhunk <101876869+rhunk@users.noreply.github.com> Date: Fri, 19 May 2023 12:31:34 +0200 fix(messagelogger): clear on logout Diffstat:
3 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/bridge/client/BridgeClient.kt b/app/src/main/kotlin/me/rhunk/snapenhance/bridge/client/BridgeClient.kt @@ -220,6 +220,14 @@ class BridgeClient( ) } + fun clearMessageLogger() { + sendMessage( + BridgeMessageType.MESSAGE_LOGGER_REQUEST, + MessageLoggerRequest(MessageLoggerRequest.Action.CLEAR, 0), + MessageLoggerResult::class + ) + } + fun fetchTranslations(): LocaleResult { sendMessage( BridgeMessageType.LOCALE_REQUEST, diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/database/DatabaseAccess.kt b/app/src/main/kotlin/me/rhunk/snapenhance/database/DatabaseAccess.kt @@ -36,6 +36,10 @@ class DatabaseAccess(private val context: ModContext) : Manager { )!! } + fun hasArroyo(): Boolean { + return arroyoDatabase.exists() + } + private fun <T> safeDatabaseOperation( database: SQLiteDatabase, query: (SQLiteDatabase) -> T? diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/features/impl/spy/MessageLogger.kt b/app/src/main/kotlin/me/rhunk/snapenhance/features/impl/spy/MessageLogger.kt @@ -10,12 +10,18 @@ import me.rhunk.snapenhance.features.FeatureLoadParams import me.rhunk.snapenhance.hook.HookStage import me.rhunk.snapenhance.hook.Hooker -class MessageLogger : Feature("MessageLogger", loadParams = FeatureLoadParams.INIT_SYNC) { +class MessageLogger : Feature("MessageLogger", loadParams = FeatureLoadParams.INIT_SYNC or FeatureLoadParams.ACTIVITY_CREATE_SYNC) { private val messageCache = mutableMapOf<Long, String>() private val removedMessages = linkedSetOf<Long>() fun isMessageRemoved(messageId: Long) = removedMessages.contains(messageId) + override fun onActivityCreate() { + if (!context.database.hasArroyo()) { + context.bridgeClient.clearMessageLogger() + } + } + //FIXME: message disappears when the conversation is set to delete on view override fun init() { Hooker.hookConstructor(context.classCache.message, HookStage.AFTER, {