mirror of
https://github.com/Dr-Blank/Vaani.git
synced 2025-12-25 04:19:30 +00:00
* feat: add AbsIcons font and update pubspec.yaml for font integration * feat: implement library selection in YouPage * fix: optimize authenticatedApi provider to not rebuild unnecessarily * feat: add LibrarySwitchChip widget and integrate it into YouPage and ScaffoldWithNavBar * feat: enhance library selection UI with refresh functionality and error handling * fix: change library switcher activation from long press to double tap * feat: show current library on nav bar * feat: refactor LibraryBrowserPage to use CustomScrollView and enhance app bar with dynamic library icon and title
103 lines
3.7 KiB
Dart
103 lines
3.7 KiB
Dart
/// 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
|
|
///
|
|
///
|
|
///
|
|
library;
|
|
// 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<String, IconData> _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<String, IconData> get iconMap => _iconMap;
|
|
}
|