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.support.v4.app.NotificationCompat; | 12 import android.support.v4.app.NotificationCompat; |
| 13 import android.widget.RemoteViews; |
12 | 14 |
13 /** | 15 /** |
14 * Wraps a NotificationCompat.Builder object. | 16 * Wraps a NotificationCompat.Builder object. |
15 */ | 17 */ |
16 public class NotificationCompatBuilder implements ChromeNotificationBuilder { | 18 public class NotificationCompatBuilder implements ChromeNotificationBuilder { |
17 private final NotificationCompat.Builder mBuilder; | 19 private final NotificationCompat.Builder mBuilder; |
18 | 20 |
19 public NotificationCompatBuilder(Context context) { | 21 public NotificationCompatBuilder(Context context) { |
20 mBuilder = new NotificationCompat.Builder(context); | 22 mBuilder = new NotificationCompat.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 assert false; // unused |
| 58 return this; |
| 59 } |
| 60 |
| 61 @Override |
| 62 public ChromeNotificationBuilder setTicker(CharSequence text) { |
55 mBuilder.setTicker(text); | 63 mBuilder.setTicker(text); |
56 return this; | 64 return this; |
57 } | 65 } |
58 | 66 |
59 @Override | 67 @Override |
60 public ChromeNotificationBuilder setLocalOnly(boolean localOnly) { | 68 public ChromeNotificationBuilder setLocalOnly(boolean localOnly) { |
61 mBuilder.setLocalOnly(localOnly); | 69 mBuilder.setLocalOnly(localOnly); |
62 return this; | 70 return this; |
63 } | 71 } |
64 | 72 |
(...skipping 15 matching lines...) Expand all Loading... |
80 return this; | 88 return this; |
81 } | 89 } |
82 | 90 |
83 @Override | 91 @Override |
84 public ChromeNotificationBuilder setShowWhen(boolean showWhen) { | 92 public ChromeNotificationBuilder setShowWhen(boolean showWhen) { |
85 mBuilder.setShowWhen(showWhen); | 93 mBuilder.setShowWhen(showWhen); |
86 return this; | 94 return this; |
87 } | 95 } |
88 | 96 |
89 @Override | 97 @Override |
90 public ChromeNotificationBuilder addAction(int icon, String title, PendingIn
tent intent) { | 98 public ChromeNotificationBuilder addAction(int icon, CharSequence title, Pen
dingIntent intent) { |
91 mBuilder.addAction(icon, title, intent); | 99 mBuilder.addAction(icon, title, intent); |
92 return this; | 100 return this; |
93 } | 101 } |
94 | 102 |
95 @Override | 103 @Override |
| 104 public ChromeNotificationBuilder addAction(Notification.Action action) { |
| 105 return this; |
| 106 } |
| 107 |
| 108 @Override |
96 public ChromeNotificationBuilder setDeleteIntent(PendingIntent intent) { | 109 public ChromeNotificationBuilder setDeleteIntent(PendingIntent intent) { |
97 mBuilder.setDeleteIntent(intent); | 110 mBuilder.setDeleteIntent(intent); |
98 return this; | 111 return this; |
99 } | 112 } |
100 | 113 |
101 @Override | 114 @Override |
102 public ChromeNotificationBuilder setPriority(int pri) { | 115 public ChromeNotificationBuilder setPriority(int pri) { |
103 mBuilder.setPriority(pri); | 116 mBuilder.setPriority(pri); |
104 return this; | 117 return this; |
105 } | 118 } |
106 | 119 |
107 @Override | 120 @Override |
108 public ChromeNotificationBuilder setProgress(int max, int percentage, boolea
n indeterminate) { | 121 public ChromeNotificationBuilder setProgress(int max, int percentage, boolea
n indeterminate) { |
109 mBuilder.setProgress(max, percentage, indeterminate); | 122 mBuilder.setProgress(max, percentage, indeterminate); |
110 return this; | 123 return this; |
111 } | 124 } |
112 | 125 |
113 @Override | 126 @Override |
114 public ChromeNotificationBuilder setSubText(String text) { | 127 public ChromeNotificationBuilder setSubText(CharSequence text) { |
115 mBuilder.setSubText(text); | 128 mBuilder.setSubText(text); |
116 return this; | 129 return this; |
117 } | 130 } |
118 | 131 |
119 @Override | 132 @Override |
120 public ChromeNotificationBuilder setContentInfo(String info) { | 133 public ChromeNotificationBuilder setContentInfo(String info) { |
121 mBuilder.setContentInfo(info); | 134 mBuilder.setContentInfo(info); |
122 return this; | 135 return this; |
123 } | 136 } |
124 | 137 |
125 @Override | 138 @Override |
126 public ChromeNotificationBuilder setWhen(long time) { | 139 public ChromeNotificationBuilder setWhen(long time) { |
127 mBuilder.setWhen(time); | 140 mBuilder.setWhen(time); |
128 return this; | 141 return this; |
129 } | 142 } |
130 | 143 |
131 @Override | 144 @Override |
132 public ChromeNotificationBuilder setLargeIcon(Bitmap icon) { | 145 public ChromeNotificationBuilder setLargeIcon(Bitmap icon) { |
133 mBuilder.setLargeIcon(icon); | 146 mBuilder.setLargeIcon(icon); |
134 return this; | 147 return this; |
135 } | 148 } |
136 | 149 |
137 @Override | 150 @Override |
138 public ChromeNotificationBuilder setVibrate(long[] vibratePattern) { | 151 public ChromeNotificationBuilder setVibrate(long[] vibratePattern) { |
139 mBuilder.setVibrate(vibratePattern); | 152 mBuilder.setVibrate(vibratePattern); |
140 return this; | 153 return this; |
141 } | 154 } |
142 | 155 |
143 @Override | 156 @Override |
| 157 public ChromeNotificationBuilder setDefaults(int defaults) { |
| 158 mBuilder.setDefaults(defaults); |
| 159 return this; |
| 160 } |
| 161 |
| 162 public ChromeNotificationBuilder setOnlyAlertOnce(boolean onlyAlertOnce) { |
| 163 mBuilder.setOnlyAlertOnce(onlyAlertOnce); |
| 164 return this; |
| 165 } |
| 166 |
| 167 @Override |
| 168 public ChromeNotificationBuilder setPublicVersion(Notification publicNotific
ation) { |
| 169 mBuilder.setPublicVersion(publicNotification); |
| 170 return this; |
| 171 } |
| 172 |
| 173 @Override |
| 174 public ChromeNotificationBuilder setContent(RemoteViews views) { |
| 175 mBuilder.setCustomContentView(views); |
| 176 return this; |
| 177 } |
| 178 |
| 179 @Override |
| 180 public ChromeNotificationBuilder setStyle(Notification.BigPictureStyle style
) { |
| 181 assert false; // unused |
| 182 return this; |
| 183 } |
| 184 |
| 185 @Override |
| 186 public ChromeNotificationBuilder setStyle(Notification.BigTextStyle bigTextS
tyle) { |
| 187 assert false; // unused |
| 188 return this; |
| 189 } |
| 190 |
| 191 @Override |
| 192 public Notification buildWithBigContentView(RemoteViews view) { |
| 193 return mBuilder.setCustomBigContentView(view).build(); |
| 194 } |
| 195 |
| 196 @Override |
144 public Notification buildWithBigTextStyle(String bigText) { | 197 public Notification buildWithBigTextStyle(String bigText) { |
145 NotificationCompat.BigTextStyle bigTextStyle = | 198 NotificationCompat.BigTextStyle bigTextStyle = |
146 new NotificationCompat.BigTextStyle(mBuilder); | 199 new NotificationCompat.BigTextStyle(mBuilder); |
147 bigTextStyle.bigText(bigText); | 200 bigTextStyle.bigText(bigText); |
148 return bigTextStyle.build(); | 201 return bigTextStyle.build(); |
149 } | 202 } |
150 | 203 |
151 @Override | 204 @Override |
152 public Notification build() { | 205 public Notification build() { |
153 return mBuilder.build(); | 206 return mBuilder.build(); |
154 } | 207 } |
155 } | 208 } |
OLD | NEW |