From 1970f9ea99394b6b43c29a5e6321a7e3b6102bf5 Mon Sep 17 00:00:00 2001 From: Han Wang <416810799@qq.com> Date: Tue, 17 Mar 2020 04:43:11 +0200 Subject: [PATCH] Messaging: Show quick reply choices only on wearable devices Change-Id: I4b81643c051a9b1377f2046c1aa0515c590736fc --- .../datamodel/BugleNotifications.java | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/com/android/messaging/datamodel/BugleNotifications.java b/src/com/android/messaging/datamodel/BugleNotifications.java index b82dbe5..6df9e88 100644 --- a/src/com/android/messaging/datamodel/BugleNotifications.java +++ b/src/com/android/messaging/datamodel/BugleNotifications.java @@ -788,7 +788,7 @@ public class BugleNotifications { maybeAddWearableConversationLog(wearableExtender, (MultiMessageNotificationState) notificationState); addDownloadMmsAction(notifBuilder, wearableExtender, notificationState); - addWearableVoiceReplyAction(wearableExtender, notificationState); + addWearableVoiceReplyAction(notifBuilder, wearableExtender, notificationState); } // Apply the wearable options and build & post the notification @@ -830,7 +830,7 @@ public class BugleNotifications { } } - private static void addWearableVoiceReplyAction( + private static void addWearableVoiceReplyAction(final NotificationCompat.Builder notifBuilder, final WearableExtender wearableExtender, final NotificationState notificationState) { if (!(notificationState instanceof MultiMessageNotificationState)) { return; @@ -860,14 +860,20 @@ public class BugleNotifications { final NotificationCompat.Action.Builder actionBuilder = new NotificationCompat.Action.Builder(R.drawable.ic_wear_reply, context.getString(replyLabelRes), replyPendingIntent); + final RemoteInput.Builder remoteInputBuilder = new RemoteInput.Builder(Intent.EXTRA_TEXT); + remoteInputBuilder.setLabel(context.getString(R.string.notification_reply_prompt)); + actionBuilder.addRemoteInput(remoteInputBuilder.build()); + notifBuilder.addAction(actionBuilder.build()); + + // Support the action on a wearable device + final NotificationCompat.Action.Builder wearActionBuilder = + new NotificationCompat.Action.Builder(R.drawable.ic_wear_reply, + context.getString(replyLabelRes), replyPendingIntent); final String[] choices = context.getResources().getStringArray( R.array.notification_reply_choices); - final RemoteInput remoteInput = new RemoteInput.Builder(Intent.EXTRA_TEXT).setLabel( - context.getString(R.string.notification_reply_prompt)). - setChoices(choices) - .build(); - actionBuilder.addRemoteInput(remoteInput); - wearableExtender.addAction(actionBuilder.build()); + remoteInputBuilder.setChoices(choices); + wearActionBuilder.addRemoteInput(remoteInputBuilder.build()); + wearableExtender.addAction(wearActionBuilder.build()); } private static void addDownloadMmsAction(final NotificationCompat.Builder notifBuilder,