Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 19052d4f authored by moezbhatti's avatar moezbhatti
Browse files

Fix MMS being stuck sending!

Fixes #1401
parent 54089df3
Loading
Loading
Loading
Loading
+1 −6
Original line number Diff line number Diff line
@@ -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)

+3 −11
Original line number Diff line number Diff line
@@ -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() }
            }
        }
    }

}
+2 −5
Original line number Diff line number Diff line
@@ -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
+2 −0
Original line number Diff line number Diff line
@@ -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" />