mirror of
https://github.com/oxen-io/session-android.git
synced 2025-10-20 11:31:58 +00:00
more precise sms controls
// FREEBIE
This commit is contained in:
@@ -35,6 +35,7 @@ import org.thoughtcrime.securesms.transport.RetryLaterException;
|
||||
import org.thoughtcrime.securesms.transport.UndeliverableMessageException;
|
||||
import org.thoughtcrime.securesms.transport.UniversalTransport;
|
||||
import org.thoughtcrime.securesms.transport.UntrustedIdentityException;
|
||||
import org.thoughtcrime.securesms.transport.UserInterventionRequiredException;
|
||||
import org.whispersystems.textsecure.crypto.MasterSecret;
|
||||
|
||||
import ws.com.google.android.mms.MmsException;
|
||||
@@ -78,11 +79,16 @@ public class MmsSender {
|
||||
|
||||
if (result.isUpgradedSecure()) database.markAsSecure(message.getDatabaseMessageId());
|
||||
if (result.isPush()) database.markAsPush(message.getDatabaseMessageId());
|
||||
|
||||
|
||||
database.markAsSent(message.getDatabaseMessageId(), result.getMessageId(),
|
||||
result.getResponseStatus());
|
||||
|
||||
systemStateListener.unregisterForConnectivityChange();
|
||||
} catch (UserInterventionRequiredException uire) {
|
||||
Log.w("MmsSender", uire);
|
||||
database.markAsPendingApproval(message.getDatabaseMessageId());
|
||||
Recipients recipients = threads.getRecipientsForThreadId(threadId);
|
||||
MessageNotifier.notifyMessageDeliveryFailed(context, recipients, threadId);
|
||||
} catch (UndeliverableMessageException e) {
|
||||
Log.w("MmsSender", e);
|
||||
database.markAsSentFailed(message.getDatabaseMessageId());
|
||||
|
@@ -62,6 +62,8 @@ public class SendReceiveService extends Service {
|
||||
public static final String DOWNLOAD_PUSH_ACTION = "org.thoughtcrime.securesms.SendReceiveService.DOWNLOAD_PUSH_ACTION";
|
||||
public static final String DOWNLOAD_AVATAR_ACTION = "org.thoughtcrime.securesms.SendReceiveService.DOWNLOAD_AVATAR_ACTION";
|
||||
|
||||
public static final String MASTER_SECRET_EXTRA = "master_secret";
|
||||
|
||||
private static final int SEND_SMS = 0;
|
||||
private static final int RECEIVE_SMS = 1;
|
||||
private static final int SEND_MMS = 2;
|
||||
@@ -307,7 +309,7 @@ public class SendReceiveService extends Service {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
Log.w("SendReceiveService", "Got a MasterSecret broadcast...");
|
||||
initializeWithMasterSecret((MasterSecret)intent.getParcelableExtra("master_secret"));
|
||||
initializeWithMasterSecret((MasterSecret)intent.getParcelableExtra(MASTER_SECRET_EXTRA));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -40,6 +40,8 @@ import org.thoughtcrime.securesms.transport.RetryLaterException;
|
||||
import org.thoughtcrime.securesms.transport.UndeliverableMessageException;
|
||||
import org.thoughtcrime.securesms.transport.UniversalTransport;
|
||||
import org.thoughtcrime.securesms.transport.UntrustedIdentityException;
|
||||
import org.thoughtcrime.securesms.transport.UserInterventionRequiredException;
|
||||
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||
import org.whispersystems.textsecure.crypto.MasterSecret;
|
||||
import org.whispersystems.textsecure.storage.Session;
|
||||
|
||||
@@ -84,6 +86,10 @@ public class SmsSender {
|
||||
database.markAsSending(record.getId());
|
||||
|
||||
transport.deliver(record);
|
||||
} catch (UserInterventionRequiredException uire) {
|
||||
Log.w("SmsSender", uire);
|
||||
DatabaseFactory.getSmsDatabase(context).markAsPendingApproval(record.getId());
|
||||
MessageNotifier.notifyMessageDeliveryFailed(context, record.getRecipients(), record.getThreadId());
|
||||
} catch (UntrustedIdentityException e) {
|
||||
Log.w("SmsSender", e);
|
||||
IncomingIdentityUpdateMessage identityUpdateMessage = IncomingIdentityUpdateMessage.createFor(e.getE164Number(), e.getIdentityKey());
|
||||
@@ -92,6 +98,7 @@ public class SmsSender {
|
||||
} catch (UndeliverableMessageException ude) {
|
||||
Log.w("SmsSender", ude);
|
||||
DatabaseFactory.getSmsDatabase(context).markAsSentFailed(record.getId());
|
||||
MessageNotifier.notifyMessageDeliveryFailed(context, record.getRecipients(), record.getThreadId());
|
||||
} catch (RetryLaterException rle) {
|
||||
Log.w("SmsSender", rle);
|
||||
DatabaseFactory.getSmsDatabase(context).markAsOutbox(record.getId());
|
||||
|
Reference in New Issue
Block a user