Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridge.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridge.java |
| index 55e1de2fb8a0d5797e8da478da2fb256cc48a0f7..c9990a99af6caddf06b3350d6ada34b6714351c5 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridge.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridge.java |
| @@ -7,6 +7,7 @@ package org.chromium.chrome.browser.notifications; |
| import android.app.Notification; |
| import android.app.NotificationManager; |
| import android.app.PendingIntent; |
| +import android.app.RemoteInput; |
| import android.content.Context; |
| import android.content.Intent; |
| import android.content.res.Resources; |
| @@ -199,8 +200,8 @@ public class NotificationPlatformBridge { |
| } |
| int actionIndex = intent.getIntExtra( |
| NotificationConstants.EXTRA_NOTIFICATION_INFO_ACTION_INDEX, -1); |
| - sInstance.onNotificationClicked( |
| - notificationId, origin, profileId, incognito, tag, webApkPackage, actionIndex); |
| + sInstance.onNotificationClicked(notificationId, origin, profileId, incognito, tag, |
| + webApkPackage, actionIndex, getNotificationReply(intent)); |
|
awdf
2016/10/17 14:51:23
I will work on doing the progress notification thi
|
| return true; |
| } else if (NotificationConstants.ACTION_CLOSE_NOTIFICATION.equals(intent.getAction())) { |
| // Notification deleteIntent is executed only "when the notification is explicitly |
| @@ -215,6 +216,19 @@ public class NotificationPlatformBridge { |
| return false; |
| } |
| + @Nullable |
| + private static String getNotificationReply(Intent intent) { |
| + String reply = null; |
| + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH) { |
| + // RemoteInput was added in KITKATCH_WATCH. |
|
Peter Beverloo
2016/10/17 14:11:39
KITKATCH!
awdf
2016/10/17 14:51:23
! Fixed.
|
| + Bundle remoteInputResults = RemoteInput.getResultsFromIntent(intent); |
| + if (remoteInputResults != null) { |
| + reply = remoteInputResults.getString(NotificationConstants.KEY_TEXT_REPLY); |
| + } |
| + } |
| + return reply; |
| + } |
| + |
| /** |
| * Launches the notifications preferences screen. If the received intent indicates it came |
| * from the gear button on a flipped notification, this launches the site specific preferences |
| @@ -679,12 +693,15 @@ public class NotificationPlatformBridge { |
| * @param webApkPackage The package of the WebAPK associated with the notification. |
| * Empty if the notification is not associated with a WebAPK. |
| * @param actionIndex |
| + * @param reply User reply to a text action on the notification. Null if the user did not click |
| + * on a text action or if inline replies are not supported. |
| */ |
| private void onNotificationClicked(String notificationId, String origin, String profileId, |
| - boolean incognito, String tag, String webApkPackage, int actionIndex) { |
| + boolean incognito, String tag, String webApkPackage, int actionIndex, |
| + @Nullable String reply) { |
| mLastNotificationClickMs = System.currentTimeMillis(); |
| nativeOnNotificationClicked(mNativeNotificationPlatformBridge, notificationId, origin, |
| - profileId, incognito, tag, webApkPackage, actionIndex); |
| + profileId, incognito, tag, webApkPackage, actionIndex, reply); |
| } |
| /** |
| @@ -708,7 +725,7 @@ public class NotificationPlatformBridge { |
| private native void nativeOnNotificationClicked(long nativeNotificationPlatformBridgeAndroid, |
| String notificationId, String origin, String profileId, boolean incognito, String tag, |
| - String webApkPackage, int actionIndex); |
| + String webApkPackage, int actionIndex, String reply); |
| private native void nativeOnNotificationClosed(long nativeNotificationPlatformBridgeAndroid, |
| String notificationId, String origin, String profileId, boolean incognito, String tag, |
| boolean byUser); |