From f075318090456a62bb0152a1a0cf855e8cfe5e37 Mon Sep 17 00:00:00 2001 From: Kevin Whitaker Date: Sun, 19 Apr 2015 19:24:33 -0400 Subject: [PATCH] Add in campaign type in order to allow expansions easier. Allow campaign details page to come up with nothing. Add helper methods to try and convert nice string back to enums. Start working on detail header too. --- .gitignore | 2 ++ .../miceandmystics/CampaignActivity.java | 19 ++++++++++------ .../CampaignDetailsActivity.java | 13 +++++++---- .../adapters/CampaignAdapter.java | 4 +++- .../adapters/CampaignDetailsAdapter.java | 22 +++++++++++++++++++ .../miceandmystics/model/Campaign.java | 9 ++++++++ .../miceandmystics/model/Enums/Abilities.java | 1 + .../model/Enums/Achievement.java | 1 + .../model/Enums/CampaignType.java | 16 ++++++++++++++ .../miceandmystics/viewholders/Campaign.java | 6 ++++- .../viewholders/CampaignDetails.java | 10 +++++++++ .../viewholders/CampaignHeader.java | 4 ++++ .../res/layout/activity_campaign_details.xml | 13 ----------- .../main/res/layout/dialog_new_campaign.xml | 14 ++++++++++++ .../main/res/layout/item_campaign_details.xml | 7 ++++++ .../main/res/layout/item_campaign_header.xml | 14 ++++++++++++ .../main/res/layout/simple_spinner_item.xml | 8 +++++++ .../main/res/menu/menu_campaign_details.xml | 8 +++---- .../src/main/res/values/styles.xml | 5 ----- 19 files changed, 141 insertions(+), 35 deletions(-) create mode 100644 MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/adapters/CampaignDetailsAdapter.java create mode 100644 MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Enums/CampaignType.java create mode 100644 MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignDetails.java create mode 100644 MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignHeader.java delete mode 100644 MiceAndMysticsTracker/src/main/res/layout/activity_campaign_details.xml create mode 100644 MiceAndMysticsTracker/src/main/res/layout/dialog_new_campaign.xml create mode 100644 MiceAndMysticsTracker/src/main/res/layout/item_campaign_details.xml create mode 100644 MiceAndMysticsTracker/src/main/res/layout/item_campaign_header.xml create mode 100644 MiceAndMysticsTracker/src/main/res/layout/simple_spinner_item.xml diff --git a/.gitignore b/.gitignore index afbdab3..8dfba82 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ /.idea/libraries .DS_Store /build + +gradlew.bat \ No newline at end of file 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 b62ed86..f44b731 100644 --- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/CampaignActivity.java +++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/CampaignActivity.java @@ -1,15 +1,17 @@ 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.ContextThemeWrapper; -import android.view.Menu; -import android.view.MenuItem; +import android.view.*; +import android.widget.ArrayAdapter; import android.widget.EditText; +import android.widget.Spinner; import com.eyecreate.miceandmystics.miceandmystics.adapters.CampaignAdapter; +import com.eyecreate.miceandmystics.miceandmystics.model.Enums.CampaignType; public class CampaignActivity extends RecyclerViewActivity { @@ -40,15 +42,18 @@ public class CampaignActivity extends RecyclerViewActivity { //noinspection SimplifiableIfStatement if (id == R.id.action_add_campaign) { - final EditText newName = new EditText(new ContextThemeWrapper(this,R.style.editTextDialogTheme)); - newName.setTypeface(Typeface.createFromAsset(getAssets(),"ArchitectsDaughter.ttf")); + LayoutInflater inflator = (LayoutInflater)(new ContextThemeWrapper(this, R.style.dialogTheme)).getSystemService(Context.LAYOUT_INFLATER_SERVICE); + final View dialogView = inflator.inflate(R.layout.dialog_new_campaign, null, false); + 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) .setMessage("Please give your new campaign a unique name:") - .setView(newName) + .setView(dialogView) .setPositiveButton("Ok", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { - ((CampaignAdapter) getAdapter()).addItem(newName.getText().toString()); + ((CampaignAdapter) getAdapter()).addItem(((EditText) dialogView.findViewById(R.id.campagin_name)).getText().toString(), CampaignType.valueOfDisplayName(typeSpinner.getSelectedItem().toString())); } }) .create(); 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 c8b2aad..8395947 100644 --- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/CampaignDetailsActivity.java +++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/CampaignDetailsActivity.java @@ -1,17 +1,22 @@ package com.eyecreate.miceandmystics.miceandmystics; -import android.support.v7.app.ActionBarActivity; import android.os.Bundle; +import android.support.v7.widget.LinearLayoutManager; import android.view.Menu; import android.view.MenuItem; +import com.eyecreate.miceandmystics.miceandmystics.model.Campaign; -public class CampaignDetailsActivity extends ActionBarActivity { +public class CampaignDetailsActivity extends RecyclerViewActivity { + + Campaign campaign; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(R.layout.activity_campaign_details); + setTitle(getIntent().getStringExtra("campaignName")); + campaign = MiceAndMysticsApplication.getRealmInstance().where(Campaign.class).equalTo("campaignName",getIntent().getStringExtra("campaignName")).findFirst(); + setLayoutManager(new LinearLayoutManager(this)); } @@ -30,7 +35,7 @@ public class CampaignDetailsActivity extends ActionBarActivity { int id = item.getItemId(); //noinspection SimplifiableIfStatement - if (id == R.id.action_settings) { + if (id == R.id.action_add_character) { return true; } diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/adapters/CampaignAdapter.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/adapters/CampaignAdapter.java index 781b356..ea1d41c 100644 --- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/adapters/CampaignAdapter.java +++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/adapters/CampaignAdapter.java @@ -6,6 +6,7 @@ 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.Enums.CampaignType; import com.eyecreate.miceandmystics.miceandmystics.viewholders.Campaign; import io.realm.RealmResults; @@ -33,10 +34,11 @@ public class CampaignAdapter extends RecyclerView.Adapter { notifyDataSetChanged(); } - public void addItem(String campaignName) { + public void addItem(String campaignName,CampaignType type) { MiceAndMysticsApplication.getRealmInstance().beginTransaction(); com.eyecreate.miceandmystics.miceandmystics.model.Campaign campaign = new com.eyecreate.miceandmystics.miceandmystics.model.Campaign(); campaign.setCampaignName(campaignName); + campaign.setCampaignType(type.displayName()); MiceAndMysticsApplication.getRealmInstance().copyToRealm(campaign); MiceAndMysticsApplication.getRealmInstance().commitTransaction(); fullRefresh(); diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/adapters/CampaignDetailsAdapter.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/adapters/CampaignDetailsAdapter.java new file mode 100644 index 0000000..d7bb3ea --- /dev/null +++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/adapters/CampaignDetailsAdapter.java @@ -0,0 +1,22 @@ +package com.eyecreate.miceandmystics.miceandmystics.adapters; + +import android.support.v7.widget.RecyclerView; +import android.view.ViewGroup; +import com.eyecreate.miceandmystics.miceandmystics.viewholders.CampaignDetails; + +public class CampaignDetailsAdapter extends RecyclerView.Adapter { + @Override + public CampaignDetails onCreateViewHolder(ViewGroup parent, int viewType) { + return null; + } + + @Override + public void onBindViewHolder(CampaignDetails holder, int position) { + + } + + @Override + public int getItemCount() { + return 0; + } +} diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Campaign.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Campaign.java index e942815..e27df65 100644 --- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Campaign.java +++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Campaign.java @@ -7,6 +7,7 @@ import io.realm.annotations.PrimaryKey; public class Campaign extends RealmObject { @PrimaryKey private String campaignName; + private String campaignType; private RealmList currentCharacters; private RealmList partyStoryAchievements; @@ -33,4 +34,12 @@ public class Campaign extends RealmObject { public void setCampaignName(String campaignName) { this.campaignName = campaignName; } + + public String getCampaignType() { + return campaignType; + } + + public void setCampaignType(String campaignType) { + this.campaignType = campaignType; + } } 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 ba063b7..1e37543 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 @@ -55,4 +55,5 @@ public enum Abilities { public String displayName() { return displayName; } @Override public String toString() { return displayName; } + public Abilities valueOfDisplayName(String valuedDisplayName) {return Abilities.valueOf(valuedDisplayName.replace(" ","_"));} } diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Enums/Achievement.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Enums/Achievement.java index 8998692..d797e76 100644 --- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Enums/Achievement.java +++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Enums/Achievement.java @@ -17,4 +17,5 @@ public enum Achievement { public String displayName() { return displayName; } @Override public String toString() { return displayName; } + public Achievement valueOfDisplayName(String valuedDisplayName) {return Achievement.valueOf(valuedDisplayName.replace(" ","_").replace("'",""));} } diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Enums/CampaignType.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Enums/CampaignType.java new file mode 100644 index 0000000..6ae3414 --- /dev/null +++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Enums/CampaignType.java @@ -0,0 +1,16 @@ +package com.eyecreate.miceandmystics.miceandmystics.model.Enums; + +public enum CampaignType { + Sorrow_and_Remembrance("Sorrow and Remembrance"); + + private String displayName; + + CampaignType(String name) { + this.displayName = name; + } + + public String displayName() { return displayName; } + + @Override public String toString() { return displayName; } + public static CampaignType valueOfDisplayName(String valuedDisplayName) {return CampaignType.valueOf(valuedDisplayName.replace(" ","_"));} +} diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/Campaign.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/Campaign.java index a84ef5e..31d2ce7 100644 --- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/Campaign.java +++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/Campaign.java @@ -3,12 +3,14 @@ package com.eyecreate.miceandmystics.miceandmystics.viewholders; import android.annotation.TargetApi; import android.app.AlertDialog; import android.content.DialogInterface; +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; import com.echo.holographlibrary.PieGraph; +import com.eyecreate.miceandmystics.miceandmystics.CampaignDetailsActivity; import com.eyecreate.miceandmystics.miceandmystics.R; import com.eyecreate.miceandmystics.miceandmystics.adapters.CampaignAdapter; @@ -43,7 +45,9 @@ public class Campaign extends RecyclerView.ViewHolder implements View.OnClickLis @Override public void onClick(View view) { - //TODO:implement next screen + 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) { diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignDetails.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignDetails.java new file mode 100644 index 0000000..1d6d8a4 --- /dev/null +++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignDetails.java @@ -0,0 +1,10 @@ +package com.eyecreate.miceandmystics.miceandmystics.viewholders; + +import android.support.v7.widget.RecyclerView; +import android.view.View; + +public class CampaignDetails extends RecyclerView.ViewHolder { + public CampaignDetails(View itemView) { + super(itemView); + } +} diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignHeader.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignHeader.java new file mode 100644 index 0000000..149756d --- /dev/null +++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignHeader.java @@ -0,0 +1,4 @@ +package com.eyecreate.miceandmystics.miceandmystics.viewholders; + +public class CampaignHeader { +} diff --git a/MiceAndMysticsTracker/src/main/res/layout/activity_campaign_details.xml b/MiceAndMysticsTracker/src/main/res/layout/activity_campaign_details.xml deleted file mode 100644 index 348efda..0000000 --- a/MiceAndMysticsTracker/src/main/res/layout/activity_campaign_details.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - diff --git a/MiceAndMysticsTracker/src/main/res/layout/dialog_new_campaign.xml b/MiceAndMysticsTracker/src/main/res/layout/dialog_new_campaign.xml new file mode 100644 index 0000000..0b9a1b0 --- /dev/null +++ b/MiceAndMysticsTracker/src/main/res/layout/dialog_new_campaign.xml @@ -0,0 +1,14 @@ + + + + + \ No newline at end of file diff --git a/MiceAndMysticsTracker/src/main/res/layout/item_campaign_details.xml b/MiceAndMysticsTracker/src/main/res/layout/item_campaign_details.xml new file mode 100644 index 0000000..fb3d8a2 --- /dev/null +++ b/MiceAndMysticsTracker/src/main/res/layout/item_campaign_details.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/MiceAndMysticsTracker/src/main/res/layout/item_campaign_header.xml b/MiceAndMysticsTracker/src/main/res/layout/item_campaign_header.xml new file mode 100644 index 0000000..bacd3a7 --- /dev/null +++ b/MiceAndMysticsTracker/src/main/res/layout/item_campaign_header.xml @@ -0,0 +1,14 @@ + + + + + \ No newline at end of file diff --git a/MiceAndMysticsTracker/src/main/res/layout/simple_spinner_item.xml b/MiceAndMysticsTracker/src/main/res/layout/simple_spinner_item.xml new file mode 100644 index 0000000..34502d4 --- /dev/null +++ b/MiceAndMysticsTracker/src/main/res/layout/simple_spinner_item.xml @@ -0,0 +1,8 @@ + + \ No newline at end of file diff --git a/MiceAndMysticsTracker/src/main/res/menu/menu_campaign_details.xml b/MiceAndMysticsTracker/src/main/res/menu/menu_campaign_details.xml index 0f3b25c..0a6d9b4 100644 --- a/MiceAndMysticsTracker/src/main/res/menu/menu_campaign_details.xml +++ b/MiceAndMysticsTracker/src/main/res/menu/menu_campaign_details.xml @@ -2,8 +2,8 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" tools:context="com.eyecreate.miceandmystics.miceandmystics.CampaignDetailsActivity"> - + diff --git a/MiceAndMysticsTracker/src/main/res/values/styles.xml b/MiceAndMysticsTracker/src/main/res/values/styles.xml index b0fd55a..8315800 100644 --- a/MiceAndMysticsTracker/src/main/res/values/styles.xml +++ b/MiceAndMysticsTracker/src/main/res/values/styles.xml @@ -22,9 +22,4 @@ @android:color/black - - -- GitLab