That fuck shit the fascists are using
at master 52 lines 1.6 kB view raw
1package org.tm.archive.messagedetails; 2 3import androidx.annotation.NonNull; 4import androidx.lifecycle.LiveData; 5import androidx.lifecycle.Transformations; 6import androidx.lifecycle.ViewModel; 7import androidx.lifecycle.ViewModelProvider; 8 9import org.tm.archive.database.model.MessageRecord; 10import org.tm.archive.recipients.Recipient; 11import org.tm.archive.recipients.RecipientId; 12 13import java.util.Objects; 14 15final class MessageDetailsViewModel extends ViewModel { 16 17 private final LiveData<Recipient> recipient; 18 private final LiveData<MessageDetails> messageDetails; 19 20 private MessageDetailsViewModel(RecipientId recipientId, Long messageId) { 21 recipient = Recipient.live(recipientId).getLiveData(); 22 23 MessageDetailsRepository repository = new MessageDetailsRepository(); 24 LiveData<MessageRecord> messageRecord = repository.getMessageRecord(messageId); 25 26 messageDetails = Transformations.switchMap(messageRecord, repository::getMessageDetails); 27 } 28 29 @NonNull LiveData<MessageDetails> getMessageDetails() { 30 return messageDetails; 31 } 32 33 @NonNull LiveData<Recipient> getRecipient() { 34 return recipient; 35 } 36 37 static final class Factory implements ViewModelProvider.Factory { 38 39 private final RecipientId recipientId; 40 private final Long messageId; 41 42 Factory(RecipientId recipientId, Long messageId) { 43 this.recipientId = recipientId; 44 this.messageId = messageId; 45 } 46 47 @Override 48 public @NonNull <T extends ViewModel> T create(@NonNull Class<T> modelClass) { 49 return Objects.requireNonNull(modelClass.cast(new MessageDetailsViewModel(recipientId, messageId))); 50 } 51 } 52}