getAllStudies method

Future<List<SmartphoneStudy>> getAllStudies()

Get the list of all studies previously stored on this phone.

Returns an empty list, if not study deployments are stored.

Implementation

Future<List<SmartphoneStudy>> getAllStudies() async {
  List<SmartphoneStudy> list = [];
  try {
    final List<Map<String, Object?>> maps =
        await _database?.query(
          STUDY_TABLE_NAME,
          columns: [
            STUDY_ID_COLUMN,
            STUDY_DEPLOYMENT_ID_COLUMN,
            DEVICE_ROLE_NAME_COLUMN,
            PARTICIPANT_ID_COLUMN,
            PARTICIPANT_ROLE_NAME_COLUMN,
            CREATED_ON_COLUMN,
            SAMPLING_STATUS_COLUMN,
            DEPLOYMENT_STATUS_COLUMN,
            DEPLOYMENT_COLUMN,
          ],
        ) ??
        [];
    if (maps.isNotEmpty) {
      for (var map in maps) {
        list.add(SmartphoneStudy.fromMap(map));
      }
    }
  } catch (exception) {
    warning('$runtimeType - Failed to load studies - $exception');
  }

  return list;
}