Android Open Source - android-styled-dialogs Base Dialog Builder






From Project

Back to project page android-styled-dialogs.

License

The source code is released under:

Apache License

If you think the Android project android-styled-dialogs listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.avast.android.dialogs.core;
/*from   w  w w  .  j  ava 2 s  .com*/
import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;

/**
 * Internal base builder that holds common values for all dialog fragment builders.
 *
 * @author Tomas Vondracek
 */
public abstract class BaseDialogBuilder<T extends BaseDialogBuilder<T>> {

  public final static String ARG_REQUEST_CODE = "request_code";
  public final static String ARG_CANCELABLE_ON_TOUCH_OUTSIDE = "cancelable_oto";
  public final static String DEFAULT_TAG = "simple_dialog";
  public final static int DEFAULT_REQUEST_CODE = -42;

  protected final Context mContext;
  protected final FragmentManager mFragmentManager;
  protected final Class<? extends BaseDialogFragment> mClass;

  private Fragment mTargetFragment;
  private boolean mCancelable = true;
  private boolean mCancelableOnTouchOutside = true;

  private String mTag = DEFAULT_TAG;
  private int mRequestCode = DEFAULT_REQUEST_CODE;

  public BaseDialogBuilder(Context context, FragmentManager fragmentManager, Class<? extends BaseDialogFragment> clazz) {
    mFragmentManager = fragmentManager;
    mContext = context.getApplicationContext();
    mClass = clazz;
  }

  protected abstract T self();

  protected abstract Bundle prepareArguments();

  public T setCancelable(boolean cancelable) {
    mCancelable = cancelable;
    return self();
  }

  public T setCancelableOnTouchOutside(boolean cancelable) {
    mCancelableOnTouchOutside = cancelable;
    if (cancelable) {
      mCancelable = cancelable;
    }
    return self();
  }

  public T setTargetFragment(Fragment fragment, int requestCode) {
    mTargetFragment = fragment;
    mRequestCode = requestCode;
    return self();
  }

  public T setRequestCode(int requestCode) {
    mRequestCode = requestCode;
    return self();
  }

  public T setTag(String tag) {
    mTag = tag;
    return self();
  }

    private BaseDialogFragment create() {
        final Bundle args = prepareArguments();

        final BaseDialogFragment fragment = (BaseDialogFragment) Fragment.instantiate(mContext, mClass.getName(), args);

        args.putBoolean(ARG_CANCELABLE_ON_TOUCH_OUTSIDE, mCancelableOnTouchOutside);

        if (mTargetFragment != null) {
            fragment.setTargetFragment(mTargetFragment, mRequestCode);
        } else {
            args.putInt(ARG_REQUEST_CODE, mRequestCode);
        }
        fragment.setCancelable(mCancelable);
        return fragment;
    }

  public DialogFragment show() {
        BaseDialogFragment fragment = create();
    fragment.show(mFragmentManager, mTag);
    return fragment;
  }

    /**
     * Like show() but allows the commit to be executed after an activity's state is saved. This
     * is dangerous because the commit can be lost if the activity needs to later be restored from
     * its state, so this should only be used for cases where it is okay for the UI state to change
     * unexpectedly on the user.
     */
    public DialogFragment showAllowingStateLoss() {
        BaseDialogFragment fragment = create();
        fragment.showAllowingStateLoss(mFragmentManager, mTag);
        return fragment;
    }
}




Java Source Code List

com.avast.android.dialogs.core.BaseDialogBuilder.java
com.avast.android.dialogs.core.BaseDialogFragment.java
com.avast.android.dialogs.fragment.DatePickerDialogFragment.java
com.avast.android.dialogs.fragment.ListDialogFragment.java
com.avast.android.dialogs.fragment.ProgressDialogFragment.java
com.avast.android.dialogs.fragment.SimpleDialogFragment.java
com.avast.android.dialogs.fragment.TimePickerDialogFragment.java
com.avast.android.dialogs.iface.IDateDialogCancelListener.java
com.avast.android.dialogs.iface.IDateDialogListener.java
com.avast.android.dialogs.iface.IListDialogListener.java
com.avast.android.dialogs.iface.ISimpleDialogCancelListener.java
com.avast.android.dialogs.iface.ISimpleDialogListener.java
com.avast.android.dialogs.util.TypefaceHelper.java
com.avast.dialogs.DemoActivity.java
com.avast.dialogs.JayneHatDialogFragment.java