Skip to content

Commit

Permalink
Switch MMS groups to use the group database infrastructure
Browse files Browse the repository at this point in the history
Eliminate the concept of 'Recipients' (plural). There is now just
a 'Recipient', which contains an Address that is either an individual
or a group ID.

MMS groups now exist as part of the group database, just like push
groups.

// FREEBIE
  • Loading branch information
moxie0 committed Aug 28, 2017
1 parent 81682e0 commit 375207f
Show file tree
Hide file tree
Showing 106 changed files with 1,561 additions and 2,166 deletions.
4 changes: 2 additions & 2 deletions src/org/thoughtcrime/securesms/BindableConversationItem.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

import org.thoughtcrime.securesms.crypto.MasterSecret;
import org.thoughtcrime.securesms.database.model.MessageRecord;
import org.thoughtcrime.securesms.recipients.Recipients;
import org.thoughtcrime.securesms.recipients.Recipient;

import java.util.Locale;
import java.util.Set;
Expand All @@ -14,7 +14,7 @@ void bind(@NonNull MasterSecret masterSecret,
@NonNull MessageRecord messageRecord,
@NonNull Locale locale,
@NonNull Set<MessageRecord> batchSelected,
@NonNull Recipients recipients);
@NonNull Recipient recipients);

MessageRecord getMessageRecord();
}
18 changes: 7 additions & 11 deletions src/org/thoughtcrime/securesms/BlockedContactsActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,11 @@
import org.thoughtcrime.securesms.database.Address;
import org.thoughtcrime.securesms.database.loaders.BlockedContactsLoader;
import org.thoughtcrime.securesms.preferences.BlockedContactListItem;
import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.recipients.RecipientFactory;
import org.thoughtcrime.securesms.recipients.Recipients;
import org.thoughtcrime.securesms.util.DynamicLanguage;
import org.thoughtcrime.securesms.util.DynamicTheme;

import java.util.List;

public class BlockedContactsActivity extends PassphraseRequiredActionBarActivity {

private final DynamicTheme dynamicTheme = new DynamicTheme();
Expand Down Expand Up @@ -106,9 +104,9 @@ public void onLoaderReset(Loader<Cursor> loader) {

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Recipients recipients = ((BlockedContactListItem)view).getRecipients();
Intent intent = new Intent(getActivity(), RecipientPreferenceActivity.class);
intent.putExtra(RecipientPreferenceActivity.ADDRESSES_EXTRA, recipients.getAddresses());
Recipient recipient = ((BlockedContactListItem)view).getRecipient();
Intent intent = new Intent(getActivity(), RecipientPreferenceActivity.class);
intent.putExtra(RecipientPreferenceActivity.ADDRESS_EXTRA, recipient.getAddress());

startActivity(intent);
}
Expand All @@ -127,12 +125,10 @@ public View newView(Context context, Cursor cursor, ViewGroup parent) {

@Override
public void bindView(View view, Context context, Cursor cursor) {
String addressesConcat = cursor.getString(1);
List<Address> addresses = Address.fromSerializedList(addressesConcat, ' ');

Recipients recipients = RecipientFactory.getRecipientsFor(context, addresses.toArray(new Address[0]), true);
String address = cursor.getString(1);
Recipient recipient = RecipientFactory.getRecipientFor(context, Address.fromSerialized(address), true);

((BlockedContactListItem) view).set(recipients);
((BlockedContactListItem) view).set(recipient);
}
}

Expand Down
12 changes: 5 additions & 7 deletions src/org/thoughtcrime/securesms/ConfirmIdentityDialog.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
import org.thoughtcrime.securesms.crypto.storage.TextSecureIdentityKeyStore;
import org.thoughtcrime.securesms.database.Address;
import org.thoughtcrime.securesms.database.DatabaseFactory;
import org.thoughtcrime.securesms.database.MmsAddressDatabase;
import org.thoughtcrime.securesms.database.MmsDatabase;
import org.thoughtcrime.securesms.database.MmsSmsDatabase;
import org.thoughtcrime.securesms.database.PushDatabase;
Expand All @@ -24,7 +23,6 @@
import org.thoughtcrime.securesms.jobs.PushDecryptJob;
import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.recipients.RecipientFactory;
import org.thoughtcrime.securesms.recipients.Recipients;
import org.thoughtcrime.securesms.sms.MessageSender;
import org.thoughtcrime.securesms.util.Base64;
import org.thoughtcrime.securesms.util.VerifySpan;
Expand Down Expand Up @@ -138,17 +136,17 @@ private void processPendingMessageRecords(long threadId, IdentityKeyMismatch mis
private void processOutgoingMessageRecord(MessageRecord messageRecord) {
SmsDatabase smsDatabase = DatabaseFactory.getSmsDatabase(getContext());
MmsDatabase mmsDatabase = DatabaseFactory.getMmsDatabase(getContext());
MmsAddressDatabase mmsAddressDatabase = DatabaseFactory.getMmsAddressDatabase(getContext());

if (messageRecord.isMms()) {
mmsDatabase.removeMismatchedIdentity(messageRecord.getId(),
mismatch.getAddress(),
mismatch.getIdentityKey());

Recipients recipients = mmsAddressDatabase.getRecipientsForId(messageRecord.getId());

if (recipients.isGroupRecipient()) MessageSender.resendGroupMessage(getContext(), masterSecret, messageRecord, mismatch.getAddress());
else MessageSender.resend(getContext(), masterSecret, messageRecord);
if (messageRecord.getRecipient().isPushGroupRecipient()) {
MessageSender.resendGroupMessage(getContext(), messageRecord, mismatch.getAddress());
} else {
MessageSender.resend(getContext(), masterSecret, messageRecord);
}
} else {
smsDatabase.removeMismatchedIdentity(messageRecord.getId(),
mismatch.getAddress(),
Expand Down
Loading

0 comments on commit 375207f

Please sign in to comment.