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 |