@SuppressWarnings("ResourceType")
  @Override
  public Dialog onCreateDialog(Bundle savedInstanceState) {
    assert getArguments() != null;
    MaterialDialog dialog =
        new MaterialDialog.Builder(getActivity())
            .title(getArguments().getInt(KEY_TITLE))
            .customView(R.layout.dialog_textsize, true)
            .negativeText(android.R.string.cancel)
            .positiveText(android.R.string.ok)
            .neutralText(R.string.defaultValue)
            .autoDismiss(false)
            .onAny(this)
            .build();

    final View view = dialog.getCustomView();
    assert view != null;
    mPreview = (TextView) view.findViewById(R.id.preview);
    mSeeker = (SeekBar) view.findViewById(R.id.seeker);
    mValue = (TextView) view.findViewById(R.id.value);

    final int defaultValue =
        Config.textSizeForMode(
            getActivity(),
            getArguments().getString(KEY_ATEKEY),
            getArguments().getString(KEY_MODE));
    mPreview.setTextSize(TypedValue.COMPLEX_UNIT_PX, defaultValue);
    mSeeker.setMax(111);
    final int dpValue = pxToSp(this, defaultValue);
    mSeeker.setProgress(dpValue - 1);
    mValue.setText(String.format("%dsp", dpValue));

    mSeeker.setOnSeekBarChangeListener(
        new SeekBar.OnSeekBarChangeListener() {
          @Override
          public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            progress++;
            if (fromUser) {
              final int pxValue = spToPx(progress);
              mPreview.setTextSize(TypedValue.COMPLEX_UNIT_PX, pxValue);
              mValue.setText(String.format("%dsp", progress));
            }
          }

          @Override
          public void onStartTrackingTouch(SeekBar seekBar) {}

          @Override
          public void onStopTrackingTouch(SeekBar seekBar) {}
        });

    ATE.apply(view, getArguments().getString(KEY_ATEKEY));
    return dialog;
  }
 private void init(Context context, AttributeSet attrs) {
   setTag("text_primary");
   String key = null;
   if (attrs != null) {
     TypedArray a =
         context.getTheme().obtainStyledAttributes(attrs, R.styleable.ATEPrimaryTextView, 0, 0);
     try {
       key = a.getString(R.styleable.ATEPrimaryTextView_ateKey_primaryTextView);
     } finally {
       a.recycle();
     }
   }
   ATE.apply(context, this, key);
 }