package kr.kdev.dg1s.biowiki.ui.accounts; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.support.v4.app.DialogFragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.RelativeLayout; import com.actionbarsherlock.app.SherlockDialogFragment; import kr.kdev.dg1s.biowiki.R; import kr.kdev.dg1s.biowiki.widgets.BWTextView; public class NUXDialogFragment extends SherlockDialogFragment { public static int ACTION_FINISH = 1; public static int ACTION_OPEN_URL = 2; private static String ARG_TITLE = "title"; private static String ARG_DESCRIPTION = "message"; private static String ARG_FOOTER = "footer"; private static String ARG_IMAGE = "image"; private static String ARG_TWO_BUTTONS = "two-buttons"; private static String ARG_SECOND_BUTTON_LABEL = "second-btn-label"; private static String ARG_SECOND_BUTTON_ACTION = "second-btn-action"; private static String ARG_SECOND_BUTTON_PARAM = "second-btn-param"; private ImageView mImageView; private BWTextView mTitleTextView; private BWTextView mDescriptionTextView; private BWTextView mFooterOneButton; private BWTextView mFooterLeftButton; private BWTextView mFooterRightButton; private RelativeLayout mFooterTwoButtons; public NUXDialogFragment() { // Empty constructor required for DialogFragment } public static NUXDialogFragment newInstance(String title, String message, String footer, int imageSource) { return newInstance(title, message, footer, imageSource, false, "", 0, ""); } public static NUXDialogFragment newInstance(String title, String message, String footer, int imageSource, boolean twoButtons, String secondButtonLabel, int secondButtonAction, String secondButtonParam) { NUXDialogFragment adf = new NUXDialogFragment(); Bundle bundle = new Bundle(); bundle.putString(ARG_TITLE, title); bundle.putString(ARG_DESCRIPTION, message); bundle.putString(ARG_FOOTER, footer); bundle.putInt(ARG_IMAGE, imageSource); bundle.putBoolean(ARG_TWO_BUTTONS, twoButtons); bundle.putString(ARG_SECOND_BUTTON_LABEL, secondButtonLabel); bundle.putInt(ARG_SECOND_BUTTON_ACTION, secondButtonAction); bundle.putString(ARG_SECOND_BUTTON_PARAM, secondButtonParam); adf.setArguments(bundle); adf.setStyle(DialogFragment.STYLE_NO_TITLE, android.R.style.Theme); return adf; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { getDialog().getWindow().setBackgroundDrawable(getResources().getDrawable(R.color.nux_alert_bg)); View v = inflater.inflate(R.layout.nux_dialog_fragment, container, false); mImageView = (ImageView) v.findViewById(R.id.nux_dialog_image); mTitleTextView = (BWTextView) v.findViewById(R.id.nux_dialog_title); mDescriptionTextView = (BWTextView) v.findViewById(R.id.nux_dialog_description); mFooterOneButton = (BWTextView) v.findViewById(R.id.nux_dialog_footer_1_button); mFooterTwoButtons = (RelativeLayout) v.findViewById(R.id.nux_dialog_footer_2_buttons); mFooterRightButton = (BWTextView) v.findViewById(R.id.nux_dialog_get_started_button); mFooterLeftButton = (BWTextView) v.findViewById(R.id.nux_dialog_learn_more_button); Bundle args = this.getArguments(); mTitleTextView.setText(args.getString(ARG_TITLE)); mDescriptionTextView.setText(args.getString(ARG_DESCRIPTION)); mFooterOneButton.setText(args.getString(ARG_FOOTER)); mImageView.setImageResource(args.getInt(ARG_IMAGE)); if (args.getBoolean(ARG_TWO_BUTTONS)) { mFooterOneButton.setVisibility(View.GONE); mFooterTwoButtons.setVisibility(View.VISIBLE); mFooterRightButton.setText(args.getString(ARG_SECOND_BUTTON_LABEL)); } View.OnClickListener clickListenerDismiss = new View.OnClickListener() { @Override public void onClick(View v) { dismissAllowingStateLoss(); } }; final int action = args.getInt(ARG_SECOND_BUTTON_ACTION, 0); final String param = args.getString(ARG_SECOND_BUTTON_PARAM); View.OnClickListener clickListenerFinish = new View.OnClickListener() { @Override public void onClick(View v) { if (action == ACTION_FINISH) { getActivity().finish(); } if (action == ACTION_OPEN_URL) { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(param)); startActivity(intent); dismissAllowingStateLoss(); } } }; v.setClickable(true); v.setOnClickListener(clickListenerDismiss); mFooterOneButton.setOnClickListener(clickListenerDismiss); mFooterLeftButton.setOnClickListener(clickListenerDismiss); mFooterRightButton.setOnClickListener(clickListenerFinish); return v; } }