diff --git a/.idea/misc.xml b/.idea/misc.xml
index 1c1e956bdf8e7a33b71a08d42a96c0892cf1432d..e816eddb963807f4486d466cb91f5aca53f13398 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -6,13 +6,6 @@
-
-
-
@@ -29,19 +22,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/MiceAndMysticsTracker/MiceAndMysticsTracker.iml b/MiceAndMysticsTracker/MiceAndMysticsTracker.iml
index 37050bb998005f1189985d38f5ec2b7168170787..7685697b02d21b05a03fddeec583bb26fe96f629 100644
--- a/MiceAndMysticsTracker/MiceAndMysticsTracker.iml
+++ b/MiceAndMysticsTracker/MiceAndMysticsTracker.iml
@@ -85,13 +85,16 @@
+
+
+
\ No newline at end of file
diff --git a/MiceAndMysticsTracker/build.gradle b/MiceAndMysticsTracker/build.gradle
index 5a9af1a6094384074d415eaae49a855b3a542ac0..ff377caf1128bce1ced299e2a6e29c3cd209da98 100644
--- a/MiceAndMysticsTracker/build.gradle
+++ b/MiceAndMysticsTracker/build.gradle
@@ -44,4 +44,5 @@ dependencies {
compile 'com.android.support:recyclerview-v7:21.0.+'
compile 'com.android.support:cardview-v7:21.0.+'
compile 'org.quanqi:android-holo-graph:0.1.0'
+ compile 'com.github.fengdai:alertdialogpro-theme-material:0.2.2'
}
diff --git a/MiceAndMysticsTracker/src/main/AndroidManifest.xml b/MiceAndMysticsTracker/src/main/AndroidManifest.xml
index 7f29f01a473992e1c14cf57c56c470b552827b84..142b792ce7347cdb39ed7e1cc5b98a03b1114dba 100644
--- a/MiceAndMysticsTracker/src/main/AndroidManifest.xml
+++ b/MiceAndMysticsTracker/src/main/AndroidManifest.xml
@@ -26,8 +26,9 @@
android:value="com.eyecreate.miceandmystics.miceandmystics.CampaignActivity" />
-
+ android:name=".PlayerManagerActivity"/>
+
diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/CampaignActivity.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/CampaignActivity.java
index 761b5fe1a071a576dedca6a6b989450775ebff70..597bfff6e2d9d866d5062fb7a3fff130f674b754 100644
--- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/CampaignActivity.java
+++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/CampaignActivity.java
@@ -3,7 +3,6 @@ package com.eyecreate.miceandmystics.miceandmystics;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
-import android.graphics.Typeface;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.view.*;
@@ -11,6 +10,7 @@ import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
+import com.alertdialogpro.AlertDialogPro;
import com.eyecreate.miceandmystics.miceandmystics.adapters.CampaignAdapter;
import com.eyecreate.miceandmystics.miceandmystics.model.Enums.CampaignType;
@@ -56,7 +56,7 @@ public class CampaignActivity extends RecyclerViewActivity {
final Spinner typeSpinner = ((Spinner)dialogView.findViewById(R.id.campaign_type));
typeSpinner.setAdapter(new ArrayAdapter(this, R.layout.simple_spinner_item, CampaignType.values()));
typeSpinner.setSelection(0);
- AlertDialog addDialog = new AlertDialog.Builder(this,R.style.dialogTheme)
+ AlertDialog addDialog = new AlertDialogPro.Builder(this,R.style.dialogTheme)
.setMessage("Please give your new campaign a unique name:")
.setView(dialogView)
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/CampaignDetailsActivity.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/CampaignDetailsActivity.java
index 23af5bdf80f509161fb8c9769de3443ce430a1a4..a4707c5982777e87a26692eb7a3604bccbb9e5da 100644
--- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/CampaignDetailsActivity.java
+++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/CampaignDetailsActivity.java
@@ -12,6 +12,7 @@ import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
+import com.alertdialogpro.AlertDialogPro;
import com.eyecreate.miceandmystics.miceandmystics.adapters.CampaignDetailsAdapter;
import com.eyecreate.miceandmystics.miceandmystics.model.Achievement;
import com.eyecreate.miceandmystics.miceandmystics.model.Campaign;
@@ -80,7 +81,7 @@ public class CampaignDetailsActivity extends RecyclerViewActivity {
LayoutInflater inflator = (LayoutInflater)(new ContextThemeWrapper(ctx, R.style.dialogTheme)).getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View dialogView = inflator.inflate(R.layout.dialog_new_player, null, false);
final EditText playerEdit = ((EditText)dialogView.findViewById(R.id.player_name));
- AlertDialog addDialog = new AlertDialog.Builder(ctx,R.style.dialogTheme)
+ AlertDialog addDialog = new AlertDialogPro.Builder(ctx,R.style.dialogTheme)
.setMessage("Please name the new player:")
.setView(dialogView)
.setPositiveButton("Create", new DialogInterface.OnClickListener() {
@@ -116,7 +117,7 @@ public class CampaignDetailsActivity extends RecyclerViewActivity {
final Spinner achievementSpinner = ((Spinner)dialogView.findViewById(R.id.achievement_name));
achievementSpinner.setAdapter(new ArrayAdapter(this, R.layout.simple_spinner_item, com.eyecreate.miceandmystics.miceandmystics.model.Enums.Achievement.values()));
achievementSpinner.setSelection(0);
- AlertDialog addDialog = new AlertDialog.Builder(this,R.style.dialogTheme)
+ AlertDialog addDialog = new AlertDialogPro.Builder(this,R.style.dialogTheme)
.setMessage("Please select the achievement to add to party:")
.setView(dialogView)
.setPositiveButton("Add", new DialogInterface.OnClickListener() {
@@ -150,7 +151,7 @@ public class CampaignDetailsActivity extends RecyclerViewActivity {
RealmResults players = MiceAndMysticsApplication.getRealmInstance().where(Player.class).findAll();
playerSpinner.setAdapter(new ArrayAdapter(this, R.layout.simple_spinner_item, Player.convertPlayerListToStringArray(players.subList(0,players.size()))));
playerSpinner.setSelection(0);
- AlertDialog addDialog = new AlertDialog.Builder(this,R.style.dialogTheme)
+ AlertDialog addDialog = new AlertDialogPro.Builder(this,R.style.dialogTheme)
.setMessage("Please select your character and controlling player:")
.setView(dialogView)
.setPositiveButton("Create", new DialogInterface.OnClickListener() {
diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/CharacterDetailsActivity.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/CharacterDetailsActivity.java
new file mode 100644
index 0000000000000000000000000000000000000000..67e54e594c69bf60856fe6612f952a9c3dae7502
--- /dev/null
+++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/CharacterDetailsActivity.java
@@ -0,0 +1,111 @@
+package com.eyecreate.miceandmystics.miceandmystics;
+
+import android.app.AlertDialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.os.Bundle;
+import android.os.PersistableBundle;
+import android.support.v7.widget.LinearLayoutManager;
+import android.view.*;
+import android.widget.ArrayAdapter;
+import android.widget.EditText;
+import android.widget.Spinner;
+import android.widget.Toast;
+import com.alertdialogpro.AlertDialogPro;
+import com.eyecreate.miceandmystics.miceandmystics.adapters.CharacterDetailsAdapter;
+import com.eyecreate.miceandmystics.miceandmystics.model.Character;
+import com.eyecreate.miceandmystics.miceandmystics.model.Enums.Abilities;
+import com.eyecreate.miceandmystics.miceandmystics.model.Enums.CharacterNames;
+import io.realm.RealmResults;
+
+public class CharacterDetailsActivity extends RecyclerViewActivity {
+
+ Character currentCharacter;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setTitle("Character Details");
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+ if(getIntent().hasExtra("characterId")) {
+ currentCharacter = MiceAndMysticsApplication.getRealmInstance().where(Character.class).equalTo("uuid",getIntent().getStringExtra("characterId")).findFirst();
+ } else if(savedInstanceState.containsKey("characterId")) {
+ currentCharacter = MiceAndMysticsApplication.getRealmInstance().where(Character.class).equalTo("uuid",savedInstanceState.getString("characterId")).findFirst();
+ }
+ setLayoutManager(new LinearLayoutManager(this));
+ setAdapter(new CharacterDetailsAdapter(currentCharacter));
+ }
+
+ @Override
+ public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
+ super.onSaveInstanceState(outState, outPersistentState);
+ outState.putString("characterId", currentCharacter.getUuid());
+ }
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ getMenuInflater().inflate(R.menu.menu_character_details, menu);
+ return true;
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ int id = item.getItemId();
+
+ if(id == R.id.action_add_ability) {
+ newAbilityDialog();
+ return true;
+ } else if(id == R.id.action_add_item) {
+ newItemDialog();
+ return true;
+ } else if (id == android.R.id.home) {
+ finish();
+ }
+ return super.onOptionsItemSelected(item);
+ }
+
+ public void newAbilityDialog() {
+ LayoutInflater inflator = (LayoutInflater)(new ContextThemeWrapper(this, R.style.dialogTheme)).getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+ final View dialogView = inflator.inflate(R.layout.dialog_new_ability, null, false);
+ final Spinner abilitySpinner = ((Spinner)dialogView.findViewById(R.id.ability_name));
+ abilitySpinner.setAdapter(new ArrayAdapter(this, R.layout.simple_spinner_item, Abilities.getMatchingCharacterAbilities(CharacterNames.valueOf(currentCharacter.getCharacterName()).characterTypes())));
+ abilitySpinner.setSelection(0);
+ AlertDialog addDialog = new AlertDialogPro.Builder(this,R.style.dialogTheme)
+ .setMessage("Please select the ability to be added:")
+ .setView(dialogView)
+ .setPositiveButton("Add", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i) {
+ RealmResults duplicates = MiceAndMysticsApplication.getRealmInstance().where(Character.class).equalTo("abilities.abilityName",abilitySpinner.getSelectedItem().toString()).equalTo("uuid",currentCharacter.getUuid()).findAll();
+ if(duplicates.size()==0) {
+ ((CharacterDetailsAdapter) getAdapter()).addAbility((Abilities) abilitySpinner.getSelectedItem());
+ } else {
+ Toast.makeText(CharacterDetailsActivity.this,"That ability is already on this character.",Toast.LENGTH_LONG).show();
+ }
+ }
+ })
+ .create();
+ addDialog.show();
+ }
+
+ public void newItemDialog() {
+ LayoutInflater inflator = (LayoutInflater)(new ContextThemeWrapper(this, R.style.dialogTheme)).getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+ final View dialogView = inflator.inflate(R.layout.dialog_new_item, null, false);
+ final EditText itemEdit = ((EditText)dialogView.findViewById(R.id.item_name));
+ AlertDialog addDialog = new AlertDialogPro.Builder(this,R.style.dialogTheme)
+ .setMessage("Please name the item to mark as held:")
+ .setView(dialogView)
+ .setPositiveButton("Add", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i) {
+ if (itemEdit.getText().length() > 0) {
+ ((CharacterDetailsAdapter) getAdapter()).addItem(itemEdit.getText().toString());
+ } else if (itemEdit.getText().length() == 0) {
+ Toast.makeText(CharacterDetailsActivity.this, "Can not have a blank item name!", Toast.LENGTH_LONG).show();
+ }
+ }
+ })
+ .create();
+ addDialog.show();
+ }
+}
diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/adapters/CharacterDetailsAdapter.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/adapters/CharacterDetailsAdapter.java
new file mode 100644
index 0000000000000000000000000000000000000000..324da586d9da06c645c1bef002d2dd168ce9e361
--- /dev/null
+++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/adapters/CharacterDetailsAdapter.java
@@ -0,0 +1,107 @@
+package com.eyecreate.miceandmystics.miceandmystics.adapters;
+
+import android.content.Context;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.ViewGroup;
+import com.eyecreate.miceandmystics.miceandmystics.MiceAndMysticsApplication;
+import com.eyecreate.miceandmystics.miceandmystics.R;
+import com.eyecreate.miceandmystics.miceandmystics.model.Ability;
+import com.eyecreate.miceandmystics.miceandmystics.model.BackpackItem;
+import com.eyecreate.miceandmystics.miceandmystics.model.Character;
+import com.eyecreate.miceandmystics.miceandmystics.model.Enums.Abilities;
+import com.eyecreate.miceandmystics.miceandmystics.viewholders.CharacterAbilityHeaderViewHolder;
+import com.eyecreate.miceandmystics.miceandmystics.viewholders.CharacterAbilityViewHolder;
+import com.eyecreate.miceandmystics.miceandmystics.viewholders.CharacterItemViewHolder;
+import com.eyecreate.miceandmystics.miceandmystics.viewholders.CharacterItemsHeaderViewHolder;
+
+import java.util.UUID;
+
+public class CharacterDetailsAdapter extends RecyclerView.Adapter {
+
+ Character currentCharacter;
+ LayoutInflater inflater;
+
+ public CharacterDetailsAdapter(Character currentCharacter) {
+ this.currentCharacter = currentCharacter;
+ }
+
+ @Override
+ public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ if(inflater == null) inflater = (LayoutInflater)parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+ if(viewType == R.id.characterDeatilAbilityHeader) {
+ return new CharacterAbilityHeaderViewHolder(inflater.inflate(R.layout.item_character_ability_header,parent,false));
+ } else if(viewType == R.id.characterDetailAbility) {
+ return new CharacterAbilityViewHolder(inflater.inflate(R.layout.item_character_ability,parent,false),this);
+ } else if(viewType == R.id.characterDetailItemHeader) {
+ return new CharacterItemsHeaderViewHolder(inflater.inflate(R.layout.item_character_items_header,parent,false));
+ } else {
+ return new CharacterItemViewHolder(inflater.inflate(R.layout.item_character_item,parent,false),this);
+ }
+ }
+
+ @Override
+ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
+ if(holder instanceof CharacterAbilityHeaderViewHolder) {
+ ((CharacterAbilityHeaderViewHolder) holder).bindHolder(currentCharacter);
+ } else if(holder instanceof CharacterAbilityViewHolder) {
+ ((CharacterAbilityViewHolder)holder).bindHolder(currentCharacter.getAbilities().get(position-1));
+ } else if(holder instanceof CharacterItemViewHolder) {
+ ((CharacterItemViewHolder) holder).bindModel(currentCharacter.getStoredItems().get(position-2-currentCharacter.getAbilities().size()));
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return currentCharacter.getAbilities().size()+1+currentCharacter.getStoredItems().size()+1; //The plus ones represent headers
+ }
+
+ @Override
+ public int getItemViewType(int position) {
+ if(position == 0) {
+ return R.id.characterDeatilAbilityHeader;
+ } else if(position < currentCharacter.getAbilities().size()+1) {
+ return R.id.characterDetailAbility;
+ } else if (position == currentCharacter.getAbilities().size()+1) {
+ return R.id.characterDetailItemHeader;
+ } else {
+ return R.id.characterDetailItem;
+ }
+ }
+
+ public void addAbility(Abilities ability) {
+ MiceAndMysticsApplication.getRealmInstance().beginTransaction();
+ Ability realmAbility = MiceAndMysticsApplication.getRealmInstance().createObject(Ability.class);
+ realmAbility.setUuid(UUID.randomUUID().toString());
+ realmAbility.setAbilityName(ability.displayName());
+ currentCharacter.getAbilities().add(realmAbility);
+ MiceAndMysticsApplication.getRealmInstance().commitTransaction();
+ notifyDataSetChanged();
+ }
+
+ public void addItem(String itemName) {
+ MiceAndMysticsApplication.getRealmInstance().beginTransaction();
+ BackpackItem item = MiceAndMysticsApplication.getRealmInstance().createObject(BackpackItem.class);
+ item.setUuid(UUID.randomUUID().toString());
+ item.setItemName(itemName);
+ currentCharacter.getStoredItems().add(item);
+ MiceAndMysticsApplication.getRealmInstance().commitTransaction();
+ notifyDataSetChanged();
+ }
+
+ public void removeItem(String itemUuid) {
+ BackpackItem item = MiceAndMysticsApplication.getRealmInstance().where(BackpackItem.class).equalTo("uuid",itemUuid).findFirst();
+ MiceAndMysticsApplication.getRealmInstance().beginTransaction();
+ item.removeFromRealm();
+ MiceAndMysticsApplication.getRealmInstance().commitTransaction();
+ notifyDataSetChanged();
+ }
+
+ public void removeAbility(String abilityUuid) {
+ Ability ability = MiceAndMysticsApplication.getRealmInstance().where(Ability.class).equalTo("uuid",abilityUuid).findFirst();
+ MiceAndMysticsApplication.getRealmInstance().beginTransaction();
+ ability.removeFromRealm();
+ MiceAndMysticsApplication.getRealmInstance().commitTransaction();
+ notifyDataSetChanged();
+ }
+}
diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/adapters/PlayerManagerAdapter.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/adapters/PlayerManagerAdapter.java
index 4d252b612b2b19d0b9f53a556249bc0d17fd660e..a0d52f7c3ec81337157afe55f7259bb14ee4baf2 100644
--- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/adapters/PlayerManagerAdapter.java
+++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/adapters/PlayerManagerAdapter.java
@@ -6,6 +6,7 @@ import android.content.DialogInterface;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.ViewGroup;
+import com.alertdialogpro.AlertDialogPro;
import com.eyecreate.miceandmystics.miceandmystics.MiceAndMysticsApplication;
import com.eyecreate.miceandmystics.miceandmystics.R;
import com.eyecreate.miceandmystics.miceandmystics.model.*;
@@ -45,7 +46,7 @@ public class PlayerManagerAdapter extends RecyclerView.Adapter
final RealmResults playerCharacters = MiceAndMysticsApplication.getRealmInstance().where(com.eyecreate.miceandmystics.miceandmystics.model.Character.class)
.equalTo("controllingPlayer.playerName", playerName).findAll();
if(playerCharacters.size()>0) {
- AlertDialog removeDialog = new AlertDialog.Builder(ctx,R.style.dialogTheme)
+ AlertDialog removeDialog = new AlertDialogPro.Builder(ctx,R.style.dialogTheme)
.setMessage("Removing player "+playerName+" must first remove all characters owned by player. Do you want to continue still?")
.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
@@ -68,7 +69,7 @@ public class PlayerManagerAdapter extends RecyclerView.Adapter
.create();
removeDialog.show();
} else {
- AlertDialog removeDialog = new AlertDialog.Builder(ctx, R.style.dialogTheme)
+ AlertDialog removeDialog = new AlertDialogPro.Builder(ctx, R.style.dialogTheme)
.setMessage("Do you want to remove player: " + playerName + "?")
.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Enums/Abilities.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Enums/Abilities.java
index 5440a86b433ba1187dd4db78af489383cc77a369..7b9859cf93c6892c9fe06e746215827feb93064d 100644
--- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Enums/Abilities.java
+++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Enums/Abilities.java
@@ -1,6 +1,8 @@
package com.eyecreate.miceandmystics.miceandmystics.model.Enums;
+import java.util.ArrayList;
import java.util.Arrays;
+import java.util.List;
public enum Abilities {
@@ -52,6 +54,16 @@ public enum Abilities {
return false;
}
+ public static Abilities[] getMatchingCharacterAbilities(CharacterType[] matchingTypes) {
+ List matchingList = new ArrayList();
+ for(Abilities ability:Abilities.values()) {
+ if(ability.doesApply(matchingTypes)) {
+ matchingList.add(ability);
+ }
+ }
+ return matchingList.toArray(new Abilities[matchingList.size()]);
+ }
+
public String displayName() { return displayName; }
@Override public String toString() { return displayName; }
diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignDetailsViewHolder.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignDetailsViewHolder.java
index 68930bf7dcce35ed836a876162b42fa1f0d18a6b..9c56aa3005dee1da864356b7b052fedf25a10a62 100644
--- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignDetailsViewHolder.java
+++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignDetailsViewHolder.java
@@ -2,10 +2,13 @@ package com.eyecreate.miceandmystics.miceandmystics.viewholders;
import android.app.AlertDialog;
import android.content.DialogInterface;
+import android.content.Intent;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
+import com.alertdialogpro.AlertDialogPro;
+import com.eyecreate.miceandmystics.miceandmystics.CharacterDetailsActivity;
import com.eyecreate.miceandmystics.miceandmystics.R;
import com.eyecreate.miceandmystics.miceandmystics.adapters.CampaignDetailsAdapter;
import com.eyecreate.miceandmystics.miceandmystics.model.Character;
@@ -37,12 +40,14 @@ public class CampaignDetailsViewHolder extends RecyclerView.ViewHolder implement
@Override
public void onClick(View view) {
- //TODO:implement character edit screen.
+ Intent editCharacter = new Intent(view.getContext(), CharacterDetailsActivity.class);
+ editCharacter.putExtra("characterId",boundCharacter.getUuid());
+ view.getContext().startActivity(editCharacter);
}
@Override
public boolean onLongClick(View view) {
- AlertDialog removeDialog = new AlertDialog.Builder(view.getContext(),R.style.dialogTheme)
+ AlertDialog removeDialog = new AlertDialogPro.Builder(view.getContext(),R.style.dialogTheme)
.setMessage("Do you want to remove character: "+characterName.getText()+"?")
.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignViewHolder.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignViewHolder.java
index 343f55fafea27461cc4cfdf72cfc223124805a10..b60085bf81d56344ed5f6b5941b1c38a0800a753 100644
--- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignViewHolder.java
+++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignViewHolder.java
@@ -9,6 +9,7 @@ import android.support.v7.widget.RecyclerView;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;
+import com.alertdialogpro.AlertDialogPro;
import com.echo.holographlibrary.PieGraph;
import com.echo.holographlibrary.PieSlice;
import com.eyecreate.miceandmystics.miceandmystics.CampaignDetailsActivity;
@@ -74,7 +75,7 @@ public class CampaignViewHolder extends RecyclerView.ViewHolder implements View.
@Override
public boolean onLongClick(View view) {
- AlertDialog removeDialog = new AlertDialog.Builder(view.getContext(),R.style.dialogTheme)
+ 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
diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CharacterAbilityHeaderViewHolder.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CharacterAbilityHeaderViewHolder.java
new file mode 100644
index 0000000000000000000000000000000000000000..7b5dbaafeaf66fd2a2d04a4ca4b40f4c947620f6
--- /dev/null
+++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CharacterAbilityHeaderViewHolder.java
@@ -0,0 +1,21 @@
+package com.eyecreate.miceandmystics.miceandmystics.viewholders;
+
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.widget.TextView;
+import com.eyecreate.miceandmystics.miceandmystics.R;
+import com.eyecreate.miceandmystics.miceandmystics.model.Character;
+
+public class CharacterAbilityHeaderViewHolder extends RecyclerView.ViewHolder {
+
+ TextView characterName;
+
+ public CharacterAbilityHeaderViewHolder(View itemView) {
+ super(itemView);
+ characterName = (TextView) itemView.findViewById(R.id.character_name);
+ }
+
+ public void bindHolder(Character currentCharacter) {
+ characterName.setText(currentCharacter.getCharacterName());
+ }
+}
diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CharacterAbilityViewHolder.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CharacterAbilityViewHolder.java
new file mode 100644
index 0000000000000000000000000000000000000000..8a963acf77a155c419408fe15035692003e6962f
--- /dev/null
+++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CharacterAbilityViewHolder.java
@@ -0,0 +1,51 @@
+package com.eyecreate.miceandmystics.miceandmystics.viewholders;
+
+import android.app.AlertDialog;
+import android.content.DialogInterface;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.widget.TextView;
+import com.alertdialogpro.AlertDialogPro;
+import com.eyecreate.miceandmystics.miceandmystics.R;
+import com.eyecreate.miceandmystics.miceandmystics.adapters.CharacterDetailsAdapter;
+import com.eyecreate.miceandmystics.miceandmystics.model.Ability;
+
+public class CharacterAbilityViewHolder extends RecyclerView.ViewHolder implements View.OnLongClickListener {
+
+ CharacterDetailsAdapter adapter;
+ TextView abilityName;
+ String uuid;
+
+ public CharacterAbilityViewHolder(View itemView,CharacterDetailsAdapter adapter) {
+ super(itemView);
+ this.adapter = adapter;
+ abilityName = (TextView) itemView.findViewById(R.id.ability_name);
+ itemView.setOnLongClickListener(this);
+ }
+
+ public void bindHolder(Ability ability) {
+ abilityName.setText(ability.getAbilityName());
+ uuid = ability.getUuid();
+ }
+
+ @Override
+ public boolean onLongClick(View view) {
+ AlertDialog removeDialog = new AlertDialogPro.Builder(view.getContext(),R.style.dialogTheme)
+ .setMessage("Do you want to remove ability: "+abilityName.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.removeAbility(uuid);
+ }
+ })
+ .create();
+ removeDialog.show();
+ return true;
+ }
+}
diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CharacterItemViewHolder.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CharacterItemViewHolder.java
new file mode 100644
index 0000000000000000000000000000000000000000..4be28cc67a96c65d71bdcfd71fcf2366429b5e9d
--- /dev/null
+++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CharacterItemViewHolder.java
@@ -0,0 +1,51 @@
+package com.eyecreate.miceandmystics.miceandmystics.viewholders;
+
+import android.app.AlertDialog;
+import android.content.DialogInterface;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.widget.TextView;
+import com.alertdialogpro.AlertDialogPro;
+import com.eyecreate.miceandmystics.miceandmystics.R;
+import com.eyecreate.miceandmystics.miceandmystics.adapters.CharacterDetailsAdapter;
+import com.eyecreate.miceandmystics.miceandmystics.model.BackpackItem;
+
+public class CharacterItemViewHolder extends RecyclerView.ViewHolder implements View.OnLongClickListener {
+
+ CharacterDetailsAdapter adapter;
+ TextView itemName;
+ String uuid;
+
+ public CharacterItemViewHolder(View itemView,CharacterDetailsAdapter adapter) {
+ super(itemView);
+ this.adapter = adapter;
+ itemName = (TextView) itemView.findViewById(R.id.item_name);
+ itemView.setOnLongClickListener(this);
+ }
+
+ public void bindModel(BackpackItem item) {
+ itemName.setText(item.getItemName());
+ uuid = item.getUuid();
+ }
+
+ @Override
+ public boolean onLongClick(View view) {
+ AlertDialog removeDialog = new AlertDialogPro.Builder(view.getContext(),R.style.dialogTheme)
+ .setMessage("Do you want to remove item: "+itemName.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(uuid);
+ }
+ })
+ .create();
+ removeDialog.show();
+ return true;
+ }
+}
diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CharacterItemsHeaderViewHolder.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CharacterItemsHeaderViewHolder.java
new file mode 100644
index 0000000000000000000000000000000000000000..e0a8a7c3f9fb1c954c65ee6a276db21072a650e5
--- /dev/null
+++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CharacterItemsHeaderViewHolder.java
@@ -0,0 +1,10 @@
+package com.eyecreate.miceandmystics.miceandmystics.viewholders;
+
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+
+public class CharacterItemsHeaderViewHolder extends RecyclerView.ViewHolder {
+ public CharacterItemsHeaderViewHolder(View itemView) {
+ super(itemView);
+ }
+}
diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/PartyAchievementViewHolder.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/PartyAchievementViewHolder.java
index 7eb599dd41bdf6cb41936cfcfbaebc545596b06e..40cd994a8a5883562bc4ed41fd33a4a7c8ebe6c4 100644
--- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/PartyAchievementViewHolder.java
+++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/PartyAchievementViewHolder.java
@@ -6,6 +6,7 @@ import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
+import com.alertdialogpro.AlertDialogPro;
import com.eyecreate.miceandmystics.miceandmystics.R;
import com.eyecreate.miceandmystics.miceandmystics.adapters.CampaignDetailsAdapter;
import com.eyecreate.miceandmystics.miceandmystics.model.Achievement;
@@ -33,7 +34,7 @@ public class PartyAchievementViewHolder extends RecyclerView.ViewHolder implemen
@Override
public boolean onLongClick(View view) {
- AlertDialog removeDialog = new AlertDialog.Builder(view.getContext(),R.style.dialogTheme)
+ AlertDialog removeDialog = new AlertDialogPro.Builder(view.getContext(),R.style.dialogTheme)
.setMessage("Do you want to remove achievement: "+achievementName.getText()+"?")
.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
diff --git a/MiceAndMysticsTracker/src/main/res/layout/dialog_new_ability.xml b/MiceAndMysticsTracker/src/main/res/layout/dialog_new_ability.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e7c8204fb8ff66d88ac8d3b82b648118b108e559
--- /dev/null
+++ b/MiceAndMysticsTracker/src/main/res/layout/dialog_new_ability.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/MiceAndMysticsTracker/src/main/res/layout/dialog_new_item.xml b/MiceAndMysticsTracker/src/main/res/layout/dialog_new_item.xml
new file mode 100644
index 0000000000000000000000000000000000000000..52b440ee9b20606c539b82e53a22f0a2961fddcd
--- /dev/null
+++ b/MiceAndMysticsTracker/src/main/res/layout/dialog_new_item.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/MiceAndMysticsTracker/src/main/res/layout/item_character_ability.xml b/MiceAndMysticsTracker/src/main/res/layout/item_character_ability.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f213d1238d299a5010a60d72707d6704dd0e50ed
--- /dev/null
+++ b/MiceAndMysticsTracker/src/main/res/layout/item_character_ability.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MiceAndMysticsTracker/src/main/res/layout/item_character_ability_header.xml b/MiceAndMysticsTracker/src/main/res/layout/item_character_ability_header.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7b030948ec528d6adb1b9be7e3ce1a40b37902bf
--- /dev/null
+++ b/MiceAndMysticsTracker/src/main/res/layout/item_character_ability_header.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/MiceAndMysticsTracker/src/main/res/layout/item_character_item.xml b/MiceAndMysticsTracker/src/main/res/layout/item_character_item.xml
new file mode 100644
index 0000000000000000000000000000000000000000..cb96cf3c42466f604a3733eea4b07ebbb14f30d5
--- /dev/null
+++ b/MiceAndMysticsTracker/src/main/res/layout/item_character_item.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MiceAndMysticsTracker/src/main/res/layout/item_character_items_header.xml b/MiceAndMysticsTracker/src/main/res/layout/item_character_items_header.xml
new file mode 100644
index 0000000000000000000000000000000000000000..cb814a01538549f717c44576e7f14f467dc645f2
--- /dev/null
+++ b/MiceAndMysticsTracker/src/main/res/layout/item_character_items_header.xml
@@ -0,0 +1,12 @@
+
+
+
+
\ No newline at end of file
diff --git a/MiceAndMysticsTracker/src/main/res/menu/menu_character_details.xml b/MiceAndMysticsTracker/src/main/res/menu/menu_character_details.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0b779d2d0f51dd0de3e26fd0fd392fa757a6598c
--- /dev/null
+++ b/MiceAndMysticsTracker/src/main/res/menu/menu_character_details.xml
@@ -0,0 +1,10 @@
+
+
\ No newline at end of file
diff --git a/MiceAndMysticsTracker/src/main/res/values/ids.xml b/MiceAndMysticsTracker/src/main/res/values/ids.xml
index d11c6dfdb9012346613d5622db3db87f5d451938..ff570006966cfbae168544f853dd212e11c7f76a 100644
--- a/MiceAndMysticsTracker/src/main/res/values/ids.xml
+++ b/MiceAndMysticsTracker/src/main/res/values/ids.xml
@@ -4,4 +4,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/MiceAndMysticsTracker/src/main/res/values/styles.xml b/MiceAndMysticsTracker/src/main/res/values/styles.xml
index 83158003631d188869fa7d797bca874615ff587f..ff2591ae3998b5f08a1044f40e4cf870483d47b2 100644
--- a/MiceAndMysticsTracker/src/main/res/values/styles.xml
+++ b/MiceAndMysticsTracker/src/main/res/values/styles.xml
@@ -8,13 +8,14 @@
- @color/parchment_yellow
- @color/parchment_yellow
- @style/popupMenu
+ - @style/Theme.AlertDialogPro.Material.Light
-