findAllRecordFile method

Future<List<Map<String, dynamic>>> findAllRecordFile({
  1. required List<Map<String, dynamic>> list,
  2. required String deviceId,
  3. required DevRecordParam param,
  4. required RecordFileOrder order,
})

Implementation

Future<List<Map<String, dynamic>>> findAllRecordFile(
    {required List<Map<String, dynamic>> list,
    required String deviceId,
    required DevRecordParam param,
    required RecordFileOrder order}) async {
  final result = await _api.findRecordFile(
      deviceId, param.toJsonString(), ApiSeq.instance.getSeq());
  if (kDebugMode) {
    XCloudResponse.fromOriginResponse(result);
  }
  if (result.param1 < 0) {
    return Future.error(
        XCloudAPIException(code: result.param1, commandId: result.commandId));
  }
  Map<String, dynamic> data =
      jsonDecode(XCloudResponse.byteToString(result.byteStream ?? []));
  List<Map<String, dynamic>> listOnce =
      xcFormatDevFileRecord(jsonName: result.data, data: data);
  list.addAll(listOnce);
  if (listOnce.length < 64) {
    return list;
  } else {
    if (order == RecordFileOrder.unkown) {
      order = obtainArrangementMethod(list: listOnce);
    }

    DevRecordParam nextParam =
        getRecrdParam(order: order, list: listOnce, param: param);
    return findAllRecordFile(
        list: list, deviceId: deviceId, param: nextParam, order: order);
  }
}