package br.edu.ufcg.ccc.projeto2.warofkingdoms.ui.dialogs;
import android.app.DialogFragment;
import android.content.Intent;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import br.edu.ufcg.ccc.projeto2.warofkingdoms.management.GameManager;
import br.edu.ufcg.ccc.projeto2.warofkingdoms.management.HouseTokenManager;
import br.edu.ufcg.ccc.projeto2.warofkingdoms.ui.ConnectActivity;
import br.edu.ufcg.ccc.projeto2.warofkingdoms.util.Constants;
import br.edu.ufcg.ccc.projeto2.warofkingdoms.util.RulesChecker;
import br.ufcg.edu.ccc.projeto2.R;
public class MessageDialogFragment extends DialogFragment implements OnClickListener {
private String message;
private int messageType;
private String msgHeader;
private TextView messageHeader;
private TextView messageTxt;
private Button okButton;
private ImageView messageImage;
@Override
public void setArguments(Bundle args) {
super.setArguments(args);
msgHeader = args.getString(Constants.DIALOG_MESSAGE_HEADER);
message = args.getString(Constants.DIALOG_MESSAGE);
messageType = args.getInt(Constants.DIALOG_TYPE);
}
@Override
public View onCreateView(
LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.message_dialog, container);
getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);
getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(0));
final WindowManager.LayoutParams params = getDialog().getWindow().getAttributes();
params.width = WindowManager.LayoutParams.WRAP_CONTENT;
params.height = WindowManager.LayoutParams.WRAP_CONTENT;
params.gravity = Gravity.CENTER;
messageHeader = (TextView) view.findViewById(R.id.msgHeader);
messageHeader.setText(msgHeader);
messageTxt = (TextView) view.findViewById(R.id.messageTxt);
messageTxt.setText(message);
okButton = (Button) view.findViewById(R.id.okBtn);
okButton.setOnClickListener(this);
messageImage = (ImageView) view.findViewById(R.id.messageImage);
switch (messageType) {
case Constants.DIALOG_ERROR:
messageImage.setImageResource(R.drawable.error_icon);
break;
case Constants.DIALOG_INFO:
messageImage.setImageResource(R.drawable.info_icon);
break;
}
return view;
}
@Override
public void onClick(View v) {
if (v == okButton) {
dismiss();
if (messageType == Constants.DIALOG_ERROR) {
resetPreviousGameState();
startActivity(new Intent(getActivity(), ConnectActivity.class));
getActivity().finish();
}
}
}
private void resetPreviousGameState() {
GameManager.getInstance().reset();
HouseTokenManager.getInstance().reset();
RulesChecker.getInstance().reset();
}
}