diff options
author | 2024-05-09 15:09:21 -0700 | |
---|---|---|
committer | 2024-05-10 10:57:57 -0700 | |
commit | b5c0bd45601a0d9406a78090c3b56fca3abd30c2 (patch) | |
tree | f7ad71067400ad86b29cc34fa6bc9772cfe2a079 /java | |
parent | 90bddf71b63f5082c4ec9e697b0baaacb5f81ecd (diff) |
Use preview uri for previews (instead of item uri)
Fix: 339702714
Test: manual functionality testing (previes are get logaded).
Test: atest IntentResolver-tests-unit
Flag: aconfig intentresolver android.service.chooser.chooser_payload_toggling Nextfood
Change-Id: I940feac51d088a3c00c53c54ed24b9584851b8da
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, |