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