OLD | NEW |
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 } |
OLD | NEW |