mirror of
https://github.com/oxen-io/session-android.git
synced 2025-05-02 12:30:48 +00:00
Filter out non-media from media send screen.
This commit is contained in:
parent
f70bf9c5bd
commit
4643dea2ad
@ -11,6 +11,7 @@ import android.text.TextUtils;
|
|||||||
|
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
|
import org.thoughtcrime.securesms.util.MediaUtil;
|
||||||
import org.thoughtcrime.securesms.util.Util;
|
import org.thoughtcrime.securesms.util.Util;
|
||||||
import org.whispersystems.libsignal.util.guava.Optional;
|
import org.whispersystems.libsignal.util.guava.Optional;
|
||||||
|
|
||||||
@ -45,15 +46,18 @@ class MediaSendViewModel extends ViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void setInitialSelectedMedia(@NonNull List<Media> newMedia) {
|
void setInitialSelectedMedia(@NonNull List<Media> newMedia) {
|
||||||
boolean allBucketsPopulated = Stream.of(newMedia).reduce(true, (populated, m) -> populated && m.getBucketId().isPresent());
|
List<Media> filteredMedia = getFilteredMedia(newMedia);
|
||||||
|
boolean allBucketsPopulated = Stream.of(filteredMedia).reduce(true, (populated, m) -> populated && m.getBucketId().isPresent());
|
||||||
|
|
||||||
selectedMedia.setValue(newMedia);
|
selectedMedia.setValue(filteredMedia);
|
||||||
bucketId.setValue(allBucketsPopulated ? computeBucketId(newMedia) : Optional.absent());
|
bucketId.setValue(allBucketsPopulated ? computeBucketId(filteredMedia) : Optional.absent());
|
||||||
}
|
}
|
||||||
|
|
||||||
void onSelectedMediaChanged(@NonNull List<Media> newMedia) {
|
void onSelectedMediaChanged(@NonNull List<Media> newMedia) {
|
||||||
selectedMedia.setValue(newMedia);
|
List<Media> filteredMedia = getFilteredMedia(newMedia);
|
||||||
position.setValue(newMedia.isEmpty() ? -1 : 0);
|
|
||||||
|
selectedMedia.setValue(filteredMedia);
|
||||||
|
position.setValue(filteredMedia.isEmpty() ? -1 : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void onFolderSelected(@NonNull String bucketId) {
|
void onFolderSelected(@NonNull String bucketId) {
|
||||||
@ -120,6 +124,13 @@ class MediaSendViewModel extends ViewModel {
|
|||||||
return Optional.of(candidate);
|
return Optional.of(candidate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private @NonNull List<Media> getFilteredMedia(@NonNull List<Media> media) {
|
||||||
|
return Stream.of(media).filter(m -> MediaUtil.isGif(m.getMimeType()) ||
|
||||||
|
MediaUtil.isImageType(m.getMimeType()) ||
|
||||||
|
MediaUtil.isVideoType(m.getMimeType())).toList();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
static class Factory extends ViewModelProvider.NewInstanceFactory {
|
static class Factory extends ViewModelProvider.NewInstanceFactory {
|
||||||
|
|
||||||
private final MediaRepository repository;
|
private final MediaRepository repository;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user