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.

This commit is contained in:
Kevin Whitaker
2015-04-19 19:24:33 -04:00
parent 07b120754e
commit f075318090
19 changed files with 141 additions and 35 deletions

2
.gitignore vendored
View File

@@ -4,3 +4,5 @@
/.idea/libraries
.DS_Store
/build
gradlew.bat

View File

@@ -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<CampaignType>(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();

View File

@@ -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;
}

View File

@@ -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<Campaign> {
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();

View File

@@ -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<CampaignDetails> {
@Override
public CampaignDetails onCreateViewHolder(ViewGroup parent, int viewType) {
return null;
}
@Override
public void onBindViewHolder(CampaignDetails holder, int position) {
}
@Override
public int getItemCount() {
return 0;
}
}

View File

@@ -7,6 +7,7 @@ import io.realm.annotations.PrimaryKey;
public class Campaign extends RealmObject {
@PrimaryKey
private String campaignName;
private String campaignType;
private RealmList<Character> currentCharacters;
private RealmList<Achievement> 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;
}
}

View File

@@ -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(" ","_"));}
}

View File

@@ -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("'",""));}
}

View File

@@ -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(" ","_"));}
}

View File

@@ -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) {

View File

@@ -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);
}
}

View File

@@ -0,0 +1,4 @@
package com.eyecreate.miceandmystics.miceandmystics.viewholders;
public class CampaignHeader {
}

View File

@@ -1,13 +0,0 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.eyecreate.miceandmystics.miceandmystics.CampaignDetailsActivity">
</RelativeLayout>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/campagin_name"/>
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/campaign_type"/>
</LinearLayout>

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
</LinearLayout>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/campaign_name"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/campaign_type"/>
</LinearLayout>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:singleLine="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:textAlignment="inherit"/>

View File

@@ -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">
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
android:orderInCategory="100"
app:showAsAction="never"/>
<item android:id="@+id/action_add_character"
android:title="Add Character"
android:icon="@android:drawable/ic_menu_add"
app:showAsAction="always"/>
</menu>

View File

@@ -22,9 +22,4 @@
<item name="android:textColorPrimary">@android:color/black</item>
</style>
<style name="editTextDialogTheme" parent="Widget.AppCompat.EditText">
<item name="colorAccent">@color/wood_brown</item>
<item name="android:textColorPrimary">@android:color/black</item>
</style>
</resources>