LCOV - code coverage report
Current view: top level - lib/_classes/storage/transaction_log - file_protocol.dart Coverage Total Hit
Test: lcov.info Lines: 0.0 % 17 0
Test Date: 2026-11-14 15:08:11 Functions: - 0 0

            Line data    Source code
       1              : // Copyright 2023 The terCAD team. All rights reserved.
       2              : // Use of this source code is governed by a CC BY-NC-ND 4.0 license that can be found in the LICENSE file.
       3              : 
       4              : import 'package:app_finance/_classes/herald/app_locale.dart';
       5              : import 'package:app_finance/_classes/storage/transaction_log/abstract_protocol.dart';
       6              : import 'package:app_finance/_classes/storage/transaction_log/interface_protocol.dart';
       7              : import 'package:app_finance/_mixins/file/file_import_mixin.dart';
       8              : import 'package:app_finance/_mixins/file/file_export_mixin_web.dart'
       9              :     if (dart.library.io) 'package:app_finance/_mixins/file/file_export_mixin.dart';
      10              : 
      11              : class FileProtocol extends AbstractProtocol with FileImportMixin, FileExportMixin implements InterfaceProtocol {
      12              :   @override
      13              :   final Function callbackMessage;
      14              :   @override
      15              :   final Function callbackProgress;
      16              :   String message = '';
      17              :   bool inProgress = false;
      18              : 
      19            0 :   FileProtocol({
      20              :     required this.callbackMessage,
      21              :     required this.callbackProgress,
      22              :   });
      23              : 
      24            0 :   @override
      25              :   Future<void> save(dynamic data) async {
      26            0 :     if (data.isEmpty) {
      27            0 :       callbackMessage(message = AppLocale.labels.isRequired);
      28              :       return;
      29              :     }
      30            0 :     callbackProgress(inProgress = true);
      31            0 :     final codeUnits = await exportTransactions();
      32            0 :     await exportFile(codeUnits, data);
      33            0 :     callbackProgress(inProgress = false);
      34            0 :     callbackMessage(message = AppLocale.labels.success);
      35              :   }
      36              : 
      37            0 :   @override
      38              :   Future<void> load(dynamic data, [bool isEncrypted = true, bool isCleaned = false]) async {
      39            0 :     callbackProgress(inProgress = true);
      40            0 :     final content = await importFile(['log']);
      41              :     if (content != null) {
      42              :       if (isCleaned) {
      43            0 :         clearTransactions();
      44              :       }
      45            0 :       importTransactions(content.codeUnits, isEncrypted);
      46            0 :       callbackMessage(message = AppLocale.labels.success);
      47              :     } else {
      48            0 :       callbackMessage(message = AppLocale.labels.missingContent);
      49              :     }
      50            0 :     callbackProgress(inProgress = false);
      51              :   }
      52              : }
        

Generated by: LCOV version 2.0-1