package cl.monsoon.s1next.view.internal;
import android.support.annotation.DrawableRes;
import android.support.annotation.StringRes;
import android.support.design.widget.CoordinatorLayout;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.view.View;
import com.google.common.base.Optional;
/**
* This class represents a delegate which you can use to
* add {@link FloatingActionButton} or {@link Snackbar}
* to {@link CoordinatorLayout} with Anchor.
*/
public interface CoordinatorLayoutAnchorDelegate {
void setupFloatingActionButton(@DrawableRes int resId, View.OnClickListener onClickListener);
/**
* Show a short {@link Snackbar} if current {@link android.app.Activity} is visible,
* otherwise show a short {@link android.widget.Toast}.
*
* @param text The text to show.
* @return The displayed {@code Optional.of(snackbar)} if we use {@link Snackbar} to
* show short text, otherwise the {@code Optional.absent()}.
*/
Optional<Snackbar> showShortText(CharSequence text);
/**
* Show a short {@link Snackbar}.
*
* @param resId The resource id of the string resource to show for {@link Snackbar}.
* @return The displayed {@code Optional.of(snackbar)}.
*/
Optional<Snackbar> showShortSnackbar(@StringRes int resId);
/**
* Show a short {@link Snackbar}.
*
* @param text text The text to show.
* @return The displayed {@code Optional.of(snackbar)}.
*/
Optional<Snackbar> showShortSnackbar(CharSequence text);
/**
* Show a {@link Snackbar} if current {@link android.app.Activity} is visible.
*
* @param text The text to show.
* @param actionResId The action string resource to display.
* @param onClickListener Callback to be invoked when the action is clicked.
* @return The displayed {@code Optional.of(snackbar)} if current {@link android.app.Activity}
* is visible, otherwise the {@code Optional.absent()}.
*/
Optional<Snackbar> showLongSnackbarIfVisible(CharSequence text, @StringRes int actionResId, View.OnClickListener onClickListener);
/**
* Dismiss the {@link Snackbar} if {@link CoordinatorLayout} has Snackbar.
*/
void dismissSnackbarIfExist();
}