| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.chrome.browser.notifications; | 5 package org.chromium.chrome.browser.notifications; |
| 6 | 6 |
| 7 import android.app.Notification; | 7 import android.app.Notification; |
| 8 import android.app.PendingIntent; | 8 import android.app.PendingIntent; |
| 9 import android.content.Context; | 9 import android.content.Context; |
| 10 import android.graphics.Bitmap; | 10 import android.graphics.Bitmap; |
| 11 import android.graphics.drawable.Icon; |
| 11 import android.os.Build; | 12 import android.os.Build; |
| 13 import android.widget.RemoteViews; |
| 12 | 14 |
| 13 /** | 15 /** |
| 14 * Wraps a Notification.Builder object. | 16 * Wraps a Notification.Builder object. |
| 15 */ | 17 */ |
| 16 public class NotificationBuilder implements ChromeNotificationBuilder { | 18 public class NotificationBuilder implements ChromeNotificationBuilder { |
| 17 protected final Notification.Builder mBuilder; | 19 protected final Notification.Builder mBuilder; |
| 18 | 20 |
| 19 public NotificationBuilder(Context context) { | 21 public NotificationBuilder(Context context) { |
| 20 mBuilder = new Notification.Builder(context); | 22 mBuilder = new Notification.Builder(context); |
| 21 } | 23 } |
| 22 | 24 |
| 23 @Override | 25 @Override |
| 24 public ChromeNotificationBuilder setAutoCancel(boolean autoCancel) { | 26 public ChromeNotificationBuilder setAutoCancel(boolean autoCancel) { |
| 25 mBuilder.setAutoCancel(autoCancel); | 27 mBuilder.setAutoCancel(autoCancel); |
| 26 return this; | 28 return this; |
| 27 } | 29 } |
| 28 | 30 |
| 29 @Override | 31 @Override |
| 30 public ChromeNotificationBuilder setContentIntent(PendingIntent contentInten
t) { | 32 public ChromeNotificationBuilder setContentIntent(PendingIntent contentInten
t) { |
| 31 mBuilder.setContentIntent(contentIntent); | 33 mBuilder.setContentIntent(contentIntent); |
| 32 return this; | 34 return this; |
| 33 } | 35 } |
| 34 | 36 |
| 35 @Override | 37 @Override |
| 36 public ChromeNotificationBuilder setContentTitle(String title) { | 38 public ChromeNotificationBuilder setContentTitle(CharSequence title) { |
| 37 mBuilder.setContentTitle(title); | 39 mBuilder.setContentTitle(title); |
| 38 return this; | 40 return this; |
| 39 } | 41 } |
| 40 | 42 |
| 41 @Override | 43 @Override |
| 42 public ChromeNotificationBuilder setContentText(String text) { | 44 public ChromeNotificationBuilder setContentText(CharSequence text) { |
| 43 mBuilder.setContentText(text); | 45 mBuilder.setContentText(text); |
| 44 return this; | 46 return this; |
| 45 } | 47 } |
| 46 | 48 |
| 47 @Override | 49 @Override |
| 48 public ChromeNotificationBuilder setSmallIcon(int icon) { | 50 public ChromeNotificationBuilder setSmallIcon(int icon) { |
| 49 mBuilder.setSmallIcon(icon); | 51 mBuilder.setSmallIcon(icon); |
| 50 return this; | 52 return this; |
| 51 } | 53 } |
| 52 | 54 |
| 53 @Override | 55 @Override |
| 54 public ChromeNotificationBuilder setTicker(String text) { | 56 public ChromeNotificationBuilder setSmallIcon(Icon icon) { |
| 57 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { |
| 58 mBuilder.setSmallIcon(icon); |
| 59 } |
| 60 return this; |
| 61 } |
| 62 |
| 63 @Override |
| 64 public ChromeNotificationBuilder setTicker(CharSequence text) { |
| 55 mBuilder.setTicker(text); | 65 mBuilder.setTicker(text); |
| 56 return this; | 66 return this; |
| 57 } | 67 } |
| 58 | 68 |
| 59 @Override | 69 @Override |
| 60 public ChromeNotificationBuilder setLocalOnly(boolean localOnly) { | 70 public ChromeNotificationBuilder setLocalOnly(boolean localOnly) { |
| 61 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH) { | 71 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH) { |
| 62 mBuilder.setLocalOnly(localOnly); | 72 mBuilder.setLocalOnly(localOnly); |
| 63 } | 73 } |
| 64 return this; | 74 return this; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 88 | 98 |
| 89 @Override | 99 @Override |
| 90 public ChromeNotificationBuilder setShowWhen(boolean showWhen) { | 100 public ChromeNotificationBuilder setShowWhen(boolean showWhen) { |
| 91 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { | 101 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { |
| 92 mBuilder.setShowWhen(showWhen); | 102 mBuilder.setShowWhen(showWhen); |
| 93 } | 103 } |
| 94 return this; | 104 return this; |
| 95 } | 105 } |
| 96 | 106 |
| 97 @Override | 107 @Override |
| 98 public ChromeNotificationBuilder addAction(int icon, String title, PendingIn
tent intent) { | 108 public ChromeNotificationBuilder addAction(int icon, CharSequence title, Pen
dingIntent intent) { |
| 99 mBuilder.addAction(icon, title, intent); | 109 mBuilder.addAction(icon, title, intent); |
| 100 return this; | 110 return this; |
| 101 } | 111 } |
| 102 | 112 |
| 103 @Override | 113 @Override |
| 114 public ChromeNotificationBuilder addAction(Notification.Action action) { |
| 115 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH) { |
| 116 mBuilder.addAction(action); |
| 117 } |
| 118 return this; |
| 119 } |
| 120 |
| 121 @Override |
| 104 public ChromeNotificationBuilder setDeleteIntent(PendingIntent intent) { | 122 public ChromeNotificationBuilder setDeleteIntent(PendingIntent intent) { |
| 105 mBuilder.setDeleteIntent(intent); | 123 mBuilder.setDeleteIntent(intent); |
| 106 return this; | 124 return this; |
| 107 } | 125 } |
| 108 | 126 |
| 109 @Override | 127 @Override |
| 110 public ChromeNotificationBuilder setPriority(int pri) { | 128 public ChromeNotificationBuilder setPriority(int pri) { |
| 111 mBuilder.setPriority(pri); | 129 mBuilder.setPriority(pri); |
| 112 return this; | 130 return this; |
| 113 } | 131 } |
| 114 | 132 |
| 115 @Override | 133 @Override |
| 116 public ChromeNotificationBuilder setProgress(int max, int percentage, boolea
n indeterminate) { | 134 public ChromeNotificationBuilder setProgress(int max, int percentage, boolea
n indeterminate) { |
| 117 mBuilder.setProgress(max, percentage, indeterminate); | 135 mBuilder.setProgress(max, percentage, indeterminate); |
| 118 return this; | 136 return this; |
| 119 } | 137 } |
| 120 | 138 |
| 121 @Override | 139 @Override |
| 122 public ChromeNotificationBuilder setSubText(String text) { | 140 public ChromeNotificationBuilder setSubText(CharSequence text) { |
| 123 mBuilder.setSubText(text); | 141 mBuilder.setSubText(text); |
| 124 return this; | 142 return this; |
| 125 } | 143 } |
| 126 | 144 |
| 127 @Override | 145 @Override |
| 128 public ChromeNotificationBuilder setContentInfo(String info) { | 146 public ChromeNotificationBuilder setContentInfo(String info) { |
| 129 if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) { | 147 if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) { |
| 130 mBuilder.setContentInfo(info); | 148 mBuilder.setContentInfo(info); |
| 131 } else { | 149 } else { |
| 132 mBuilder.setSubText(info); | 150 mBuilder.setSubText(info); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 146 return this; | 164 return this; |
| 147 } | 165 } |
| 148 | 166 |
| 149 @Override | 167 @Override |
| 150 public ChromeNotificationBuilder setVibrate(long[] vibratePattern) { | 168 public ChromeNotificationBuilder setVibrate(long[] vibratePattern) { |
| 151 mBuilder.setVibrate(vibratePattern); | 169 mBuilder.setVibrate(vibratePattern); |
| 152 return this; | 170 return this; |
| 153 } | 171 } |
| 154 | 172 |
| 155 @Override | 173 @Override |
| 174 public ChromeNotificationBuilder setDefaults(int defaults) { |
| 175 mBuilder.setDefaults(defaults); |
| 176 return this; |
| 177 } |
| 178 |
| 179 @Override |
| 180 public ChromeNotificationBuilder setOnlyAlertOnce(boolean onlyAlertOnce) { |
| 181 mBuilder.setOnlyAlertOnce(onlyAlertOnce); |
| 182 return this; |
| 183 } |
| 184 |
| 185 @Override |
| 186 public ChromeNotificationBuilder setPublicVersion(Notification publicNotific
ation) { |
| 187 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { |
| 188 mBuilder.setPublicVersion(publicNotification); |
| 189 } |
| 190 return this; |
| 191 } |
| 192 |
| 193 @Override |
| 194 public ChromeNotificationBuilder setContent(RemoteViews views) { |
| 195 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { |
| 196 mBuilder.setCustomContentView(views); |
| 197 } else { |
| 198 mBuilder.setContent(views); |
| 199 } |
| 200 return this; |
| 201 } |
| 202 |
| 203 @Override |
| 204 public ChromeNotificationBuilder setStyle(Notification.BigPictureStyle style
) { |
| 205 mBuilder.setStyle(style); |
| 206 return this; |
| 207 } |
| 208 |
| 209 @Override |
| 210 public ChromeNotificationBuilder setStyle(Notification.BigTextStyle style) { |
| 211 mBuilder.setStyle(style); |
| 212 return this; |
| 213 } |
| 214 |
| 215 @Override |
| 216 public Notification buildWithBigContentView(RemoteViews view) { |
| 217 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { |
| 218 return mBuilder.setCustomBigContentView(view).build(); |
| 219 } else { |
| 220 Notification notification = mBuilder.build(); |
| 221 notification.bigContentView = view; |
| 222 return notification; |
| 223 } |
| 224 } |
| 225 |
| 226 @Override |
| 156 public Notification buildWithBigTextStyle(String bigText) { | 227 public Notification buildWithBigTextStyle(String bigText) { |
| 157 Notification.BigTextStyle bigTextStyle = new Notification.BigTextStyle(m
Builder); | 228 Notification.BigTextStyle bigTextStyle = new Notification.BigTextStyle(m
Builder); |
| 158 bigTextStyle.bigText(bigText); | 229 bigTextStyle.bigText(bigText); |
| 159 return bigTextStyle.build(); | 230 return bigTextStyle.build(); |
| 160 } | 231 } |
| 161 | 232 |
| 162 @Override | 233 @Override |
| 163 public Notification build() { | 234 public Notification build() { |
| 164 return mBuilder.build(); | 235 return mBuilder.build(); |
| 165 } | 236 } |
| 166 } | 237 } |
| OLD | NEW |