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 coil.request.ImageRequest
import com.github.gotify.api.CertUtils import com.github.gotify.api.CertUtils
import com.github.gotify.client.model.Application import com.github.gotify.client.model.Application
import kotlinx.coroutines.runBlocking
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import org.tinylog.kotlin.Logger import org.tinylog.kotlin.Logger
import java.io.IOException import java.io.IOException
@@ -31,14 +32,18 @@ internal class CoilHandler(private val context: Context, private val settings: S
} }
@Throws(IOException::class) @Throws(IOException::class)
suspend fun getImageFromUrl(url: String?): Bitmap { fun getImageFromUrl(url: String?): Bitmap {
val request = ImageRequest.Builder(context) val request = ImageRequest.Builder(context)
.data(url) .data(url)
.build() .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) { if (app == null) {
return BitmapFactory.decodeResource(context.resources, R.drawable.gotify) 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.messages.MessagesActivity
import com.github.gotify.CoilHandler import com.github.gotify.CoilHandler
import io.noties.markwon.Markwon import io.noties.markwon.Markwon
import kotlinx.coroutines.runBlocking
import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.ConcurrentHashMap
import java.util.concurrent.atomic.AtomicLong import java.util.concurrent.atomic.AtomicLong
import org.tinylog.kotlin.Logger import org.tinylog.kotlin.Logger
@@ -378,15 +377,11 @@ internal class WebSocketService : Service() {
showNotificationGroup(channelId) showNotificationGroup(channelId)
} }
val largeIcon = runBlocking {
coilHandler.getIcon(appIdToApp[appId])
}
b.setAutoCancel(true) b.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_ALL) .setDefaults(Notification.DEFAULT_ALL)
.setWhen(System.currentTimeMillis()) .setWhen(System.currentTimeMillis())
.setSmallIcon(R.drawable.ic_gotify) .setSmallIcon(R.drawable.ic_gotify)
.setLargeIcon(largeIcon) .setLargeIcon(coilHandler.getIcon(appIdToApp[appId]))
.setTicker("${getString(R.string.app_name)} - $title") .setTicker("${getString(R.string.app_name)} - $title")
.setGroup(NotificationSupport.Group.MESSAGES) .setGroup(NotificationSupport.Group.MESSAGES)
.setContentTitle(title) .setContentTitle(title)
@@ -413,12 +408,10 @@ internal class WebSocketService : Service() {
if (notificationImageUrl != null) { if (notificationImageUrl != null) {
try { try {
runBlocking { b.setStyle(
b.setStyle( NotificationCompat.BigPictureStyle()
NotificationCompat.BigPictureStyle() .bigPicture(coilHandler.getImageFromUrl(notificationImageUrl))
.bigPicture(coilHandler.getImageFromUrl(notificationImageUrl)) )
)
}
} catch (e: Exception) { } catch (e: Exception) {
Logger.error(e, "Error loading bigImageUrl") Logger.error(e, "Error loading bigImageUrl")
} }