Beginning with Android 5.0, notifications can briefly appear in a floating window called a heads-up notification. This behavior is normally for important notifications that the user should know about immediately, and it appears only if the device is unlocked.
The heads-up notification appears the moment your app issues the notification and it disappears after a moment, but remains visible in the notification drawer as usual.
Example conditions that might trigger heads-up notifications include the following:
If you want add notification badge(Dot notification) to launcher icon like this,
you have add following line before createNotificationChannel.
Thank You
The heads-up notification appears the moment your app issues the notification and it disappears after a moment, but remains visible in the notification drawer as usual.
Example conditions that might trigger heads-up notifications include the following:
- The user's activity is in fullscreen mode (the app uses fullScreenIntent).
- The notification has high priority and uses ringtones or vibrations on devices running Android 7.1 (API level 25) and lower.
- The notification channel has high importance on devices running Android 8.0 (API level 26) and higher.
private fun sendNotification() {
    var notifyManager: NotificationManager? = null
    val NOTIFY_ID = 1002
    val name = "KotlinApplication"
    val id = "kotlin_app"
    val description = "kotlin_app_first_channel"
    val intent: Intent
    val pendingIntent: PendingIntent
    val builder: NotificationCompat.Builder
    if (notifyManager == null) {
        notifyManager = activity!!.getSystemService(Context.NOTIFICATION_SERVICE)
                as NotificationManager
    }
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        val importance = NotificationManager.IMPORTANCE_HIGH
        var mChannel = notifyManager.getNotificationChannel(id)
        if (mChannel == null) {
            mChannel = NotificationChannel(id, name, importance)
            mChannel.description = description
            mChannel.enableVibration(true)
            mChannel.lightColor = Color.GREEN
            mChannel.vibrationPattern = longArrayOf(100, 200, 300, 400, 500, 400, 300, 200, 400)
            notifyManager.createNotificationChannel(mChannel)
        }
    }
    builder = NotificationCompat.Builder(activity!!, id)
    intent = Intent(activity, MainActivity::class.java)
    intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP
    pendingIntent = PendingIntent.getActivity(activity, 0, intent, 0)
    builder.setContentTitle("Heads Up Notification")  // required
            .setSmallIcon(android.R.drawable.ic_popup_reminder) // required
            .setContentText(getString(R.string.app_name))  // required
            .setDefaults(Notification.DEFAULT_ALL)
            .setAutoCancel(true)
            .setContentIntent(pendingIntent)
            .setTicker("Notification")
            .setVibrate(longArrayOf(100, 200, 300, 400, 500, 400, 300, 200, 400))
    val dismissIntent = Intent(activity, MainActivity::class.java)
    dismissIntent.action = "DISMISS"
    dismissIntent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP
    val pendingDismissIntent = PendingIntent.getActivity(activity, 0, dismissIntent,
            PendingIntent.FLAG_UPDATE_CURRENT)
    val dismissAction = NotificationCompat.Action(R.drawable.ic_baseline_notification_important_24px,
            "DISMISS", pendingDismissIntent)
    builder.addAction(dismissAction)
    val notification = builder.build()
    notifyManager.notify(NOTIFY_ID, notification)
}
The above code will produce the following output.If you want add notification badge(Dot notification) to launcher icon like this,
you have add following line before createNotificationChannel.
mChannel.setShowBadge(true)And Here is the full video tutorial.
Interesting right?
If you are really interested in this code, then please share this post with your friends and share your feedback as comments.Thank You


Comments
Post a Comment