mirror of
https://git.mihon.tech/mihonapp/mihon
synced 2024-11-23 21:55:57 +03:00
Refactor notification manga cover logic, decrease size
This commit is contained in:
parent
f03c49850b
commit
10272ef395
1 changed files with 32 additions and 14 deletions
|
@ -5,6 +5,7 @@ import android.app.PendingIntent
|
||||||
import android.app.Service
|
import android.app.Service
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
import android.graphics.Bitmap
|
||||||
import android.graphics.BitmapFactory
|
import android.graphics.BitmapFactory
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.IBinder
|
import android.os.IBinder
|
||||||
|
@ -122,6 +123,8 @@ class LibraryUpdateService(
|
||||||
*/
|
*/
|
||||||
const val KEY_TARGET = "target"
|
const val KEY_TARGET = "target"
|
||||||
|
|
||||||
|
private const val NOTIF_ICON_SIZE = 192
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the status of the service.
|
* Returns the status of the service.
|
||||||
*
|
*
|
||||||
|
@ -454,21 +457,22 @@ class LibraryUpdateService(
|
||||||
* @param updates a list of manga with new updates.
|
* @param updates a list of manga with new updates.
|
||||||
*/
|
*/
|
||||||
private fun showUpdateNotifications(updates: List<Pair<Manga, Array<Chapter>>>) {
|
private fun showUpdateNotifications(updates: List<Pair<Manga, Array<Chapter>>>) {
|
||||||
|
if (updates.isEmpty()) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
NotificationManagerCompat.from(this).apply {
|
NotificationManagerCompat.from(this).apply {
|
||||||
// Group notification
|
// Parent group notification
|
||||||
notify(Notifications.ID_NEW_CHAPTERS, notification(Notifications.CHANNEL_NEW_CHAPTERS) {
|
notify(Notifications.ID_NEW_CHAPTERS, notification(Notifications.CHANNEL_NEW_CHAPTERS) {
|
||||||
setContentTitle(getString(R.string.notification_new_chapters))
|
setContentTitle(getString(R.string.notification_new_chapters))
|
||||||
if (updates.size > 1) {
|
if (updates.size == 1) {
|
||||||
setContentText(resources.getQuantityString(R.plurals
|
setContentText(updates.first().first.title)
|
||||||
.notification_new_chapters_text,
|
} else {
|
||||||
updates.size, updates.size))
|
setContentText(resources.getQuantityString(R.plurals.notification_new_chapters_text, updates.size, updates.size))
|
||||||
setStyle(NotificationCompat.BigTextStyle().bigText(updates.joinToString("\n") {
|
setStyle(NotificationCompat.BigTextStyle().bigText(updates.joinToString("\n") {
|
||||||
it.first.title.chop(45)
|
it.first.title
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
setContentText(updates.first().first.title.chop(45))
|
|
||||||
}
|
|
||||||
|
|
||||||
setSmallIcon(R.drawable.ic_tachi)
|
setSmallIcon(R.drawable.ic_tachi)
|
||||||
setLargeIcon(notificationBitmap)
|
setLargeIcon(notificationBitmap)
|
||||||
|
@ -503,12 +507,10 @@ class LibraryUpdateService(
|
||||||
setStyle(NotificationCompat.BigTextStyle().bigText(chaptersNames))
|
setStyle(NotificationCompat.BigTextStyle().bigText(chaptersNames))
|
||||||
|
|
||||||
setSmallIcon(R.drawable.ic_tachi)
|
setSmallIcon(R.drawable.ic_tachi)
|
||||||
try {
|
|
||||||
val icon = Glide.with(this@LibraryUpdateService)
|
val icon = getMangaIcon(manga)
|
||||||
.asBitmap().load(manga).dontTransform().centerCrop().circleCrop()
|
if (icon != null) {
|
||||||
.override(256, 256).submit().get()
|
|
||||||
setLargeIcon(icon)
|
setLargeIcon(icon)
|
||||||
} catch (e: Exception) {
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setGroup(Notifications.GROUP_NEW_CHAPTERS)
|
setGroup(Notifications.GROUP_NEW_CHAPTERS)
|
||||||
|
@ -537,6 +539,22 @@ class LibraryUpdateService(
|
||||||
notificationManager.cancel(Notifications.ID_LIBRARY_PROGRESS)
|
notificationManager.cancel(Notifications.ID_LIBRARY_PROGRESS)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun getMangaIcon(manga: Manga): Bitmap? {
|
||||||
|
return try {
|
||||||
|
Glide.with(this)
|
||||||
|
.asBitmap()
|
||||||
|
.load(manga)
|
||||||
|
.dontTransform()
|
||||||
|
.centerCrop()
|
||||||
|
.circleCrop()
|
||||||
|
.override(NOTIF_ICON_SIZE, NOTIF_ICON_SIZE)
|
||||||
|
.submit()
|
||||||
|
.get()
|
||||||
|
} catch (e: Exception) {
|
||||||
|
null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns an intent to open the main activity.
|
* Returns an intent to open the main activity.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in a new issue