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

Commit cfd5bb72 authored by Moez Bhatti's avatar Moez Bhatti
Browse files

Refresh realm before trying to resend

Fixes #1523
parent 2c4823fc
Loading
Loading
Loading
Loading
+4 −7
Original line number Diff line number Diff line
@@ -34,13 +34,10 @@ class SendSmsReceiver : BroadcastReceiver() {
    override fun onReceive(context: Context, intent: Intent) {
        AndroidInjection.inject(this, context)

        intent.getLongExtra("id", -1L)
                .takeIf { it >= 0 }
                ?.let(messageRepo::getMessage)
                ?.let { message ->
        val messageId = intent.getLongExtra("id", -1L).takeIf { it >= 0 } ?: return

        val result = goAsync()
                    retrySending.execute(message.id) { result.finish() }
                }
        retrySending.execute(messageId) { result.finish() }
    }

}
+1 −2
Original line number Diff line number Diff line
@@ -50,7 +50,6 @@ import com.moez.QKSMS.receiver.SendSmsReceiver
import com.moez.QKSMS.receiver.SmsDeliveredReceiver
import com.moez.QKSMS.receiver.SmsSentReceiver
import com.moez.QKSMS.util.ImageUtils
import com.moez.QKSMS.util.PhoneNumberUtils
import com.moez.QKSMS.util.Preferences
import com.moez.QKSMS.util.tryOrNull
import io.realm.Case
@@ -71,7 +70,6 @@ class MessageRepositoryImpl @Inject constructor(
    private val context: Context,
    private val imageRepository: ImageRepository,
    private val messageIds: KeyManager,
    private val phoneNumberUtils: PhoneNumberUtils,
    private val prefs: Preferences,
    private val syncRepository: SyncRepository
) : MessageRepository {
@@ -97,6 +95,7 @@ class MessageRepositoryImpl @Inject constructor(

    override fun getMessage(id: Long): Message? {
        return Realm.getDefaultInstance()
                .also { realm -> realm.refresh() }
                .where(Message::class.java)
                .equalTo("id", id)
                .findFirst()
+2 −3
Original line number Diff line number Diff line
@@ -27,10 +27,9 @@ import javax.inject.Inject
class RetrySending @Inject constructor(private val messageRepo: MessageRepository) : Interactor<Long>() {

    override fun buildObservable(params: Long): Flowable<Message> {

        return Flowable.just(params)
                .doOnNext(messageRepo::markSending)
                .mapNotNull(messageRepo::getMessage)
                .doOnNext { message -> messageRepo.markSending(message.id) }
                .doOnNext { message ->
                    when (message.isSms()) {
                        true -> messageRepo.sendSms(message)