Newer
Older
package com.eyecreate.miceandmystics.miceandmystics;
import android.app.Application;
import android.content.SharedPreferences;
import com.eyecreate.miceandmystics.miceandmystics.model.*;
import com.eyecreate.miceandmystics.miceandmystics.model.Character;
import com.eyecreate.miceandmystics.miceandmystics.model.Enums.Abilities;
import com.eyecreate.miceandmystics.miceandmystics.model.Enums.CampaignType;
import com.eyecreate.miceandmystics.miceandmystics.model.Enums.CharacterNames;
import io.realm.Realm;
import uk.co.chrisjenx.calligraphy.CalligraphyConfig;
public class MiceAndMysticsApplication extends Application {
private static MiceAndMysticsApplication singletonApplication;
private static Realm singletonRealm;
@Override
public void onCreate() {
super.onCreate();
singletonApplication = this;
singletonRealm = Realm.getInstance(this);
CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
.setDefaultFontPath("ArchitectsDaughter.ttf")
.setFontAttrId(R.attr.fontPath)
.build()
);
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
checkForPreLocalization();
}
private void checkForPreLocalization() {
//Check if there are DB items and migration check flag isn't set yet.
//If so, take all abilities, achievements, campaign names, and character names and make them enum names.
//Optionally, be sad I didn't think of this before now.
if(!getSharedPreferences("dbcheck", MODE_PRIVATE).contains("localizationchecked") && getRealmInstance().where(Campaign.class).findAll().size()>0) {
getRealmInstance().beginTransaction();
RealmResults<Ability> abilities = getRealmInstance().where(Ability.class).findAll();
for(int i = 0; i<abilities.size();i++) {
Ability ability = abilities.get(i);
for(Abilities enums:Abilities.values()) {
if(enums.displayName().equals(ability.getAbilityName())) {
ability.setAbilityName(enums.name());
}
}
}
RealmResults<Achievement> achievements = getRealmInstance().where(Achievement.class).findAll();
for(int i = 0; i<achievements.size();i++) {
Achievement achievement = achievements.get(i);
for(com.eyecreate.miceandmystics.miceandmystics.model.Enums.Achievement enums: com.eyecreate.miceandmystics.miceandmystics.model.Enums.Achievement.values()) {
if(enums.displayName().equals(achievement.getAchievementName())) {
achievement.setAchievementName(enums.name());
}
}
}
RealmResults<Campaign> campaigns = getRealmInstance().where(Campaign.class).findAll();
for(int i = 0;i<campaigns.size();i++) {
Campaign campaign = campaigns.get(i);
if(campaign.getCampaignType().equals(CampaignType.Sorrow_and_Remembrance.displayName())) {
campaign.setCampaignType(CampaignType.Sorrow_and_Remembrance.name());
}
}
RealmResults<Character> characters = getRealmInstance().where(Character.class).findAll();
for(int i = 0;i<characters.size();i++) {
Character character = characters.get(i);
for(CharacterNames enums:CharacterNames.values()) {
if(enums.displayName().equals(character.getCharacterName())) {
character.setCharacterName(enums.name());
}
}
}
getRealmInstance().commitTransaction();
}
getSharedPreferences("dbcheck",MODE_PRIVATE).edit().putBoolean("localizationchecked",true).apply();
public static MiceAndMysticsApplication getInstance() {
return singletonApplication;
}
public static Realm getRealmInstance() {
return singletonRealm;
}