mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-02-14 23:18:43 +00:00
Move MediaFolder to core-model.
This commit is contained in:
committed by
Greyson Parrelli
parent
ddbbb4c21a
commit
e6918b592e
@@ -1,49 +0,0 @@
|
||||
package org.thoughtcrime.securesms.mediasend;
|
||||
|
||||
import android.net.Uri;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
/**
|
||||
* Represents a folder that's shown in {@link MediaPickerFolderFragment}.
|
||||
*/
|
||||
public class MediaFolder {
|
||||
|
||||
private final Uri thumbnailUri;
|
||||
private final String title;
|
||||
private final int itemCount;
|
||||
private final String bucketId;
|
||||
private final FolderType folderType;
|
||||
|
||||
MediaFolder(@NonNull Uri thumbnailUri, @NonNull String title, int itemCount, @NonNull String bucketId, @NonNull FolderType folderType) {
|
||||
this.thumbnailUri = thumbnailUri;
|
||||
this.title = title;
|
||||
this.itemCount = itemCount;
|
||||
this.bucketId = bucketId;
|
||||
this.folderType = folderType;
|
||||
}
|
||||
|
||||
public Uri getThumbnailUri() {
|
||||
return thumbnailUri;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public int getItemCount() {
|
||||
return itemCount;
|
||||
}
|
||||
|
||||
public String getBucketId() {
|
||||
return bucketId;
|
||||
}
|
||||
|
||||
public FolderType getFolderType() {
|
||||
return folderType;
|
||||
}
|
||||
|
||||
enum FolderType {
|
||||
NORMAL, CAMERA
|
||||
}
|
||||
}
|
||||
@@ -22,6 +22,7 @@ import org.signal.core.util.concurrent.SignalExecutors;
|
||||
import org.signal.core.util.logging.Log;
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.signal.core.models.media.Media;
|
||||
import org.signal.core.models.media.MediaFolder;
|
||||
import org.signal.core.models.media.TransformProperties;
|
||||
import org.thoughtcrime.securesms.database.AttachmentTable;
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies;
|
||||
@@ -154,14 +155,15 @@ public class MediaRepository {
|
||||
|
||||
String cameraBucketId = imageFolders.getCameraBucketId() != null ? imageFolders.getCameraBucketId() : videoFolders.getCameraBucketId();
|
||||
FolderData cameraFolder = cameraBucketId != null ? folders.remove(cameraBucketId) : null;
|
||||
List<MediaFolder> mediaFolders = Stream.of(folders.values()).map(folder -> new MediaFolder(folder.getThumbnail(),
|
||||
folder.getTitle(),
|
||||
folder.getCount(),
|
||||
folder.getBucketId(),
|
||||
MediaFolder.FolderType.NORMAL))
|
||||
.filter(folder -> folder.getTitle() != null)
|
||||
.sorted((o1, o2) -> o1.getTitle().toLowerCase().compareTo(o2.getTitle().toLowerCase()))
|
||||
.toList();
|
||||
List<MediaFolder> mediaFolders = Stream.of(folders.values())
|
||||
.filter(folder -> folder.getTitle() != null)
|
||||
.map(folder -> new MediaFolder(folder.getThumbnail(),
|
||||
folder.getTitle(),
|
||||
folder.getCount(),
|
||||
folder.getBucketId(),
|
||||
MediaFolder.FolderType.NORMAL))
|
||||
.sorted((o1, o2) -> o1.getTitle().toLowerCase().compareTo(o2.getTitle().toLowerCase()))
|
||||
.toList();
|
||||
|
||||
Uri allMediaThumbnail = imageFolders.getThumbnailTimestamp() > videoFolders.getThumbnailTimestamp() ? imageFolders.getThumbnail() : videoFolders.getThumbnail();
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ package org.thoughtcrime.securesms.mediasend.v2.gallery
|
||||
|
||||
import android.content.Context
|
||||
import org.signal.core.models.media.Media
|
||||
import org.thoughtcrime.securesms.mediasend.MediaFolder
|
||||
import org.signal.core.models.media.MediaFolder
|
||||
import org.thoughtcrime.securesms.mediasend.MediaRepository
|
||||
|
||||
class MediaGalleryRepository(context: Context, private val mediaRepository: MediaRepository) {
|
||||
|
||||
@@ -15,10 +15,10 @@ import com.bumptech.glide.request.RequestListener
|
||||
import com.bumptech.glide.request.target.Target
|
||||
import com.google.android.material.imageview.ShapeableImageView
|
||||
import org.signal.core.models.media.Media
|
||||
import org.signal.core.models.media.MediaFolder
|
||||
import org.signal.core.util.DimensionUnit
|
||||
import org.signal.core.util.logging.Log
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.mediasend.MediaFolder
|
||||
import org.thoughtcrime.securesms.mediasend.v2.review.MediaGalleryGridItemTouchListener
|
||||
import org.thoughtcrime.securesms.mms.DecryptableUri
|
||||
import org.thoughtcrime.securesms.mms.PartAuthority
|
||||
|
||||
@@ -3,7 +3,7 @@ package org.thoughtcrime.securesms.mediasend.v2.gallery
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import org.thoughtcrime.securesms.mediasend.MediaFolder
|
||||
import org.signal.core.models.media.MediaFolder
|
||||
import org.thoughtcrime.securesms.util.livedata.Store
|
||||
|
||||
class MediaGalleryViewModel(bucketId: String?, bucketTitle: String?, private val repository: MediaGalleryRepository) : ViewModel() {
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
/*
|
||||
* Copyright 2025 Signal Messenger, LLC
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
package org.signal.core.models.media
|
||||
|
||||
import android.net.Uri
|
||||
|
||||
/**
|
||||
* Represents a folder that's shown in a media selector, containing [Media] items.
|
||||
*/
|
||||
data class MediaFolder(
|
||||
val thumbnailUri: Uri,
|
||||
val title: String,
|
||||
val itemCount: Int,
|
||||
val bucketId: String,
|
||||
val folderType: FolderType
|
||||
) {
|
||||
enum class FolderType {
|
||||
NORMAL, CAMERA
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user