diff --git a/lib/core/namida_converter_ext.dart b/lib/core/namida_converter_ext.dart index d54122cc..adcb162d 100644 --- a/lib/core/namida_converter_ext.dart +++ b/lib/core/namida_converter_ext.dart @@ -672,6 +672,7 @@ extension InsertionSortingTypeTextIcon on InsertionSortingType { extension YTHomePagesUils on YTHomePages { String toText() => _NamidaConverters.inst.getTitle(this); + IconData toIcon() => _NamidaConverters.inst.getIcon(this); } extension PlaylistAddDuplicateActionUtils on PlaylistAddDuplicateAction { @@ -1405,6 +1406,14 @@ class _NamidaConverters { FABType.shuffle: Broken.shuffle, FABType.play: Broken.play_cricle, }, + YTHomePages: { + YTHomePages.home: Broken.home_1, + YTHomePages.notifications: Broken.notification_bing, + YTHomePages.channels: Broken.profile_2user, + YTHomePages.playlists: Broken.music_library_2, + YTHomePages.userplaylists: Broken.music_dashboard, + YTHomePages.downloads: Broken.import, + }, }; _ffmpegToTitle = { diff --git a/lib/ui/widgets/custom_widgets.dart b/lib/ui/widgets/custom_widgets.dart index 937f3b4d..67b41835 100644 --- a/lib/ui/widgets/custom_widgets.dart +++ b/lib/ui/widgets/custom_widgets.dart @@ -3301,7 +3301,8 @@ class NamidaAspectRatio extends StatelessWidget { class NamidaTabView extends StatefulWidget { final int initialIndex; - final List tabs; + final List? tabs; + final List? tabWidgets; final List children; final void Function(int index) onIndexChanged; final bool isScrollable; @@ -3310,7 +3311,8 @@ class NamidaTabView extends StatefulWidget { super.key, required this.children, required this.initialIndex, - required this.tabs, + this.tabs, + this.tabWidgets, required this.onIndexChanged, this.isScrollable = false, }); @@ -3353,13 +3355,22 @@ class _NamidaTabViewState extends State with SingleTickerProvider controller: controller, isScrollable: widget.isScrollable, tabs: widget.tabs - .map( - (e) => Padding( - padding: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 10.0), - child: Text(e, maxLines: 1, overflow: TextOverflow.ellipsis), - ), - ) - .toList(), + ?.map( + (e) => Padding( + padding: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 10.0), + child: Text(e, maxLines: 1, overflow: TextOverflow.ellipsis), + ), + ) + .toList() ?? + widget.tabWidgets ?? + widget.children + .map( + (e) => Padding( + padding: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 10.0), + child: Text(e.toString(), maxLines: 1, overflow: TextOverflow.ellipsis), + ), + ) + .toList(), splashBorderRadius: BorderRadius.circular(12.0.multipliedRadius), // indicatorPadding: const EdgeInsets.symmetric(horizontal: 32.0), indicatorSize: TabBarIndicatorSize.label, diff --git a/lib/youtube/pages/youtube_home_view.dart b/lib/youtube/pages/youtube_home_view.dart index c61b6d24..1a3a122f 100644 --- a/lib/youtube/pages/youtube_home_view.dart +++ b/lib/youtube/pages/youtube_home_view.dart @@ -22,9 +22,22 @@ class YouTubeHomeView extends StatelessWidget with NamidaRouteWidget { Widget build(BuildContext context) { return BackgroundWrapper( child: NamidaTabView( - isScrollable: true, + isScrollable: false, initialIndex: settings.ytInitialHomePage.value.index, - tabs: YTHomePages.values.map((e) => e.toText()).toList(), + tabWidgets: YTHomePages.values + .map( + (e) => Padding( + padding: const EdgeInsets.symmetric(vertical: 8.0), + child: Tooltip( + message: e.toText(), + child: Icon( + e.toIcon(), + size: 18.0, + ), + ), + ), + ) + .toList(), onIndexChanged: (index) { settings.save(ytInitialHomePage: YTHomePages.values[index]); }, diff --git a/pubspec.yaml b/pubspec.yaml index 2284896a..a8bcff17 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: namida description: A Beautiful and Feature-rich Music Player, With YouTube & Video Support Built in Flutter publish_to: "none" -version: 3.0.9-beta+240708233 +version: 3.1.0-beta+240708236 environment: sdk: ">=3.4.0 <4.0.0"