fix: elvis has left the operation

This commit is contained in:
TwistedUmbrellaX
2024-04-07 21:57:36 -04:00
parent 0e1a00e304
commit 7a51f63f54

View File

@@ -14,53 +14,49 @@ import java.io.InputStream
import java.net.HttpURLConnection
import java.net.URL
class BitmapUtil {
companion object {
fun roundCorners(bitmap: Bitmap, cornerRadius: Float = 20f): Bitmap {
val output = Bitmap.createBitmap(bitmap.width, bitmap.height, Bitmap.Config.ARGB_8888)
val canvas = Canvas(output)
val paint = Paint()
paint.isAntiAlias = true
paint.shader = BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP)
val rect = RectF(0f, 0f, bitmap.width.toFloat(), bitmap.height.toFloat())
canvas.drawRoundRect(rect, cornerRadius, cornerRadius, paint)
object BitmapUtil {
private fun roundCorners(bitmap: Bitmap, cornerRadius: Float = 20f): Bitmap {
val output = Bitmap.createBitmap(bitmap.width, bitmap.height, Bitmap.Config.ARGB_8888)
val canvas = Canvas(output)
val paint = Paint()
paint.isAntiAlias = true
paint.shader = BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP)
val rect = RectF(0f, 0f, bitmap.width.toFloat(), bitmap.height.toFloat())
canvas.drawRoundRect(rect, cornerRadius, cornerRadius, paint)
return output
}
return output
}
private val cacheSize = (Runtime.getRuntime().maxMemory() / 1024 / 16).toInt()
private val bitmapCache = LruCache<String, Bitmap>(cacheSize)
private val cacheSize = (Runtime.getRuntime().maxMemory() / 1024 / 16).toInt()
private val bitmapCache = LruCache<String, Bitmap>(cacheSize)
fun downloadImageAsBitmap(imageUrl: String): Bitmap? {
var bitmap: Bitmap? = null
fun downloadImageAsBitmap(imageUrl: String): Bitmap? {
var bitmap: Bitmap? = null
runBlocking(Dispatchers.IO) {
runBlocking(Dispatchers.IO) {
val cacheName = imageUrl.substringAfterLast("/")
bitmap = bitmapCache[cacheName]
if (bitmap != null) return@runBlocking
var inputStream: InputStream? = null
var urlConnection: HttpURLConnection? = null
try {
val url = URL(imageUrl)
urlConnection = url.openConnection() as HttpURLConnection
urlConnection.requestMethod = "GET"
urlConnection.connect()
bitmapCache[imageUrl]?.let {
bitmap = it
} ?: {
var inputStream: InputStream? = null
var urlConnection: HttpURLConnection? = null
try {
val url = URL(imageUrl)
urlConnection = url.openConnection() as HttpURLConnection
urlConnection.requestMethod = "GET"
urlConnection.connect()
if (urlConnection.responseCode == HttpURLConnection.HTTP_OK) {
inputStream = urlConnection.inputStream
bitmap = BitmapFactory.decodeStream(inputStream)
bitmap?.let { bitmapCache.put(imageUrl, it) }
}
} catch (e: Exception) {
e.printStackTrace()
} finally {
inputStream?.close()
urlConnection?.disconnect()
}
if (urlConnection.responseCode == HttpURLConnection.HTTP_OK) {
inputStream = urlConnection.inputStream
bitmap = BitmapFactory.decodeStream(inputStream)
bitmap?.let { bitmapCache.put(cacheName, it) }
}
} catch (e: Exception) {
e.printStackTrace()
} finally {
inputStream?.close()
urlConnection?.disconnect()
}
return bitmap?.let { roundCorners(it) }
}
return bitmap?.let { roundCorners(it) }
}
}