From d4d7e961cb7a21e02a40168e3911d69279d4ce1b Mon Sep 17 00:00:00 2001 From: Andrey Epin Date: Thu, 22 Feb 2024 10:23:37 -0800 Subject: Make ImageLoader injectable Do not inject ImageLoader anywhere by v2 activity tests. Rename TestPreviewImageLoader to FakeImageLoader for naming consistency. Bug: 302691505 Test: atest IntentResolver-tests-activity Test: atest IntentResolver-tests-unit Change-Id: I5630664eab6c9546d5de19fa7410184138d15602 --- .../com/android/intentresolver/FakeImageLoader.kt | 39 ++++++++++++++++++++++ .../intentresolver/TestPreviewImageLoader.kt | 33 ------------------ 2 files changed, 39 insertions(+), 33 deletions(-) create mode 100644 tests/shared/src/com/android/intentresolver/FakeImageLoader.kt delete mode 100644 tests/shared/src/com/android/intentresolver/TestPreviewImageLoader.kt (limited to 'tests/shared/src') diff --git a/tests/shared/src/com/android/intentresolver/FakeImageLoader.kt b/tests/shared/src/com/android/intentresolver/FakeImageLoader.kt new file mode 100644 index 00000000..c57ea78b --- /dev/null +++ b/tests/shared/src/com/android/intentresolver/FakeImageLoader.kt @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.intentresolver + +import android.graphics.Bitmap +import android.net.Uri +import com.android.intentresolver.contentpreview.ImageLoader +import java.util.function.Consumer +import kotlinx.coroutines.CoroutineScope + +class FakeImageLoader(initialBitmaps: Map = emptyMap()) : ImageLoader { + private val bitmaps = HashMap().apply { putAll(initialBitmaps) } + + override fun loadImage(callerScope: CoroutineScope, uri: Uri, callback: Consumer) { + callback.accept(bitmaps[uri]) + } + + override suspend fun invoke(uri: Uri, caching: Boolean): Bitmap? = bitmaps[uri] + + override fun prePopulate(uris: List) = Unit + + fun setBitmap(uri: Uri, bitmap: Bitmap) { + bitmaps[uri] = bitmap + } +} diff --git a/tests/shared/src/com/android/intentresolver/TestPreviewImageLoader.kt b/tests/shared/src/com/android/intentresolver/TestPreviewImageLoader.kt deleted file mode 100644 index f0203bb6..00000000 --- a/tests/shared/src/com/android/intentresolver/TestPreviewImageLoader.kt +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) 2022 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.intentresolver - -import android.graphics.Bitmap -import android.net.Uri -import com.android.intentresolver.contentpreview.ImageLoader -import java.util.function.Consumer -import kotlinx.coroutines.CoroutineScope - -class TestPreviewImageLoader(private val bitmaps: Map) : ImageLoader { - override fun loadImage(callerScope: CoroutineScope, uri: Uri, callback: Consumer) { - callback.accept(bitmaps[uri]) - } - - override suspend fun invoke(uri: Uri, caching: Boolean): Bitmap? = bitmaps[uri] - - override fun prePopulate(uris: List) = Unit -} -- cgit v1.2.3-59-g8ed1b