connectToLocalStorage method

Future<bool> connectToLocalStorage()

Get an instance of GeigerStorage to read/write data

Implementation

Future<bool> connectToLocalStorage() async {
  log('Trying to connect to the GeigerStorage');
  if (storageController != null) {
    log('Plugin $pluginId has already connected to the GeigerStorage (${storageController.hashCode})');
    log('currentDeviceId: $currentDeviceId');
    log('currentUserId: $currentUserId');
    if (currentDeviceId == null || currentUserId == null) {
      return await updateCurrentIds();
    }
    return true;
  } else {
    try {
      storageController = pluginApi!.storage;
      log('Connected to the GeigerStorage ${storageController.hashCode}');
      bool ret = await updateCurrentIds();
      if (ret == false) {
        log('Failed to update userId and deviceId');
        await close();
        return false;
      }
      ret = await prepareDataRoot();
      return ret;
    } catch (e, trace) {
      log('Failed to connect to the GeigerStorage');
      await close();
      log(e.toString());
      if (exceptionHandler != null) {
        exceptionHandler!(e, trace);
      }
      return false;
    }
  }
}