From 8d3c6997e7fefc9d5d800d1b74ccebe7d27e6ea1 Mon Sep 17 00:00:00 2001 From: Kevin Whitaker Date: Tue, 16 Aug 2016 20:03:15 -0400 Subject: [PATCH] Fix some migration headers and add chapter value for campaigns. --- .../MiceAndMysticsApplication.java | 2 +- .../miceandmystics/RealmMigrator.java | 12 +++++- .../miceandmystics/model/Ability.java | 1 + .../miceandmystics/model/Achievement.java | 1 + .../miceandmystics/model/BackpackItem.java | 1 + .../miceandmystics/model/Campaign.java | 10 +++++ .../miceandmystics/model/Character.java | 1 + .../miceandmystics/model/Player.java | 2 + .../viewholders/CampaignHeaderViewHolder.java | 38 ++++++++++++++++++- .../main/res/layout/item_campaign_header.xml | 18 +++++++++ .../src/main/res/values/strings.xml | 1 + 11 files changed, 83 insertions(+), 4 deletions(-) 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 14ec8bc..24566a5 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 9be3df4..50ab32c 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 ecb80b7..fd8f2bf 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 ccf19f3..69243f8 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 24acb78..0d3d2e9 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 f908e88..6176594 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 6ff1d01..b40ce56 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 97e751a..ec702ce 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 c80e85d..ea71972 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 285a2ff..0cb8fc1 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 3540988..678c4dd 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 -- GitLab