Implementation
Future<void> init({bool force = false}) async {
_prefs = await SharedPreferences.getInstance();
int? localVersion = _prefs.getInt(PrefsConstants.PREFS_KEY_VERSION);
LogManager().addLog("preference / localVersion $localVersion / remoteVersion $remoteVersion", screen: runtimeType.toString());
if (localVersion != remoteVersion || force) {
LogManager().addLog("환경설정 버전이 다름, 리셋", screen: runtimeType.toString());
final String response = await rootBundle.loadString("assets/files/jsons/prefs/default.json");
final Map<String, dynamic> defaultPrefs = await compute(_jsonDecode, response);
_prefs.setInt(PrefsConstants.PREFS_KEY_VERSION, defaultPrefs[PrefsConstants.PREFS_KEY_VERSION]);
setJson(PrefsConstants.PREFS_KEY_HEALTH_DOUBT_NOTIFICATION, defaultPrefs[PrefsConstants.PREFS_KEY_HEALTH_DOUBT_NOTIFICATION]);
setJson(PrefsConstants.PREFS_KEY_ODD_ACTION_NOTIFICATION, defaultPrefs[PrefsConstants.PREFS_KEY_ODD_ACTION_NOTIFICATION]);
setJson(PrefsConstants.PREFS_KEY_NEED_CHECK_NOTIFICATION, defaultPrefs[PrefsConstants.PREFS_KEY_NEED_CHECK_NOTIFICATION]);
setJson(PrefsConstants.PREFS_KEY_QNA_NOTIFICATION, defaultPrefs[PrefsConstants.PREFS_KEY_QNA_NOTIFICATION]);
setJson(PrefsConstants.PREFS_KEY_FARM, defaultPrefs[PrefsConstants.PREFS_KEY_FARM]);
}
notifyListeners();
}