Migrate SMS messages into the MMS table.

This commit is contained in:
Greyson Parrelli
2022-12-14 14:52:54 -05:00
parent cb0e7ade14
commit e9d98b7d39
59 changed files with 4399 additions and 6146 deletions

View File

@@ -35,7 +35,6 @@ import java.util.List;
public final class MessageDetailsFragment extends FullScreenDialogFragment {
private static final String MESSAGE_ID_EXTRA = "message_id";
private static final String TYPE_EXTRA = "type";
private static final String RECIPIENT_EXTRA = "recipient_id";
private GlideRequests glideRequests;
@@ -49,7 +48,6 @@ public final class MessageDetailsFragment extends FullScreenDialogFragment {
Bundle args = new Bundle();
args.putLong(MESSAGE_ID_EXTRA, message.getId());
args.putString(TYPE_EXTRA, message.isMms() ? MmsSmsTable.MMS_TRANSPORT : MmsSmsTable.SMS_TRANSPORT);
args.putParcelable(RECIPIENT_EXTRA, recipientId);
dialogFragment.setArguments(args);
@@ -102,9 +100,8 @@ public final class MessageDetailsFragment extends FullScreenDialogFragment {
private void initializeViewModel() {
final RecipientId recipientId = requireArguments().getParcelable(RECIPIENT_EXTRA);
final String type = requireArguments().getString(TYPE_EXTRA);
final Long messageId = requireArguments().getLong(MESSAGE_ID_EXTRA, -1);
final Factory factory = new Factory(recipientId, type, messageId);
final Factory factory = new Factory(recipientId, messageId);
viewModel = new ViewModelProvider(this, factory).get(MessageDetailsViewModel.class);
viewModel.getMessageDetails().observe(this, details -> {

View File

@@ -37,8 +37,8 @@ public final class MessageDetailsRepository {
private final Context context = ApplicationDependencies.getApplication();
@NonNull LiveData<MessageRecord> getMessageRecord(String type, Long messageId) {
return new MessageRecordLiveData(new MessageId(messageId, type.equals(MmsSmsTable.MMS_TRANSPORT)));
@NonNull LiveData<MessageRecord> getMessageRecord(Long messageId) {
return new MessageRecordLiveData(new MessageId(messageId, true));
}
@NonNull LiveData<MessageDetails> getMessageDetails(@Nullable MessageRecord messageRecord) {

View File

@@ -17,11 +17,11 @@ final class MessageDetailsViewModel extends ViewModel {
private final LiveData<Recipient> recipient;
private final LiveData<MessageDetails> messageDetails;
private MessageDetailsViewModel(RecipientId recipientId, String type, Long messageId) {
private MessageDetailsViewModel(RecipientId recipientId, Long messageId) {
recipient = Recipient.live(recipientId).getLiveData();
MessageDetailsRepository repository = new MessageDetailsRepository();
LiveData<MessageRecord> messageRecord = repository.getMessageRecord(type, messageId);
LiveData<MessageRecord> messageRecord = repository.getMessageRecord(messageId);
messageDetails = Transformations.switchMap(messageRecord, repository::getMessageDetails);
}
@@ -37,18 +37,16 @@ final class MessageDetailsViewModel extends ViewModel {
static final class Factory implements ViewModelProvider.Factory {
private final RecipientId recipientId;
private final String type;
private final Long messageId;
Factory(RecipientId recipientId, String type, Long messageId) {
Factory(RecipientId recipientId, Long messageId) {
this.recipientId = recipientId;
this.type = type;
this.messageId = messageId;
}
@Override
public @NonNull <T extends ViewModel> T create(@NonNull Class<T> modelClass) {
return Objects.requireNonNull(modelClass.cast(new MessageDetailsViewModel(recipientId, type, messageId)));
return Objects.requireNonNull(modelClass.cast(new MessageDetailsViewModel(recipientId, messageId)));
}
}
}