enableUsingSharedStorage method

Future<bool> enableUsingSharedStorage()

Change atsign data to internal store

Implementation

Future<bool> enableUsingSharedStorage() async {
  //Init shared storage if it not exiting
  final sharedData = await readAtClientData(useSharedStorage: true);
  if (sharedData == null) {
    await _saveAtClientData(
      data: AtClientData(
        config: AtClientDataConfig(
          schemaVersion: _kDataSchemeVersion,
        ),
        keys: [],
      ),
      useSharedStorage: true,
    );
  }
  //
  final data = await readAtClientData(useSharedStorage: false);
  if (data != null) {
    final newConfig = data.config?.copyWith(useSharedStorage: true);
    var newData = data.copyWith(config: newConfig);
    await _saveAtClientData(data: newData, useSharedStorage: false);
    final result = await storeAtSigns(atSigns: data.keys);
    if (result) {
      newData = newData.copyWith(keys: []);
      await _saveAtClientData(data: newData, useSharedStorage: false);
    }
    return result;
  }
  return false;
}