capture static method

Implementation

static Future<AppSessionSnapshot> capture() async {
  final storage = StorageManager();
  final publicStorage = <String, dynamic>{};
  final secureStorage = <String, dynamic>{};
  for (final key in storage.getKeys()) {
    if (key.startsWith('enc_')) {
      secureStorage[key] = _copy(storage.read(key));
    } else {
      publicStorage[key] = _copy(storage.read(key));
    }
  }
  final keychain = await storage.getAllFromKeychain();
  return AppSessionSnapshot(
    publicStorage: publicStorage,
    secureStorage: secureStorage,
    keychain: {
      for (final entry in keychain.entries) entry.key: _copy(entry.value),
    },
    locale: Ensemble().getLocale(),
  );
}