init static method

dynamic init(
  1. Map<String, List<Map<String, Object?>?>?> reponse, {
  2. bool reload = false,
})

Implementation

static init(
  Map<String, List<Map<String, Object?>?>?> reponse, {
  bool reload = false,
}) async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  List<String> pickers = prefs.getStringList(_picker) ?? [];
  List<String> ranges = prefs.getStringList(_range) ?? [];
  if (pickers.isEmpty || ranges.isEmpty) {
    reload = true;
  }
  if (reload) {
    try {
      if (reponse.isEmpty) {
        reponse = await SQLService.execute(
          'sp_InitSetting',
          params: {'@getPickerRange': true},
        );
        if (reponse.isEmpty) {
          return;
        }
      }
      reponse.forEach((key, value) {
        String tableName = key;
        if (kDebugMode) {
          print('Picker-Range init: $tableName');
        }
        if (tableName.startsWith('DataRange_')) {
          PickerRange.initDataRange(
            tableName.replaceAll('DataRange_', ''),
            value,
            override: true,
          );
        } else if (tableName.startsWith('DataPicker_')) {
          PickerRange.initDataPicker(
            tableName.replaceAll('DataPicker_', ''),
            value,
            override: true,
          );
        }
      });
      savePickerToLocal();
      saveRangeToLocal();
      await SQLService.execute('sp_updatePicker');
      return;
    } catch (ex) {
      if (kDebugMode) {
        print('PickerRange init exception: $ex');
      }
    }
  } else {
    loadPickerFromLocal(pickers: pickers);
    loadRangeFromLocal(ranges: ranges);
  }
}