Fix MMS being stuck sending!

Fixes #1401
This commit is contained in:
moezbhatti
2019-10-25 02:13:13 -04:00
parent 54089df316
commit 19052d4f93
4 changed files with 8 additions and 22 deletions
@@ -29,16 +29,11 @@ import javax.inject.Inject
class SmsDeliveredReceiver : BroadcastReceiver() {
companion object {
const val ACTION = "com.moez.QKSMS.SMS_DELIVERED"
}
@Inject lateinit var markDelivered: MarkDelivered
@Inject lateinit var markDeliveryFailed: MarkDeliveryFailed
override fun onReceive(context: Context, intent: Intent) {
AndroidInjection.inject(this, context)
context.unregisterReceiver(this)
val id = intent.getLongExtra("id", 0L)
@@ -57,4 +52,4 @@ class SmsDeliveredReceiver : BroadcastReceiver() {
}
}
}
}
@@ -22,7 +22,6 @@ import android.app.Activity
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.telephony.SmsManager
import com.moez.QKSMS.interactor.MarkFailed
import com.moez.QKSMS.interactor.MarkSent
import dagger.android.AndroidInjection
@@ -30,16 +29,11 @@ import javax.inject.Inject
class SmsSentReceiver : BroadcastReceiver() {
companion object {
const val ACTION = "com.moez.QKSMS.SMS_SENT"
}
@Inject lateinit var markSent: MarkSent
@Inject lateinit var markFailed: MarkFailed
override fun onReceive(context: Context, intent: Intent) {
AndroidInjection.inject(this, context)
context.unregisterReceiver(this)
val id = intent.getLongExtra("id", 0L)
@@ -49,13 +43,11 @@ class SmsSentReceiver : BroadcastReceiver() {
markSent.execute(id) { pendingResult.finish() }
}
SmsManager.RESULT_ERROR_GENERIC_FAILURE,
SmsManager.RESULT_ERROR_NO_SERVICE,
SmsManager.RESULT_ERROR_NULL_PDU,
SmsManager.RESULT_ERROR_RADIO_OFF -> {
else -> {
val pendingResult = goAsync()
markFailed.execute(MarkFailed.Params(id, resultCode)) { pendingResult.finish() }
}
}
}
}
}
@@ -24,7 +24,6 @@ import android.content.ContentUris
import android.content.ContentValues
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.media.MediaScannerConnection
import android.os.Build
import android.os.Environment
@@ -339,14 +338,12 @@ class MessageRepositoryImpl @Inject constructor(
?: arrayListOf()
val sentIntents = parts.map {
context.registerReceiver(SmsSentReceiver(), IntentFilter(SmsSentReceiver.ACTION))
val intent = Intent(SmsSentReceiver.ACTION).putExtra("id", message.id)
val intent = Intent(context, SmsSentReceiver::class.java).putExtra("id", message.id)
PendingIntent.getBroadcast(context, message.id.toInt(), intent, PendingIntent.FLAG_UPDATE_CURRENT)
}
val deliveredIntents = parts.map {
context.registerReceiver(SmsDeliveredReceiver(), IntentFilter(SmsDeliveredReceiver.ACTION))
val intent = Intent(SmsDeliveredReceiver.ACTION).putExtra("id", message.id)
val intent = Intent(context, SmsDeliveredReceiver::class.java).putExtra("id", message.id)
val pendingIntent = PendingIntent
.getBroadcast(context, message.id.toInt(), intent, PendingIntent.FLAG_UPDATE_CURRENT)
if (prefs.delivery.get()) pendingIntent else null
@@ -136,6 +136,8 @@
<data android:mimeType="application/vnd.wap.mms-message" />
</intent-filter>
</receiver>
<receiver android:name=".receiver.SmsSentReceiver" />
<receiver android:name=".receiver.SmsDeliveredReceiver" />
<receiver
android:name=".receiver.MmsSentReceiver"
android:taskAffinity="com.moez.QKSMS.MMS_SENT" />