fix(messagelogger): clear on logout
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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?
|
||||
|
||||
@@ -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, {
|
||||
|
||||
Reference in New Issue
Block a user