applyDeeplink method
void
applyDeeplink(
- String params
)
Implementation
void applyDeeplink(String params) {
final parts = params.split(';');
final entries = parts.map(
(e) {
final [key, value] = e.split(':');
return MapEntry(key, revive(value));
},
);
final map = unflatten(Map.fromEntries(entries));
for (final entry in map.entries) {
final [id, value] = [entry.key, entry.value];
final param = _params.items[id];
if (param == null) {
_params.onParamAdded.firstWhere((element) => element == id).then(
(_) {
final param = _params.items[id];
if (param == null) return;
final data = _serializer.decode(param, value);
_params.update(id, data);
},
);
} else {
final data = _serializer.decode(param, value);
_params.update(id, data);
}
}
state = params;
ref.notifyListeners();
}