onContentResolverMethodCall method

void onContentResolverMethodCall(
  1. String method,
  2. dynamic arguments
)

Implementation

void onContentResolverMethodCall(String method, dynamic arguments) {
  log("onContentResolverMethodCall");
  switch (method) {
    case "onChange":
      var uri = arguments["uri"] as String?;
      var selfChange = arguments["selfChange"] as bool;
      var flags = arguments["flags"] as int;
      var observedUri = arguments["observedUri"] as String;
      log("onChange selfChange=$selfChange, uri=$uri, flags=$flags, observedUri=$observedUri");
      List<ContentObserverCallback> callbacks =
          _contentObserverCallbacks[observedUri] ??
              <ContentObserverCallback>[];
      if (uri != null) {
        _contentObserverCallbacks.entries
            .where((entry) =>
                uri.startsWith(entry.key) && entry.key != observedUri)
            .map<List<ContentObserverCallback>>((e) => e.value)
            .forEach((cbs) {
          callbacks.addAll(cbs);
        });
      }
      log("callbacks lenght ${callbacks.length}");
      if (callbacks.length > 0) {
        callbacks.forEach((cb) {
          cb(selfChange, (uri != null) ? Uri.parse(uri) : null, flags);
        });
      }
      break;
  }
}