applyDeeplink method

void applyDeeplink(
  1. String global
)

Implementation

void applyDeeplink(String global) {
  final parts = global.split(';');
  final entries = parts.map(
    (e) {
      final [key, value] = e.split(':');
      return MapEntry(key, revive(value));
    },
  );

  final map = unflatten(Map.fromEntries(entries));

  for (final addon in _addons) {
    final state = map[addon.id];
    if (state == null) continue;

    try {
      addon.decode(state);
    } catch (e, s) {
      log(
        'Failed to apply state to addon(${addon.id})',
        error: e,
        stackTrace: s,
        name: '$AddonQuery',
      );
      continue;
    }
  }

  state = global;

  ref.notifyListeners();
}