package com.qmusic.controls.dialogs; import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.text.TextUtils; import com.qmusic.MyApplication; import com.qmusic.R; import com.qmusic.uitls.BLog; public class AlertDialogFragment extends BaseDialogFragment { String title, msg, positiveStr, negativeStr, neutralStr; int icon = android.R.drawable.ic_dialog_info; /** * Has only one button * * @param title * @return */ public static AlertDialogFragment getInstance(final String title, final String msg, final int positive) { return getInstance(title, msg, MyApplication.getContext().getString(positive)); } /** * Has only one button * * @param title * @return */ public static AlertDialogFragment getInstance(final String title, final String msg, final String positiveStr) { AlertDialogFragment fragment = new AlertDialogFragment(); Bundle bundle = new Bundle(); bundle.putString("title", title); bundle.putString("msg", msg); bundle.putString("positiveStr", positiveStr); fragment.setArguments(bundle); return fragment; } public static AlertDialogFragment getInstance(final String title, final String msg, final int positive, final int nagative) { Context ctx = MyApplication.getContext(); return getInstance(title, msg, ctx.getString(positive), ctx.getString(nagative)); } /** * Has two buttons * * @param title * @return */ public static AlertDialogFragment getInstance(final String title, final String msg, final String positiveStr, final String nagativeStr) { AlertDialogFragment fragment = new AlertDialogFragment(); Bundle bundle = new Bundle(); bundle.putString("title", title); bundle.putString("msg", msg); bundle.putString("positiveStr", positiveStr); bundle.putString("negativeStr", nagativeStr); fragment.setArguments(bundle); return fragment; } /** * Has three buttons * * @param title * @param msg * @param positiveStr * @param nagativeStr * @param neutralStr * @return */ public static AlertDialogFragment getInstance(final String title, final String msg, final String positiveStr, final String nagativeStr, final String neutralStr) { AlertDialogFragment fragment = new AlertDialogFragment(); Bundle bundle = new Bundle(); bundle.putString("title", title); bundle.putString("msg", msg); bundle.putString("positiveStr", positiveStr); bundle.putString("negativeStr", nagativeStr); bundle.putString("neutralStr", neutralStr); fragment.setArguments(bundle); return fragment; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bundle arguments; if (savedInstanceState != null) { arguments = savedInstanceState; } else { arguments = getArguments(); } if (arguments != null) { title = arguments.getString("title"); msg = arguments.getString("msg"); positiveStr = arguments.getString("positiveStr"); negativeStr = arguments.getString("negativeStr"); neutralStr = arguments.getString("neutralStr"); icon = arguments.getInt("icon"); } } @Override public void onSaveInstanceState(Bundle arg0) { super.onSaveInstanceState(arg0); arg0.putString("title", title); arg0.putString("msg", msg); arg0.putString("positiveStr", positiveStr); arg0.putString("negativeStr", negativeStr); arg0.putString("neutralStr", neutralStr); arg0.putInt("icon", icon); } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); if (title != null && title.length() > 60) { builder.setTitle(getActivity().getString(R.string.app_name)); builder.setMessage(title); BLog.i(TAG, "Ignore msg:" + msg); } else { builder.setTitle(title); builder.setMessage(msg); } builder.setIcon(icon); if (TextUtils.isEmpty(positiveStr)) { builder.setPositiveButton(android.R.string.ok, callback); } else { builder.setPositiveButton(positiveStr, callback); } if (!TextUtils.isEmpty(negativeStr)) { builder.setNegativeButton(negativeStr, callback); } if (!TextUtils.isEmpty(neutralStr)) { builder.setNeutralButton(neutralStr, callback); } builder.setCancelable(false); Dialog dialog = builder.create(); return dialog; } }