registerStorageListener method

Future<bool> registerStorageListener({
  1. String? searchPath,
  2. Function? storageEventhandler,
})

Register the storage listener

Implementation

Future<bool> registerStorageListener(
    {String? searchPath, Function? storageEventhandler}) async {
  if (isStorageListenerRegistered == true) {
    log('The storage listener ${pluginListener.hashCode} has been registered already!');
    return true;
  } else {
    if (storageListener == null) {
      // Create a storage listener
      storageListener = StorageEventListener(
          pluginId: pluginId, storageEventHandler: storageEventhandler);
      log('storageListener: ${storageListener.hashCode}');
    }
    try {
      SearchCriteria sc = SearchCriteria(searchPath: searchPath ?? ':');
      await storageController!.registerChangeListener(storageListener!, sc);
      log('StorageEventListener ${storageListener.hashCode} ($pluginId) has been registered');
      isStorageListenerRegistered = true;
      return true;
    } catch (e, trace) {
      log('Failed to register a storage listener');
      log(e.toString());
      if (exceptionHandler != null) {
        exceptionHandler!(e, trace);
      }
      return false;
    }
  }
}