mirror of
https://github.com/oxen-io/session-android.git
synced 2025-04-20 07:51:30 +00:00
Use DB sending type rather than in-memory hashtable.
This commit is contained in:
parent
79c554fcc7
commit
0b172cebce
@ -151,6 +151,14 @@ public class SmsDatabase extends Database implements MmsSmsColumns {
|
|||||||
updateTypeBitmask(id, Types.ENCRYPTION_MASK, Types.ENCRYPTION_REMOTE_BIT);
|
updateTypeBitmask(id, Types.ENCRYPTION_MASK, Types.ENCRYPTION_REMOTE_BIT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void markAsOutbox(long id) {
|
||||||
|
updateTypeBitmask(id, Types.BASE_TYPE_MASK, Types.BASE_OUTBOX_TYPE);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void markAsSending(long id) {
|
||||||
|
updateTypeBitmask(id, Types.BASE_TYPE_MASK, Types.BASE_SENDING_TYPE);
|
||||||
|
}
|
||||||
|
|
||||||
public void markAsSent(long id) {
|
public void markAsSent(long id) {
|
||||||
updateTypeBitmask(id, Types.BASE_TYPE_MASK, Types.BASE_SENT_TYPE);
|
updateTypeBitmask(id, Types.BASE_TYPE_MASK, Types.BASE_SENT_TYPE);
|
||||||
}
|
}
|
||||||
|
@ -35,13 +35,8 @@ import org.thoughtcrime.securesms.service.SendReceiveService.ToastHandler;
|
|||||||
import org.thoughtcrime.securesms.transport.UndeliverableMessageException;
|
import org.thoughtcrime.securesms.transport.UndeliverableMessageException;
|
||||||
import org.thoughtcrime.securesms.transport.UniversalTransport;
|
import org.thoughtcrime.securesms.transport.UniversalTransport;
|
||||||
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
public class SmsSender {
|
public class SmsSender {
|
||||||
|
|
||||||
private final Set<Long> pendingMessages = new HashSet<Long>();
|
|
||||||
|
|
||||||
private final Context context;
|
private final Context context;
|
||||||
private final ToastHandler toastHandler;
|
private final ToastHandler toastHandler;
|
||||||
|
|
||||||
@ -75,11 +70,9 @@ public class SmsSender {
|
|||||||
else reader = database.getOutgoingMessages(masterSecret);
|
else reader = database.getOutgoingMessages(masterSecret);
|
||||||
|
|
||||||
while (reader != null && (record = reader.getNext()) != null) {
|
while (reader != null && (record = reader.getNext()) != null) {
|
||||||
if (!pendingMessages.contains(record.getId())) {
|
database.markAsSending(record.getId());
|
||||||
pendingMessages.add(record.getId());
|
|
||||||
transport.deliver(record);
|
transport.deliver(record);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
} catch (UndeliverableMessageException ude) {
|
} catch (UndeliverableMessageException ude) {
|
||||||
Log.w("SmsSender", ude);
|
Log.w("SmsSender", ude);
|
||||||
DatabaseFactory.getSmsDatabase(context).markAsSentFailed(messageId);
|
DatabaseFactory.getSmsDatabase(context).markAsSentFailed(messageId);
|
||||||
@ -100,6 +93,7 @@ public class SmsSender {
|
|||||||
DatabaseFactory.getSmsDatabase(context).markAsSent(messageId);
|
DatabaseFactory.getSmsDatabase(context).markAsSent(messageId);
|
||||||
unregisterForRadioChanges();
|
unregisterForRadioChanges();
|
||||||
} else if (result == SmsManager.RESULT_ERROR_NO_SERVICE || result == SmsManager.RESULT_ERROR_RADIO_OFF) {
|
} else if (result == SmsManager.RESULT_ERROR_NO_SERVICE || result == SmsManager.RESULT_ERROR_RADIO_OFF) {
|
||||||
|
DatabaseFactory.getSmsDatabase(context).markAsOutbox(messageId);
|
||||||
toastHandler
|
toastHandler
|
||||||
.obtainMessage(0, context.getString(R.string.SmsReceiver_currently_unable_to_send_your_sms_message))
|
.obtainMessage(0, context.getString(R.string.SmsReceiver_currently_unable_to_send_your_sms_message))
|
||||||
.sendToTarget();
|
.sendToTarget();
|
||||||
@ -112,8 +106,6 @@ public class SmsSender {
|
|||||||
MessageNotifier.notifyMessageDeliveryFailed(context, recipients, threadId);
|
MessageNotifier.notifyMessageDeliveryFailed(context, recipients, threadId);
|
||||||
unregisterForRadioChanges();
|
unregisterForRadioChanges();
|
||||||
}
|
}
|
||||||
|
|
||||||
pendingMessages.remove(messageId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleDeliveredMessage(Intent intent) {
|
private void handleDeliveredMessage(Intent intent) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user