Abilities and Achievements should now rely on enum name for identification, but display current string resource in ui.

This commit is contained in:
Kevin Whitaker
2016-02-16 22:22:01 -05:00
parent d137e91c98
commit 2322ddc289
6 changed files with 16 additions and 21 deletions

View File

@@ -133,7 +133,7 @@ public class CampaignDetailsActivity extends RecyclerViewActivity {
RealmList<Achievement> currentPartyAchievements = MiceAndMysticsApplication.getRealmInstance().where(Campaign.class).equalTo("campaignName",campaign.getCampaignName()).findFirst().getPartyStoryAchievements(); RealmList<Achievement> currentPartyAchievements = MiceAndMysticsApplication.getRealmInstance().where(Campaign.class).equalTo("campaignName",campaign.getCampaignName()).findFirst().getPartyStoryAchievements();
boolean hasAlready = false; boolean hasAlready = false;
for (Achievement achievement:currentPartyAchievements) { for (Achievement achievement:currentPartyAchievements) {
if(achievementSpinner.getSelectedItem().toString().equals(achievement.getAchievementName())){ if(((com.eyecreate.miceandmystics.miceandmystics.model.Enums.Achievement)achievementSpinner.getSelectedItem()).name().equals(achievement.getAchievementName())){
hasAlready = true; hasAlready = true;
} }
} }

View File

@@ -76,7 +76,7 @@ public class CharacterDetailsActivity extends RecyclerViewActivity {
.setPositiveButton("Add", new DialogInterface.OnClickListener() { .setPositiveButton("Add", new DialogInterface.OnClickListener() {
@Override @Override
public void onClick(DialogInterface dialogInterface, int i) { public void onClick(DialogInterface dialogInterface, int i) {
RealmResults<Character> duplicates = MiceAndMysticsApplication.getRealmInstance().where(Character.class).equalTo("abilities.abilityName",abilitySpinner.getSelectedItem().toString()).equalTo("uuid",currentCharacter.getUuid()).findAll(); RealmResults<Character> duplicates = MiceAndMysticsApplication.getRealmInstance().where(Character.class).equalTo("abilities.abilityName", ((Abilities) abilitySpinner.getSelectedItem()).name()).equalTo("uuid", currentCharacter.getUuid()).findAll();
if(duplicates.size()==0) { if(duplicates.size()==0) {
((CharacterDetailsAdapter) getAdapter()).addAbility((Abilities) abilitySpinner.getSelectedItem()); ((CharacterDetailsAdapter) getAdapter()).addAbility((Abilities) abilitySpinner.getSelectedItem());
} else { } else {

View File

@@ -107,7 +107,7 @@ public class CampaignDetailsAdapter extends RecyclerView.Adapter<RecyclerView.Vi
MiceAndMysticsApplication.getRealmInstance().beginTransaction(); MiceAndMysticsApplication.getRealmInstance().beginTransaction();
Achievement realmAchievement = MiceAndMysticsApplication.getRealmInstance().createObject(Achievement.class); Achievement realmAchievement = MiceAndMysticsApplication.getRealmInstance().createObject(Achievement.class);
realmAchievement.setUuid(UUID.randomUUID().toString()); realmAchievement.setUuid(UUID.randomUUID().toString());
realmAchievement.setAchievementName(achievement.displayName()); realmAchievement.setAchievementName(achievement.name());
currentCampaign.getPartyStoryAchievements().add(realmAchievement); currentCampaign.getPartyStoryAchievements().add(realmAchievement);
MiceAndMysticsApplication.getRealmInstance().commitTransaction(); MiceAndMysticsApplication.getRealmInstance().commitTransaction();
fullRefresh(); fullRefresh();

View File

@@ -1,27 +1,27 @@
package com.eyecreate.miceandmystics.miceandmystics.model.Enums; package com.eyecreate.miceandmystics.miceandmystics.model.Enums;
import com.eyecreate.miceandmystics.miceandmystics.MiceAndMysticsApplication;
import com.eyecreate.miceandmystics.miceandmystics.R; import com.eyecreate.miceandmystics.miceandmystics.R;
public enum Achievement { public enum Achievement {
Miz_Maggie("Miz Maggie", R.mipmap.mizmaggie), Miz_Maggie(R.string.ach_name_maggie, R.mipmap.mizmaggie),
Vanestras_Brush("Vanestra's Brush",R.mipmap.vanbrush), Vanestras_Brush(R.string.ach_name_van_brush,R.mipmap.vanbrush),
King("King",R.mipmap.king), King(R.string.ach_name_king,R.mipmap.king),
Cats_Horn_Claw("Cat's Horn Claw",R.mipmap.catclaw), //not sure if it matters this is the claw and not the horn side. Cats_Horn_Claw(R.string.ach_name_horn_claw,R.mipmap.catclaw), //not sure if it matters this is the claw and not the horn side.
Catnip("Catnip",R.mipmap.catnip); Catnip(R.string.ach_name_catnip,R.mipmap.catnip);
private String displayName; private int displayName;
private int displayResource; private int displayResource;
Achievement(String displayName,int resource) { Achievement(int displayName,int resource) {
this.displayName = displayName; this.displayName = displayName;
this.displayResource = resource; this.displayResource = resource;
} }
public String displayName() { return displayName; } public String displayName() { return MiceAndMysticsApplication.getInstance().getString(displayName); }
public int getDisplayResource() { return displayResource; } public int getDisplayResource() { return displayResource; }
@Override public String toString() { return displayName; } @Override public String toString() { return displayName(); }
public static Achievement valueOfDisplayName(String valuedDisplayName) {return Achievement.valueOf(valuedDisplayName.replace(" ","_").replace("'",""));}
} }

View File

@@ -25,12 +25,7 @@ public class CharacterAbilityViewHolder extends RecyclerView.ViewHolder implemen
} }
public void bindHolder(Ability ability) { public void bindHolder(Ability ability) {
try { abilityName.setText(Abilities.valueOf(ability.getAbilityName()).toString());
abilityName.setText(Abilities.valueOf(ability.getAbilityName()).toString());
} catch(IllegalArgumentException e) {
//This is a workaround if ability doesn't exist. This is likely due to using old stored data.
abilityName.setText(ability.getAbilityName());
}
uuid = ability.getUuid(); uuid = ability.getUuid();
} }

View File

@@ -28,8 +28,8 @@ public class PartyAchievementViewHolder extends RecyclerView.ViewHolder implemen
public void bindHolder(Achievement achievement) { public void bindHolder(Achievement achievement) {
this.boundAchievement = achievement; this.boundAchievement = achievement;
achievementName.setText(achievement.getAchievementName()); achievementName.setText(com.eyecreate.miceandmystics.miceandmystics.model.Enums.Achievement.valueOf(achievement.getAchievementName()).displayName());
achievementIcon.setImageResource(com.eyecreate.miceandmystics.miceandmystics.model.Enums.Achievement.valueOfDisplayName(achievement.getAchievementName()).getDisplayResource()); achievementIcon.setImageResource(com.eyecreate.miceandmystics.miceandmystics.model.Enums.Achievement.valueOf(achievement.getAchievementName()).getDisplayResource());
} }
@Override @Override