diff --git a/assets/fonts/AbsIcons.ttf b/assets/fonts/AbsIcons.ttf new file mode 100644 index 0000000..6f970dc Binary files /dev/null and b/assets/fonts/AbsIcons.ttf differ diff --git a/lib/shared/icons/abs_icons.dart b/lib/shared/icons/abs_icons.dart new file mode 100644 index 0000000..f112d0b --- /dev/null +++ b/lib/shared/icons/abs_icons.dart @@ -0,0 +1,102 @@ +/// Flutter icons AbsIcons +/// Copyright (C) 2025 by original authors @ fluttericon.com, fontello.com +/// This font was generated by FlutterIcon.com, which is derived from Fontello. +/// +/// To use this font, place it in your fonts/ directory and include the +/// following in your pubspec.yaml +/// +/// flutter: +/// fonts: +/// - family: AbsIcons +/// fonts: +/// - asset: fonts/AbsIcons.ttf +/// +/// +/// +// ignore_for_file: constant_identifier_names + +import 'package:flutter/widgets.dart' show IconData; + +class AbsIcons { + AbsIcons._(); + + static const _kFontFam = 'AbsIcons'; + static const String? _kFontPkg = null; + + static const IconData audiobookshelf = + IconData(0xe900, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData microphone_2 = + IconData(0xe901, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData microphone_1 = + IconData(0xe902, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData radio = + IconData(0xe903, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData podcast = + IconData(0xe904, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData books_1 = + IconData(0xe905, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData database_2 = + IconData(0xe906, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData headphones = + IconData(0xe910, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData music = + IconData(0xe911, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData video = + IconData(0xe914, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData microphone_3 = + IconData(0xe91e, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData book = + IconData(0xe91f, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData books_2 = + IconData(0xe920, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData file_picture = + IconData(0xe927, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData database_1 = + IconData(0xe964, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData rocket = + IconData(0xe9a5, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData power = + IconData(0xe9b5, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData star = + IconData(0xe9d9, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData heart = + IconData(0xe9da, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData rss = + IconData(0xea9b, fontFamily: _kFontFam, fontPackage: _kFontPkg); + + static final Map _iconMap = { + 'audiobookshelf': audiobookshelf, + 'microphone_2': microphone_2, + 'microphone_1': microphone_1, + 'radio': radio, + 'podcast': podcast, + 'books_1': books_1, + 'database_2': database_2, + 'headphones': headphones, + 'music': music, + 'video': video, + 'microphone_3': microphone_3, + 'book': book, + 'books_2': books_2, + 'file_picture': file_picture, + 'database_1': database_1, + 'rocket': rocket, + 'power': power, + 'star': star, + 'heart': heart, + 'rss': rss, + }; + + /// Returns the IconData corresponding to the [iconName] string. + /// + /// If the [iconName] is not found in the map, returns null. + /// Considers null or empty strings as invalid. + static IconData? getIconByName(String? iconName) { + if (iconName == null || iconName.isEmpty) { + return null; + } + return _iconMap[iconName.toLowerCase()]; + } + + static Map get iconMap => _iconMap; +} diff --git a/pubspec.yaml b/pubspec.yaml index e1f9c4d..2aafa66 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -122,6 +122,7 @@ flutter: - assets/animations/ - assets/sounds/ - assets/images/ + - assets/fonts/ # - images/a_dot_burr.jpeg # - images/a_dot_ham.jpeg # An image asset can refer to one or more resolution-specific "variants", see @@ -147,3 +148,7 @@ flutter: # # For details regarding fonts from package dependencies, # see https://flutter.dev/custom-fonts/#from-packages + fonts: + - family: AbsIcons + fonts: + - asset: assets/fonts/AbsIcons.ttf