From c81066da9c0195b3a4861f5ea5bc98e88f9cc6f9 Mon Sep 17 00:00:00 2001 From: Ceyhun Ozgoc Date: Thu, 21 May 2026 15:27:21 +0200 Subject: [PATCH] Catch errors while loading the nonlinear image --- .../connector/yospace/YospaceDefaultUiHandler.kt | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/connectors/yospace/src/main/java/com/theoplayer/android/connector/yospace/YospaceDefaultUiHandler.kt b/connectors/yospace/src/main/java/com/theoplayer/android/connector/yospace/YospaceDefaultUiHandler.kt index 9077bfd3..fd351986 100644 --- a/connectors/yospace/src/main/java/com/theoplayer/android/connector/yospace/YospaceDefaultUiHandler.kt +++ b/connectors/yospace/src/main/java/com/theoplayer/android/connector/yospace/YospaceDefaultUiHandler.kt @@ -10,6 +10,7 @@ import com.theoplayer.android.api.THEOplayerView import com.yospace.admanagement.LinearCreative import com.yospace.admanagement.NonLinearCreative import com.yospace.admanagement.Resource +import android.util.Log import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job @@ -71,12 +72,19 @@ class YospaceDefaultUiHandler( val loadJob = scope.launch { ensureActive() val imageBitmap = withContext(Dispatchers.IO) { - URL(imageUrl).openStream().use { BitmapFactory.decodeStream(it) } + try { + URL(imageUrl).openStream().use { BitmapFactory.decodeStream(it) } + } catch (e: Exception) { + Log.w(TAG, "Failed to load non-linear image: $imageUrl", e) + null + } } ensureActive() - imageView.run { - setImageBitmap(imageBitmap) - visibility = View.VISIBLE + if (imageBitmap != null) { + imageView.run { + setImageBitmap(imageBitmap) + visibility = View.VISIBLE + } } } nonLinearLoadJobs[nonLinearCreative] = NonLinearUiState(imageView = imageView, loadJob = loadJob)