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)
|
||||
|
||||
/**
|
||||
* 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
|
||||
*/
|
||||
|
@ -15,6 +15,10 @@ class MessageLoggerWrapper(
|
||||
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 {
|
||||
val cursor = database.rawQuery("SELECT message_id FROM messages WHERE message_id = ?", arrayOf(messageId.toString()))
|
||||
val state = cursor.moveToFirst()
|
||||
|
@ -77,6 +77,10 @@ class RootBridgeClient : AbstractBridgeClient() {
|
||||
messageLoggerWrapper.addMessage(id, message)
|
||||
}
|
||||
|
||||
override fun deleteMessageLoggerMessage(id: Long) {
|
||||
messageLoggerWrapper.deleteMessage(id)
|
||||
}
|
||||
|
||||
override fun clearMessageLogger() {
|
||||
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() {
|
||||
sendMessage(
|
||||
BridgeMessageType.MESSAGE_LOGGER_REQUEST,
|
||||
|
@ -24,6 +24,7 @@ class MessageLoggerRequest(
|
||||
enum class Action {
|
||||
ADD,
|
||||
GET,
|
||||
CLEAR
|
||||
CLEAR,
|
||||
DELETE
|
||||
}
|
||||
}
|
@ -89,6 +89,9 @@ class BridgeService : Service() {
|
||||
MessageLoggerRequest.Action.CLEAR -> {
|
||||
messageLoggerWrapper.clearMessages()
|
||||
}
|
||||
MessageLoggerRequest.Action.DELETE -> {
|
||||
messageLoggerWrapper.deleteMessage(msg.messageId!!)
|
||||
}
|
||||
MessageLoggerRequest.Action.GET -> {
|
||||
val (state, messageData) = messageLoggerWrapper.getMessage(msg.messageId!!)
|
||||
reply(MessageLoggerResult(state, messageData).toMessage(BridgeMessageType.MESSAGE_LOGGER_RESULT.value))
|
||||
|
@ -14,6 +14,7 @@ import android.view.ViewGroup.MarginLayoutParams
|
||||
import android.widget.Button
|
||||
import me.rhunk.snapenhance.Constants.VIEW_INJECTED_CODE
|
||||
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.ui.menus.AbstractMenu
|
||||
|
||||
@ -86,6 +87,18 @@ class ChatActionMenu : AbstractMenu() {
|
||||
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