getRecordLineFile method

Future<List<RecordTimeLineFile>> getRecordLineFile(
  1. String date, {
  2. bool cache = true,
  3. int timeout = 5,
})

Implementation

Future<List<RecordTimeLineFile>> getRecordLineFile(String date,
    {bool cache = true, int timeout = 5}) async {
  var timeLine = int.tryParse(statusResult?.support_time_line ?? "0") ?? 0;
  if (timeLine < 1) {
    _lineFileCache[date] = [];
    return [];
  }
  if (cache == true) {
    if (_lineFileCache.containsKey(date)) return _lineFileCache[date] ?? [];
  }
  List<RecordTimeLineFile> files = [];
  List<int> data = [];

  bool ret = await getRecordData(date, data, timeout, 0);
  if (ret) {
    var offset = 0;
    while (offset < data.length) {
      var lineData = RecordTimeLineData(Uint8List.fromList(data), offset);
      RecordTimeLineFile? item;
      try {
        item = RecordTimeLineFile.fromData(lineData);
      } catch (ex) {
        item = null;
      }
      if (item != null) {
        files.add(item);
      } else {
        if (lineData.offset == 0) break;
      }
      offset += lineData.offset ?? 0;
    }

    _lineFileCache[date] = files;
  }
  return files;
}