diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/MiceAndMysticsApplication.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/MiceAndMysticsApplication.java index 14ec8bc2afc84ab32539f966761cb689bed641be..24566a5d8e26b9fb1d25453c5baf8cb52ab95290 100644 --- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/MiceAndMysticsApplication.java +++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/MiceAndMysticsApplication.java @@ -24,7 +24,7 @@ public class MiceAndMysticsApplication extends Application { public void onCreate() { super.onCreate(); singletonApplication = this; - realmConfig = new RealmConfiguration.Builder(this).schemaVersion(1).migration(new RealmMigrator()).build(); + realmConfig = new RealmConfiguration.Builder(this).schemaVersion(2).migration(new RealmMigrator()).build(); singletonRealm = Realm.getInstance(realmConfig); CalligraphyConfig.initDefault(new CalligraphyConfig.Builder() .setDefaultFontPath("ArchitectsDaughter.ttf") diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/RealmMigrator.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/RealmMigrator.java index 9be3df4aecf11bec15c7a92f8d5144056684ee34..50ab32cb6526b10ce5c19115e344546d94880241 100644 --- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/RealmMigrator.java +++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/RealmMigrator.java @@ -1,13 +1,23 @@ package com.eyecreate.miceandmystics.miceandmystics; +import com.eyecreate.miceandmystics.miceandmystics.model.Campaign; + import io.realm.DynamicRealm; import io.realm.RealmMigration; +import io.realm.RealmObject; +import io.realm.RealmResults; public class RealmMigrator implements RealmMigration { @Override public void migrate(DynamicRealm dynamicRealm, long oldVersion, long newVersion) { - if(oldVersion == 0 && newVersion == 1) { + if(oldVersion == 0) { //Nothing + oldVersion++; + } + if(oldVersion == 1) { + dynamicRealm.getSchema().get("Campaign") + .addField("campaignChapter",int.class); + oldVersion++; } } } diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Ability.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Ability.java index ecb80b75ce9c6d1568d694ae20d7ca73a252d921..fd8f2bf033e47ce823af211230dcddb8b84f1e7a 100644 --- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Ability.java +++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Ability.java @@ -8,6 +8,7 @@ import java.util.UUID; public class Ability extends RealmObject { @PrimaryKey + @Required private String uuid; @Required private String abilityName; diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Achievement.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Achievement.java index ccf19f332a8c188cac0746420f245a748b6953d8..69243f8d347e62198e1f3deb33b2c9140701f1e5 100644 --- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Achievement.java +++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Achievement.java @@ -8,6 +8,7 @@ import java.util.UUID; public class Achievement extends RealmObject { @PrimaryKey + @Required private String uuid; @Required private String achievementName; diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/BackpackItem.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/BackpackItem.java index 24acb78538b252afdd0387950b9d3121e028093a..0d3d2e91aaa67b18e527111d361029351b29d258 100644 --- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/BackpackItem.java +++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/BackpackItem.java @@ -7,6 +7,7 @@ import io.realm.annotations.Required; public class BackpackItem extends RealmObject { //TODO:Look into seeing if it's worth hard coding these instead of manual entry. @PrimaryKey + @Required private String uuid; @Required private String itemName; 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 f908e883e62414c7623b1079f371e5c6df2d01dd..6176594e4197d1eeab23700130a8cbd2f521653e 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,11 +7,13 @@ import io.realm.annotations.Required; public class Campaign extends RealmObject { @PrimaryKey + @Required private String campaignName; @Required private String campaignType; private RealmList currentCharacters; private RealmList partyStoryAchievements; + private int campaignChapter; public RealmList getCurrentCharacters() { return currentCharacters; @@ -44,4 +46,12 @@ public class Campaign extends RealmObject { public void setCampaignType(String campaignType) { this.campaignType = campaignType; } + + public int getCampaignChapter() { + return campaignChapter; + } + + public void setCampaignChapter(int campaignChapter) { + this.campaignChapter = campaignChapter; + } } diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Character.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Character.java index 6ff1d017486dcf52d6710707203e0bc2a5e92002..b40ce564a182fb6cef75d853232dbb6ed344f635 100644 --- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Character.java +++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Character.java @@ -7,6 +7,7 @@ import io.realm.annotations.Required; public class Character extends RealmObject { @PrimaryKey + @Required private String uuid; @Required private String characterName; diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Player.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Player.java index 97e751aadb26f3c78b0c8db496b092efaecd5f2e..ec702cea0ab605775550b8bc33a39e99a7c558bc 100644 --- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Player.java +++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Player.java @@ -2,12 +2,14 @@ package com.eyecreate.miceandmystics.miceandmystics.model; import io.realm.RealmObject; import io.realm.annotations.PrimaryKey; +import io.realm.annotations.Required; import java.util.List; import java.util.UUID; public class Player extends RealmObject { @PrimaryKey + @Required private String playerName; public Player() {} diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignHeaderViewHolder.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignHeaderViewHolder.java index c80e85dd0dc85b7691598fe4e452f95bd7f3dc38..ea71972b3e1d8ea6bbfae3caf5014dbdfca627fe 100644 --- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignHeaderViewHolder.java +++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignHeaderViewHolder.java @@ -1,24 +1,58 @@ package com.eyecreate.miceandmystics.miceandmystics.viewholders; import android.support.v7.widget.RecyclerView; +import android.text.Editable; +import android.text.TextWatcher; import android.view.View; +import android.widget.EditText; import android.widget.TextView; + +import com.eyecreate.miceandmystics.miceandmystics.MiceAndMysticsApplication; import com.eyecreate.miceandmystics.miceandmystics.R; import com.eyecreate.miceandmystics.miceandmystics.model.Campaign; import com.eyecreate.miceandmystics.miceandmystics.model.Enums.CampaignType; public class CampaignHeaderViewHolder extends RecyclerView.ViewHolder { - TextView campaignName,campaignType; + TextView campaignName,campaignType,campaignChapter; + EditText chapterEdit; public CampaignHeaderViewHolder(View itemView) { super(itemView); campaignName = (TextView)itemView.findViewById(R.id.campaign_name); campaignType = (TextView)itemView.findViewById(R.id.campaign_type); + campaignChapter = (TextView) itemView.findViewById(R.id.campaign_chapter); + chapterEdit = (EditText) itemView.findViewById(R.id.edit_chapter); } - public void bindModel(Campaign campaign) { + public void bindModel(final Campaign campaign) { campaignName.setText(campaign.getCampaignName()); campaignType.setText(CampaignType.valueOf(campaign.getCampaignType()).displayName()); + campaignChapter.setText(campaignChapter.getResources().getText(R.string.campaign_chapter)+" : "); + chapterEdit.setText(String.valueOf(campaign.getCampaignChapter() == 0 ? 1:campaign.getCampaignChapter())); + chapterEdit.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { + + } + + @Override + public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { + + } + + @Override + public void afterTextChanged(Editable editable) { + try{ + Integer.parseInt(editable.toString()); + } + catch(NumberFormatException e) { + return; + } + MiceAndMysticsApplication.getRealmInstance().beginTransaction(); + campaign.setCampaignChapter(Integer.parseInt(editable.toString())); + MiceAndMysticsApplication.getRealmInstance().commitTransaction(); + } + }); } } diff --git a/MiceAndMysticsTracker/src/main/res/layout/item_campaign_header.xml b/MiceAndMysticsTracker/src/main/res/layout/item_campaign_header.xml index 285a2ff62ce19b6383c73c6622732f94279eef2c..0cb8fc1ef6d954e034d76a60c0ff6889db3fc3a8 100644 --- a/MiceAndMysticsTracker/src/main/res/layout/item_campaign_header.xml +++ b/MiceAndMysticsTracker/src/main/res/layout/item_campaign_header.xml @@ -17,4 +17,22 @@ android:textColor="@color/parchment_yellow" android:gravity="center_horizontal" android:id="@+id/campaign_type"/> + + + + \ No newline at end of file diff --git a/MiceAndMysticsTracker/src/main/res/values/strings.xml b/MiceAndMysticsTracker/src/main/res/values/strings.xml index 35409881c4b1f18870ed56e682bb521ca8684fde..678c4dd0e440630d916f9008eb53fe45c0d02745 100644 --- a/MiceAndMysticsTracker/src/main/res/values/strings.xml +++ b/MiceAndMysticsTracker/src/main/res/values/strings.xml @@ -72,6 +72,7 @@ Party Achievements Abilities Campaigns + Chapter Please give your new campaign a unique name: Can not have blank name! Character Details