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 index 9bd9a78e..c8502a88 100644 --- 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 index f8087a71..ad7574d4 100644 --- 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 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 index fd3f3eb0..b5d6b5da 100644 --- 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() private val removedMessages = linkedSetOf() 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, {