cache static method
void
cache(})
Implementation
static void cache(String key, Map<String, List<Map<String, Object?>?>?> data,
{Map<String, Object?>? jParam}) async {
_preferences = _preferences ?? await SharedPreferences.getInstance();
jParam?.forEach((key, value) {
if (key == 'PageNumber' || key == '@PageNumber') {
int page = Methods.getInt(jParam, key);
if (page > 1) {
return;
}
}
});
if (_preferences!.containsKey(key)) {
bool isReCache = false;
String? sData = _preferences!.getString(key);
if (sData != null) {
var mapData = _stringToMap(sData);
data.forEach((keyMap, value) {
var listData = Methods.getList(data, keyMap);
if (mapData.containsKey(keyMap)) {
var listTempDdata = Methods.getList(mapData, keyMap);
if (listTempDdata.length > listData.length) {
isReCache = true;
return;
}
}
});
}
if (!isReCache) {
return;
}
await _preferences!.remove(key);
}
await _preferences!.setString(key, json.encode(data));
}