diff --git a/data/src/main/java/com/moez/QKSMS/receiver/SendSmsReceiver.kt b/data/src/main/java/com/moez/QKSMS/receiver/SendSmsReceiver.kt index 7e181878..f913f2e3 100644 --- a/data/src/main/java/com/moez/QKSMS/receiver/SendSmsReceiver.kt +++ b/data/src/main/java/com/moez/QKSMS/receiver/SendSmsReceiver.kt @@ -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 result = goAsync() - retrySending.execute(message.id) { result.finish() } - } + val messageId = intent.getLongExtra("id", -1L).takeIf { it >= 0 } ?: return + + val result = goAsync() + retrySending.execute(messageId) { result.finish() } } } diff --git a/data/src/main/java/com/moez/QKSMS/repository/MessageRepositoryImpl.kt b/data/src/main/java/com/moez/QKSMS/repository/MessageRepositoryImpl.kt index cd3f7769..ef777487 100644 --- a/data/src/main/java/com/moez/QKSMS/repository/MessageRepositoryImpl.kt +++ b/data/src/main/java/com/moez/QKSMS/repository/MessageRepositoryImpl.kt @@ -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() diff --git a/domain/src/main/java/com/moez/QKSMS/interactor/RetrySending.kt b/domain/src/main/java/com/moez/QKSMS/interactor/RetrySending.kt index 27df7874..71818f3d 100644 --- a/domain/src/main/java/com/moez/QKSMS/interactor/RetrySending.kt +++ b/domain/src/main/java/com/moez/QKSMS/interactor/RetrySending.kt @@ -27,10 +27,9 @@ import javax.inject.Inject class RetrySending @Inject constructor(private val messageRepo: MessageRepository) : Interactor() { override fun buildObservable(params: Long): Flowable { - 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) @@ -39,4 +38,4 @@ class RetrySending @Inject constructor(private val messageRepo: MessageRepositor } } -} \ No newline at end of file +}