getString method

Future<String?> getString(
  1. String key,
  2. bool isEncrypted
)

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

Implementation

Future<String?> getString(String key, bool isEncrypted) async {
  _assetFunction(isEncrypted);
  if (isEncrypted) {
    if (Platform.isAndroid) {
      return await _secureStorage?.read(key: key);
    } 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) {
              return await _decrypt(_sharedPreferences.getString(value) ?? "", keys.last);
            }
          }
        }
      } 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.getString(key);
  }
  return null;
}