mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-20 16:49:40 +01:00
Migrate SMS messages into the MMS table.
This commit is contained in:
@@ -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 -> {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user