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

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

Issue 1639163003: Extract NotificationBuilderBase for holding the arguments. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address peter's comments. Created 4 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
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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;
9 import android.content.Context; 8 import android.content.Context;
10 import android.graphics.Bitmap;
11 import android.support.v4.app.NotificationCompat; 9 import android.support.v4.app.NotificationCompat;
10 import android.support.v4.app.NotificationCompat.Action;
12 11
13 /** 12 /**
14 * Builds a notification using the given inputs. Relies on NotificationCompat an d 13 * Builds a notification using the given inputs. Relies on NotificationCompat an d
15 * NotificationCompat.BigTextStyle to provide a standard layout. 14 * NotificationCompat.BigTextStyle to provide a standard layout.
16 */ 15 */
17 public class StandardNotificationBuilder implements NotificationBuilder { 16 public class StandardNotificationBuilder extends NotificationBuilderBase {
18 private final NotificationCompat.Builder mBuilder; 17 private final Context mContext;
19 18
20 public StandardNotificationBuilder(Context context) { 19 public StandardNotificationBuilder(Context context) {
21 mBuilder = new NotificationCompat.Builder(context); 20 mContext = context;
22 } 21 }
23 22
24 @Override 23 @Override
25 public Notification build() { 24 public Notification build() {
26 return mBuilder.build(); 25 NotificationCompat.Builder builder = new NotificationCompat.Builder(mCon text);
27 } 26 builder.setContentTitle(mTitle);
28 27 builder.setContentText(mBody).setStyle(
29 @Override 28 new NotificationCompat.BigTextStyle().bigText(mBody));
30 public NotificationBuilder setTitle(CharSequence title) { 29 builder.setSubText(mOrigin);
31 mBuilder.setContentTitle(title); 30 builder.setTicker(mTickerText);
32 return this; 31 builder.setLargeIcon(mLargeIcon);
33 } 32 builder.setSmallIcon(mSmallIconId);
34 33 builder.setContentIntent(mContentIntent);
35 @Override 34 builder.setDeleteIntent(mDeleteIntent);
36 public NotificationBuilder setBody(CharSequence body) { 35 for (Action action : mActions) {
37 mBuilder.setContentText(body).setStyle(new NotificationCompat.BigTextSty le().bigText(body)); 36 builder.addAction(action);
38 return this; 37 }
39 } 38 if (mSettingsAction != null) {
40 39 builder.addAction(mSettingsAction);
41 @Override 40 }
42 public NotificationBuilder setOrigin(CharSequence origin) { 41 builder.setDefaults(mDefaults);
43 mBuilder.setSubText(origin); 42 builder.setVibrate(mVibratePattern);
44 return this; 43 return builder.build();
45 }
46
47 @Override
48 public NotificationBuilder setTicker(CharSequence tickerText) {
49 mBuilder.setTicker(tickerText);
50 return this;
51 }
52
53 @Override
54 public NotificationBuilder setLargeIcon(Bitmap icon) {
55 mBuilder.setLargeIcon(icon);
56 return this;
57 }
58
59 @Override
60 public NotificationBuilder setSmallIcon(int iconId) {
61 mBuilder.setSmallIcon(iconId);
62 return this;
63 }
64
65 @Override
66 public NotificationBuilder setContentIntent(PendingIntent intent) {
67 mBuilder.setContentIntent(intent);
68 return this;
69 }
70
71 @Override
72 public NotificationBuilder setDeleteIntent(PendingIntent intent) {
73 mBuilder.setDeleteIntent(intent);
74 return this;
75 }
76
77 @Override
78 public NotificationBuilder addAction(int iconId, CharSequence title, Pending Intent intent) {
79 mBuilder.addAction(iconId, title, intent);
80 return this;
81 }
82
83 @Override
84 public NotificationBuilder addSettingsAction(
85 int iconId, CharSequence title, PendingIntent intent) {
86 return addAction(iconId, title, intent);
87 }
88
89 @Override
90 public NotificationBuilder setDefaults(int defaults) {
91 mBuilder.setDefaults(defaults);
92 return this;
93 }
94
95 @Override
96 public NotificationBuilder setVibrate(long[] pattern) {
97 mBuilder.setVibrate(pattern);
98 return this;
99 } 44 }
100 } 45 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698