package com.code44.finance.ui.dialogs; import android.os.Bundle; import android.support.v4.app.DialogFragment; import android.view.View; import android.widget.TextView; import com.code44.finance.App; import com.code44.finance.R; import com.code44.finance.common.utils.StringUtils; import com.code44.finance.utils.EventBus; import javax.inject.Inject; public abstract class BaseDialogFragment extends DialogFragment { protected static final String ARG_REQUEST_CODE = "ARG_REQUEST_CODE"; protected static final String ARG_TITLE = "ARG_TITLE"; protected static final String ARG_ARGS = "ARG_ARGS"; protected TextView titleView; protected int requestCode; @Inject EventBus eventBus; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); App.with(getActivity()).inject(this); setStyle(STYLE_NO_TITLE, 0); } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); // Get views titleView = (TextView) view.findViewById(R.id.titleTextView); // Setup requestCode = getArguments().getInt(ARG_REQUEST_CODE); if (titleView != null) { final String title = getArguments().getString(ARG_TITLE); if (StringUtils.isEmpty(title)) { titleView.setVisibility(View.GONE); } else { titleView.setText(title); } } } protected EventBus getEventBus() { return eventBus; } protected abstract static class Builder { protected final Bundle args; public Builder(int requestCode) { args = new Bundle(); args.putInt(ARG_REQUEST_CODE, requestCode); } public Builder setTitle(String title) { args.putString(ARG_TITLE, title); return this; } public Builder setArgs(Bundle args) { args.putBundle(ARG_ARGS, args); return this; } public BaseDialogFragment build() { BaseDialogFragment dialogFragment = createFragment(); dialogFragment.setArguments(args); return dialogFragment; } protected abstract BaseDialogFragment createFragment(); } }