Newer
Older
package com.eyecreate.miceandmystics.miceandmystics.viewholders;
import android.annotation.TargetApi;
import android.app.AlertDialog;
import android.content.DialogInterface;
Kevin Whitaker
committed
import android.content.Intent;
import android.os.Build;
import android.support.v7.widget.RecyclerView;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;
Kevin Whitaker
committed
import com.alertdialogpro.AlertDialogPro;
import com.echo.holographlibrary.PieGraph;
import com.echo.holographlibrary.PieSlice;
Kevin Whitaker
committed
import com.eyecreate.miceandmystics.miceandmystics.CampaignDetailsActivity;
import com.eyecreate.miceandmystics.miceandmystics.R;
import com.eyecreate.miceandmystics.miceandmystics.adapters.CampaignAdapter;
import com.eyecreate.miceandmystics.miceandmystics.model.Enums.CharacterNames;
Kevin Whitaker
committed
public class CampaignViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener,View.OnLongClickListener {
CampaignAdapter adapter;
TextView campaignName;
PieGraph characterGraph;
Kevin Whitaker
committed
public CampaignViewHolder(View itemView, CampaignAdapter adapter) {
super(itemView);
this.adapter = adapter;
campaignName = (TextView) itemView.findViewById(R.id.campagin_name);
characterGraph = (PieGraph) itemView.findViewById(R.id.campaign_characters_graph);
itemView.setOnClickListener(this);
itemView.setOnLongClickListener(this);
}
@Override
public void onClick(View view) {
Kevin Whitaker
committed
Intent openCampaignDetails = new Intent(view.getContext(), CampaignDetailsActivity.class);
openCampaignDetails.putExtra("campaignName",campaignName.getText().toString());
view.getContext().startActivity(openCampaignDetails);
}
public void bindModel(com.eyecreate.miceandmystics.miceandmystics.model.Campaign campaign) {
campaignName.setText(campaign.getCampaignName());
characterGraph.setInnerCircleRatio(200);
characterGraph.removeSlices();
for(com.eyecreate.miceandmystics.miceandmystics.model.Character character:campaign.getCurrentCharacters()){
PieSlice slice = new PieSlice();
if(CharacterNames.valueOf(character.getCharacterName()).equals(CharacterNames.Collin)){
slice.setColor(campaignName.getContext().getResources().getColor(R.color.collin));
slice.setValue(1);
} else if (CharacterNames.valueOf(character.getCharacterName()).equals(CharacterNames.Filch)) {
slice.setColor(campaignName.getContext().getResources().getColor(R.color.filch));
slice.setValue(1);
} else if (CharacterNames.valueOf(character.getCharacterName()).equals(CharacterNames.Lily)) {
slice.setColor(campaignName.getContext().getResources().getColor(R.color.lily));
slice.setValue(1);
} else if (CharacterNames.valueOf(character.getCharacterName()).equals(CharacterNames.Maginos)) {
slice.setColor(campaignName.getContext().getResources().getColor(R.color.maginos));
slice.setValue(1);
} else if (CharacterNames.valueOf(character.getCharacterName()).equals(CharacterNames.Nez)) {
slice.setColor(campaignName.getContext().getResources().getColor(R.color.nez));
slice.setValue(1);
} else if (CharacterNames.valueOf(character.getCharacterName()).equals(CharacterNames.Tilda)) {
slice.setColor(campaignName.getContext().getResources().getColor(R.color.tilda));
slice.setValue(1);
}
characterGraph.addSlice(slice);
}
if(characterGraph.getSlices().size()>1) {
characterGraph.setPadding(10);
} else {
characterGraph.setPadding(1);//seems it won't draw 1 without some sort of padding.
}
}
@Override
public boolean onLongClick(View view) {
Kevin Whitaker
committed
AlertDialog removeDialog = new AlertDialogPro.Builder(view.getContext(),R.style.dialogTheme)
.setMessage("Do you want to remove campaign: "+campaignName.getText()+"?")
.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
})
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
adapter.removeItem((String) campaignName.getText());
}
})
.create();
removeDialog.show();
return true;
}
}