diff --git a/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java b/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java index c635c52..fcaf33f 100644 --- a/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java +++ b/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java @@ -42,8 +42,7 @@ public class UserSettingsImpl implements UserSettings { ApiSettingImpl apiSetting = sharedPrefUtils.getObject("api_setting", ApiSettingImpl.class); // TODO: リフレクションつかって一括でやる?(プロパティ数があまりにも増えるなら?), 三項演算子やめる?, デフォルト値の設定方法を改善する if (apiSetting != null) { - apiBaseUrl = apiSetting.getApiBaseUrl() == null ? "https://kidshift-beta.nem.one/" : - Objects.equals(apiSetting.getApiBaseUrl(), "") ? "https://kidshift-beta.nem.one/" : apiSetting.getApiBaseUrl(); + apiBaseUrl = apiSetting.apiBaseUrl.isEmpty() ? "https://kidshift-beta.nem.one/" : apiSetting.apiBaseUrl; } } @@ -65,28 +64,46 @@ public class UserSettingsImpl implements UserSettings { public class TaskSettingImpl implements UserSettings.TaskSetting { + transient SharedPrefUtils sharedPrefUtils; int defaultIconColor; + String defaultIconEmoji; + + TaskSettingImpl() { + sharedPrefUtils = sharedPrefUtilsFactory.create("user_settings"); + TaskSettingImpl taskSetting = sharedPrefUtils.getObject("task_setting", TaskSettingImpl.class); + if (taskSetting != null) { + defaultIconColor = taskSetting.getDefaultIconColor() == 0 ? 0 : taskSetting.getDefaultIconColor(); + defaultIconEmoji = taskSetting.getDefaultIconEmoji().isEmpty() ? "" : taskSetting.getDefaultIconEmoji(); + } + } + + private void save() { + sharedPrefUtils.saveObject("task_setting", this); + } + @Override public int getDefaultIconColor() { - return 0; + return defaultIconColor; } @Override public void setDefaultIconColor(int color) { - + defaultIconColor = color; + save(); } @Override public String getDefaultIconEmoji() { - return ""; + return defaultIconEmoji; } @Override public void setDefaultIconEmoji(String emoji) { - + defaultIconEmoji = emoji; + save(); } } }