| Index: chrome/android/java/src/org/chromium/chrome/browser/snackbar/Snackbar.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/snackbar/Snackbar.java b/chrome/android/java/src/org/chromium/chrome/browser/snackbar/Snackbar.java
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..a117158f5e5591dab4b1ff7479ff93199b1da61b
|
| --- /dev/null
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/snackbar/Snackbar.java
|
| @@ -0,0 +1,109 @@
|
| +// Copyright 2015 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.snackbar;
|
| +
|
| +import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarController;
|
| +
|
| +/**
|
| + * A snackbar shows a message at the bottom of the screen and optionally contains an action button.
|
| + * To show a snackbar, create the snackbar using {@link #make}, configure it using the various
|
| + * set*() methods, and show it using {@link SnackbarManager#showSnackbar(Snackbar)}. Example:
|
| + *
|
| + * SnackbarManager.showSnackbar(
|
| + * Snackbar.make("Closed example.com", controller)
|
| + * .setAction("undo", actionData)
|
| + * .setDuration(3000));
|
| + */
|
| +public class Snackbar {
|
| +
|
| + private SnackbarController mController;
|
| + private CharSequence mText;
|
| + private String mTemplateText;
|
| + private String mActionText;
|
| + private Object mActionData;
|
| + private boolean mSingleLine = true;
|
| + private int mDurationMs;
|
| +
|
| + // Prevent instantiation.
|
| + private Snackbar() {}
|
| +
|
| + /**
|
| + * Creates and returns a snackbar to display the given text.
|
| + * @param text The text to show on the snackbar.
|
| + * @param controller The SnackbarController to receive callbacks about the snackbar's state.
|
| + */
|
| + public static Snackbar make(CharSequence text, SnackbarController controller) {
|
| + Snackbar s = new Snackbar();
|
| + s.mText = text;
|
| + s.mController = controller;
|
| + return s;
|
| + }
|
| +
|
| + /**
|
| + * Sets the template text to show on the snackbar, e.g. "Closed %s". See
|
| + * {@link TemplatePreservingTextView} for details on how the template text is used.
|
| + */
|
| + public Snackbar setTemplateText(String templateText) {
|
| + mTemplateText = templateText;
|
| + return this;
|
| + }
|
| +
|
| + /**
|
| + * Sets the action button to show on the snackbar.
|
| + * @param actionText The text to show on the button.
|
| + * @param actionData The data to be passed to {@link SnackbarController#onAction} when the
|
| + * button is pressed.
|
| + */
|
| + public Snackbar setAction(String actionText, Object actionData) {
|
| + mActionText = actionText;
|
| + mActionData = actionData;
|
| + return this;
|
| + }
|
| +
|
| + /**
|
| + * Sets whether the snackbar text should be limited to a single line and ellipsized if needed.
|
| + */
|
| + public Snackbar setSingleLine(boolean singleLine) {
|
| + mSingleLine = singleLine;
|
| + return this;
|
| + }
|
| +
|
| + /**
|
| + * Sets the number of milliseconds that the snackbar will appear for. If 0, the snackbar will
|
| + * use the default duration.
|
| + */
|
| + public Snackbar setDuration(int durationMs) {
|
| + mDurationMs = durationMs;
|
| + return this;
|
| + }
|
| +
|
| + SnackbarController getController() {
|
| + return mController;
|
| + }
|
| +
|
| + CharSequence getText() {
|
| + return mText;
|
| + }
|
| +
|
| + String getTemplateText() {
|
| + return mTemplateText;
|
| + }
|
| +
|
| + String getActionText() {
|
| + return mActionText;
|
| + }
|
| +
|
| + Object getActionData() {
|
| + return mActionData;
|
| + }
|
| +
|
| + boolean getSingleLine() {
|
| + return mSingleLine;
|
| + }
|
| +
|
| + int getDuration() {
|
| + return mDurationMs;
|
| + }
|
| +}
|
|
|