|
|
@ -2,14 +2,13 @@ package org.thoughtcrime.securesms.jobs;
|
|
|
|
|
|
|
|
|
|
|
|
import android.support.annotation.NonNull;
|
|
|
|
import android.support.annotation.NonNull;
|
|
|
|
|
|
|
|
|
|
|
|
import org.thoughtcrime.securesms.database.MessagingDatabase.SyncMessageId;
|
|
|
|
|
|
|
|
import org.thoughtcrime.securesms.database.RecipientDatabase.UnidentifiedAccessMode;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import org.thoughtcrime.securesms.ApplicationContext;
|
|
|
|
import org.thoughtcrime.securesms.ApplicationContext;
|
|
|
|
import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil;
|
|
|
|
import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil;
|
|
|
|
import org.thoughtcrime.securesms.database.Address;
|
|
|
|
import org.thoughtcrime.securesms.database.Address;
|
|
|
|
import org.thoughtcrime.securesms.database.DatabaseFactory;
|
|
|
|
import org.thoughtcrime.securesms.database.DatabaseFactory;
|
|
|
|
|
|
|
|
import org.thoughtcrime.securesms.database.MessagingDatabase.SyncMessageId;
|
|
|
|
import org.thoughtcrime.securesms.database.NoSuchMessageException;
|
|
|
|
import org.thoughtcrime.securesms.database.NoSuchMessageException;
|
|
|
|
|
|
|
|
import org.thoughtcrime.securesms.database.RecipientDatabase.UnidentifiedAccessMode;
|
|
|
|
import org.thoughtcrime.securesms.database.SmsDatabase;
|
|
|
|
import org.thoughtcrime.securesms.database.SmsDatabase;
|
|
|
|
import org.thoughtcrime.securesms.database.model.SmsMessageRecord;
|
|
|
|
import org.thoughtcrime.securesms.database.model.SmsMessageRecord;
|
|
|
|
import org.thoughtcrime.securesms.dependencies.InjectableType;
|
|
|
|
import org.thoughtcrime.securesms.dependencies.InjectableType;
|
|
|
@ -30,11 +29,16 @@ import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage;
|
|
|
|
import org.whispersystems.signalservice.api.messages.multidevice.SignalServiceSyncMessage;
|
|
|
|
import org.whispersystems.signalservice.api.messages.multidevice.SignalServiceSyncMessage;
|
|
|
|
import org.whispersystems.signalservice.api.push.SignalServiceAddress;
|
|
|
|
import org.whispersystems.signalservice.api.push.SignalServiceAddress;
|
|
|
|
import org.whispersystems.signalservice.api.push.exceptions.UnregisteredUserException;
|
|
|
|
import org.whispersystems.signalservice.api.push.exceptions.UnregisteredUserException;
|
|
|
|
|
|
|
|
import org.whispersystems.signalservice.internal.push.SignalServiceProtos;
|
|
|
|
|
|
|
|
import org.whispersystems.signalservice.loki.api.LokiAPI;
|
|
|
|
|
|
|
|
import org.whispersystems.signalservice.loki.messaging.SignalMessageInfo;
|
|
|
|
|
|
|
|
|
|
|
|
import java.io.IOException;
|
|
|
|
import java.io.IOException;
|
|
|
|
|
|
|
|
|
|
|
|
import javax.inject.Inject;
|
|
|
|
import javax.inject.Inject;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import kotlin.Unit;
|
|
|
|
|
|
|
|
|
|
|
|
public class PushTextSendJob extends PushSendJob implements InjectableType {
|
|
|
|
public class PushTextSendJob extends PushSendJob implements InjectableType {
|
|
|
|
|
|
|
|
|
|
|
|
public static final String KEY = "PushTextSendJob";
|
|
|
|
public static final String KEY = "PushTextSendJob";
|
|
|
@ -90,6 +94,11 @@ public class PushTextSendJob extends PushSendJob implements InjectableType {
|
|
|
|
byte[] profileKey = recipient.getProfileKey();
|
|
|
|
byte[] profileKey = recipient.getProfileKey();
|
|
|
|
UnidentifiedAccessMode accessMode = recipient.getUnidentifiedAccessMode();
|
|
|
|
UnidentifiedAccessMode accessMode = recipient.getUnidentifiedAccessMode();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String hexEncodedPublicKey = TextSecurePreferences.getLocalNumber(context);
|
|
|
|
|
|
|
|
SignalMessageInfo message = new SignalMessageInfo(SignalServiceProtos.Envelope.Type.FRIEND_REQUEST, System.currentTimeMillis(), hexEncodedPublicKey, 0, "stub", recipient.getAddress().serialize(), 4 * 24 * 60 * 60 * 1000, false);
|
|
|
|
|
|
|
|
LokiAPI api = new LokiAPI(hexEncodedPublicKey, DatabaseFactory.getLokiAPIDatabase(context));
|
|
|
|
|
|
|
|
api.sendSignalMessage(message, () -> Unit.INSTANCE);
|
|
|
|
|
|
|
|
|
|
|
|
boolean unidentified = deliver(record);
|
|
|
|
boolean unidentified = deliver(record);
|
|
|
|
|
|
|
|
|
|
|
|
database.markAsSent(messageId, true);
|
|
|
|
database.markAsSent(messageId, true);
|
|
|
|