init method Null safety

Future<void> init(
  1. {bool force = false}
)

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();
}