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 |