Built the notificaton without the PlayerNotificationManager

This commit is contained in:
Bnyro 2023-05-22 15:59:10 +02:00
parent ad63d01bc2
commit b52583855e

View File

@ -1,24 +1,31 @@
package com.github.libretube.util package com.github.libretube.util
import android.annotation.SuppressLint
import android.app.NotificationManager import android.app.NotificationManager
import android.app.PendingIntent import android.app.PendingIntent
import android.app.PendingIntent.FLAG_UPDATE_CURRENT import android.app.PendingIntent.FLAG_UPDATE_CURRENT
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.graphics.Bitmap import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.graphics.drawable.Icon
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.support.v4.media.session.MediaSessionCompat import android.support.v4.media.session.MediaSessionCompat
import androidx.annotation.DrawableRes import androidx.annotation.DrawableRes
import androidx.core.app.NotificationCompat import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import androidx.core.app.PendingIntentCompat import androidx.core.app.PendingIntentCompat
import androidx.core.content.getSystemService import androidx.core.content.getSystemService
import androidx.core.graphics.drawable.IconCompat
import androidx.core.graphics.drawable.toBitmap import androidx.core.graphics.drawable.toBitmap
import androidx.core.os.bundleOf import androidx.core.os.bundleOf
import androidx.media.app.NotificationCompat.MediaStyle
import androidx.media3.common.Player import androidx.media3.common.Player
import androidx.media3.exoplayer.ExoPlayer import androidx.media3.exoplayer.ExoPlayer
import androidx.media3.session.CommandButton import androidx.media3.session.CommandButton
import androidx.media3.session.MediaSession import androidx.media3.session.MediaSession
import androidx.media3.session.MediaStyleNotificationHelper
import androidx.media3.session.SessionCommand import androidx.media3.session.SessionCommand
import androidx.media3.session.SessionResult import androidx.media3.session.SessionResult
import androidx.media3.ui.PlayerNotificationManager import androidx.media3.ui.PlayerNotificationManager
@ -292,7 +299,9 @@ class NowPlayingNotification(
/** /**
* Initializes the [playerNotification] attached to the [player] and shows it. * Initializes the [playerNotification] attached to the [player] and shows it.
*/ */
@SuppressLint("MissingPermission")
private fun createNotification() { private fun createNotification() {
/**
playerNotification = PlayerNotificationManager playerNotification = PlayerNotificationManager
.Builder(context, PLAYER_NOTIFICATION_ID, BACKGROUND_CHANNEL_ID) .Builder(context, PLAYER_NOTIFICATION_ID, BACKGROUND_CHANNEL_ID)
// set the description of the notification // set the description of the notification
@ -310,6 +319,22 @@ class NowPlayingNotification(
setUseFastForwardAction(false) setUseFastForwardAction(false)
setUseStopAction(true) setUseStopAction(true)
} }
**/
val notification = NotificationCompat.Builder(context, BACKGROUND_CHANNEL_ID)
.setSmallIcon(R.drawable.ic_launcher_lockscreen)
.setContentIntent(descriptionAdapter.createCurrentContentIntent(player))
.setStyle(MediaStyle().setMediaSession(mediaSession.sessionCompatToken))
.setContentTitle(player.mediaMetadata.title)
.setContentText(player.mediaMetadata.artist)
.setLargeIcon(BitmapFactory.decodeResource(context.resources, R.mipmap.ic_bird))
.apply {
customActionReceiver.createCustomActions(context, 0).forEach {
addAction(it.value)
}
}
val nManager = NotificationManagerCompat.from(context)
nManager.notify(PLAYER_NOTIFICATION_ID, notification.build())
} }
/** /**