Simplify getImageFromUrl call

This commit is contained in:
Niko Diamadis
2024-03-15 18:39:39 +01:00
parent ddbbca7e62
commit c3971d179e
2 changed files with 13 additions and 15 deletions

View File

@@ -10,6 +10,7 @@ import coil.disk.DiskCache
import coil.request.ImageRequest
import com.github.gotify.api.CertUtils
import com.github.gotify.client.model.Application
import kotlinx.coroutines.runBlocking
import okhttp3.OkHttpClient
import org.tinylog.kotlin.Logger
import java.io.IOException
@@ -31,14 +32,18 @@ internal class CoilHandler(private val context: Context, private val settings: S
}
@Throws(IOException::class)
suspend fun getImageFromUrl(url: String?): Bitmap {
fun getImageFromUrl(url: String?): Bitmap {
val request = ImageRequest.Builder(context)
.data(url)
.build()
return (imageLoader.execute(request).drawable as BitmapDrawable).bitmap
val imageResult: Bitmap
runBlocking {
imageResult = (imageLoader.execute(request).drawable as BitmapDrawable).bitmap
}
return imageResult
}
suspend fun getIcon(app: Application?): Bitmap {
fun getIcon(app: Application?): Bitmap {
if (app == null) {
return BitmapFactory.decodeResource(context.resources, R.drawable.gotify)
}

View File

@@ -36,7 +36,6 @@ import com.github.gotify.messages.IntentUrlDialogActivity
import com.github.gotify.messages.MessagesActivity
import com.github.gotify.CoilHandler
import io.noties.markwon.Markwon
import kotlinx.coroutines.runBlocking
import java.util.concurrent.ConcurrentHashMap
import java.util.concurrent.atomic.AtomicLong
import org.tinylog.kotlin.Logger
@@ -378,15 +377,11 @@ internal class WebSocketService : Service() {
showNotificationGroup(channelId)
}
val largeIcon = runBlocking {
coilHandler.getIcon(appIdToApp[appId])
}
b.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_ALL)
.setWhen(System.currentTimeMillis())
.setSmallIcon(R.drawable.ic_gotify)
.setLargeIcon(largeIcon)
.setLargeIcon(coilHandler.getIcon(appIdToApp[appId]))
.setTicker("${getString(R.string.app_name)} - $title")
.setGroup(NotificationSupport.Group.MESSAGES)
.setContentTitle(title)
@@ -413,12 +408,10 @@ internal class WebSocketService : Service() {
if (notificationImageUrl != null) {
try {
runBlocking {
b.setStyle(
NotificationCompat.BigPictureStyle()
.bigPicture(coilHandler.getImageFromUrl(notificationImageUrl))
)
}
} catch (e: Exception) {
Logger.error(e, "Error loading bigImageUrl")
}