Цвет уведомлений Android 10 не меняется при смене темной темы - PullRequest
0 голосов
/ 03 октября 2019

У меня есть уведомление с некоторыми действиями. И я использую Notification.Builder , чтобы установить цвет для действия и тонирования значка. Вот полный код для создания уведомления.

val notification = Notification.Builder(context,
                CHANNEL_ID)
                .setContentTitle(title)
                .setContentText(mainText)
                .setSmallIcon(R.drawable.small_icon)
                .setContentIntent(pendingIntent)
                .addAction(Notification.Action.Builder(
                        Icon.createWithResource(
                                this, R.drawable.action_icon),
                        getString(R.string.action_title),
                        actionPendingIntent)
                        .build())
                .setStyle(Notification.InboxStyle()
                        .addLine(mainText)
                        .addLine(subText)
                        .addLine(secondSubText)
                        .setBigContentTitle(title)
                        .setSummaryText(summaryText))
                .setColor(getColor(R.color.notification_accent))
                .build()

Цвет R.color.notification_accent объявлен как в values, так и в values-night и имеет разные цвета. Также базовая тема приложения распространяется от Theme.MaterialComponents.DayNight. И все приложение корректно меняется между темами, когда темная тема включена / отключена в устройстве.

Когда я создаю уведомление, оно всегда создается правильно, поэтому, когда темная тема включена, цвет от values-nightиспользуется, и когда он выключен, используется цвет values.

Проблема в том, что тема меняется и уведомление уже видно. Я вижу, что уведомление на самом деле меняется, поскольку фон меняется с темного на светлый, но цвет действия не меняется.

Полагаю, это происходит потому, что цвет не является частью темы уведомления,но я не уверен, как это можно обработать, или если это ошибка в Notification.Builder .

Редактировать: это происходит на эмуляторе, работающем с API 29. При запускеприложение на устройстве поведение правильное, цвета меняются. Я сам отвечаю на вопрос, говоря об использовании устройства.

1 Ответ

0 голосов
/ 03 октября 2019

Эта проблема возникает в эмуляторе. В реальном устройстве проблема не возникает, и цвета уведомления меняются при смене темной темы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...