package com.rava.voting.ui; import it.gmariotti.cardslib.library.internal.Card; import it.gmariotti.cardslib.library.internal.CardHeader; import it.gmariotti.cardslib.library.view.CardView; import retrofit.Callback; import retrofit.RetrofitError; import retrofit.client.Response; import android.app.ActionBar; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.MenuItem; import android.view.View; import com.rava.voting.R; import com.rava.voting.RavaApplication; import com.rava.voting.api.ElectionService; import com.rava.voting.model.Answer; import com.rava.voting.model.Election; import com.rava.voting.model.ElectionState; import com.rava.voting.model.Trustee; public class ElectionDetailActivity extends Activity { public static final String TAG = "ElectionDetailActivity"; public static final String KEY_ELECTION = "KEY_ELECTION"; private Election mElection; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_election_detail); ActionBar actionBar = getActionBar(); actionBar.setHomeButtonEnabled(true); actionBar.setDisplayHomeAsUpEnabled(true); Bundle bundle = getIntent().getExtras(); int elId = bundle.getInt(KEY_ELECTION); RavaApplication app = (RavaApplication) getApplication(); ElectionService electionService = app.getElectionService(); electionService.getElection(elId, new Callback<Election>() { @Override public void success(Election election, Response response) { mElection = election; // Card card = new Card(ElectionDetailActivity.this); String info = "\n" + "Description:\t" + mElection.getDescription() + "\n" + "State:\t" + mElection.getState().getStateName() + "\n" + "Public key:\t" + mElection.getPublicKey(); card.setTitle(info); CardHeader header = new CardHeader(ElectionDetailActivity.this); header.setTitle(mElection.getName()); card.addCardHeader(header); CardView cardView = (CardView) findViewById(R.id.card_title); cardView.setVisibility(View.VISIBLE); cardView.setCard(card); // Card cardTrustees = new Card(ElectionDetailActivity.this); String trustees = ""; for (Trustee trustee : mElection.getTrustees()) { trustees += trustee.getEmail() + "\n"; } cardTrustees.setTitle(trustees); CardHeader headerTrustees = new CardHeader( ElectionDetailActivity.this); headerTrustees.setTitle("Trustees"); cardTrustees.addCardHeader(headerTrustees); CardView cardViewTrustees = (CardView) findViewById(R.id.card_trustees); cardViewTrustees.setVisibility(View.VISIBLE); cardViewTrustees.setCard(cardTrustees); // Card cardAnswers = new Card(ElectionDetailActivity.this); String answers = ""; for (Answer answer : mElection.getAnswers()) { answers += answer.getAnswer(); if (mElection.getState() == ElectionState.THREE) { answers += " - " + answer.getNumberOfVotes(); } answers += "\n"; } cardAnswers.setTitle(answers); CardHeader headerAnswers = new CardHeader( ElectionDetailActivity.this); headerAnswers.setTitle("Answers"); cardAnswers.addCardHeader(headerAnswers); CardView cardViewAnswers = (CardView) findViewById(R.id.card_answers); cardViewAnswers.setVisibility(View.VISIBLE); cardViewAnswers.setCard(cardAnswers); } @Override public void failure(RetrofitError error) { Card card = new Card(ElectionDetailActivity.this); card.setTitle("Error loading election"); CardView cardView = (CardView) findViewById(R.id.card_title); cardView.setVisibility(View.VISIBLE); cardView.setCard(card); } }); } @Override public void onResume() { super.onResume(); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: Intent intent = new Intent(this, MainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); return true; default: return super.onOptionsItemSelected(item); } } }