File tree Expand file tree Collapse file tree 5 files changed +26
-6
lines changed
app/src/main/java/me/capcom/smsgateway Expand file tree Collapse file tree 5 files changed +26
-6
lines changed Original file line number Diff line number Diff line change @@ -144,6 +144,12 @@ interface MessagesDao {
144144 _insertRecipientStatesByMessage (id, state)
145145 }
146146
147+ @Query(" UPDATE message SET simNumber = :simNumber WHERE id = :id" )
148+ fun updateSimNumber (
149+ id : String ,
150+ simNumber : Int
151+ )
152+
147153 @Query(" DELETE FROM message WHERE createdAt < :until AND state <> 'Pending'" )
148154 suspend fun truncateLog (until : Long )
149155}
Original file line number Diff line number Diff line change @@ -236,6 +236,7 @@ class MessagesService(
236236 msg.message.source,
237237 phone?.let { setOf (it) } ? : msg.recipients.map { it.phoneNumber }.toSet(),
238238 state,
239+ msg.message.simNumber,
239240 error
240241 )
241242 )
@@ -262,7 +263,12 @@ class MessagesService(
262263 val message = request.message
263264 val id = message.id
264265
265- val smsManager: SmsManager = getSmsManager(selectSimNumber(request))
266+ val simNumber = selectSimNumber(request)
267+ val smsManager: SmsManager = getSmsManager(simNumber)
268+
269+ if (request.message.simNumber == null && simNumber != null ) {
270+ dao.updateSimNumber(id, simNumber + 1 )
271+ }
266272
267273 @Suppress(" NAME_SHADOWING" )
268274 val messageText = when (message.isEncrypted) {
Original file line number Diff line number Diff line change @@ -9,6 +9,7 @@ class MessageStateChangedEvent(
99 val source : EntitySource ,
1010 val phoneNumbers : Set <String >,
1111 val state : ProcessingState ,
12+ val simNumber : Int? ,
1213 val error : String?
1314): AppEvent(NAME ) {
1415
Original file line number Diff line number Diff line change @@ -40,18 +40,21 @@ class EventsReceiver : EventsReceiver() {
4040 WebHookEvent .SmsSent -> SmsEventPayload .SmsSent (
4141 messageId = event.id,
4242 phoneNumber = phoneNumber,
43+ event.simNumber,
4344 sentAt = Date (),
4445 )
4546
4647 WebHookEvent .SmsDelivered -> SmsEventPayload .SmsDelivered (
4748 messageId = event.id,
4849 phoneNumber = phoneNumber,
50+ event.simNumber,
4951 deliveredAt = Date (),
5052 )
5153
5254 WebHookEvent .SmsFailed -> SmsEventPayload .SmsFailed (
5355 messageId = event.id,
5456 phoneNumber = phoneNumber,
57+ event.simNumber,
5558 failedAt = Date (),
5659 reason = event.error ? : " Unknown" ,
5760 )
Original file line number Diff line number Diff line change @@ -5,23 +5,27 @@ import java.util.Date
55sealed class SmsEventPayload (
66 val messageId : String ,
77 val phoneNumber : String ,
8+ val simNumber : Int? ,
89) {
910 class SmsSent (
1011 messageId : String ,
1112 phoneNumber : String ,
12- val sentAt : Date
13- ) : SmsEventPayload(messageId, phoneNumber)
13+ simNumber : Int? ,
14+ val sentAt : Date ,
15+ ) : SmsEventPayload(messageId, phoneNumber, simNumber)
1416
1517 class SmsDelivered (
1618 messageId : String ,
1719 phoneNumber : String ,
18- val deliveredAt : Date
19- ) : SmsEventPayload(messageId, phoneNumber)
20+ simNumber : Int? ,
21+ val deliveredAt : Date ,
22+ ) : SmsEventPayload(messageId, phoneNumber, simNumber)
2023
2124 class SmsFailed (
2225 messageId : String ,
2326 phoneNumber : String ,
27+ simNumber : Int? ,
2428 val failedAt : Date ,
2529 val reason : String ,
26- ) : SmsEventPayload(messageId, phoneNumber)
30+ ) : SmsEventPayload(messageId, phoneNumber, simNumber )
2731}
You can’t perform that action at this time.
0 commit comments