Chromium Code Reviews| 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); |
|
Peter Beverloo
2016/01/27 11:36:03
Something to consider: Perhaps the base could hold
Michael van Ouwerkerk
2016/01/27 15:04:25
I considered this, but I worry that sprinkling usa
| |
| 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 |