import 'package:dartboard_resume/widgets/footnote.dart'; import 'package:pdf/widgets.dart'; class AnnotationManager { // Factory constructor to return the single instance factory AnnotationManager() { return _instance; } // Private constructor AnnotationManager._privateConstructor(); // Static field to hold the single instance of the class static final AnnotationManager _instance = AnnotationManager._privateConstructor(); // Field to hold the number int _numUrls = 0; List _urlWidgets = []; TextStyle? _style; // ignore: avoid_setters_without_getters set style(TextStyle style) => _style = style; int add({required String url}) { _numUrls += 1; if (_style == null) { throw Exception('Must provide text style for urls'); } _urlWidgets.add(Footnote(number: _numUrls, style: _style!, url: url)); return _numUrls; } List get footnotes { final widgets = [..._urlWidgets]; reset(); return widgets; } // Method to reset the number void reset() { _numUrls = 0; _urlWidgets = []; } }