diff --git a/src/org/thoughtcrime/securesms/ApplicationPreferencesActivity.java b/src/org/thoughtcrime/securesms/ApplicationPreferencesActivity.java
index b6448cf4da..fdf751a0f2 100644
--- a/src/org/thoughtcrime/securesms/ApplicationPreferencesActivity.java
+++ b/src/org/thoughtcrime/securesms/ApplicationPreferencesActivity.java
@@ -345,16 +345,16 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredActionBarA
}
String seed = new MnemonicCodec(languageFileDirectory).encode(hexEncodedSeed, MnemonicCodec.Language.Configuration.Companion.getEnglish());
new AlertDialog.Builder(getContext())
- .setTitle(R.string.activity_settings_seed_dialog_title)
- .setMessage(seed)
- .setPositiveButton(R.string.activity_settings_seed_dialog_copy_button_title, (DialogInterface.OnClickListener) (dialog, which) -> {
- ClipboardManager clipboard = (ClipboardManager) getContext().getSystemService(Context.CLIPBOARD_SERVICE);
- ClipData clip = ClipData.newPlainText("seed", seed);
- clipboard.setPrimaryClip(clip);
- Toast.makeText(getContext(), R.string.activity_settings_seed_copied_message, Toast.LENGTH_SHORT).show();
- })
- .setNeutralButton(R.string.activity_settings_seed_dialog_ok_button_title, null)
- .show();
+ .setTitle(R.string.activity_settings_seed_dialog_title)
+ .setMessage(seed)
+ .setPositiveButton(R.string.activity_settings_seed_dialog_copy_button_title, (DialogInterface.OnClickListener) (dialog, which) -> {
+ ClipboardManager clipboard = (ClipboardManager) getContext().getSystemService(Context.CLIPBOARD_SERVICE);
+ ClipData clip = ClipData.newPlainText("seed", seed);
+ clipboard.setPrimaryClip(clip);
+ Toast.makeText(getContext(), R.string.activity_settings_seed_copied_message, Toast.LENGTH_SHORT).show();
+ })
+ .setNeutralButton(R.string.activity_settings_seed_dialog_ok_button_title, null)
+ .show();
} catch (Exception e) {
Log.d("Loki", e.getMessage());
}
diff --git a/src/org/thoughtcrime/securesms/components/AvatarImageView.java b/src/org/thoughtcrime/securesms/components/AvatarImageView.java
index 73a44ee5ef..2fba777f0a 100644
--- a/src/org/thoughtcrime/securesms/components/AvatarImageView.java
+++ b/src/org/thoughtcrime/securesms/components/AvatarImageView.java
@@ -80,7 +80,7 @@ public class AvatarImageView extends AppCompatImageView {
setOutlineProvider(new ViewOutlineProvider() {
@Override
public void getOutline(View view, Outline outline) {
- outline.setOval(0, 0, view.getWidth(), view.getHeight());
+ outline.setOval(0, 0, view.getWidth(), view.getHeight());
}
});
setClipToOutline(true);
@@ -132,11 +132,11 @@ public class AvatarImageView extends AppCompatImageView {
if (photo.contactPhoto != null) {
requestManager.load(photo.contactPhoto)
- .fallback(fallbackContactPhotoDrawable)
- .error(fallbackContactPhotoDrawable)
- .diskCacheStrategy(DiskCacheStrategy.ALL)
- .circleCrop()
- .into(this);
+ .fallback(fallbackContactPhotoDrawable)
+ .error(fallbackContactPhotoDrawable)
+ .diskCacheStrategy(DiskCacheStrategy.ALL)
+ .circleCrop()
+ .into(this);
} else {
setImageDrawable(fallbackContactPhotoDrawable);
}
@@ -184,9 +184,9 @@ public class AvatarImageView extends AppCompatImageView {
if (other == null) return false;
return other.recipient.equals(recipient) &&
- other.recipient.getColor().equals(recipient.getColor()) &&
- other.ready == ready &&
- Objects.equals(other.contactPhoto, contactPhoto);
+ other.recipient.getColor().equals(recipient.getColor()) &&
+ other.ready == ready &&
+ Objects.equals(other.contactPhoto, contactPhoto);
}
}
}
diff --git a/src/org/thoughtcrime/securesms/conversation/ConversationActivity.java b/src/org/thoughtcrime/securesms/conversation/ConversationActivity.java
index a72d219bd1..1ce8001563 100644
--- a/src/org/thoughtcrime/securesms/conversation/ConversationActivity.java
+++ b/src/org/thoughtcrime/securesms/conversation/ConversationActivity.java
@@ -661,9 +661,9 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
*/
case PICK_GIF:
setMedia(data.getData(),
- MediaType.GIF,
- data.getIntExtra(GiphyActivity.EXTRA_WIDTH, 0),
- data.getIntExtra(GiphyActivity.EXTRA_HEIGHT, 0));
+ MediaType.GIF,
+ data.getIntExtra(GiphyActivity.EXTRA_WIDTH, 0),
+ data.getIntExtra(GiphyActivity.EXTRA_HEIGHT, 0));
break;
case SMS_DEFAULT:
initializeSecurity(isSecureText, isDefaultSms);
@@ -2932,12 +2932,12 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
}
inputPanel.setQuote(GlideApp.with(this),
- messageRecord.getDateSent(),
- author,
- body,
- slideDeck,
- recipient,
- threadId);
+ messageRecord.getDateSent(),
+ author,
+ body,
+ slideDeck,
+ recipient,
+ threadId);
} else if (messageRecord.isMms() && !((MmsMessageRecord) messageRecord).getLinkPreviews().isEmpty()) {
LinkPreview linkPreview = ((MmsMessageRecord) messageRecord).getLinkPreviews().get(0);
@@ -2948,20 +2948,20 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
}
inputPanel.setQuote(GlideApp.with(this),
- messageRecord.getDateSent(),
- author,
- messageRecord.getBody(),
- slideDeck,
- recipient,
- threadId);
+ messageRecord.getDateSent(),
+ author,
+ messageRecord.getBody(),
+ slideDeck,
+ recipient,
+ threadId);
} else {
inputPanel.setQuote(GlideApp.with(this),
- messageRecord.getDateSent(),
- author,
- messageRecord.getBody(),
- messageRecord.isMms() ? ((MmsMessageRecord) messageRecord).getSlideDeck() : new SlideDeck(),
- recipient,
- threadId);
+ messageRecord.getDateSent(),
+ author,
+ messageRecord.getBody(),
+ messageRecord.isMms() ? ((MmsMessageRecord) messageRecord).getSlideDeck() : new SlideDeck(),
+ recipient,
+ threadId);
}
}
@@ -3209,6 +3209,5 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
FriendRequestProtocol.rejectFriendRequest(this, recipient);
updateInputPanel();
}
-
// endregion
}
diff --git a/src/org/thoughtcrime/securesms/conversation/ConversationUpdateItem.java b/src/org/thoughtcrime/securesms/conversation/ConversationUpdateItem.java
index 1228f85cd3..42b10d38ba 100644
--- a/src/org/thoughtcrime/securesms/conversation/ConversationUpdateItem.java
+++ b/src/org/thoughtcrime/securesms/conversation/ConversationUpdateItem.java
@@ -105,16 +105,16 @@ public class ConversationUpdateItem extends LinearLayout
this.sender.addListener(this);
- if (messageRecord.isGroupAction()) setGroupRecord(messageRecord);
- else if (messageRecord.isCallLog()) setCallRecord(messageRecord);
- else if (messageRecord.isJoined()) setJoinedRecord(messageRecord);
- else if (messageRecord.isExpirationTimerUpdate()) setTimerRecord(messageRecord);
- else if (messageRecord.isEndSession()) setEndSessionRecord(messageRecord);
- else if (messageRecord.isIdentityUpdate()) setIdentityRecord(messageRecord);
+ if (messageRecord.isGroupAction()) setGroupRecord(messageRecord);
+ else if (messageRecord.isCallLog()) setCallRecord(messageRecord);
+ else if (messageRecord.isJoined()) setJoinedRecord(messageRecord);
+ else if (messageRecord.isExpirationTimerUpdate()) setTimerRecord(messageRecord);
+ else if (messageRecord.isEndSession()) setEndSessionRecord(messageRecord);
+ else if (messageRecord.isIdentityUpdate()) setIdentityRecord(messageRecord);
else if (messageRecord.isIdentityVerified() ||
- messageRecord.isIdentityDefault()) setIdentityVerifyUpdate(messageRecord);
+ messageRecord.isIdentityDefault()) setIdentityVerifyUpdate(messageRecord);
else if (messageRecord.isLokiSessionRestoreSent()) setTextMessageRecord(messageRecord);
- else throw new AssertionError("Neither group nor log nor joined.");
+ else throw new AssertionError("Neither group nor log nor joined.");
if (batchSelected.contains(messageRecord)) setSelected(true);
else setSelected(false);
diff --git a/src/org/thoughtcrime/securesms/crypto/UnidentifiedAccessUtil.java b/src/org/thoughtcrime/securesms/crypto/UnidentifiedAccessUtil.java
index 7618e9db71..02b9c1f316 100644
--- a/src/org/thoughtcrime/securesms/crypto/UnidentifiedAccessUtil.java
+++ b/src/org/thoughtcrime/securesms/crypto/UnidentifiedAccessUtil.java
@@ -9,22 +9,15 @@ import android.support.annotation.WorkerThread;
import org.signal.libsignal.metadata.SignalProtos;
import org.signal.libsignal.metadata.certificate.CertificateValidator;
import org.signal.libsignal.metadata.certificate.InvalidCertificateException;
-import network.loki.messenger.BuildConfig;
import org.thoughtcrime.securesms.logging.Log;
import org.thoughtcrime.securesms.recipients.Recipient;
-import org.thoughtcrime.securesms.util.Base64;
import org.thoughtcrime.securesms.util.TextSecurePreferences;
import org.thoughtcrime.securesms.util.Util;
-import org.whispersystems.libsignal.InvalidKeyException;
-import org.whispersystems.libsignal.ecc.Curve;
-import org.whispersystems.libsignal.ecc.ECPublicKey;
import org.whispersystems.libsignal.util.guava.Optional;
import org.whispersystems.signalservice.api.crypto.UnidentifiedAccess;
import org.whispersystems.signalservice.api.crypto.UnidentifiedAccessPair;
import org.whispersystems.signalservice.api.push.SignalServiceAddress;
-import java.io.IOException;
-
public class UnidentifiedAccessUtil {
private static final String TAG = UnidentifiedAccessUtil.class.getSimpleName();
@@ -116,9 +109,9 @@ public class UnidentifiedAccessUtil {
String ourNumber = TextSecurePreferences.getLocalNumber(context);
if (ourNumber != null) {
SignalProtos.SenderCertificate certificate = SignalProtos.SenderCertificate.newBuilder()
- .setSender(ourNumber)
- .setSenderDevice(SignalServiceAddress.DEFAULT_DEVICE_ID)
- .build();
+ .setSender(ourNumber)
+ .setSenderDevice(SignalServiceAddress.DEFAULT_DEVICE_ID)
+ .build();
return certificate.toByteArray();
}
diff --git a/src/org/thoughtcrime/securesms/database/GroupDatabase.java b/src/org/thoughtcrime/securesms/database/GroupDatabase.java
index 2da43b0c5f..f873bfa97d 100644
--- a/src/org/thoughtcrime/securesms/database/GroupDatabase.java
+++ b/src/org/thoughtcrime/securesms/database/GroupDatabase.java
@@ -168,7 +168,7 @@ public class GroupDatabase extends Database {
GroupRecord record;
while ((record = reader.getNext()) != null) {
if (record.isClosedGroup() && record.members.contains(address)) {
- return true;
+ return true;
}
}
@@ -293,8 +293,7 @@ public class GroupDatabase extends Database {
contents.put(ADMINS, Address.toSerializedList(admins, ','));
contents.put(ACTIVE, 1);
- databaseHelper.getWritableDatabase().update(TABLE_NAME, contents, GROUP_ID + " = ?",
- new String[] {groupId});
+ databaseHelper.getWritableDatabase().update(TABLE_NAME, contents, GROUP_ID + " = ?", new String[] {groupId});
}
public void remove(String groupId, Address source) {
diff --git a/src/org/thoughtcrime/securesms/database/SmsDatabase.java b/src/org/thoughtcrime/securesms/database/SmsDatabase.java
index 38b5c1f95c..0c2200688c 100644
--- a/src/org/thoughtcrime/securesms/database/SmsDatabase.java
+++ b/src/org/thoughtcrime/securesms/database/SmsDatabase.java
@@ -341,12 +341,12 @@ public class SmsDatabase extends MessagingDatabase {
try {
cursor = database.query(TABLE_NAME, new String[] { ID, THREAD_ID, ADDRESS, TYPE },
- DATE_SENT + " = ?", new String[] { String.valueOf(timestamp) },
- null, null, null, null);
+ DATE_SENT + " = ?", new String[] { String.valueOf(timestamp) },
+ null, null, null, null);
while (cursor.moveToNext()) {
if (Types.isOutgoingMessageType(cursor.getLong(cursor.getColumnIndexOrThrow(TYPE)))) {
- isOutgoing = true;
+ isOutgoing = true;
}
}
} finally {
diff --git a/src/org/thoughtcrime/securesms/database/helpers/SQLCipherOpenHelper.java b/src/org/thoughtcrime/securesms/database/helpers/SQLCipherOpenHelper.java
index 9ccf46495b..f922df9c7f 100644
--- a/src/org/thoughtcrime/securesms/database/helpers/SQLCipherOpenHelper.java
+++ b/src/org/thoughtcrime/securesms/database/helpers/SQLCipherOpenHelper.java
@@ -544,7 +544,7 @@ public class SQLCipherOpenHelper extends SQLiteOpenHelper {
if (publicChat != null) {
byte[] groupId = publicChat.getId().getBytes();
String oldId = GroupUtil.getEncodedId(groupId, false);
- String newId = GroupUtil.getEncodedPublicChatId(groupId);
+ String newId = GroupUtil.getEncodedOpenGroupId(groupId);
ContentValues threadUpdate = new ContentValues();
threadUpdate.put("recipient_ids", newId);
db.update("thread", threadUpdate, "recipient_ids = ?", new String[]{ oldId });
diff --git a/src/org/thoughtcrime/securesms/database/model/SmsMessageRecord.java b/src/org/thoughtcrime/securesms/database/model/SmsMessageRecord.java
index fb7c4b2311..52c9700ebe 100644
--- a/src/org/thoughtcrime/securesms/database/model/SmsMessageRecord.java
+++ b/src/org/thoughtcrime/securesms/database/model/SmsMessageRecord.java
@@ -21,7 +21,6 @@ import android.content.Context;
import android.support.annotation.NonNull;
import android.text.SpannableString;
-import network.loki.messenger.R;
import org.thoughtcrime.securesms.database.MmsSmsColumns;
import org.thoughtcrime.securesms.database.SmsDatabase;
import org.thoughtcrime.securesms.database.documents.IdentityKeyMismatch;
@@ -30,6 +29,8 @@ import org.thoughtcrime.securesms.recipients.Recipient;
import java.util.LinkedList;
import java.util.List;
+import network.loki.messenger.R;
+
/**
* The message record model which represents standard SMS messages.
*
@@ -67,9 +68,9 @@ public class SmsMessageRecord extends MessageRecord {
int readReceiptCount, boolean unidentified, boolean isFriendRequest)
{
super(id, body, recipient, individualRecipient, recipientDeviceId,
- dateSent, dateReceived, threadId, status, deliveryReceiptCount, type,
- mismatches, new LinkedList<>(), subscriptionId,
- expiresIn, expireStarted, readReceiptCount, unidentified);
+ dateSent, dateReceived, threadId, status, deliveryReceiptCount, type,
+ mismatches, new LinkedList<>(), subscriptionId,
+ expiresIn, expireStarted, readReceiptCount, unidentified);
this.isFriendRequest = isFriendRequest;
}
diff --git a/src/org/thoughtcrime/securesms/groups/GroupManager.java b/src/org/thoughtcrime/securesms/groups/GroupManager.java
index cd84757400..ee37c5e4f6 100644
--- a/src/org/thoughtcrime/securesms/groups/GroupManager.java
+++ b/src/org/thoughtcrime/securesms/groups/GroupManager.java
@@ -37,7 +37,7 @@ import java.util.Set;
public class GroupManager {
public static long getOpenGroupThreadID(String id, @NonNull Context context) {
- final String groupID = GroupUtil.getEncodedPublicChatId(id.getBytes());
+ final String groupID = GroupUtil.getEncodedOpenGroupId(id.getBytes());
return getThreadIDFromGroupID(groupID, context);
}
@@ -47,7 +47,7 @@ public class GroupManager {
}
public static long getThreadIDFromGroupID(String groupID, @NonNull Context context) {
- final Recipient groupRecipient = Recipient.from(context, Address.fromSerialized(groupID), false);
+ final Recipient groupRecipient = Recipient.from(context, Address.fromSerialized(groupID), false);
return DatabaseFactory.getThreadDatabase(context).getThreadIdIfExistsFor(groupRecipient);
}
@@ -78,10 +78,10 @@ public class GroupManager {
final Set
memberAddresses = getMemberAddresses(members);
final Set adminAddresses = getMemberAddresses(admins);
- String masterPublicKey = TextSecurePreferences.getMasterHexEncodedPublicKey(context);
- String publicKeyToUse = masterPublicKey != null ? masterPublicKey : TextSecurePreferences.getLocalNumber(context);
+ String masterPublicKeyOrNull = TextSecurePreferences.getMasterHexEncodedPublicKey(context);
+ String masterPublicKey = masterPublicKeyOrNull != null ? masterPublicKeyOrNull : TextSecurePreferences.getLocalNumber(context);
- memberAddresses.add(Address.fromSerialized(publicKeyToUse));
+ memberAddresses.add(Address.fromSerialized(masterPublicKey));
groupDatabase.create(groupId, name, new LinkedList<>(memberAddresses), null, null, new LinkedList<>(adminAddresses));
if (!mms) {
@@ -94,28 +94,28 @@ public class GroupManager {
}
}
- public static @NonNull GroupActionResult createOpenGroup(@NonNull String id,
- @NonNull Context context,
- @Nullable Bitmap avatar,
- @Nullable String name)
+ public static @NonNull GroupActionResult createOpenGroup(@NonNull String id,
+ @NonNull Context context,
+ @Nullable Bitmap avatar,
+ @Nullable String name)
{
- final String groupID = GroupUtil.getEncodedPublicChatId(id.getBytes());
+ final String groupID = GroupUtil.getEncodedOpenGroupId(id.getBytes());
return createLokiGroup(groupID, context, avatar, name);
}
- public static @NonNull GroupActionResult createRSSFeed(@NonNull String id,
- @NonNull Context context,
- @Nullable Bitmap avatar,
- @Nullable String name)
+ public static @NonNull GroupActionResult createRSSFeed(@NonNull String id,
+ @NonNull Context context,
+ @Nullable Bitmap avatar,
+ @Nullable String name)
{
final String groupID = GroupUtil.getEncodedRSSFeedId(id.getBytes());
return createLokiGroup(groupID, context, avatar, name);
}
- private static @NonNull GroupActionResult createLokiGroup(@NonNull String groupId,
- @NonNull Context context,
- @Nullable Bitmap avatar,
- @Nullable String name)
+ private static @NonNull GroupActionResult createLokiGroup(@NonNull String groupId,
+ @NonNull Context context,
+ @Nullable Bitmap avatar,
+ @Nullable String name)
{
final byte[] avatarBytes = BitmapUtil.toByteArray(avatar);
final GroupDatabase groupDatabase = DatabaseFactory.getGroupDatabase(context);
diff --git a/src/org/thoughtcrime/securesms/groups/GroupMessageProcessor.java b/src/org/thoughtcrime/securesms/groups/GroupMessageProcessor.java
index e5079b3081..cd8f045507 100644
--- a/src/org/thoughtcrime/securesms/groups/GroupMessageProcessor.java
+++ b/src/org/thoughtcrime/securesms/groups/GroupMessageProcessor.java
@@ -143,7 +143,7 @@ public class GroupMessageProcessor {
// Loki - Only process update messages if we're part of the group
Address userMasterDeviceAddress = Address.fromSerialized(userMasterDevice);
if (!groupRecord.getMembers().contains(userMasterDeviceAddress) &&
- !group.getMembers().or(Collections.emptyList()).contains(userMasterDevice)) {
+ !group.getMembers().or(Collections.emptyList()).contains(userMasterDevice)) {
Log.d("Loki", "Received a group update message from a group we're not a member of: " + id + "; ignoring.");
database.setActive(id, false);
return null;
diff --git a/src/org/thoughtcrime/securesms/jobs/AttachmentDownloadJob.java b/src/org/thoughtcrime/securesms/jobs/AttachmentDownloadJob.java
index 2cc37cd615..5b4b7809ca 100644
--- a/src/org/thoughtcrime/securesms/jobs/AttachmentDownloadJob.java
+++ b/src/org/thoughtcrime/securesms/jobs/AttachmentDownloadJob.java
@@ -196,15 +196,17 @@ public class AttachmentDownloadJob extends BaseJob implements InjectableType {
try {
long id = Long.parseLong(attachment.getLocation());
if (isPublicAttachment) {
- return new SignalServiceAttachmentPointer(id, null, new byte[0],
- Optional.of(Util.toIntExact(attachment.getSize())),
- Optional.absent(),
- 0,
- 0,
- Optional.fromNullable(attachment.getDigest()),
- Optional.fromNullable(attachment.getFileName()),
- attachment.isVoiceNote(),
- Optional.absent(), attachment.getUrl());
+ return new SignalServiceAttachmentPointer(id,
+ null,
+ new byte[0],
+ Optional.of(Util.toIntExact(attachment.getSize())),
+ Optional.absent(),
+ 0,
+ 0,
+ Optional.fromNullable(attachment.getDigest()),
+ Optional.fromNullable(attachment.getFileName()),
+ attachment.isVoiceNote(),
+ Optional.absent(), attachment.getUrl());
}
byte[] key = Base64.decode(attachment.getKey());
diff --git a/src/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java b/src/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java
index 24f803c8ee..2c18845211 100644
--- a/src/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java
+++ b/src/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java
@@ -142,15 +142,13 @@ public class MultiDeviceContactUpdateJob extends BaseJob implements InjectableTy
// Loki - Only sync contacts we are friends with
if (SyncMessagesProtocol.shouldSyncContact(context, address)) {
out.write(new DeviceContact(address.toPhoneString(),
- Optional.fromNullable(recipient.getName()),
- getAvatar(recipient.getContactUri()),
- Optional.fromNullable(recipient.getColor().serialize()),
- verifiedMessage,
- Optional.fromNullable(recipient.getProfileKey()),
- recipient.isBlocked(),
- recipient.getExpireMessages() > 0 ?
- Optional.of(recipient.getExpireMessages()) :
- Optional.absent()));
+ Optional.fromNullable(recipient.getName()),
+ getAvatar(recipient.getContactUri()),
+ Optional.fromNullable(recipient.getColor().serialize()),
+ verifiedMessage,
+ Optional.fromNullable(recipient.getProfileKey()),
+ recipient.isBlocked(),
+ recipient.getExpireMessages() > 0 ? Optional.of(recipient.getExpireMessages()) : Optional.absent()));
}
out.close();
diff --git a/src/org/thoughtcrime/securesms/jobs/MultiDeviceGroupUpdateJob.java b/src/org/thoughtcrime/securesms/jobs/MultiDeviceGroupUpdateJob.java
index 677ee4e947..c35d6b8e3a 100644
--- a/src/org/thoughtcrime/securesms/jobs/MultiDeviceGroupUpdateJob.java
+++ b/src/org/thoughtcrime/securesms/jobs/MultiDeviceGroupUpdateJob.java
@@ -124,7 +124,7 @@ public class MultiDeviceGroupUpdateJob extends BaseJob implements InjectableType
@Override
public boolean onShouldRetry(@NonNull Exception exception) {
- // Loki - Disabled because we have our own retrying
+ // Loki - Disabled since we have our own retrying
return false;
}
diff --git a/src/org/thoughtcrime/securesms/jobs/PushDecryptJob.java b/src/org/thoughtcrime/securesms/jobs/PushDecryptJob.java
index 59cc5121ec..454d7d436d 100644
--- a/src/org/thoughtcrime/securesms/jobs/PushDecryptJob.java
+++ b/src/org/thoughtcrime/securesms/jobs/PushDecryptJob.java
@@ -128,6 +128,7 @@ import org.whispersystems.signalservice.loki.api.fileserver.LokiFileServerAPI;
import org.whispersystems.signalservice.loki.crypto.LokiServiceCipher;
import org.whispersystems.signalservice.loki.protocol.mentions.MentionsManager;
import org.whispersystems.signalservice.loki.protocol.meta.LokiServiceMessage;
+import org.whispersystems.signalservice.loki.utilities.PublicKeyValidation;
import java.security.MessageDigest;
import java.security.SecureRandom;
@@ -762,8 +763,8 @@ public class PushDecryptJob extends BaseJob implements InjectableType {
}
IncomingMediaMessage mediaMessage = new IncomingMediaMessage(masterAddress, message.getTimestamp(), -1,
- message.getExpiresInSeconds() * 1000L, false, content.isNeedsReceipt(), message.getBody(), message.getGroupInfo(), message.getAttachments(),
- quote, sharedContacts, linkPreviews, sticker);
+ message.getExpiresInSeconds() * 1000L, false, content.isNeedsReceipt(), message.getBody(), message.getGroupInfo(), message.getAttachments(),
+ quote, sharedContacts, linkPreviews, sticker);
MmsDatabase database = DatabaseFactory.getMmsDatabase(context);
database.beginTransaction();
@@ -824,7 +825,7 @@ public class PushDecryptJob extends BaseJob implements InjectableType {
private long handleSynchronizeSentExpirationUpdate(@NonNull SentTranscriptMessage message) throws MmsException {
MmsDatabase database = DatabaseFactory.getMmsDatabase(context);
- Recipient recipient = getSyncMessageMasterDestination(message.getDestination().get());
+ Recipient recipient = getSyncMessageMasterDestination(message);
OutgoingExpirationUpdateMessage expirationUpdateMessage = new OutgoingExpirationUpdateMessage(recipient,
message.getTimestamp(),
@@ -844,7 +845,7 @@ public class PushDecryptJob extends BaseJob implements InjectableType {
throws MmsException
{
MmsDatabase database = DatabaseFactory.getMmsDatabase(context);
- Recipient recipients = getSyncMessageMasterDestination(message.getDestination().get());
+ Recipient recipients = getSyncMessageMasterDestination(message);
Optional quote = getValidatedQuote(message.getMessage().getQuote());
Optional sticker = getStickerAttachment(message.getMessage().getSticker());
Optional> sharedContacts = getContacts(message.getMessage().getSharedContacts());
@@ -1007,7 +1008,7 @@ public class PushDecryptJob extends BaseJob implements InjectableType {
throws MmsException
{
- Recipient recipient = getSyncMessageMasterDestination(message.getDestination().get());
+ Recipient recipient = getSyncMessageMasterDestination(message);
String body = message.getMessage().getBody().or("");
long expiresInMillis = message.getMessage().getExpiresInSeconds() * 1000L;
@@ -1394,10 +1395,42 @@ public class PushDecryptJob extends BaseJob implements InjectableType {
}
}
- private Recipient getSyncMessageMasterDestination(String publicKey) {
- Recipient recipient = Recipient.from(context, Address.fromSerialized(publicKey), false);
- if (recipient.isGroupRecipient()) {
- return recipient;
+ private Recipient getSyncMessageMasterDestination(SentTranscriptMessage message) {
+ if (message.getMessage().isGroupMessage()) {
+ return Recipient.from(context, Address.fromSerialized(GroupUtil.getEncodedId(message.getMessage().getGroupInfo().get())), false);
+ } else {
+ String publicKey = message.getDestination().get();
+ String userPublicKey = TextSecurePreferences.getLocalNumber(context);
+ Set allUserDevices = org.whispersystems.signalservice.loki.protocol.multidevice.MultiDeviceProtocol.shared.getAllLinkedDevices(userPublicKey);
+ if (allUserDevices.contains(publicKey)) {
+ return Recipient.from(context, Address.fromSerialized(userPublicKey), false);
+ } else {
+ try {
+ // TODO: Burn this with fire when we can
+ PromiseUtilities.timeout(LokiFileServerAPI.shared.getDeviceLinks(publicKey, false), 4000).get();
+ String masterPublicKey = org.whispersystems.signalservice.loki.protocol.multidevice.MultiDeviceProtocol.shared.getMasterDevice(publicKey);
+ if (masterPublicKey == null) {
+ masterPublicKey = publicKey;
+ }
+ return Recipient.from(context, Address.fromSerialized(masterPublicKey), false);
+ } catch (Exception e) {
+ return Recipient.from(context, Address.fromSerialized(publicKey), false);
+ }
+ }
+ }
+ }
+
+ private Recipient getMessageDestination(SignalServiceContent content, SignalServiceDataMessage message) {
+ if (message.getGroupInfo().isPresent()) {
+ return Recipient.from(context, Address.fromExternal(context, GroupUtil.getEncodedId(message.getGroupInfo().get().getGroupId(), false)), false);
+ } else {
+ return Recipient.from(context, Address.fromExternal(context, content.getSender()), false);
+ }
+ }
+
+ private Recipient getMessageMasterDestination(String publicKey) {
+ if (!PublicKeyValidation.isValid(publicKey)) {
+ return Recipient.from(context, Address.fromSerialized(publicKey), false);
} else {
String userPublicKey = TextSecurePreferences.getLocalNumber(context);
Set allUserDevices = org.whispersystems.signalservice.loki.protocol.multidevice.MultiDeviceProtocol.shared.getAllLinkedDevices(userPublicKey);
@@ -1413,39 +1446,12 @@ public class PushDecryptJob extends BaseJob implements InjectableType {
}
return Recipient.from(context, Address.fromSerialized(masterPublicKey), false);
} catch (Exception e) {
- return recipient;
+ return Recipient.from(context, Address.fromSerialized(publicKey), false);
}
}
}
}
- private Recipient getMessageDestination(SignalServiceContent content, SignalServiceDataMessage message) {
- if (message.getGroupInfo().isPresent()) {
- return Recipient.from(context, Address.fromExternal(context, GroupUtil.getEncodedId(message.getGroupInfo().get().getGroupId(), false)), false);
- } else {
- return Recipient.from(context, Address.fromExternal(context, content.getSender()), false);
- }
- }
-
- private Recipient getMessageMasterDestination(String publicKey) {
- Recipient recipient = Recipient.from(context, Address.fromSerialized(publicKey), false);
- if (recipient.isGroupRecipient()) {
- return recipient;
- } else {
- try {
- // TODO: Burn this with fire when we can
- PromiseUtilities.timeout(LokiFileServerAPI.shared.getDeviceLinks(publicKey, false), 4000).get();
- String masterPublicKey = org.whispersystems.signalservice.loki.protocol.multidevice.MultiDeviceProtocol.shared.getMasterDevice(publicKey);
- if (masterPublicKey == null) {
- masterPublicKey = publicKey;
- }
- return Recipient.from(context, Address.fromSerialized(masterPublicKey), false);
- } catch (Exception e) {
- return recipient;
- }
- }
- }
-
private void notifyTypingStoppedFromIncomingMessage(@NonNull Recipient conversationRecipient, @NonNull String sender, int device) {
Recipient author = Recipient.from(context, Address.fromSerialized(sender), false);
long threadId = DatabaseFactory.getThreadDatabase(context).getThreadIdFor(conversationRecipient);
diff --git a/src/org/thoughtcrime/securesms/jobs/PushMediaSendJob.java b/src/org/thoughtcrime/securesms/jobs/PushMediaSendJob.java
index 6051021665..3779252021 100644
--- a/src/org/thoughtcrime/securesms/jobs/PushMediaSendJob.java
+++ b/src/org/thoughtcrime/securesms/jobs/PushMediaSendJob.java
@@ -145,10 +145,10 @@ public class PushMediaSendJob extends PushSendJob implements InjectableType {
@Override
public @NonNull Data serialize() {
Data.Builder builder = new Data.Builder()
- .putLong(KEY_TEMPLATE_MESSAGE_ID, templateMessageId)
- .putLong(KEY_MESSAGE_ID, messageId)
- .putString(KEY_DESTINATION, destination.serialize())
- .putBoolean(KEY_IS_LOKI_PRE_KEY_BUNDLE_MESSAGE, isLokiPreKeyBundleMessage);
+ .putLong(KEY_TEMPLATE_MESSAGE_ID, templateMessageId)
+ .putLong(KEY_MESSAGE_ID, messageId)
+ .putString(KEY_DESTINATION, destination.serialize())
+ .putBoolean(KEY_IS_LOKI_PRE_KEY_BUNDLE_MESSAGE, isLokiPreKeyBundleMessage);
if (customFriendRequestMessage != null) { builder.putString(KEY_CUSTOM_FR_MESSAGE, customFriendRequestMessage); }
return builder.build();
diff --git a/src/org/thoughtcrime/securesms/jobs/PushTextSendJob.java b/src/org/thoughtcrime/securesms/jobs/PushTextSendJob.java
index f6f58b6c74..3d018d14dc 100644
--- a/src/org/thoughtcrime/securesms/jobs/PushTextSendJob.java
+++ b/src/org/thoughtcrime/securesms/jobs/PushTextSendJob.java
@@ -85,10 +85,10 @@ public class PushTextSendJob extends PushSendJob implements InjectableType {
@Override
public @NonNull Data serialize() {
Data.Builder builder = new Data.Builder()
- .putLong(KEY_TEMPLATE_MESSAGE_ID, templateMessageId)
- .putLong(KEY_MESSAGE_ID, messageId)
- .putString(KEY_DESTINATION, destination.serialize())
- .putBoolean(KEY_IS_LOKI_PRE_KEY_BUNDLE_MESSAGE, isLokiPreKeyBundleMessage);
+ .putLong(KEY_TEMPLATE_MESSAGE_ID, templateMessageId)
+ .putLong(KEY_MESSAGE_ID, messageId)
+ .putString(KEY_DESTINATION, destination.serialize())
+ .putBoolean(KEY_IS_LOKI_PRE_KEY_BUNDLE_MESSAGE, isLokiPreKeyBundleMessage);
if (customFriendRequestMessage != null) { builder.putString(KEY_CUSTOM_FR_MESSAGE, customFriendRequestMessage); }
return builder.build();
diff --git a/src/org/thoughtcrime/securesms/jobs/RetrieveProfileAvatarJob.java b/src/org/thoughtcrime/securesms/jobs/RetrieveProfileAvatarJob.java
index a891ab1487..9c574bd6ea 100644
--- a/src/org/thoughtcrime/securesms/jobs/RetrieveProfileAvatarJob.java
+++ b/src/org/thoughtcrime/securesms/jobs/RetrieveProfileAvatarJob.java
@@ -99,8 +99,8 @@ public class RetrieveProfileAvatarJob extends BaseJob implements InjectableType
File downloadDestination = File.createTempFile("avatar", "jpg", context.getCacheDir());
try {
- InputStream avatarStream = receiver.retrieveProfileAvatar(profileAvatar, downloadDestination, profileKey, MAX_PROFILE_SIZE_BYTES);
- File decryptDestination = File.createTempFile("avatar", "jpg", context.getCacheDir());
+ InputStream avatarStream = receiver.retrieveProfileAvatar(profileAvatar, downloadDestination, profileKey, MAX_PROFILE_SIZE_BYTES);
+ File decryptDestination = File.createTempFile("avatar", "jpg", context.getCacheDir());
Util.copy(avatarStream, new FileOutputStream(decryptDestination));
decryptDestination.renameTo(AvatarHelper.getAvatarFile(context, recipient.getAddress()));
diff --git a/src/org/thoughtcrime/securesms/jobs/TypingSendJob.java b/src/org/thoughtcrime/securesms/jobs/TypingSendJob.java
index 92d08f34b0..51015297f7 100644
--- a/src/org/thoughtcrime/securesms/jobs/TypingSendJob.java
+++ b/src/org/thoughtcrime/securesms/jobs/TypingSendJob.java
@@ -84,8 +84,8 @@ public class TypingSendJob extends BaseJob implements InjectableType {
throw new IllegalStateException("Tried to send a typing indicator to a non-existent thread.");
}
- List recipients = Collections.singletonList(recipient);
- Optional groupId = Optional.absent();
+ List recipients = Collections.singletonList(recipient);
+ Optional groupId = Optional.absent();
if (recipient.isGroupRecipient()) {
recipients = DatabaseFactory.getGroupDatabase(context).getGroupMembers(recipient.getAddress().toGroupString(), false);
diff --git a/src/org/thoughtcrime/securesms/notifications/MarkReadReceiver.java b/src/org/thoughtcrime/securesms/notifications/MarkReadReceiver.java
index 0ad6cd020a..04aa6d8ead 100644
--- a/src/org/thoughtcrime/securesms/notifications/MarkReadReceiver.java
+++ b/src/org/thoughtcrime/securesms/notifications/MarkReadReceiver.java
@@ -99,8 +99,8 @@ public class MarkReadReceiver extends BroadcastReceiver {
for (String device : linkedDevices) {
Address deviceAsAddress = Address.fromExternal(context, device);
ApplicationContext.getInstance(context)
- .getJobManager()
- .add(new SendReadReceiptJob(deviceAsAddress, timestamps));
+ .getJobManager()
+ .add(new SendReadReceiptJob(deviceAsAddress, timestamps));
}
}
}
diff --git a/src/org/thoughtcrime/securesms/notifications/MessageNotifier.java b/src/org/thoughtcrime/securesms/notifications/MessageNotifier.java
index 759ab268ea..c3fd7ad1e3 100644
--- a/src/org/thoughtcrime/securesms/notifications/MessageNotifier.java
+++ b/src/org/thoughtcrime/securesms/notifications/MessageNotifier.java
@@ -332,8 +332,8 @@ public class MessageNotifier {
if (canReply) {
builder.addAndroidAutoAction(notificationState.getAndroidAutoReplyIntent(context, recipient),
- notificationState.getAndroidAutoHeardIntent(context, notificationId),
- notifications.get(0).getTimestamp());
+ notificationState.getAndroidAutoHeardIntent(context, notificationId),
+ notifications.get(0).getTimestamp());
}
ListIterator iterator = notifications.listIterator(notifications.size());
diff --git a/src/org/thoughtcrime/securesms/notifications/SingleRecipientNotificationBuilder.java b/src/org/thoughtcrime/securesms/notifications/SingleRecipientNotificationBuilder.java
index f7072e2ebf..7f8bf3abc9 100644
--- a/src/org/thoughtcrime/securesms/notifications/SingleRecipientNotificationBuilder.java
+++ b/src/org/thoughtcrime/securesms/notifications/SingleRecipientNotificationBuilder.java
@@ -247,10 +247,8 @@ public class SingleRecipientNotificationBuilder extends AbstractNotificationBuil
}
private Bitmap getCircularBitmap(Bitmap bitmap) {
- final Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
- bitmap.getHeight(), Bitmap.Config.ARGB_8888);
+ final Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
final Canvas canvas = new Canvas(output);
-
final int color = Color.RED;
final Paint paint = new Paint();
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
@@ -260,7 +258,6 @@ public class SingleRecipientNotificationBuilder extends AbstractNotificationBuil
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(color);
canvas.drawOval(rectF, paint);
-
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint);
diff --git a/src/org/thoughtcrime/securesms/preferences/NotificationsPreferenceFragment.java b/src/org/thoughtcrime/securesms/preferences/NotificationsPreferenceFragment.java
index e5b38ad99e..9b21b90dad 100644
--- a/src/org/thoughtcrime/securesms/preferences/NotificationsPreferenceFragment.java
+++ b/src/org/thoughtcrime/securesms/preferences/NotificationsPreferenceFragment.java
@@ -37,11 +37,11 @@ public class NotificationsPreferenceFragment extends ListSummaryPreferenceFragme
String fcmKey = "pref_key_use_fcm";
((SwitchPreferenceCompat)findPreference(fcmKey)).setChecked(TextSecurePreferences.isUsingFCM(getContext()));
this.findPreference(fcmKey)
- .setOnPreferenceChangeListener((preference, newValue) -> {
- TextSecurePreferences.setIsUsingFCM(getContext(), (boolean) newValue);
- ApplicationContext.getInstance(getContext()).registerForFCMIfNeeded(true);
- return true;
- });
+ .setOnPreferenceChangeListener((preference, newValue) -> {
+ TextSecurePreferences.setIsUsingFCM(getContext(), (boolean) newValue);
+ ApplicationContext.getInstance(getContext()).registerForFCMIfNeeded(true);
+ return true;
+ });
Preference ledBlinkPref = this.findPreference(TextSecurePreferences.LED_BLINK_PREF);
diff --git a/src/org/thoughtcrime/securesms/preferences/widgets/ProfilePreference.java b/src/org/thoughtcrime/securesms/preferences/widgets/ProfilePreference.java
index b48e8c4021..7edfb89df4 100644
--- a/src/org/thoughtcrime/securesms/preferences/widgets/ProfilePreference.java
+++ b/src/org/thoughtcrime/securesms/preferences/widgets/ProfilePreference.java
@@ -36,7 +36,7 @@ public class ProfilePreference extends Preference {
private TextView profileNameView;
private TextView profileNumberView;
private TextView profileTagView;
- private String ourDeviceWords;
+ private String shortDeviceMnemonic;
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public ProfilePreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
@@ -81,8 +81,8 @@ public class ProfilePreference extends Preference {
Context context = getContext();
String userPublicKey = TextSecurePreferences.getLocalNumber(context);
- String masterPublicKey = TextSecurePreferences.getMasterHexEncodedPublicKey(context);
- String publicKeyToUse = masterPublicKey != null ? masterPublicKey : userPublicKey;
+ String userMasterPublicKey = TextSecurePreferences.getMasterHexEncodedPublicKey(context);
+ String publicKeyToUse = userMasterPublicKey != null ? userMasterPublicKey : userPublicKey;
final Address address = Address.fromSerialized(publicKeyToUse);
final Recipient recipient = Recipient.from(context, address, false);
final String displayName = TextSecurePreferences.getProfileName(context);
@@ -121,13 +121,14 @@ public class ProfilePreference extends Preference {
profileNameView.setVisibility(TextUtils.isEmpty(displayName) ? View.GONE : View.VISIBLE);
profileNumberView.setText(address.toPhoneString());
- profileTagView.setVisibility(masterPublicKey == null ? View.GONE : View.VISIBLE);
- if (masterPublicKey != null && ourDeviceWords == null) {
+ profileTagView.setVisibility(userMasterPublicKey == null ? View.GONE : View.VISIBLE);
+
+ if (userMasterPublicKey != null && shortDeviceMnemonic == null) {
MnemonicCodec codec = new MnemonicCodec(MnemonicUtilities.getLanguageFileDirectory(context));
- ourDeviceWords = MnemonicUtilities.getFirst3Words(codec, userPublicKey);
+ shortDeviceMnemonic = MnemonicUtilities.getFirst3Words(codec, userPublicKey);
}
String tag = context.getResources().getString(R.string.activity_settings_linked_device_tag);
- profileTagView.setText(String.format(tag, ourDeviceWords != null ? ourDeviceWords : "-"));
+ profileTagView.setText(String.format(tag, shortDeviceMnemonic != null ? shortDeviceMnemonic : "-"));
}
}
diff --git a/src/org/thoughtcrime/securesms/push/MessageSenderEventListener.java b/src/org/thoughtcrime/securesms/push/MessageSenderEventListener.java
index 9b203e34d7..d27752fac3 100644
--- a/src/org/thoughtcrime/securesms/push/MessageSenderEventListener.java
+++ b/src/org/thoughtcrime/securesms/push/MessageSenderEventListener.java
@@ -8,9 +8,6 @@ import org.whispersystems.signalservice.api.SignalServiceMessageSender;
import org.whispersystems.signalservice.api.push.SignalServiceAddress;
public class MessageSenderEventListener implements SignalServiceMessageSender.EventListener {
-
- private static final String TAG = MessageSenderEventListener.class.getSimpleName();
-
private final Context context;
public MessageSenderEventListener(Context context) {
@@ -22,15 +19,18 @@ public class MessageSenderEventListener implements SignalServiceMessageSender.Ev
SecurityEvent.broadcastSecurityUpdateEvent(context);
}
- @Override public void onFriendRequestSending(long messageID, long threadID) {
+ @Override
+ public void onFriendRequestSending(long messageID, long threadID) {
FriendRequestProtocol.setFriendRequestStatusToSendingIfNeeded(context, messageID, threadID);
}
- @Override public void onFriendRequestSent(long messageID, long threadID) {
+ @Override
+ public void onFriendRequestSent(long messageID, long threadID) {
FriendRequestProtocol.setFriendRequestStatusToSentIfNeeded(context, messageID, threadID);
}
- @Override public void onFriendRequestSendingFailed(long messageID, long threadID) {
+ @Override
+ public void onFriendRequestSendingFailed(long messageID, long threadID) {
FriendRequestProtocol.setFriendRequestStatusToFailedIfNeeded(context, messageID, threadID);
}
}
diff --git a/src/org/thoughtcrime/securesms/recipients/Recipient.java b/src/org/thoughtcrime/securesms/recipients/Recipient.java
index 297a6cf6b7..9e45ef78d4 100644
--- a/src/org/thoughtcrime/securesms/recipients/Recipient.java
+++ b/src/org/thoughtcrime/securesms/recipients/Recipient.java
@@ -456,7 +456,7 @@ public class Recipient implements RecipientModifiedListener {
public synchronized String toShortString() {
String name = getName();
- return (name == null ? address.serialize() : name);
+ return (name != null ? name : address.serialize());
}
public synchronized @NonNull Drawable getFallbackContactPhotoDrawable(Context context, boolean inverted) {
@@ -469,8 +469,8 @@ public class Recipient implements RecipientModifiedListener {
else {
String userPublicKey = TextSecurePreferences.getLocalNumber(context);
String publicKey = address.serialize();
- String masterDevice = TextSecurePreferences.getMasterHexEncodedPublicKey(context);
- String publicKeyToUse = (publicKey.equalsIgnoreCase(userPublicKey) && masterDevice != null) ? masterDevice : publicKey;
+ String userMasterPublicKey = TextSecurePreferences.getMasterHexEncodedPublicKey(context);
+ String publicKeyToUse = (publicKey.equalsIgnoreCase(userPublicKey) && userMasterPublicKey != null) ? userMasterPublicKey : publicKey;
return new JazzIdenticonContactPhoto(publicKeyToUse);
}
}
diff --git a/src/org/thoughtcrime/securesms/search/SearchRepository.java b/src/org/thoughtcrime/securesms/search/SearchRepository.java
index 956b473e70..46b47128f7 100644
--- a/src/org/thoughtcrime/securesms/search/SearchRepository.java
+++ b/src/org/thoughtcrime/securesms/search/SearchRepository.java
@@ -1,16 +1,13 @@
package org.thoughtcrime.securesms.search;
-import android.Manifest;
import android.content.Context;
import android.database.Cursor;
import android.database.DatabaseUtils;
-import android.database.MergeCursor;
import android.support.annotation.NonNull;
import android.text.TextUtils;
import com.annimon.stream.Stream;
-
import org.thoughtcrime.securesms.contacts.ContactAccessor;
import org.thoughtcrime.securesms.contacts.ContactsDatabase;
import org.thoughtcrime.securesms.database.Address;
@@ -20,13 +17,11 @@ import org.thoughtcrime.securesms.database.SearchDatabase;
import org.thoughtcrime.securesms.database.ThreadDatabase;
import org.thoughtcrime.securesms.database.model.ThreadRecord;
import org.thoughtcrime.securesms.logging.Log;
-import org.thoughtcrime.securesms.permissions.Permissions;
import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.search.model.MessageResult;
import org.thoughtcrime.securesms.search.model.SearchResult;
import org.thoughtcrime.securesms.util.Stopwatch;
-import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -122,7 +117,7 @@ public class SearchRepository {
private CursorList queryContacts(String query) {
return CursorList.emptyList();
- /* Loki - Don't need contact permissions
+ /* Loki - We don't need contacts permission
if (!Permissions.hasAny(context, Manifest.permission.READ_CONTACTS, Manifest.permission.WRITE_CONTACTS)) {
return CursorList.emptyList();
}
diff --git a/src/org/thoughtcrime/securesms/util/GroupUtil.java b/src/org/thoughtcrime/securesms/util/GroupUtil.java
index b8e74e85e1..4b67444384 100644
--- a/src/org/thoughtcrime/securesms/util/GroupUtil.java
+++ b/src/org/thoughtcrime/securesms/util/GroupUtil.java
@@ -28,16 +28,16 @@ import static org.whispersystems.signalservice.internal.push.SignalServiceProtos
public class GroupUtil {
- private static final String ENCODED_SIGNAL_GROUP_PREFIX = "__textsecure_group__!";
- private static final String ENCODED_MMS_GROUP_PREFIX = "__signal_mms_group__!";
- private static final String ENCODED_PUBLIC_CHAT_GROUP_PREFIX = "__loki_public_chat_group__!";
- private static final String ENCODED_RSS_FEED_GROUP_PREFIX = "__loki_rss_feed_group__!";
- private static final String TAG = GroupUtil.class.getSimpleName();
+ private static final String ENCODED_CLOSED_GROUP_PREFIX = "__textsecure_group__!";
+ private static final String ENCODED_MMS_GROUP_PREFIX = "__signal_mms_group__!";
+ private static final String ENCODED_OPEN_GROUP_PREFIX = "__loki_public_chat_group__!";
+ private static final String ENCODED_RSS_FEED_GROUP_PREFIX = "__loki_rss_feed_group__!";
+ private static final String TAG = GroupUtil.class.getSimpleName();
public static String getEncodedId(SignalServiceGroup group) {
byte[] groupId = group.getGroupId();
if (group.getGroupType() == SignalServiceGroup.GroupType.PUBLIC_CHAT) {
- return getEncodedPublicChatId(groupId);
+ return getEncodedOpenGroupId(groupId);
} else if (group.getGroupType() == SignalServiceGroup.GroupType.RSS_FEED) {
return getEncodedRSSFeedId(groupId);
}
@@ -45,11 +45,11 @@ public class GroupUtil {
}
public static String getEncodedId(byte[] groupId, boolean mms) {
- return (mms ? ENCODED_MMS_GROUP_PREFIX : ENCODED_SIGNAL_GROUP_PREFIX) + Hex.toStringCondensed(groupId);
+ return (mms ? ENCODED_MMS_GROUP_PREFIX : ENCODED_CLOSED_GROUP_PREFIX) + Hex.toStringCondensed(groupId);
}
- public static String getEncodedPublicChatId(byte[] groupId) {
- return ENCODED_PUBLIC_CHAT_GROUP_PREFIX + Hex.toStringCondensed(groupId);
+ public static String getEncodedOpenGroupId(byte[] groupId) {
+ return ENCODED_OPEN_GROUP_PREFIX + Hex.toStringCondensed(groupId);
}
public static String getEncodedRSSFeedId(byte[] groupId) {
@@ -70,7 +70,7 @@ public class GroupUtil {
}
public static boolean isEncodedGroup(@NonNull String groupId) {
- return groupId.startsWith(ENCODED_SIGNAL_GROUP_PREFIX) || groupId.startsWith(ENCODED_MMS_GROUP_PREFIX) || groupId.startsWith(ENCODED_PUBLIC_CHAT_GROUP_PREFIX) || groupId.startsWith(ENCODED_RSS_FEED_GROUP_PREFIX);
+ return groupId.startsWith(ENCODED_CLOSED_GROUP_PREFIX) || groupId.startsWith(ENCODED_MMS_GROUP_PREFIX) || groupId.startsWith(ENCODED_OPEN_GROUP_PREFIX) || groupId.startsWith(ENCODED_RSS_FEED_GROUP_PREFIX);
}
public static boolean isMmsGroup(@NonNull String groupId) {
@@ -78,7 +78,7 @@ public class GroupUtil {
}
public static boolean isOpenGroup(@NonNull String groupId) {
- return groupId.startsWith(ENCODED_PUBLIC_CHAT_GROUP_PREFIX);
+ return groupId.startsWith(ENCODED_OPEN_GROUP_PREFIX);
}
public static boolean isRSSFeed(@NonNull String groupId) {
@@ -86,7 +86,7 @@ public class GroupUtil {
}
public static boolean isClosedGroup(@NonNull String groupId) {
- return groupId.startsWith(ENCODED_SIGNAL_GROUP_PREFIX);
+ return groupId.startsWith(ENCODED_CLOSED_GROUP_PREFIX);
}
@WorkerThread
@@ -159,9 +159,9 @@ public class GroupUtil {
// If we were the one that quit then we need to leave the group (only relevant for slave
// devices in a multi device context)
if (!removedMembers.isEmpty()) {
- String masterPublicKey = TextSecurePreferences.getMasterHexEncodedPublicKey(context);
- String userPublicKey = masterPublicKey != null ? masterPublicKey : TextSecurePreferences.getLocalNumber(context);
- wasCurrentUserRemoved = removedMembers.contains(userPublicKey);
+ String masterPublicKeyOrNull = TextSecurePreferences.getMasterHexEncodedPublicKey(context);
+ String masterPublicKey = masterPublicKeyOrNull != null ? masterPublicKeyOrNull : TextSecurePreferences.getLocalNumber(context);
+ wasCurrentUserRemoved = removedMembers.contains(masterPublicKey);
}
}
}