package com.idunnolol.sotm.fragment; import android.app.AlertDialog; import android.app.Dialog; import android.app.DialogFragment; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.os.Bundle; import com.idunnolol.sotm.R; import com.idunnolol.sotm.activity.CardConfigActivity; import com.idunnolol.sotm.data.Card.Type; import com.idunnolol.sotm.data.Db; public class NotEnoughCardsDialogFragment extends DialogFragment { public static final String TAG = NotEnoughCardsDialogFragment.class.getName(); private static final String ARG_TYPE = "ARG_TYPE"; public static NotEnoughCardsDialogFragment newInstance(Type type) { NotEnoughCardsDialogFragment fragment = new NotEnoughCardsDialogFragment(); Bundle args = new Bundle(); args.putInt(ARG_TYPE, type.ordinal()); fragment.setArguments(args); return fragment; } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { Type type = Type.values()[getArguments().getInt(ARG_TYPE)]; return new AlertDialog.Builder(getActivity()) .setMessage(getErrorResId(type)) .setPositiveButton(R.string.button_configure, new OnClickListener() { public void onClick(DialogInterface dialog, int which) { startActivity(new Intent(getActivity(), CardConfigActivity.class)); } }) .create(); } public static int getErrorResId(Type type) { switch (type) { case HERO: if (Db.getCards(Type.HERO).size() == 0) { return R.string.message_no_heroes; } else { return R.string.message_not_enough_heroes; } case VILLAIN: return R.string.message_no_villains; case ENVIRONMENT: return R.string.message_no_environments; } return 0; } }