removeCacheObjectFromList static method

Future<bool> removeCacheObjectFromList(
  1. String key,
  2. String objectId,
  3. String keyField, {
  4. bool deleteOnError = true,
})

Remove CacheObject from List

Implementation

static Future<bool> removeCacheObjectFromList(
    String key, String objectId, String keyField,
    {bool deleteOnError = true}) async {
  try {
    if (getSharedPreferences().containsKey(key)) {
      List<String> values = getSharedPreferences().getStringList(key)!;
      List<String> newValues = [];
      values.forEach((element) {
        if (jsonDecode(_reApplyCacheKey(element))[keyField] != objectId) {
          newValues.add(element);
        }
      });
      await getSharedPreferences().setStringList(key, newValues);
      return true;
    }
  } catch (e) {
    if (deleteOnError) {
      print("CacheHandler: Delete Key: " + key);
      await removeCacheObject(key);
    }
    print(e);
  }
  return false;
}