diff options
| -rw-r--r-- | api/system-current.txt | 2 | ||||
| -rw-r--r-- | core/java/android/app/Notification.java | 21 |
2 files changed, 23 insertions, 0 deletions
diff --git a/api/system-current.txt b/api/system-current.txt index 9f78ff22286e..820c2aae5f52 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -5504,9 +5504,11 @@ package android.app { ctor public Notification.TvExtender(); ctor public Notification.TvExtender(android.app.Notification); method public android.app.Notification.Builder extend(android.app.Notification.Builder); + method public java.lang.String getChannel(); method public android.app.PendingIntent getContentIntent(); method public android.app.PendingIntent getDeleteIntent(); method public boolean isAvailableOnTv(); + method public android.app.Notification.TvExtender setChannel(java.lang.String); method public android.app.Notification.TvExtender setContentIntent(android.app.PendingIntent); method public android.app.Notification.TvExtender setDeleteIntent(android.app.PendingIntent); } diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java index 5b74e23da7c9..601dfceb3a4a 100644 --- a/core/java/android/app/Notification.java +++ b/core/java/android/app/Notification.java @@ -7088,11 +7088,13 @@ public class Notification implements Parcelable private static final String EXTRA_FLAGS = "flags"; private static final String EXTRA_CONTENT_INTENT = "content_intent"; private static final String EXTRA_DELETE_INTENT = "delete_intent"; + private static final String EXTRA_CHANNEL_ID = "channel_id"; // Flags bitwise-ored to mFlags private static final int FLAG_AVAILABLE_ON_TV = 0x1; private int mFlags; + private String mChannelId; private PendingIntent mContentIntent; private PendingIntent mDeleteIntent; @@ -7113,6 +7115,7 @@ public class Notification implements Parcelable null : notif.extras.getBundle(EXTRA_TV_EXTENDER); if (bundle != null) { mFlags = bundle.getInt(EXTRA_FLAGS); + mChannelId = bundle.getString(EXTRA_CHANNEL_ID); mContentIntent = bundle.getParcelable(EXTRA_CONTENT_INTENT); mDeleteIntent = bundle.getParcelable(EXTRA_DELETE_INTENT); } @@ -7128,6 +7131,7 @@ public class Notification implements Parcelable Bundle bundle = new Bundle(); bundle.putInt(EXTRA_FLAGS, mFlags); + bundle.putString(EXTRA_CHANNEL_ID, mChannelId); if (mContentIntent != null) { bundle.putParcelable(EXTRA_CONTENT_INTENT, mContentIntent); } @@ -7149,6 +7153,23 @@ public class Notification implements Parcelable } /** + * Specifies the channel the notification should be delivered on when shown on TV. + * It can be different from the channel that the notification is delivered to when + * posting on a non-TV device. + */ + public TvExtender setChannel(String channelId) { + mChannelId = channelId; + return this; + } + + /** + * Returns the id of the channel this notification posts to on TV. + */ + public String getChannel() { + return mChannelId; + } + + /** * Supplies a {@link PendingIntent} to be sent when the notification is selected on TV. * If provided, it is used instead of the content intent specified * at the level of Notification. |