summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
author Andrey Yepin <ayepin@google.com> 2024-05-10 19:16:37 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-05-10 19:16:37 +0000
commit6b2802803702740646eb8f07bada2a4d2eec23b8 (patch)
tree4b9eeeb71f9819913498fd149fede5a9ed687509 /java
parentf95a9b5c71a57d6daf9b75c58f543e7bc5debe12 (diff)
parentb5c0bd45601a0d9406a78090c3b56fca3abd30c2 (diff)
Merge "Use preview uri for previews (instead of item uri)" into main
Diffstat (limited to 'java')
-rw-r--r--java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/CursorPreviewsInteractor.kt11
-rw-r--r--java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/FetchPreviewsInteractor.kt7
-rw-r--r--java/src/com/android/intentresolver/contentpreview/payloadtoggle/shared/model/PreviewModel.kt6
-rw-r--r--java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/viewmodel/ShareouselViewModel.kt2
4 files changed, 17 insertions, 9 deletions
diff --git a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/CursorPreviewsInteractor.kt b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/CursorPreviewsInteractor.kt
index 9d62ffa2..c7d29a72 100644
--- a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/CursorPreviewsInteractor.kt
+++ b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/CursorPreviewsInteractor.kt
@@ -241,10 +241,13 @@ constructor(
unclaimedRecords: MutableUnclaimedMap,
): PreviewModel =
unclaimedRecords.remove(row.uri)?.second
- ?: PreviewModel(
- uri = row.uri,
- mimeType = uriMetadataReader.getMetadata(row.uri).mimeType,
- )
+ ?: uriMetadataReader.getMetadata(row.uri).let { metadata ->
+ PreviewModel(
+ uri = row.uri,
+ previewUri = metadata.previewUri,
+ mimeType = metadata.mimeType,
+ )
+ }
private fun <M : MutablePreviewMap> M.putAllUnclaimedRight(unclaimed: UnclaimedMap): M =
putAllUnclaimedWhere(unclaimed) { it >= focusedItemIdx }
diff --git a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/FetchPreviewsInteractor.kt b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/FetchPreviewsInteractor.kt
index 927a3a84..c87504e1 100644
--- a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/FetchPreviewsInteractor.kt
+++ b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/FetchPreviewsInteractor.kt
@@ -60,7 +60,12 @@ constructor(
// Restrict parallelism so as to not overload the metadata reader; anecdotally, too
// many parallel queries causes failures.
.mapParallel(parallelism = 4) { uri ->
- PreviewModel(uri = uri, mimeType = uriMetadataReader.getMetadata(uri).mimeType)
+ val metadata = uriMetadataReader.getMetadata(uri)
+ PreviewModel(
+ uri = uri,
+ previewUri = metadata.previewUri,
+ mimeType = metadata.mimeType,
+ )
}
.toSet()
}
diff --git a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/shared/model/PreviewModel.kt b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/shared/model/PreviewModel.kt
index ff96a9f4..6b805391 100644
--- a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/shared/model/PreviewModel.kt
+++ b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/shared/model/PreviewModel.kt
@@ -20,10 +20,10 @@ import android.net.Uri
/** An individual preview presented in Shareousel. */
data class PreviewModel(
- /**
- * Uri for this preview; if this preview is selected, this will be shared with the target app.
- */
+ /** Uri for this item; if this preview is selected, this will be shared with the target app. */
val uri: Uri,
+ /** Uri for the preview image. */
+ val previewUri: Uri? = uri,
/** Mimetype for the data [uri] points to. */
val mimeType: String?,
)
diff --git a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/viewmodel/ShareouselViewModel.kt b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/viewmodel/ShareouselViewModel.kt
index 082581dc..cf118934 100644
--- a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/viewmodel/ShareouselViewModel.kt
+++ b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/viewmodel/ShareouselViewModel.kt
@@ -113,7 +113,7 @@ object ShareouselViewModelModule {
keySet.value?.maybeLoad(key)
val previewInteractor = interactor.preview(key)
ShareouselPreviewViewModel(
- bitmap = flow { emit(imageLoader(key.uri)) },
+ bitmap = flow { emit(key.previewUri?.let { imageLoader(it) }) },
contentType = flowOf(ContentType.Image), // TODO: convert from metadata
isSelected = previewInteractor.isSelected,
setSelected = previewInteractor::setSelected,