blob: 0074a6fc65fd60a74e6e298dd8a5f94768088502 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.notifications;
import android.app.Notification;
import android.app.PendingIntent;
import android.graphics.Bitmap;
import android.graphics.drawable.Icon;
import android.os.Bundle;
import android.support.v4.media.session.MediaSessionCompat;
import android.widget.RemoteViews;
/**
* Abstraction over Notification.Builder and NotificationCompat.Builder interfaces.
*/
public interface ChromeNotificationBuilder {
ChromeNotificationBuilder setAutoCancel(boolean autoCancel);
@Deprecated
ChromeNotificationBuilder setContentIntent(PendingIntent contentIntent);
ChromeNotificationBuilder setContentIntent(PendingIntentProvider contentIntent);
ChromeNotificationBuilder setContentTitle(CharSequence title);
ChromeNotificationBuilder setContentText(CharSequence text);
ChromeNotificationBuilder setSmallIcon(int icon);
ChromeNotificationBuilder setSmallIcon(Icon icon);
ChromeNotificationBuilder setTicker(CharSequence text);
ChromeNotificationBuilder setLocalOnly(boolean localOnly);
ChromeNotificationBuilder setGroup(String group);
ChromeNotificationBuilder setGroupSummary(boolean isGroupSummary);
ChromeNotificationBuilder addExtras(Bundle extras);
ChromeNotificationBuilder setOngoing(boolean ongoing);
ChromeNotificationBuilder setVisibility(int visibility);
ChromeNotificationBuilder setShowWhen(boolean showWhen);
ChromeNotificationBuilder addAction(int icon, CharSequence title, PendingIntent intent);
ChromeNotificationBuilder addAction(Notification.Action action);
ChromeNotificationBuilder setDeleteIntent(PendingIntent intent);
/**
* Sets the priority of single notification on Android versions prior to Oreo.
* (From Oreo onwards, priority is instead determined by channel importance.)
*/
ChromeNotificationBuilder setPriorityBeforeO(int pri);
ChromeNotificationBuilder setProgress(int max, int percentage, boolean indeterminate);
ChromeNotificationBuilder setSubText(CharSequence text);
ChromeNotificationBuilder setContentInfo(String info);
ChromeNotificationBuilder setWhen(long time);
ChromeNotificationBuilder setLargeIcon(Bitmap icon);
ChromeNotificationBuilder setVibrate(long[] vibratePattern);
ChromeNotificationBuilder setDefaults(int defaults);
ChromeNotificationBuilder setOnlyAlertOnce(boolean onlyAlertOnce);
ChromeNotificationBuilder setPublicVersion(Notification publicNotification);
ChromeNotificationBuilder setContent(RemoteViews views);
ChromeNotificationBuilder setStyle(Notification.BigPictureStyle style);
ChromeNotificationBuilder setStyle(Notification.BigTextStyle bigTextStyle);
ChromeNotificationBuilder setMediaStyle(MediaSessionCompat session, int[] actions,
PendingIntent intent, boolean showCancelButton);
ChromeNotificationBuilder setCategory(String category);
Notification buildWithBigContentView(RemoteViews bigView);
Notification buildWithBigTextStyle(String bigText);
Notification build();
}