getStringList method

Future<List<String>> getStringList(
  1. String key,
  2. bool isEncrypted
)

Method to get StringList from local storage key -> Key which you have provided while setting isEncrypted -> Flag which you have provided while encrypting

Implementation

Future<List<String>> getStringList(String key, bool isEncrypted) async {
  _assetFunction(isEncrypted);
  if (isEncrypted) {
    if (Platform.isAndroid) {
      String? result = await _secureStorage?.read(key: key);
      return _getStringListFromString(result!);
    } else if (Platform.isIOS) {
      if (await _isMasterKeyAvailable()) {
        var keys = await _getEncrypterKeys();
        for (var value in _sharedPreferences.getKeys()) {
          if (_getIntListFromString(value).length == 16) {
            String decoded = await _decrypt(value, keys.first);
            if (decoded == key) {
              String result = await _decrypt(_sharedPreferences.getString(value) ?? "", keys.last);
              return _getStringListFromString(result);
            }
          }
        }
      } else {
        throw Exception("Failed to get data something is not correct, please report issue on github");
      }
    } else {
      throw PlatformException(message: "Not Supported for ${Platform.operatingSystem} platform", code: "501");
    }
  } else {
    return _sharedPreferences.getStringList(key) ?? [];
  }
  return [];
}