Contenu du post
🔥 В Jetpack добавил Compat API для создания Progress Centric уведомлений (они же Live Updates) Вышла Jetpack Core 1.17.0 Stable где появилось новое API для работы с уведомлениями // (Опционально) проверим, можно ли постить продвигаемые уведомления // вернёт false, если пользователь выключил Live Updates val notificationManager = NotificationManagerCompat.from(context) val canPromote = notificationManager.canPostPromotedNotifications() // Стиль ProgressStyle (сегменты/точки/иконки трекера) val progressStyle = NotificationCompat.ProgressStyle() .setStyledByProgress(false) // используем собственные сегменты/точки .setProgress(600) // общая длина трека (произвольная метрика) .setProgressTrackerIcon(IconCompat.createWithResource(context, R.drawable.ic_tracker)) .setProgressSegments( listOf( NotificationCompat.ProgressStyle.Segment(200).setColor(Color.GREEN), NotificationCompat.ProgressStyle.Segment(250).setColor(Color.YELLOW), NotificationCompat.ProgressStyle.Segment(150).setColor(Color.RED) ) ) .setProgressPoints( listOf( NotificationCompat.ProgressStyle.Point(200).setColor(Color.DKGRAY), NotificationCompat.ProgressStyle.Point(450).setColor(Color.DKGRAY) ) ) val notification = NotificationCompat.Builder(context, CHANNEL_ID) .setSmallIcon(R.drawable.ic_delivery) .setContentTitle("Доставка заказа") // обязательно для Live Update .setContentText("Курьер в пути") // лаконично об этапe .setOngoing(true) // обязательно: ongoing .setOnlyAlertOnce(true) .setVisibility(NotificationCompat.VISIBILITY_PUBLIC) .setContentIntent(contentIntent) .setStyle(progressStyle) // ProgressStyle из Jetpack Core .setRequestPromotedOngoing(true) // ключ к Live Update .setShortCriticalText("$etaMinutes мин") // текст в статус-чипе .setWhen(etaWhenMillis) // для обратного отсчёта в чипе .setShowWhen(false) // скрыть время в карточке, оставить чип .build() notificationManager.notify(NOTIF_ID, notification)