diff options
Diffstat (limited to 'java')
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, |