@StyleRes public int getTheme() { return mTheme; }
/** * Set the dialog theme. */ @NonNull public Builder setThemeResId(@StyleRes int themeResId) { mThemeResId = themeResId; return this; }
/** * Set the theme to be used for the rationale dialog should it be shown. * * @param theme a style resource */ @NonNull public Builder setTheme(@StyleRes int theme) { mTheme = theme; return this; }
public SingleSelectDialog(@NonNull Context context, @StyleRes int themeResId) { super(context, themeResId); }
public abstract void showRequestPermissionRationale(@NonNull String rationale, @NonNull String positiveButton, @NonNull String negativeButton, @StyleRes int theme, int requestCode, @NonNull String... perms);
public Dialog(@NonNull Context context, @StyleRes int themeResId) { super(context, themeResId); }
@Override public void showRequestPermissionRationale(@NonNull String rationale, @NonNull String positiveButton, @NonNull String negativeButton, @StyleRes int theme, int requestCode, @NonNull String... perms) { throw new IllegalStateException("Should never be requesting permissions on API < 23!"); }
RationaleDialogConfig(@NonNull String positiveButton, @NonNull String negativeButton, @NonNull String rationaleMsg, @StyleRes int theme, int requestCode, @NonNull String[] permissions) { this.positiveButton = positiveButton; this.negativeButton = negativeButton; this.rationaleMsg = rationaleMsg; this.theme = theme; this.requestCode = requestCode; this.permissions = permissions; }
@StyleRes private int mThemeResId = -1; private String mRationale;
private AppSettingsDialog(@NonNull final Object activityOrFragment, @StyleRes int themeResId, @Nullable String rationale, @Nullable String title, @Nullable String positiveButtonText, @Nullable String negativeButtonText, int requestCode, int intentFlags) { setActivityOrFragment(activityOrFragment); mThemeResId = themeResId; mRationale = rationale; mTitle = title; mPositiveButtonText = positiveButtonText; mNegativeButtonText = negativeButtonText; mRequestCode = requestCode; mIntentFlags = intentFlags; }
public DialogBase(@NonNull Context context, @StyleRes int themeResId) { super(context, themeResId); initLayout(); }
public ListDialog(@NonNull Context context, @StyleRes int themeResId) { super(context, themeResId); init(); }
public MultiSelectDialog(@NonNull Context context, @StyleRes int themeResId) { super(context, themeResId); init(); }
public void requestPermissions(@NonNull String rationale, @NonNull String positiveButton, @NonNull String negativeButton, @StyleRes int theme, int requestCode, @NonNull String... perms) { if (shouldShowRationale(perms)) { showRequestPermissionRationale( rationale, positiveButton, negativeButton, theme, requestCode, perms); } else { directRequestPermissions(requestCode, perms); } }
public static RationaleDialogFragment newInstance( @NonNull String positiveButton, @NonNull String negativeButton, @NonNull String rationaleMsg, @StyleRes int theme, int requestCode, @NonNull String[] permissions) { // Create new Fragment RationaleDialogFragment dialogFragment = new RationaleDialogFragment(); // Initialize configuration as arguments RationaleDialogConfig config = new RationaleDialogConfig( positiveButton, negativeButton, rationaleMsg, theme, requestCode, permissions); dialogFragment.setArguments(config.toBundle()); return dialogFragment; }
public static RationaleDialogFragmentCompat newInstance( @NonNull String rationaleMsg, @NonNull String positiveButton, @NonNull String negativeButton, @StyleRes int theme, int requestCode, @NonNull String[] permissions) { // Create new Fragment RationaleDialogFragmentCompat dialogFragment = new RationaleDialogFragmentCompat(); // Initialize configuration as arguments RationaleDialogConfig config = new RationaleDialogConfig( positiveButton, negativeButton, rationaleMsg, theme, requestCode, permissions); dialogFragment.setArguments(config.toBundle()); return dialogFragment; }
@Override public void setTitleTextAppearance(Context context, @StyleRes int resId) { if (title == null) initLayout(); title.setTextAppearance(context, resId); }
@Override public void showRequestPermissionRationale(@NonNull String rationale, @NonNull String positiveButton, @NonNull String negativeButton, @StyleRes int theme, int requestCode, @NonNull String... perms) { FragmentManager fm = getSupportFragmentManager(); // Check if fragment is already showing Fragment fragment = fm.findFragmentByTag(RationaleDialogFragmentCompat.TAG); if (fragment instanceof RationaleDialogFragmentCompat) { Log.d(TAG, "Found existing fragment, not showing rationale."); return; } RationaleDialogFragmentCompat .newInstance(rationale, positiveButton, negativeButton, theme, requestCode, perms) .showAllowingStateLoss(fm, RationaleDialogFragmentCompat.TAG); } }
@Override public void showRequestPermissionRationale(@NonNull String rationale, @NonNull String positiveButton, @NonNull String negativeButton, @StyleRes int theme, int requestCode, @NonNull String... perms) { FragmentManager fm = getHost().getFragmentManager(); // Check if fragment is already showing Fragment fragment = fm.findFragmentByTag(RationaleDialogFragment.TAG); if (fragment instanceof RationaleDialogFragment) { Log.d(TAG, "Found existing fragment, not showing rationale."); return; } RationaleDialogFragment .newInstance(positiveButton, negativeButton, rationale, theme, requestCode, perms) .showAllowingStateLoss(fm, RationaleDialogFragment.TAG); } }
@StyleRes private final int mThemeResId; private final String mRationale;