Implement party achievements being displayed and added.
This commit is contained in:
@@ -13,6 +13,7 @@ import android.widget.EditText;
|
|||||||
import android.widget.Spinner;
|
import android.widget.Spinner;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
import com.eyecreate.miceandmystics.miceandmystics.adapters.CampaignDetailsAdapter;
|
import com.eyecreate.miceandmystics.miceandmystics.adapters.CampaignDetailsAdapter;
|
||||||
|
import com.eyecreate.miceandmystics.miceandmystics.model.Achievement;
|
||||||
import com.eyecreate.miceandmystics.miceandmystics.model.Campaign;
|
import com.eyecreate.miceandmystics.miceandmystics.model.Campaign;
|
||||||
import com.eyecreate.miceandmystics.miceandmystics.model.Enums.CharacterNames;
|
import com.eyecreate.miceandmystics.miceandmystics.model.Enums.CharacterNames;
|
||||||
import com.eyecreate.miceandmystics.miceandmystics.model.Player;
|
import com.eyecreate.miceandmystics.miceandmystics.model.Player;
|
||||||
@@ -68,6 +69,7 @@ public class CampaignDetailsActivity extends RecyclerViewActivity {
|
|||||||
startActivity(managePlayers);
|
startActivity(managePlayers);
|
||||||
return true;
|
return true;
|
||||||
} else if (id == R.id.action_add_party_achievement) {
|
} else if (id == R.id.action_add_party_achievement) {
|
||||||
|
newAchievementDialog();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -108,6 +110,36 @@ public class CampaignDetailsActivity extends RecyclerViewActivity {
|
|||||||
getAdapter().notifyDataSetChanged();
|
getAdapter().notifyDataSetChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void newAchievementDialog() {
|
||||||
|
LayoutInflater inflator = (LayoutInflater)(new ContextThemeWrapper(this, R.style.dialogTheme)).getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||||
|
final View dialogView = inflator.inflate(R.layout.dialog_new_achievement, null, false);
|
||||||
|
final Spinner achievementSpinner = ((Spinner)dialogView.findViewById(R.id.achievement_name));
|
||||||
|
achievementSpinner.setAdapter(new ArrayAdapter<com.eyecreate.miceandmystics.miceandmystics.model.Enums.Achievement>(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)
|
||||||
|
.setMessage("Please select the achievement to add to party:")
|
||||||
|
.setView(dialogView)
|
||||||
|
.setPositiveButton("Add", new DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialogInterface, int i) {
|
||||||
|
RealmResults<Achievement> currentPartyAchievements = MiceAndMysticsApplication.getRealmInstance().where(Achievement.class).findAll();
|
||||||
|
boolean hasAlready = false;
|
||||||
|
for (Achievement achievement:currentPartyAchievements) {
|
||||||
|
if(achievementSpinner.getSelectedItem().toString().equals(achievement.getAchievementName())){
|
||||||
|
hasAlready = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!hasAlready) {
|
||||||
|
((CampaignDetailsAdapter) getAdapter()).addPartyAchievement((com.eyecreate.miceandmystics.miceandmystics.model.Enums.Achievement) achievementSpinner.getSelectedItem());
|
||||||
|
} else {
|
||||||
|
Toast.makeText(CampaignDetailsActivity.this, "Can not have more than one of same achievement.", Toast.LENGTH_LONG).show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.create();
|
||||||
|
addDialog.show();
|
||||||
|
}
|
||||||
|
|
||||||
public void newCharacterDialog() {
|
public void newCharacterDialog() {
|
||||||
LayoutInflater inflator = (LayoutInflater)(new ContextThemeWrapper(this, R.style.dialogTheme)).getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
LayoutInflater inflator = (LayoutInflater)(new ContextThemeWrapper(this, R.style.dialogTheme)).getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||||
final View dialogView = inflator.inflate(R.layout.dialog_new_character, null, false);
|
final View dialogView = inflator.inflate(R.layout.dialog_new_character, null, false);
|
||||||
|
|||||||
@@ -8,10 +8,12 @@ import android.widget.Toast;
|
|||||||
import com.eyecreate.miceandmystics.miceandmystics.MiceAndMysticsApplication;
|
import com.eyecreate.miceandmystics.miceandmystics.MiceAndMysticsApplication;
|
||||||
import com.eyecreate.miceandmystics.miceandmystics.R;
|
import com.eyecreate.miceandmystics.miceandmystics.R;
|
||||||
import com.eyecreate.miceandmystics.miceandmystics.model.*;
|
import com.eyecreate.miceandmystics.miceandmystics.model.*;
|
||||||
|
import com.eyecreate.miceandmystics.miceandmystics.model.Achievement;
|
||||||
import com.eyecreate.miceandmystics.miceandmystics.model.Character;
|
import com.eyecreate.miceandmystics.miceandmystics.model.Character;
|
||||||
import com.eyecreate.miceandmystics.miceandmystics.model.Enums.CharacterNames;
|
import com.eyecreate.miceandmystics.miceandmystics.model.Enums.*;
|
||||||
import com.eyecreate.miceandmystics.miceandmystics.viewholders.CampaignDetailsViewHolder;
|
import com.eyecreate.miceandmystics.miceandmystics.viewholders.CampaignDetailsViewHolder;
|
||||||
import com.eyecreate.miceandmystics.miceandmystics.viewholders.CampaignHeaderViewHolder;
|
import com.eyecreate.miceandmystics.miceandmystics.viewholders.CampaignHeaderViewHolder;
|
||||||
|
import com.eyecreate.miceandmystics.miceandmystics.viewholders.PartyAchievementViewHolder;
|
||||||
import com.eyecreate.miceandmystics.miceandmystics.viewholders.PartyAchievementsHeaderViewHolder;
|
import com.eyecreate.miceandmystics.miceandmystics.viewholders.PartyAchievementsHeaderViewHolder;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@@ -35,7 +37,7 @@ public class CampaignDetailsAdapter extends RecyclerView.Adapter<RecyclerView.Vi
|
|||||||
} else if(viewType == R.id.campaignPartyAchievementsHeader){
|
} else if(viewType == R.id.campaignPartyAchievementsHeader){
|
||||||
return new PartyAchievementsHeaderViewHolder(inflater.inflate(R.layout.item_partyachievements_header,parent,false));
|
return new PartyAchievementsHeaderViewHolder(inflater.inflate(R.layout.item_partyachievements_header,parent,false));
|
||||||
} else {
|
} else {
|
||||||
return null;
|
return new PartyAchievementViewHolder(inflater.inflate(R.layout.item_party_achievement,parent,false));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -45,6 +47,8 @@ public class CampaignDetailsAdapter extends RecyclerView.Adapter<RecyclerView.Vi
|
|||||||
((CampaignHeaderViewHolder)holder).bindModel(currentCampaign);
|
((CampaignHeaderViewHolder)holder).bindModel(currentCampaign);
|
||||||
} else if(holder instanceof CampaignDetailsViewHolder) {
|
} else if(holder instanceof CampaignDetailsViewHolder) {
|
||||||
((CampaignDetailsViewHolder)holder).bindModel(currentCampaign.getCurrentCharacters().get(position-1)); //Here's that one again making the position value related to characters again.
|
((CampaignDetailsViewHolder)holder).bindModel(currentCampaign.getCurrentCharacters().get(position-1)); //Here's that one again making the position value related to characters again.
|
||||||
|
} else if(holder instanceof PartyAchievementViewHolder) {
|
||||||
|
((PartyAchievementViewHolder) holder).bindHolder(currentCampaign.getPartyStoryAchievements().get(position-2-currentCampaign.getCurrentCharacters().size())); //Here is more math that removes the headers and characters from the count.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -99,6 +103,16 @@ public class CampaignDetailsAdapter extends RecyclerView.Adapter<RecyclerView.Vi
|
|||||||
MiceAndMysticsApplication.getRealmInstance().commitTransaction();
|
MiceAndMysticsApplication.getRealmInstance().commitTransaction();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void addPartyAchievement(com.eyecreate.miceandmystics.miceandmystics.model.Enums.Achievement achievement) {
|
||||||
|
MiceAndMysticsApplication.getRealmInstance().beginTransaction();
|
||||||
|
Achievement realmAchievement = MiceAndMysticsApplication.getRealmInstance().createObject(Achievement.class);
|
||||||
|
realmAchievement.setUuid(UUID.randomUUID().toString());
|
||||||
|
realmAchievement.setAchievementName(achievement.displayName());
|
||||||
|
currentCampaign.getPartyStoryAchievements().add(realmAchievement);
|
||||||
|
MiceAndMysticsApplication.getRealmInstance().commitTransaction();
|
||||||
|
fullRefresh();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getItemViewType(int position) {
|
public int getItemViewType(int position) {
|
||||||
if(position == 0) {
|
if(position == 0) {
|
||||||
@@ -114,6 +128,6 @@ public class CampaignDetailsAdapter extends RecyclerView.Adapter<RecyclerView.Vi
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getItemCount() {
|
public int getItemCount() {
|
||||||
return currentCampaign.getCurrentCharacters().size()+1+1; //The two plus ones are for the headers.
|
return currentCampaign.getCurrentCharacters().size()+1+1+currentCampaign.getPartyStoryAchievements().size(); //The two plus ones are for the headers.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,5 +55,5 @@ public enum Abilities {
|
|||||||
public String displayName() { return displayName; }
|
public String displayName() { return displayName; }
|
||||||
|
|
||||||
@Override public String toString() { return displayName; }
|
@Override public String toString() { return displayName; }
|
||||||
public Abilities valueOfDisplayName(String valuedDisplayName) {return Abilities.valueOf(valuedDisplayName.replace(" ","_"));}
|
public static Abilities valueOfDisplayName(String valuedDisplayName) {return Abilities.valueOf(valuedDisplayName.replace(" ","_"));}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,21 +1,27 @@
|
|||||||
package com.eyecreate.miceandmystics.miceandmystics.model.Enums;
|
package com.eyecreate.miceandmystics.miceandmystics.model.Enums;
|
||||||
|
|
||||||
|
import com.eyecreate.miceandmystics.miceandmystics.R;
|
||||||
|
|
||||||
public enum Achievement {
|
public enum Achievement {
|
||||||
|
|
||||||
Miz_Maggie("Miz Maggie"),
|
Miz_Maggie("Miz Maggie", R.mipmap.mizmaggie),
|
||||||
Vanestras_Brush("Vanestra's Brush"),
|
Vanestras_Brush("Vanestra's Brush",R.mipmap.vanbrush),
|
||||||
King("King"),
|
King("King",R.mipmap.king),
|
||||||
Cats_Horn_Claw("Cat's Horn Claw"),
|
Cats_Horn_Claw("Cat's Horn Claw",R.mipmap.catclaw), //not sure if it matters this is the claw and not the horn side.
|
||||||
Catnip("Catnip");
|
Catnip("Catnip",R.mipmap.catnip);
|
||||||
|
|
||||||
private String displayName;
|
private String displayName;
|
||||||
|
private int displayResource;
|
||||||
|
|
||||||
Achievement(String displayName) {
|
Achievement(String displayName,int resource) {
|
||||||
this.displayName = displayName;
|
this.displayName = displayName;
|
||||||
|
this.displayResource = resource;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String displayName() { return displayName; }
|
public String displayName() { return displayName; }
|
||||||
|
|
||||||
|
public int getDisplayResource() { return displayResource; }
|
||||||
|
|
||||||
@Override public String toString() { return displayName; }
|
@Override public String toString() { return displayName; }
|
||||||
public Achievement valueOfDisplayName(String valuedDisplayName) {return Achievement.valueOf(valuedDisplayName.replace(" ","_").replace("'",""));}
|
public static Achievement valueOfDisplayName(String valuedDisplayName) {return Achievement.valueOf(valuedDisplayName.replace(" ","_").replace("'",""));}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,20 +29,6 @@ public class CampaignViewHolder extends RecyclerView.ViewHolder implements View.
|
|||||||
characterGraph = (PieGraph) itemView.findViewById(R.id.campaign_characters_graph);
|
characterGraph = (PieGraph) itemView.findViewById(R.id.campaign_characters_graph);
|
||||||
itemView.setOnClickListener(this);
|
itemView.setOnClickListener(this);
|
||||||
itemView.setOnLongClickListener(this);
|
itemView.setOnLongClickListener(this);
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
|
||||||
itemView.setOnTouchListener(new View.OnTouchListener() {
|
|
||||||
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
|
|
||||||
@Override
|
|
||||||
public boolean onTouch(View v, MotionEvent event) {
|
|
||||||
v
|
|
||||||
.findViewById(R.id.campaign_content)
|
|
||||||
.getBackground()
|
|
||||||
.setHotspot(event.getX(), event.getY());
|
|
||||||
|
|
||||||
return(false);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package com.eyecreate.miceandmystics.miceandmystics.viewholders;
|
||||||
|
|
||||||
|
import android.support.v7.widget.RecyclerView;
|
||||||
|
import android.view.View;
|
||||||
|
import android.widget.ImageView;
|
||||||
|
import android.widget.TextView;
|
||||||
|
import com.eyecreate.miceandmystics.miceandmystics.R;
|
||||||
|
import com.eyecreate.miceandmystics.miceandmystics.model.Achievement;
|
||||||
|
|
||||||
|
public class PartyAchievementViewHolder extends RecyclerView.ViewHolder implements View.OnLongClickListener {
|
||||||
|
|
||||||
|
TextView achievementName;
|
||||||
|
ImageView achievementIcon;
|
||||||
|
|
||||||
|
public PartyAchievementViewHolder(View itemView) {
|
||||||
|
super(itemView);
|
||||||
|
achievementName = (TextView)itemView.findViewById(R.id.achievement_name);
|
||||||
|
achievementIcon = (ImageView)itemView.findViewById(R.id.achievement_icon);
|
||||||
|
itemView.setOnLongClickListener(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void bindHolder(Achievement achievement) {
|
||||||
|
achievementName.setText(achievement.getAchievementName());
|
||||||
|
achievementIcon.setImageResource(com.eyecreate.miceandmystics.miceandmystics.model.Enums.Achievement.valueOfDisplayName(achievement.getAchievementName()).getDisplayResource());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onLongClick(View view) {
|
||||||
|
//TODO:implement removing
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,7 +1,11 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
|
android:padding="12dp"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
<Spinner
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:id="@+id/achievement_name"
|
||||||
|
android:layout_height="wrap_content"/>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
app:cardUseCompatPadding="true"
|
app:cardUseCompatPadding="true"
|
||||||
app:cardElevation="0dp"
|
app:cardElevation="4dp"
|
||||||
android:foreground="?android:attr/selectableItemBackground"
|
android:foreground="?android:attr/selectableItemBackground"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,35 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
app:cardUseCompatPadding="true"
|
||||||
|
app:cardElevation="4dp"
|
||||||
|
android:foreground="?android:attr/selectableItemBackground"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:background="@color/parchment_yellow"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="100dp"
|
||||||
|
android:layout_height="100dp"
|
||||||
|
android:layout_margin="5dp"
|
||||||
|
android:id="@+id/achievement_icon"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:layout_marginLeft="10dp"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:id="@+id/achievement_name"/>
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
</android.support.v7.widget.CardView>
|
||||||
BIN
MiceAndMysticsTracker/src/main/res/mipmap-xxhdpi/catclaw.png
Normal file
BIN
MiceAndMysticsTracker/src/main/res/mipmap-xxhdpi/catclaw.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 355 KiB |
BIN
MiceAndMysticsTracker/src/main/res/mipmap-xxhdpi/catnip.png
Normal file
BIN
MiceAndMysticsTracker/src/main/res/mipmap-xxhdpi/catnip.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 127 KiB |
BIN
MiceAndMysticsTracker/src/main/res/mipmap-xxhdpi/king.png
Normal file
BIN
MiceAndMysticsTracker/src/main/res/mipmap-xxhdpi/king.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 365 KiB |
BIN
MiceAndMysticsTracker/src/main/res/mipmap-xxhdpi/mizmaggie.png
Normal file
BIN
MiceAndMysticsTracker/src/main/res/mipmap-xxhdpi/mizmaggie.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 362 KiB |
BIN
MiceAndMysticsTracker/src/main/res/mipmap-xxhdpi/vanbrush.png
Normal file
BIN
MiceAndMysticsTracker/src/main/res/mipmap-xxhdpi/vanbrush.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 119 KiB |
Reference in New Issue
Block a user