package com.monitorabrasil.participacidadao.views.dialogs;
import android.annotation.SuppressLint;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.RatingBar;
import com.monitorabrasil.participacidadao.R;
import com.monitorabrasil.participacidadao.actions.ActionsCreator;
import com.monitorabrasil.participacidadao.dispatcher.Dispatcher;
import com.monitorabrasil.participacidadao.stores.UserStore;
import com.parse.ParseObject;
import com.parse.ParseUser;
import com.squareup.otto.Bus;
import com.squareup.otto.Subscribe;
@SuppressLint("ValidFragment")
public class DialogAvaliacao extends DialogFragment {
int idUser;
int idPolitico;
private String titulo;
private ParseObject mPolitico;
private ParseObject mAvaliacao;
private RatingBar rb;
private DialogInterface.OnDismissListener onDismissListener;
private boolean jaVotou;
private Dispatcher dispatcher;
private ActionsCreator actionsCreator;
private UserStore userStore;
public DialogAvaliacao(ParseObject politico, String titulo) {
this.titulo=titulo;
this.mPolitico = politico;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.dialog_avaliacao, container, false);
initDependencies();
setupView(view);
return view;
}
private void initDependencies() {
dispatcher = Dispatcher.get(new Bus());
actionsCreator = ActionsCreator.get(dispatcher);
userStore = UserStore.get(dispatcher);
}
private void setupView(View view) {
rb = (RatingBar) view.findViewById(R.id.ratingBar1);
jaVotou = false;
//rb.setRating(new UserDAO(getActivity()).buscaAvaliacaoSalva(idPolitico));
Button btnCancelar = (Button) view.findViewById(R.id.cancel);
btnCancelar.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
getDialog().dismiss();
}
});
Button btnOk = (Button) view.findViewById(R.id.ok);
btnOk.setOnClickListener(new OnClickListener() {
@Override
public void onClick(final View v) {
if (ParseUser.getCurrentUser() != null) {
actionsCreator.avaliar(mPolitico, rb.getRating(), userStore.getmAvaliacao());
}
getDialog().dismiss();
}
});
//verificar se j� foi feita a avaliacao
actionsCreator.getAvaliacaoPolitico(mPolitico);
}
/**
* Atualiza a UI depois de uma action
* @param event
*/
@Subscribe
public void onTodoStoreChange(UserStore.UserStoreChangeEvent event) {
rb.setRating((float)userStore.getmAvaliacao().getDouble("avaliacao"));
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Dialog dialog = super.onCreateDialog(savedInstanceState);
// dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setTitle(titulo);
// WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
// lp.copyFrom(dialog.getWindow().getAttributes());
// lp.width = WindowManager.LayoutParams.MATCH_PARENT-20;
// dialog.show();
// dialog.getWindow().setAttributes(lp);
return dialog;
}
public void setOnDismissListener(DialogInterface.OnDismissListener onDismissListener) {
this.onDismissListener = onDismissListener;
}
@Override
public void onDismiss(DialogInterface dialog) {
super.onDismiss(dialog);
if (onDismissListener != null) {
onDismissListener.onDismiss(dialog);
}
//dispatcher.register(this);
//dispatcher.register(userStore);
}
@Override
public void onResume() {
super.onResume();
dispatcher.register(this);
dispatcher.register(userStore);
}
@Override
public void onPause() {
super.onPause();
dispatcher.unregister(this);
dispatcher.unregister(userStore);
}
}