From 04882f5f4a4f0d990ece5837779635b638ca0b54 Mon Sep 17 00:00:00 2001 From: "Dr.Blank" <64108942+Dr-Blank@users.noreply.github.com> Date: Mon, 14 Apr 2025 12:10:27 +0530 Subject: [PATCH] feat: add AbsIcons font and update pubspec.yaml for font integration --- assets/fonts/AbsIcons.ttf | Bin 0 -> 5972 bytes lib/shared/icons/abs_icons.dart | 102 ++++++++++++++++++++++++++++++++ pubspec.yaml | 5 ++ 3 files changed, 107 insertions(+) create mode 100644 assets/fonts/AbsIcons.ttf create mode 100644 lib/shared/icons/abs_icons.dart diff --git a/assets/fonts/AbsIcons.ttf b/assets/fonts/AbsIcons.ttf new file mode 100644 index 0000000000000000000000000000000000000000..6f970dc4ffae185e927a5537cacb785bfbd84d56 GIT binary patch literal 5972 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 N(1j9TC>Gg%{|n{hf|~#U literal 0 HcmV?d00001 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