From aca93f74b16936ec0cc7c4d6ec7a1e04af46b8ab Mon Sep 17 00:00:00 2001 From: Gary Tokman Date: Tue, 12 Mar 2024 10:14:52 -0400 Subject: [PATCH] fix: android api improvements --- .../fasterimage/FasterImageViewManager.kt | 14 ++++---------- example/src/App.tsx | 4 ++-- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/android/src/main/java/com/candlefinance/fasterimage/FasterImageViewManager.kt b/android/src/main/java/com/candlefinance/fasterimage/FasterImageViewManager.kt index 182efd5..f686194 100644 --- a/android/src/main/java/com/candlefinance/fasterimage/FasterImageViewManager.kt +++ b/android/src/main/java/com/candlefinance/fasterimage/FasterImageViewManager.kt @@ -59,15 +59,10 @@ setViewBorderRadius(view, borderRadius.toInt()) } - var drawablePlaceholder: Drawable? = null - if (base64Placeholder != null) { - drawablePlaceholder = getDrawableFromBase64(base64Placeholder, view) - } + val drawablePlaceholder: Drawable? = base64Placeholder?.let { getDrawableFromBase64(it, view) } + val failureDrawable: Drawable? = failureImage?.let { getDrawableFromBase64(it, view) } + val thumbHashDrawable = thumbHash?.let { makeThumbHash(view, it) } - var failureDrawable: Drawable? = null - if (failureImage != null) { - failureDrawable = getDrawableFromBase64(failureImage, view) - } val imageLoader = view.context.imageLoader val request = ImageRequest.Builder(view.context) .data(url) @@ -97,8 +92,7 @@ } ) .crossfade(transitionDuration.toInt() ?: 100) - .placeholder(drawablePlaceholder) - .placeholder(thumbHash?.let { makeThumbHash(view, it) }) + .placeholder(drawablePlaceholder ?: thumbHashDrawable) .error(failureDrawable ?: drawablePlaceholder) .fallback(failureDrawable ?: drawablePlaceholder) .scale(getResizeMode(resizeMode)) diff --git a/example/src/App.tsx b/example/src/App.tsx index c97805f..c7220e7 100644 --- a/example/src/App.tsx +++ b/example/src/App.tsx @@ -13,7 +13,7 @@ import { const size = Dimensions.get('window').width / 3; const imageURLs = Array.from( { length: 1000 }, - (_, i) => `https://picsum.potos/200/200?random=${4000 + i}` + (_, i) => `https://picsum.photos/200/200?random=${4000 + i}` ); export default function App() { @@ -42,7 +42,7 @@ export default function App() { Platform.OS === 'android' ? size * 2 : (size - 16) / 2, cachePolicy: 'discWithCacheControl', showActivityIndicator: true, - failureImage: + base64Placeholder: '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Aj366KMOIDb5OeecQy+88IL77JBDDqG33357QIj6Cv3xxx/T6NGj3f9Qxdc+++xDCxcupAMPPLBfzIMPPpgeeughGjVqlIPknnvuoVtvvdXdxz/zfEcccYT7uRAggAOeL6PATz/9RLvvvjvddtttdN1119Fbb73lTP/000/T+eefT2eccQZ9//339Nxzz9HXX39NDM+cOXPoqquuogcffJBuv/12evPNN2n48OE0btw4Ouyww+iZZ55pmsKhhx5KbW1tDsxvv/3WzXf66afTrFmzBozJkNxyyy20bt06N//8+fPplFNOoeuvv54WLVpEK1eupG222WZwQABHGWtgLCvw6quv0qmnnuq2Mtttt50T5dhjj6W9996bZsyYQXvssYd7uo8ZM8Z9dt555zlgFi9eTAcddJAz97Rp09xns2fPpquvvpp+/vlnuuSSS9yWi2PwNXHiRDcHQ8XbuHfeeYeOP/5499mdd95J06dPp19//bVhTJ6Tgfjmm2/ovffec/d99tlnbtViqE888cTmgAAOGL6KAmy87777rnebwvt+Xg3Y7Gy+Y445hn755RfaaaedXPg77riDHnjgAQcBP7VfeeUV9zTni5/mvB3jswWfWU477TR69tln6c8//6SLLrqI3n//feLV4JNPPqHDDz/cAfnPP/+47RYD+eSTTzaNyfCNGDHCQcfbKz6L7LjjjvTII4/Q5Zdf3hgQwFHFGrhnSwXY4HwW4bPHBx984M4hF154If3777/U0tLihvP25rLLLnNbI14h3n33XTr66KPdZ19++aU7UPO9fGa45ppr6IknnnCf8Rbp5ptv3mxKHn/llVfShx9+6FYB3uo1i3n22WfTFVdcQePHj+89uPMKx3F5ezjgGQRwwOh1FeAnMYPBT3s+ALOZt99+e1q6dKlbQdasWUO77babm2bmzJk0b948t83hN098QOdzCl+ffvqpO4Pw6sLbqB9//NFt0fhpzzGGDBnixv311190991301133UXnnnuu23bttddetGHDhqYxL7jgArcF4y0ZvzRgGIcNG0YvvfSSg6YfIICjrjVwP3vopJNOcuZ9/PHHab/99usVpWcLw1ujI4880v2ezxK8LXr44YfdWYWf6jfccIP7jA/2U6ZMoRUrVrifJ0+e7GLyHPfff787Q/B18cUX0+uvv+7G89mh79UsJoPR0dHhgOCYS5Ysceenrq4ut/JsBgjggLl9KMArwFlnneVMx0/xnoufzAwLg7Hnnns6o7/22mtuy/XUU08RP82nTp3qVhMGiM8yfA5gg8+dO9eN5bMJx+XvV2688Ua3wvDbK95K8evanrMLz8mvjfntVrOYPS8UGK4DDjjAAfjRRx+5+JxvLyBDhw7tXWL6foHiQzDEyEuBm266ie67775+RZ955pn0/PPPO/PxU563S3xNmjSp980Uv3XiJzifQ/g66qij6I033nDfZfB3GmPHjqUFCxa4n4877jj3luree+91QA508ZeGjWKyz/nza6+91n0vwheD9uKLL7ovC3m7xa+BW7q6urp5P7flt4t5tRXVxlSAt1TLli1zK8zOO+/cb2o+sPMKwG+YfF3NYvIZh79pZwj55UHPborfvrV0dHR08z96Djy+EkIcKKBZAT7g88LxHwLPk0Gz4D/UAAAAAElFTkSuQmCC', url: item, }}