diff --git a/dexter/src/main/java/com/karumi/dexter/listener/multi/SnackbarOnAnyDeniedMultiplePermissionsListener.java b/dexter/src/main/java/com/karumi/dexter/listener/multi/SnackbarOnAnyDeniedMultiplePermissionsListener.java index 6f62be24..5d76c25a 100644 --- a/dexter/src/main/java/com/karumi/dexter/listener/multi/SnackbarOnAnyDeniedMultiplePermissionsListener.java +++ b/dexter/src/main/java/com/karumi/dexter/listener/multi/SnackbarOnAnyDeniedMultiplePermissionsListener.java @@ -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 @@ -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) { @@ -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); } @@ -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; @@ -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); } } } diff --git a/dexter/src/main/java/com/karumi/dexter/listener/single/SnackbarOnDeniedPermissionListener.java b/dexter/src/main/java/com/karumi/dexter/listener/single/SnackbarOnDeniedPermissionListener.java index 848ccfb0..f4bd3f4d 100644 --- a/dexter/src/main/java/com/karumi/dexter/listener/single/SnackbarOnDeniedPermissionListener.java +++ b/dexter/src/main/java/com/karumi/dexter/listener/single/SnackbarOnDeniedPermissionListener.java @@ -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 @@ -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); } @@ -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; @@ -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); } } }