storeAtSigns method

Future<bool> storeAtSigns({
  1. required List<AtsignKey> atSigns,
})

Function to add new atsigns to keychain

Implementation

Future<bool> storeAtSigns({required List<AtsignKey> atSigns}) async {
  final internalAtClientData =
      await readAtClientData(useSharedStorage: false);
  final useSharedStorage =
      internalAtClientData?.config?.useSharedStorage ?? false;
  final atClientData =
      await readAtClientData(useSharedStorage: useSharedStorage);
  if (atClientData != null) {
    final oldAtSigns = atClientData.keys;
    //If have no account => make this account is default
    for (var atsign in atSigns) {
      oldAtSigns.removeWhere((element) => element.atSign == atsign.atSign);
      oldAtSigns.add(atsign);
    }
    final newAtClientData = atClientData.copyWith(keys: oldAtSigns);
    await _saveAtClientData(
        data: newAtClientData, useSharedStorage: useSharedStorage);
    return true;
  } else {
    return false;
  }
}