33 lines
1.4 KiB
Kotlin
33 lines
1.4 KiB
Kotlin
package com.simplemobiletools.smsmessenger.receivers
|
|
|
|
import android.content.BroadcastReceiver
|
|
import android.content.Context
|
|
import android.content.Intent
|
|
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
|
|
|
|
abstract class SendStatusReceiver : BroadcastReceiver() {
|
|
// Updates the status of the message in the internal database
|
|
abstract fun updateAndroidDatabase(context: Context, intent: Intent, receiverResultCode: Int)
|
|
|
|
// allows the implementer to update the status of the message in their database
|
|
abstract fun updateAppDatabase(context: Context, intent: Intent, receiverResultCode: Int)
|
|
|
|
override fun onReceive(context: Context, intent: Intent) {
|
|
val resultCode = resultCode
|
|
ensureBackgroundThread {
|
|
updateAndroidDatabase(context, intent, resultCode)
|
|
updateAppDatabase(context, intent, resultCode)
|
|
}
|
|
}
|
|
|
|
companion object {
|
|
const val MESSAGE_SENT_ACTION = "com.simplemobiletools.smsmessenger.receiver.SendStatusReceiver.MESSAGE_SENT"
|
|
const val MESSAGE_DELIVERED_ACTION = "com.simplemobiletools.smsmessenger.receiver.SendStatusReceiver.MESSAGE_DELIVERED"
|
|
|
|
// Defined by platform, but no constant provided. See docs for SmsManager.sendTextMessage.
|
|
const val EXTRA_ERROR_CODE = "errorCode"
|
|
const val EXTRA_SUB_ID = "subId"
|
|
|
|
const val NO_ERROR_CODE = -1
|
|
}
|
|
}
|