Skip to content
This repository has been archived by the owner on Jul 2, 2021. It is now read-only.

Commit

Permalink
Make configurable the duration of the snackbar
Browse files Browse the repository at this point in the history
  • Loading branch information
Serchinastico authored Apr 3, 2017
1 parent 737c419 commit 9c88c03
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ public class SnackbarOnAnyDeniedMultiplePermissionsListener
private final String buttonText;
private final View.OnClickListener onButtonClickListener;
private final Snackbar.Callback snackbarCallback;
private final int duration;

/**
* @param rootView Parent view to show the snackbar
Expand All @@ -47,12 +48,13 @@ public class SnackbarOnAnyDeniedMultiplePermissionsListener
*/
private SnackbarOnAnyDeniedMultiplePermissionsListener(ViewGroup rootView, String text,
String buttonText, View.OnClickListener onButtonClickListener,
Snackbar.Callback snackbarCallback) {
Snackbar.Callback snackbarCallback, int duration) {
this.rootView = rootView;
this.text = text;
this.buttonText = buttonText;
this.onButtonClickListener = onButtonClickListener;
this.snackbarCallback = snackbarCallback;
this.duration = duration;
}

@Override public void onPermissionsChecked(MultiplePermissionsReport report) {
Expand All @@ -64,7 +66,7 @@ private SnackbarOnAnyDeniedMultiplePermissionsListener(ViewGroup rootView, Strin
}

private void showSnackbar() {
Snackbar snackbar = Snackbar.make(rootView, text, Snackbar.LENGTH_LONG);
Snackbar snackbar = Snackbar.make(rootView, text, duration);
if (buttonText != null && onButtonClickListener != null) {
snackbar.setAction(buttonText, onButtonClickListener);
}
Expand All @@ -84,6 +86,7 @@ public static class Builder {
private String buttonText;
private View.OnClickListener onClickListener;
private Snackbar.Callback snackbarCallback;
private int duration = Snackbar.LENGTH_LONG;

private Builder(ViewGroup rootView, String text) {
this.rootView = rootView;
Expand Down Expand Up @@ -148,12 +151,17 @@ public Builder withCallback(Snackbar.Callback callback) {
return this;
}

public Builder withDuration(int duration) {
this.duration = duration;
return this;
}

/**
* Builds a new instance of {@link SnackbarOnAnyDeniedMultiplePermissionsListener}
*/
public SnackbarOnAnyDeniedMultiplePermissionsListener build() {
return new SnackbarOnAnyDeniedMultiplePermissionsListener(rootView, text, buttonText,
onClickListener, snackbarCallback);
onClickListener, snackbarCallback, duration);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ public class SnackbarOnDeniedPermissionListener extends BasePermissionListener {
private final String buttonText;
private final View.OnClickListener onButtonClickListener;
private final Snackbar.Callback snackbarCallback;
private final int duration;

/**
* @param rootView Parent view to show the snackbar
Expand All @@ -45,18 +46,20 @@ public class SnackbarOnDeniedPermissionListener extends BasePermissionListener {
* @param onButtonClickListener Action performed when the user clicks the snackbar button
*/
private SnackbarOnDeniedPermissionListener(ViewGroup rootView, String text, String buttonText,
View.OnClickListener onButtonClickListener, Snackbar.Callback snackbarCallback) {
View.OnClickListener onButtonClickListener, Snackbar.Callback snackbarCallback,
int duration) {
this.rootView = rootView;
this.text = text;
this.buttonText = buttonText;
this.onButtonClickListener = onButtonClickListener;
this.snackbarCallback = snackbarCallback;
this.duration = duration;
}

@Override public void onPermissionDenied(PermissionDeniedResponse response) {
super.onPermissionDenied(response);

Snackbar snackbar = Snackbar.make(rootView, text, Snackbar.LENGTH_LONG);
Snackbar snackbar = Snackbar.make(rootView, text, duration);
if (buttonText != null && onButtonClickListener != null) {
snackbar.setAction(buttonText, onButtonClickListener);
}
Expand All @@ -76,6 +79,7 @@ public static class Builder {
private String buttonText;
private View.OnClickListener onClickListener;
private Snackbar.Callback snackbarCallback;
private int duration = Snackbar.LENGTH_LONG;

private Builder(ViewGroup rootView, String text) {
this.rootView = rootView;
Expand Down Expand Up @@ -133,19 +137,27 @@ public Builder withOpenSettingsButton(@StringRes int buttonTextResourceId) {
}

/**
* Adds a callback to handle the snackbar {@code onDismissed} and {@code onShown} events.
* Adds a callback to handle the snackbar {@code onDismissed} and {@code onShown} events
*/
public Builder withCallback(Snackbar.Callback callback) {
this.snackbarCallback = callback;
return this;
}

/**
* Adds the duration of the snackbar on the screen
*/
public Builder withDuration(int duration) {
this.duration = duration;
return this;
}

/**
* Builds a new instance of {@link SnackbarOnDeniedPermissionListener}
*/
public SnackbarOnDeniedPermissionListener build() {
return new SnackbarOnDeniedPermissionListener(rootView, text, buttonText, onClickListener,
snackbarCallback);
snackbarCallback, duration);
}
}
}

0 comments on commit 9c88c03

Please sign in to comment.