Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(359)

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationBuilder.java

Issue 2699253003: Abstracting over Notification.Builder + NotificationCompat.Builder (Closed)
Patch Set: Abstracting over Notification.Builder + NotificationCompat.Builder Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698