feat: add sms.delete and sms.delete_thread commands
This commit is contained in:
parent
1121728cd2
commit
b7e213ff32
|
|
@ -276,6 +276,28 @@ object DirectGateway {
|
|||
ClawdNodeApp.instance.auditLog.log("COMMAND_EXECUTED", "sms.threads")
|
||||
}
|
||||
|
||||
"sms.delete" -> {
|
||||
val id = params.optLong("id", -1)
|
||||
if (id == -1L) {
|
||||
sendResponse(commandId, false, "Missing 'id'")
|
||||
} else {
|
||||
val deleted = SmsProvider.deleteMessage(id)
|
||||
sendDataResponse(commandId, JSONObject().put("deleted", deleted).put("id", id))
|
||||
}
|
||||
ClawdNodeApp.instance.auditLog.log("COMMAND_EXECUTED", "sms.delete id=$id")
|
||||
}
|
||||
|
||||
"sms.delete_thread" -> {
|
||||
val threadId = params.optLong("threadId", -1)
|
||||
if (threadId == -1L) {
|
||||
sendResponse(commandId, false, "Missing 'threadId'")
|
||||
} else {
|
||||
val rows = SmsProvider.deleteThread(threadId)
|
||||
sendDataResponse(commandId, JSONObject().put("deleted", rows).put("threadId", threadId))
|
||||
}
|
||||
ClawdNodeApp.instance.auditLog.log("COMMAND_EXECUTED", "sms.delete_thread threadId=$threadId")
|
||||
}
|
||||
|
||||
"sms.send" -> {
|
||||
val to = params.optString("to")
|
||||
val body = params.optString("body")
|
||||
|
|
|
|||
|
|
@ -205,6 +205,36 @@ object SmsProvider {
|
|||
return threads
|
||||
}
|
||||
|
||||
fun deleteMessage(id: Long): Boolean {
|
||||
return try {
|
||||
val rows = contentResolver.delete(Uri.parse("content://sms/$id"), null, null)
|
||||
Log.i(TAG, "deleteMessage id=$id rows=$rows")
|
||||
DebugClient.log("SMS deleted", mapOf("id" to id, "rows" to rows))
|
||||
rows > 0
|
||||
} catch (e: Exception) {
|
||||
Log.e(TAG, "deleteMessage failed for id=$id", e)
|
||||
DebugClient.error("SmsProvider.deleteMessage failed", e)
|
||||
false
|
||||
}
|
||||
}
|
||||
|
||||
fun deleteThread(threadId: Long): Int {
|
||||
return try {
|
||||
val rows = contentResolver.delete(
|
||||
Uri.parse("content://sms/"),
|
||||
"thread_id = ?",
|
||||
arrayOf(threadId.toString())
|
||||
)
|
||||
Log.i(TAG, "deleteThread threadId=$threadId rows=$rows")
|
||||
DebugClient.log("SMS thread deleted", mapOf("threadId" to threadId, "rows" to rows))
|
||||
rows
|
||||
} catch (e: Exception) {
|
||||
Log.e(TAG, "deleteThread failed for threadId=$threadId", e)
|
||||
DebugClient.error("SmsProvider.deleteThread failed", e)
|
||||
0
|
||||
}
|
||||
}
|
||||
|
||||
fun sendSms(to: String, body: String) {
|
||||
try {
|
||||
val smsManager = SmsManager.getDefault()
|
||||
|
|
|
|||
Loading…
Reference in New Issue