OLD | NEW |
---|---|
(Empty) | |
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 | |
3 // found in the LICENSE file. | |
4 | |
5 package org.chromium.chrome.browser.notifications; | |
6 | |
7 import android.app.Notification; | |
8 import android.app.PendingIntent; | |
9 import android.content.Context; | |
10 import android.graphics.Bitmap; | |
11 import android.os.Build; | |
12 | |
13 /** | |
14 * Wraps a Notification.Builder object. | |
15 * | |
16 * Created by awdf on 2/17/17. | |
17 */ | |
18 public class NotificationBuilder implements ChromeNotificationBuilder { | |
19 protected final Notification.Builder mBuilder; | |
Peter Beverloo
2017/02/20 01:06:45
nit: why protected?
| |
20 | |
21 public NotificationBuilder(Context context) { | |
22 mBuilder = new Notification.Builder(context); | |
23 } | |
24 | |
25 @Override | |
26 public ChromeNotificationBuilder setAutoCancel(boolean autoCancel) { | |
27 mBuilder.setAutoCancel(autoCancel); | |
28 return this; | |
29 } | |
30 | |
31 @Override | |
32 public ChromeNotificationBuilder setContentIntent(PendingIntent contentInten t) { | |
33 mBuilder.setContentIntent(contentIntent); | |
34 return this; | |
35 } | |
36 | |
37 @Override | |
38 public ChromeNotificationBuilder setContentTitle(String title) { | |
39 mBuilder.setContentTitle(title); | |
40 return this; | |
41 } | |
42 | |
43 @Override | |
44 public ChromeNotificationBuilder setContentText(String text) { | |
45 mBuilder.setContentText(text); | |
46 return this; | |
47 } | |
48 | |
49 @Override | |
50 public ChromeNotificationBuilder setSmallIcon(int icon) { | |
51 mBuilder.setSmallIcon(icon); | |
52 return this; | |
53 } | |
54 | |
55 @Override | |
56 public ChromeNotificationBuilder setTicker(String text) { | |
57 mBuilder.setTicker(text); | |
58 return this; | |
59 } | |
60 | |
61 @Override | |
62 public ChromeNotificationBuilder setLocalOnly(boolean localOnly) { | |
63 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH) { | |
64 mBuilder.setLocalOnly(localOnly); | |
65 } | |
66 return this; | |
67 } | |
68 | |
69 @Override | |
70 public ChromeNotificationBuilder setGroup(String group) { | |
71 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH) { | |
72 mBuilder.setGroup(group); | |
73 } | |
74 return this; | |
75 } | |
76 | |
77 @Override | |
78 public ChromeNotificationBuilder setOngoing(boolean ongoing) { | |
79 mBuilder.setOngoing(ongoing); | |
80 return this; | |
81 } | |
82 | |
83 @Override | |
84 public ChromeNotificationBuilder setVisibility(int visibility) { | |
85 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { | |
86 mBuilder.setVisibility(visibility); | |
87 } | |
88 return this; | |
89 } | |
90 | |
91 @Override | |
92 public ChromeNotificationBuilder setShowWhen(boolean showWhen) { | |
93 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { | |
94 mBuilder.setShowWhen(showWhen); | |
95 } | |
96 return this; | |
97 } | |
98 | |
99 @Override | |
100 public ChromeNotificationBuilder addAction(int icon, String title, PendingIn tent intent) { | |
101 mBuilder.addAction(icon, title, intent); | |
102 return this; | |
103 } | |
104 | |
105 @Override | |
106 public ChromeNotificationBuilder setDeleteIntent(PendingIntent intent) { | |
107 mBuilder.setDeleteIntent(intent); | |
108 return this; | |
109 } | |
110 | |
111 @Override | |
112 public ChromeNotificationBuilder setPriority(int pri) { | |
113 mBuilder.setPriority(pri); | |
114 return this; | |
115 } | |
116 | |
117 @Override | |
118 public ChromeNotificationBuilder setProgress(int max, int percentage, boolea n indeterminate) { | |
119 mBuilder.setProgress(max, percentage, indeterminate); | |
120 return this; | |
121 } | |
122 | |
123 @Override | |
124 public ChromeNotificationBuilder setSubText(String text) { | |
125 mBuilder.setSubText(text); | |
126 return this; | |
127 } | |
128 | |
129 @Override | |
130 public ChromeNotificationBuilder setContentInfo(String info) { | |
131 if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) { | |
132 mBuilder.setContentInfo(info); | |
133 } else { | |
134 mBuilder.setSubText(info); | |
135 } | |
136 return this; | |
137 } | |
138 | |
139 @Override | |
140 public ChromeNotificationBuilder setWhen(long time) { | |
141 mBuilder.setWhen(time); | |
142 return this; | |
143 } | |
144 | |
145 @Override | |
146 public ChromeNotificationBuilder setLargeIcon(Bitmap icon) { | |
147 mBuilder.setLargeIcon(icon); | |
148 return this; | |
149 } | |
150 | |
151 @Override | |
152 public ChromeNotificationBuilder setVibrate(long[] vibratePattern) { | |
153 mBuilder.setVibrate(vibratePattern); | |
154 return this; | |
155 } | |
156 | |
157 @Override | |
158 public Notification buildWithBigTextStyle(String bigText) { | |
159 Notification.BigTextStyle bigTextStyle = new Notification.BigTextStyle(m Builder); | |
160 bigTextStyle.bigText(bigText); | |
161 return bigTextStyle.build(); | |
162 } | |
163 | |
164 @Override | |
165 public Notification build() { | |
166 return mBuilder.build(); | |
167 } | |
168 } | |
OLD | NEW |