Уведомления Android с прямым ответом позволяют избежать скрытия клавиатуры при появлении нового уведомления - PullRequest
0 голосов
/ 16 апреля 2019

При использовании прямого ответа с уведомлениями Android и написании ответа в RemoteInput, если появляется новое уведомление, оно скрывает текущее уведомление и клавиатуру (если она была открыта).Как мне избежать его скрытия?Идеальным решением было бы просто игнорировать уведомления после того, как пользователь нажал на RemoteInput, а затем снова начать их показывать, когда пользователь отправил сообщение или просто отменил его.

String replyText = "Reply";
RemoteInput remoteInput = new RemoteInput.Builder(MyIntentService.EXTRA_TEXT_REPLY)
        .setLabel(replyText)
        .build();

Intent intent = new Intent(context, MyMessageReplyReceiver.class);
intent.setAction(MyIntentService.ACTION_MESSAGE_TEXT_REPLY);
intent.putExtra(MyIntentService.EXTRA_NOTIFICATION_ID, notificationId);
intent.putExtra(MyIntentService.EXTRA_CHANNEL_ID, channelId);

PendingIntent pendingIntent = PendingIntent.getBroadcast(
        context,
        1001,
        intent,
        PendingIntent.FLAG_UPDATE_CURRENT);

NotificationCompat.Action replyAction = new NotificationCompat.Action.Builder(
        R.drawable.ic_reply_bubble, replyText, pendingIntent)
        .addRemoteInput(remoteInput)
        .build();

builder.setWhen(lastMessage.getTimestamp())
                .setShowWhen(true)
                .setSmallIcon(R.drawable.notification_bar_message)
                .setColor(getNotificationColor())
                .setAutoCancel(true)
                .setCategory(Notification.CATEGORY_MESSAGE)
                .setGroup(GROUP_NOTIFICATIONS)
                .addAction(replyAction);

notificationManager.notify(notificationId, builder.build());
...