mirror of
https://github.com/rhunk/SnapEnhance.git
synced 2025-05-22 00:57:07 +02:00
feat: delete logged message
This commit is contained in:
parent
f7ba23fd80
commit
f95fae197a
@ -81,6 +81,13 @@ abstract class AbstractBridgeClient {
|
|||||||
*/
|
*/
|
||||||
abstract fun addMessageLoggerMessage(id: Long, message: ByteArray)
|
abstract fun addMessageLoggerMessage(id: Long, message: ByteArray)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete a message from the message logger database
|
||||||
|
*
|
||||||
|
* @param id the ID of the message logger message
|
||||||
|
*/
|
||||||
|
abstract fun deleteMessageLoggerMessage(id: Long)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Clear the message logger database
|
* Clear the message logger database
|
||||||
*/
|
*/
|
||||||
|
@ -15,6 +15,10 @@ class MessageLoggerWrapper(
|
|||||||
database.execSQL("CREATE TABLE IF NOT EXISTS messages (message_id INTEGER PRIMARY KEY, serialized_message BLOB)")
|
database.execSQL("CREATE TABLE IF NOT EXISTS messages (message_id INTEGER PRIMARY KEY, serialized_message BLOB)")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun deleteMessage(messageId: Long) {
|
||||||
|
database.execSQL("DELETE FROM messages WHERE message_id = ?", arrayOf(messageId.toString()))
|
||||||
|
}
|
||||||
|
|
||||||
fun addMessage(messageId: Long, serializedMessage: ByteArray): Boolean {
|
fun addMessage(messageId: Long, serializedMessage: ByteArray): Boolean {
|
||||||
val cursor = database.rawQuery("SELECT message_id FROM messages WHERE message_id = ?", arrayOf(messageId.toString()))
|
val cursor = database.rawQuery("SELECT message_id FROM messages WHERE message_id = ?", arrayOf(messageId.toString()))
|
||||||
val state = cursor.moveToFirst()
|
val state = cursor.moveToFirst()
|
||||||
|
@ -77,6 +77,10 @@ class RootBridgeClient : AbstractBridgeClient() {
|
|||||||
messageLoggerWrapper.addMessage(id, message)
|
messageLoggerWrapper.addMessage(id, message)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun deleteMessageLoggerMessage(id: Long) {
|
||||||
|
messageLoggerWrapper.deleteMessage(id)
|
||||||
|
}
|
||||||
|
|
||||||
override fun clearMessageLogger() {
|
override fun clearMessageLogger() {
|
||||||
messageLoggerWrapper.clearMessages()
|
messageLoggerWrapper.clearMessages()
|
||||||
}
|
}
|
||||||
|
@ -192,6 +192,14 @@ class ServiceBridgeClient: AbstractBridgeClient(), ServiceConnection {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun deleteMessageLoggerMessage(id: Long) {
|
||||||
|
sendMessage(
|
||||||
|
BridgeMessageType.MESSAGE_LOGGER_REQUEST,
|
||||||
|
MessageLoggerRequest(MessageLoggerRequest.Action.DELETE, id),
|
||||||
|
MessageLoggerResult::class
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
override fun clearMessageLogger() {
|
override fun clearMessageLogger() {
|
||||||
sendMessage(
|
sendMessage(
|
||||||
BridgeMessageType.MESSAGE_LOGGER_REQUEST,
|
BridgeMessageType.MESSAGE_LOGGER_REQUEST,
|
||||||
|
@ -24,6 +24,7 @@ class MessageLoggerRequest(
|
|||||||
enum class Action {
|
enum class Action {
|
||||||
ADD,
|
ADD,
|
||||||
GET,
|
GET,
|
||||||
CLEAR
|
CLEAR,
|
||||||
|
DELETE
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -89,6 +89,9 @@ class BridgeService : Service() {
|
|||||||
MessageLoggerRequest.Action.CLEAR -> {
|
MessageLoggerRequest.Action.CLEAR -> {
|
||||||
messageLoggerWrapper.clearMessages()
|
messageLoggerWrapper.clearMessages()
|
||||||
}
|
}
|
||||||
|
MessageLoggerRequest.Action.DELETE -> {
|
||||||
|
messageLoggerWrapper.deleteMessage(msg.messageId!!)
|
||||||
|
}
|
||||||
MessageLoggerRequest.Action.GET -> {
|
MessageLoggerRequest.Action.GET -> {
|
||||||
val (state, messageData) = messageLoggerWrapper.getMessage(msg.messageId!!)
|
val (state, messageData) = messageLoggerWrapper.getMessage(msg.messageId!!)
|
||||||
reply(MessageLoggerResult(state, messageData).toMessage(BridgeMessageType.MESSAGE_LOGGER_RESULT.value))
|
reply(MessageLoggerResult(state, messageData).toMessage(BridgeMessageType.MESSAGE_LOGGER_RESULT.value))
|
||||||
|
@ -14,6 +14,7 @@ import android.view.ViewGroup.MarginLayoutParams
|
|||||||
import android.widget.Button
|
import android.widget.Button
|
||||||
import me.rhunk.snapenhance.Constants.VIEW_INJECTED_CODE
|
import me.rhunk.snapenhance.Constants.VIEW_INJECTED_CODE
|
||||||
import me.rhunk.snapenhance.config.ConfigProperty
|
import me.rhunk.snapenhance.config.ConfigProperty
|
||||||
|
import me.rhunk.snapenhance.features.impl.Messaging
|
||||||
import me.rhunk.snapenhance.features.impl.downloader.MediaDownloader
|
import me.rhunk.snapenhance.features.impl.downloader.MediaDownloader
|
||||||
import me.rhunk.snapenhance.features.impl.ui.menus.AbstractMenu
|
import me.rhunk.snapenhance.features.impl.ui.menus.AbstractMenu
|
||||||
|
|
||||||
@ -86,6 +87,18 @@ class ChatActionMenu : AbstractMenu() {
|
|||||||
parent.addView(downloadButton)
|
parent.addView(downloadButton)
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: delete logged message button
|
//delete logged message button
|
||||||
|
if (context.config.bool(ConfigProperty.MESSAGE_LOGGER)) {
|
||||||
|
val downloadButton = Button(viewGroup.context)
|
||||||
|
applyButtonTheme(parent, downloadButton)
|
||||||
|
downloadButton.text = "Deleted logged message"
|
||||||
|
downloadButton.setOnClickListener {
|
||||||
|
closeActionMenu()
|
||||||
|
context.executeAsync {
|
||||||
|
context.bridgeClient.deleteMessageLoggerMessage(context.feature(Messaging::class).lastFocusedMessageId)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
parent.addView(downloadButton)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user