chore: Move to different iconsax library (#301)

Co-authored-by: PartyDonut <PartyDonut@users.noreply.github.com>
This commit is contained in:
PartyDonut 2025-04-05 23:36:48 +02:00 committed by GitHub
parent 5b3d5b8900
commit 5578076fdb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
71 changed files with 349 additions and 346 deletions

View file

@ -4,7 +4,7 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:fladder/jellyfin/jellyfin_open_api.swagger.dart';
@ -85,13 +85,13 @@ enum Authentication {
IconData get icon {
switch (this) {
case Authentication.none:
return IconsaxBold.arrow_bottom;
return IconsaxPlusBold.arrow_bottom;
case Authentication.autoLogin:
return IconsaxOutline.login_1;
return IconsaxPlusLinear.login_1;
case Authentication.biometrics:
return IconsaxOutline.finger_scan;
return IconsaxPlusLinear.finger_scan;
case Authentication.passcode:
return IconsaxOutline.password_check;
return IconsaxPlusLinear.password_check;
}
}

View file

@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:fladder/jellyfin/jellyfin_open_api.enums.swagger.dart';
import 'package:fladder/jellyfin/jellyfin_open_api.swagger.dart';
@ -31,18 +31,21 @@ extension CollectionTypeExtension on CollectionType {
IconData getIconType(bool outlined) {
switch (this) {
case CollectionType.movies:
return outlined ? IconsaxOutline.video_horizontal : IconsaxBold.video_horizontal;
return outlined ? IconsaxPlusLinear.video_horizontal : IconsaxPlusBold.video_horizontal;
case CollectionType.tvshows:
return outlined ? IconsaxOutline.video_vertical : IconsaxBold.video_vertical;
return outlined ? IconsaxPlusLinear.video_vertical : IconsaxPlusBold.video_vertical;
case CollectionType.boxsets:
return outlined ? IconsaxPlusLinear.box : IconsaxPlusBold.box;
case CollectionType.folders:
return outlined ? IconsaxOutline.folder : IconsaxBold.folder;
return outlined ? IconsaxPlusLinear.folder_2 : IconsaxPlusBold.folder_2;
case CollectionType.homevideos:
return outlined ? IconsaxOutline.gallery : IconsaxBold.gallery;
return outlined ? IconsaxPlusLinear.gallery : IconsaxPlusBold.gallery;
case CollectionType.books:
return outlined ? IconsaxOutline.book : Icons.book_rounded;
return outlined ? IconsaxPlusLinear.book : IconsaxPlusBold.book;
case CollectionType.playlists:
return outlined ? IconsaxPlusLinear.archive : IconsaxPlusBold.archive;
default:
return IconsaxOutline.info_circle;
return IconsaxPlusLinear.information;
}
}
}

View file

@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import 'package:auto_route/auto_route.dart';
import 'package:dart_mappable/dart_mappable.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/jellyfin/jellyfin_open_api.enums.swagger.dart';
@ -72,7 +72,7 @@ class ItemBaseModel with ItemBaseModelMappable {
? Row(
children: [
const Icon(
IconsaxBold.star_1,
IconsaxPlusBold.star_1,
size: 14,
color: Colors.yellowAccent,
),
@ -85,7 +85,7 @@ class ItemBaseModel with ItemBaseModelMappable {
? Row(
children: [
const Icon(
IconsaxBold.star_1,
IconsaxPlusBold.star_1,
size: 14,
color: Colors.yellowAccent,
),
@ -234,72 +234,72 @@ class ItemBaseModel with ItemBaseModelMappable {
// Currently supported types
enum FladderItemType {
baseType(
icon: IconsaxOutline.folder_2,
selectedicon: IconsaxBold.folder_2,
icon: IconsaxPlusLinear.folder_2,
selectedicon: IconsaxPlusBold.folder_2,
),
audio(
icon: IconsaxOutline.music,
selectedicon: IconsaxBold.music,
icon: IconsaxPlusLinear.music,
selectedicon: IconsaxPlusBold.music,
),
musicAlbum(
icon: IconsaxOutline.music,
selectedicon: IconsaxBold.music,
icon: IconsaxPlusLinear.music,
selectedicon: IconsaxPlusBold.music,
),
musicVideo(
icon: IconsaxOutline.music,
selectedicon: IconsaxBold.music,
icon: IconsaxPlusLinear.music,
selectedicon: IconsaxPlusBold.music,
),
collectionFolder(
icon: IconsaxOutline.music,
selectedicon: IconsaxBold.music,
icon: IconsaxPlusLinear.music,
selectedicon: IconsaxPlusBold.music,
),
video(
icon: IconsaxOutline.video,
selectedicon: IconsaxBold.video,
icon: IconsaxPlusLinear.video,
selectedicon: IconsaxPlusBold.video,
),
movie(
icon: IconsaxOutline.video_horizontal,
selectedicon: IconsaxBold.video_horizontal,
icon: IconsaxPlusLinear.video_horizontal,
selectedicon: IconsaxPlusBold.video_horizontal,
),
series(
icon: IconsaxOutline.video_vertical,
selectedicon: IconsaxBold.video_vertical,
icon: IconsaxPlusLinear.video_vertical,
selectedicon: IconsaxPlusBold.video_vertical,
),
season(
icon: IconsaxOutline.video_vertical,
selectedicon: IconsaxBold.video_vertical,
icon: IconsaxPlusLinear.video_vertical,
selectedicon: IconsaxPlusBold.video_vertical,
),
episode(
icon: IconsaxOutline.video_vertical,
selectedicon: IconsaxBold.video_vertical,
icon: IconsaxPlusLinear.video_vertical,
selectedicon: IconsaxPlusBold.video_vertical,
),
photo(
icon: IconsaxOutline.picture_frame,
selectedicon: IconsaxBold.picture_frame,
icon: IconsaxPlusLinear.picture_frame,
selectedicon: IconsaxPlusBold.picture_frame,
),
person(
icon: IconsaxOutline.user,
selectedicon: IconsaxBold.user,
icon: IconsaxPlusLinear.user,
selectedicon: IconsaxPlusBold.user,
),
photoAlbum(
icon: IconsaxOutline.gallery,
selectedicon: IconsaxBold.gallery,
icon: IconsaxPlusLinear.gallery,
selectedicon: IconsaxPlusBold.gallery,
),
folder(
icon: IconsaxOutline.folder,
selectedicon: IconsaxBold.folder,
icon: IconsaxPlusLinear.folder,
selectedicon: IconsaxPlusBold.folder,
),
boxset(
icon: IconsaxOutline.bookmark,
selectedicon: IconsaxBold.bookmark,
icon: IconsaxPlusLinear.bookmark,
selectedicon: IconsaxPlusBold.bookmark,
),
playlist(
icon: IconsaxOutline.archive_book,
selectedicon: IconsaxBold.archive_book,
icon: IconsaxPlusLinear.archive_book,
selectedicon: IconsaxPlusBold.archive_book,
),
book(
icon: IconsaxOutline.book,
selectedicon: IconsaxBold.book,
icon: IconsaxPlusLinear.book,
selectedicon: IconsaxPlusBold.book,
);
const FladderItemType({required this.icon, required this.selectedicon});

View file

@ -4,7 +4,7 @@ import 'dart:io';
import 'package:flutter/material.dart';
import 'package:background_downloader/background_downloader.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:path/path.dart';
@ -159,11 +159,11 @@ class SyncedItem with _$SyncedItem {
enum SyncStatus {
complete(
Color.fromARGB(255, 141, 214, 58),
IconsaxOutline.tick_circle,
IconsaxPlusLinear.tick_circle,
),
partially(
Color.fromARGB(255, 221, 135, 23),
IconsaxOutline.more_circle,
IconsaxPlusLinear.more_circle,
),
;

View file

@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
// ignore_for_file: public_member_api_docs, sort_constructors_first
import 'package:collection/collection.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/jellyfin/jellyfin_open_api.swagger.dart';
@ -19,9 +19,9 @@ enum PlaybackType {
transcode;
IconData get icon => switch (this) {
PlaybackType.offline => IconsaxOutline.cloud,
PlaybackType.directStream => IconsaxOutline.arrow_right_1,
PlaybackType.transcode => IconsaxOutline.convert,
PlaybackType.offline => IconsaxPlusLinear.cloud,
PlaybackType.directStream => IconsaxPlusLinear.arrow_right_1,
PlaybackType.transcode => IconsaxPlusLinear.convert,
};
String get name {

View file

@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:extended_image/extended_image.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:screen_brightness/screen_brightness.dart';
import 'package:wakelock_plus/wakelock_plus.dart';
@ -239,7 +239,7 @@ class _BookViewerControlsState extends ConsumerState<BookViewerControls> {
: nextChapter != null
? () async => await loadNextBook(nextChapter)
: null,
icon: const Icon(IconsaxOutline.backward),
icon: const Icon(IconsaxPlusLinear.backward),
),
),
const SizedBox(width: 8),
@ -280,7 +280,7 @@ class _BookViewerControlsState extends ConsumerState<BookViewerControls> {
: previousChapter != null
? () async => await loadNextBook(previousChapter)
: null,
icon: const Icon(IconsaxOutline.forward),
icon: const Icon(IconsaxPlusLinear.forward),
),
),
const SizedBox(width: 8),
@ -296,13 +296,13 @@ class _BookViewerControlsState extends ConsumerState<BookViewerControls> {
child: IconButton(
onPressed: () => widget.controller
.animateToPage(1, duration: pageAnimDuration, curve: pageAnimCurve),
icon: const Icon(IconsaxOutline.backward)),
icon: const Icon(IconsaxPlusLinear.backward)),
),
IconButton(
onPressed: () {
showBookViewerSettings(context);
},
icon: const Icon(IconsaxOutline.setting_2),
icon: const Icon(IconsaxPlusLinear.setting_2),
),
IconButton(
onPressed: chapters.length > 1
@ -317,7 +317,7 @@ class _BookViewerControlsState extends ConsumerState<BookViewerControls> {
);
}
: () => fladderSnackbar(context, title: "No other chapters"),
icon: const Icon(IconsaxOutline.bookmark_2),
icon: const Icon(IconsaxPlusLinear.bookmark_2),
)
],
),

View file

@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/item_base_model.dart';
@ -60,7 +60,7 @@ class _AddToCollectionState extends ConsumerState<AddToCollection> {
),
IconButton(
onPressed: () => ref.read(provider.notifier).setItems(widget.items),
icon: const Icon(IconsaxOutline.refresh),
icon: const Icon(IconsaxPlusLinear.refresh),
)
],
),

View file

@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:auto_route/auto_route.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/book_model.dart';
@ -105,16 +105,16 @@ class _BookDetailScreenState extends ConsumerState<BookDetailScreen> {
SelectableIconButton(
onPressed: () async => await details.parentModel?.navigateTo(context),
selected: false,
selectedIcon: IconsaxBold.book,
icon: IconsaxOutline.book,
selectedIcon: IconsaxPlusBold.book,
icon: IconsaxPlusLinear.book,
),
if (details.parentModel != null)
SelectableIconButton(
onPressed: () async => await ref.read(userProvider.notifier).setAsFavorite(
!details.parentModel!.userData.isFavourite, details.parentModel!.id),
selected: details.parentModel!.userData.isFavourite,
selectedIcon: IconsaxBold.heart,
icon: IconsaxOutline.heart,
selectedIcon: IconsaxPlusBold.heart,
icon: IconsaxPlusLinear.heart,
)
else
SelectableIconButton(
@ -122,8 +122,8 @@ class _BookDetailScreenState extends ConsumerState<BookDetailScreen> {
.read(userProvider.notifier)
.setAsFavorite(!details.book!.userData.isFavourite, details.book!.id),
selected: details.book!.userData.isFavourite,
selectedIcon: IconsaxBold.heart,
icon: IconsaxOutline.heart,
selectedIcon: IconsaxPlusBold.heart,
icon: IconsaxPlusLinear.heart,
),
//This one toggles all books in a collection

View file

@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:auto_route/auto_route.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/item_base_model.dart';
@ -115,8 +115,8 @@ class _ItemDetailScreenState extends ConsumerState<EpisodeDetailScreen> {
.setAsFavorite(!(episodeDetails.userData.isFavourite), episodeDetails.id);
},
selected: episodeDetails.userData.isFavourite,
selectedIcon: IconsaxBold.heart,
icon: IconsaxOutline.heart,
selectedIcon: IconsaxPlusBold.heart,
icon: IconsaxPlusLinear.heart,
),
SelectableIconButton(
onPressed: () async {
@ -125,8 +125,8 @@ class _ItemDetailScreenState extends ConsumerState<EpisodeDetailScreen> {
.markAsPlayed(!(episodeDetails.userData.played), episodeDetails.id);
},
selected: episodeDetails.userData.played,
selectedIcon: IconsaxBold.tick_circle,
icon: IconsaxOutline.tick_circle,
selectedIcon: IconsaxPlusBold.tick_circle,
icon: IconsaxPlusLinear.tick_circle,
),
].addPadding(const EdgeInsets.symmetric(horizontal: 6)),
).padding(padding),

View file

@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:auto_route/auto_route.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/item_base_model.dart';
@ -111,16 +111,16 @@ class _ItemDetailScreenState extends ConsumerState<MovieDetailScreen> {
.setAsFavorite(!details.userData.isFavourite, details.id);
},
selected: details.userData.isFavourite,
selectedIcon: IconsaxBold.heart,
icon: IconsaxOutline.heart,
selectedIcon: IconsaxPlusBold.heart,
icon: IconsaxPlusLinear.heart,
),
SelectableIconButton(
onPressed: () async {
await ref.read(userProvider.notifier).markAsPlayed(!details.userData.played, details.id);
},
selected: details.userData.played,
selectedIcon: IconsaxBold.tick_circle,
icon: IconsaxOutline.tick_circle,
selectedIcon: IconsaxPlusBold.tick_circle,
icon: IconsaxPlusLinear.tick_circle,
),
],
).padding(padding),

View file

@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/item_base_model.dart';
@ -83,16 +83,16 @@ class _SeasonDetailScreenState extends ConsumerState<SeasonDetailScreen> {
.read(userProvider.notifier)
.setAsFavorite(!details.userData.isFavourite, details.id),
selected: details.userData.isFavourite,
selectedIcon: IconsaxBold.heart,
icon: IconsaxOutline.heart,
selectedIcon: IconsaxPlusBold.heart,
icon: IconsaxPlusLinear.heart,
),
SelectableIconButton(
onPressed: () async => await ref
.read(userProvider.notifier)
.markAsPlayed(!details.userData.played, details.id),
selected: details.userData.played,
selectedIcon: IconsaxBold.tick_circle,
icon: IconsaxOutline.tick_circle,
selectedIcon: IconsaxPlusBold.tick_circle,
icon: IconsaxPlusLinear.tick_circle,
),
],
),

View file

@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:auto_route/auto_route.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/item_base_model.dart';
@ -112,16 +112,16 @@ class _SeriesDetailScreenState extends ConsumerState<SeriesDetailScreen> {
.setAsFavorite(!details.userData.isFavourite, details.id);
},
selected: details.userData.isFavourite,
selectedIcon: IconsaxBold.heart,
icon: IconsaxOutline.heart,
selectedIcon: IconsaxPlusBold.heart,
icon: IconsaxPlusLinear.heart,
),
SelectableIconButton(
onPressed: () async {
await ref.read(userProvider.notifier).markAsPlayed(!details.userData.played, details.id);
},
selected: details.userData.played,
selectedIcon: IconsaxBold.tick_circle,
icon: IconsaxOutline.tick_circle,
selectedIcon: IconsaxPlusBold.tick_circle,
icon: IconsaxPlusLinear.tick_circle,
),
],
).padding(padding),

View file

@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:auto_route/auto_route.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/providers/user_provider.dart';
@ -31,8 +31,8 @@ class HomeScreen extends ConsumerWidget {
case HomeTabs.dashboard:
return DestinationModel(
label: context.localized.navigationDashboard,
icon: const Icon(IconsaxOutline.home),
selectedIcon: const Icon(IconsaxBold.home),
icon: const Icon(IconsaxPlusLinear.home),
selectedIcon: const Icon(IconsaxPlusBold.home),
route: const DashboardRoute(),
action: () => context.router.navigate(const DashboardRoute()),
floatingActionButton: AdaptiveFab(
@ -40,21 +40,21 @@ class HomeScreen extends ConsumerWidget {
title: context.localized.search,
key: Key(e.name.capitalize()),
onPressed: () => context.router.navigate(LibrarySearchRoute()),
child: const Icon(IconsaxOutline.search_normal_1),
child: const Icon(IconsaxPlusLinear.search_normal_1),
),
);
case HomeTabs.favorites:
return DestinationModel(
label: context.localized.navigationFavorites,
icon: const Icon(IconsaxOutline.heart),
selectedIcon: const Icon(IconsaxBold.heart),
icon: const Icon(IconsaxPlusLinear.heart),
selectedIcon: const Icon(IconsaxPlusBold.heart),
route: const FavouritesRoute(),
floatingActionButton: AdaptiveFab(
context: context,
title: context.localized.filter(0),
key: Key(e.name.capitalize()),
onPressed: () => context.router.navigate(LibrarySearchRoute(favourites: true)),
child: const Icon(IconsaxOutline.heart_search),
child: const Icon(IconsaxPlusLinear.heart_search),
),
action: () => context.router.navigate(const FavouritesRoute()),
);
@ -62,8 +62,8 @@ class HomeScreen extends ConsumerWidget {
if (canDownload) {
return DestinationModel(
label: context.localized.navigationSync,
icon: const Icon(IconsaxOutline.cloud),
selectedIcon: const Icon(IconsaxBold.cloud),
icon: const Icon(IconsaxPlusLinear.cloud),
selectedIcon: const Icon(IconsaxPlusBold.cloud),
route: SyncedRoute(),
action: () => context.router.navigate(SyncedRoute()),
);

View file

@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:auto_route/auto_route.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/boxset_model.dart';
@ -201,7 +201,7 @@ class _LibrarySearchScreenState extends ConsumerState<LibrarySearchScreen> {
);
},
label: Text(context.localized.playLabel),
icon: const Icon(IconsaxBold.play),
icon: const Icon(IconsaxPlusBold.play),
),
].addInBetween(const SizedBox(height: 10)),
),
@ -293,17 +293,17 @@ class _LibrarySearchScreenState extends ConsumerState<LibrarySearchScreen> {
[];
final itemCountWidget = ItemActionButton(
label: Text(context.localized.itemCount(librarySearchResults.totalItemCount)),
icon: const Icon(IconsaxBold.document_1),
icon: const Icon(IconsaxPlusBold.document_1),
);
final refreshAction = ItemActionButton(
label: Text(context.localized.forceRefresh),
action: () => refreshKey.currentState?.show(),
icon: const Icon(IconsaxOutline.refresh),
icon: const Icon(IconsaxPlusLinear.refresh),
);
final showSavedFiltersDialogue = ItemActionButton(
label: Text(context.localized.filter(2)),
action: () => showSavedFilters(context, librarySearchResults, libraryProvider),
icon: const Icon(IconsaxOutline.refresh),
icon: const Icon(IconsaxPlusLinear.refresh),
);
final itemViewAction = ItemActionButton(
label: Text(context.localized.selectViewType),
@ -414,7 +414,7 @@ class _LibrarySearchScreenState extends ConsumerState<LibrarySearchScreen> {
isFavorite
? librarySearchResults.nestedCurrentItem?.type.selectedicon
: librarySearchResults.nestedCurrentItem?.type.icon ??
IconsaxOutline.document,
IconsaxPlusLinear.document,
color: isFavorite ? Theme.of(context).colorScheme.primary : null,
),
),
@ -535,7 +535,7 @@ class _LibrarySearchScreenState extends ConsumerState<LibrarySearchScreen> {
Text(context.localized.fetchingLibrary, style: Theme.of(context).textTheme.titleMedium),
IconButton(
onPressed: () => libraryProvider.cancelFetch(),
icon: const Icon(IconsaxOutline.close_square),
icon: const Icon(IconsaxPlusLinear.close_square),
)
].addInBetween(const SizedBox(width: 16)),
),
@ -593,7 +593,7 @@ class _LibrarySearchBottomBar extends ConsumerWidget {
if (context.mounted) context.refreshData();
},
label: Text(context.localized.addAsFavorite),
icon: const Icon(IconsaxOutline.heart_add),
icon: const Icon(IconsaxPlusLinear.heart_add),
),
ItemActionButton(
action: () async {
@ -601,7 +601,7 @@ class _LibrarySearchBottomBar extends ConsumerWidget {
if (context.mounted) context.refreshData();
},
label: Text(context.localized.removeAsFavorite),
icon: const Icon(IconsaxOutline.heart_remove),
icon: const Icon(IconsaxPlusLinear.heart_remove),
),
ItemActionButton(
action: () async {
@ -609,7 +609,7 @@ class _LibrarySearchBottomBar extends ConsumerWidget {
if (context.mounted) context.refreshData();
},
label: Text(context.localized.markAsWatched),
icon: const Icon(IconsaxOutline.eye),
icon: const Icon(IconsaxPlusLinear.eye),
),
ItemActionButton(
action: () async {
@ -617,7 +617,7 @@ class _LibrarySearchBottomBar extends ConsumerWidget {
if (context.mounted) context.refreshData();
},
label: Text(context.localized.markAsUnwatched),
icon: const Icon(IconsaxOutline.eye_slash),
icon: const Icon(IconsaxPlusLinear.eye_slash),
),
if (librarySearchResults.nestedCurrentItem is BoxSetModel)
ItemActionButton(
@ -631,7 +631,7 @@ class _LibrarySearchBottomBar extends ConsumerWidget {
BoxDecoration(color: Theme.of(context).colorScheme.onPrimary, borderRadius: BorderRadius.circular(6)),
child: const Padding(
padding: EdgeInsets.all(3.0),
child: Icon(IconsaxOutline.save_remove, size: 20),
child: Icon(IconsaxPlusLinear.save_remove, size: 20),
),
)),
if (librarySearchResults.nestedCurrentItem is PlaylistModel)
@ -641,7 +641,7 @@ class _LibrarySearchBottomBar extends ConsumerWidget {
if (context.mounted) context.refreshData();
},
label: Text(context.localized.removeFromPlaylist),
icon: const Icon(IconsaxOutline.save_remove),
icon: const Icon(IconsaxPlusLinear.save_remove),
),
ItemActionButton(
action: () async {
@ -650,7 +650,7 @@ class _LibrarySearchBottomBar extends ConsumerWidget {
},
label: Text(context.localized.addToCollection),
icon: const Icon(
IconsaxOutline.save_add,
IconsaxPlusLinear.save_add,
size: 20,
),
),
@ -660,7 +660,7 @@ class _LibrarySearchBottomBar extends ConsumerWidget {
if (context.mounted) context.refreshData();
},
label: Text(context.localized.addToPlaylist),
icon: const Icon(IconsaxOutline.save_add),
icon: const Icon(IconsaxPlusLinear.save_add),
),
];
return NestedBottomAppBar(
@ -688,7 +688,7 @@ class _LibrarySearchBottomBar extends ConsumerWidget {
),
padding: const EdgeInsets.all(6),
child: Icon(
IconsaxOutline.arrow_up_3,
IconsaxPlusLinear.arrow_up_3,
color: Theme.of(context).colorScheme.onPrimaryContainer,
),
),
@ -718,14 +718,14 @@ class _LibrarySearchBottomBar extends ConsumerWidget {
}
}
},
icon: const Icon(IconsaxOutline.sort),
icon: const Icon(IconsaxPlusLinear.sort),
),
if (librarySearchResults.hasActiveFilters) ...{
const SizedBox(width: 6),
IconButton(
tooltip: context.localized.disableFilters,
onPressed: disableFilters(librarySearchResults, libraryProvider),
icon: const Icon(IconsaxOutline.filter_remove),
icon: const Icon(IconsaxPlusLinear.filter_remove),
),
},
},
@ -733,7 +733,7 @@ class _LibrarySearchBottomBar extends ConsumerWidget {
IconButton(
onPressed: () => libraryProvider.toggleSelectMode(),
color: librarySearchResults.selecteMode ? Theme.of(context).colorScheme.primary : null,
icon: const Icon(IconsaxOutline.category_2),
icon: const Icon(IconsaxPlusLinear.category_2),
),
const SizedBox(width: 6),
AnimatedFadeSize(
@ -748,7 +748,7 @@ class _LibrarySearchBottomBar extends ConsumerWidget {
message: context.localized.selectAll,
child: IconButton(
onPressed: () => libraryProvider.selectAll(true),
icon: const Icon(IconsaxOutline.box_add),
icon: const Icon(IconsaxPlusLinear.box_add),
),
),
const SizedBox(width: 6),
@ -756,7 +756,7 @@ class _LibrarySearchBottomBar extends ConsumerWidget {
message: context.localized.clearSelection,
child: IconButton(
onPressed: () => libraryProvider.selectAll(false),
icon: const Icon(IconsaxOutline.box_remove),
icon: const Icon(IconsaxPlusLinear.box_remove),
),
),
const SizedBox(width: 6),
@ -777,7 +777,7 @@ class _LibrarySearchBottomBar extends ConsumerWidget {
),
);
},
icon: const Icon(IconsaxOutline.more))
icon: const Icon(IconsaxPlusLinear.more))
},
],
),
@ -794,7 +794,7 @@ class _LibrarySearchBottomBar extends ConsumerWidget {
child: Padding(
padding: const EdgeInsets.all(2.0),
child: Icon(
IconsaxBold.arrow_up_1,
IconsaxPlusBold.arrow_up_1,
color: Theme.of(context).colorScheme.onSecondary,
),
),
@ -823,7 +823,7 @@ class _LibrarySearchBottomBar extends ConsumerWidget {
: null,
);
},
icon: const Icon(IconsaxOutline.shuffle),
icon: const Icon(IconsaxPlusLinear.shuffle),
),
],
),

View file

@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/jellyfin/jellyfin_open_api.enums.swagger.dart';
@ -125,7 +125,7 @@ List<Widget> libraryFilterChips(
FilterChip(
label: Text(context.localized.favorites),
avatar: Icon(
librarySearchResults.favourites ? IconsaxBold.heart : IconsaxOutline.heart,
librarySearchResults.favourites ? IconsaxPlusBold.heart : IconsaxPlusLinear.heart,
color: Theme.of(context).colorScheme.onSurface,
),
selected: librarySearchResults.favourites,
@ -146,7 +146,7 @@ List<Widget> libraryFilterChips(
if (librarySearchResults.genres.isNotEmpty)
CategoryChip<String>(
label: Text(context.localized.genre(librarySearchResults.genres.length)),
activeIcon: IconsaxBold.hierarchy_2,
activeIcon: IconsaxPlusBold.hierarchy_2,
items: librarySearchResults.genres,
labelBuilder: (item) => Text(item),
onSave: (value) => libraryProvider.setGenres(value),
@ -156,7 +156,7 @@ List<Widget> libraryFilterChips(
if (librarySearchResults.studios.isNotEmpty)
CategoryChip<Studio>(
label: Text(context.localized.studio(librarySearchResults.studios.length)),
activeIcon: IconsaxBold.airdrop,
activeIcon: IconsaxPlusBold.airdrop,
items: librarySearchResults.studios,
labelBuilder: (item) => Text(item.name),
onSave: (value) => libraryProvider.setStudios(value),

View file

@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/library_search/library_search_model.dart';
@ -80,13 +80,13 @@ class LibrarySavedFiltersDialogue extends ConsumerWidget {
filterProvider.saveFilter(filter.copyWith(isFavourite: !filter.isFavourite)),
icon: Icon(
color: filter.isFavourite ? Colors.yellowAccent : null,
filter.isFavourite ? IconsaxBold.star_1 : IconsaxOutline.star,
filter.isFavourite ? IconsaxPlusBold.star_1 : IconsaxPlusLinear.star,
),
),
IconButton.filledTonal(
tooltip: context.localized.updateFilterForLibrary,
onPressed: () => provider.updateFilter(filter),
icon: const Icon(IconsaxBold.refresh),
icon: const Icon(IconsaxPlusBold.refresh),
),
IconButton.filledTonal(
tooltip: context.localized.delete,
@ -114,7 +114,7 @@ class LibrarySavedFiltersDialogue extends ConsumerWidget {
foregroundColor:
WidgetStatePropertyAll(Theme.of(context).colorScheme.onErrorContainer),
),
icon: const Icon(IconsaxOutline.trash),
icon: const Icon(IconsaxPlusLinear.trash),
),
].addInBetween(const SizedBox(width: 8)),
),
@ -142,7 +142,7 @@ class LibrarySavedFiltersDialogue extends ConsumerWidget {
const SizedBox(width: 6),
FilledButton.tonal(
onPressed: () => provider.saveFiltersNew(controller.text),
child: const Icon(IconsaxOutline.save_2),
child: const Icon(IconsaxPlusLinear.save_2),
),
],
)

View file

@ -1,7 +1,7 @@
import 'dart:ui';
import 'package:collection/collection.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:fladder/models/boxset_model.dart';
import 'package:fladder/models/item_base_model.dart';
import 'package:fladder/models/items/photos_model.dart';
@ -32,9 +32,9 @@ final libraryViewTypeProvider = StateProvider<LibraryViewTypes>((ref) {
});
enum LibraryViewTypes {
grid(icon: IconsaxOutline.grid_2),
list(icon: IconsaxOutline.grid_6),
masonry(icon: IconsaxOutline.grid_3);
grid(icon: IconsaxPlusLinear.grid_2),
list(icon: IconsaxPlusLinear.grid_6),
masonry(icon: IconsaxPlusLinear.grid_3);
const LibraryViewTypes({required this.icon});
@ -81,7 +81,7 @@ class LibraryViews extends ConsumerWidget {
if (ref.watch(librarySearchProvider(key!).select((value) => value.nestedCurrentItem is BoxSetModel))) ...{
ItemActionButton(
label: Text(context.localized.removeFromCollection),
icon: const Icon(IconsaxOutline.archive_slash),
icon: const Icon(IconsaxPlusLinear.archive_slash),
action: () async {
await libraryProvider.removeFromCollection(items: [item]);
if (context.mounted) {
@ -93,7 +93,7 @@ class LibraryViews extends ConsumerWidget {
if (ref.watch(librarySearchProvider(key!).select((value) => value.nestedCurrentItem is PlaylistModel))) ...{
ItemActionButton(
label: Text(context.localized.removeFromPlaylist),
icon: const Icon(IconsaxOutline.archive_minus),
icon: const Icon(IconsaxPlusLinear.archive_minus),
action: () async {
await libraryProvider.removeFromPlaylist(items: [item]);
if (context.mounted) {

View file

@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_typeahead/flutter_typeahead.dart';
import 'package:page_transition/page_transition.dart';
@ -98,7 +98,7 @@ class _SearchBarState extends ConsumerState<SuggestionSearchBar> {
},
decoration: InputDecoration(
hintText: widget.title ?? "${context.localized.search}...",
prefixIcon: const Icon(IconsaxOutline.search_normal),
prefixIcon: const Icon(IconsaxPlusLinear.search_normal),
contentPadding: const EdgeInsets.only(top: 13),
suffixIcon: controller.text.isNotEmpty
? IconButton(

View file

@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:auto_route/auto_route.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/account_model.dart';
@ -107,7 +107,7 @@ class _LockScreenState extends ConsumerState<LockScreen> with WidgetsBindingObse
ref.read(lockScreenActiveProvider.notifier).update((state) => false);
context.router.push(const LoginRoute());
},
child: const Icon(IconsaxOutline.arrow_swap_horizontal),
child: const Icon(IconsaxPlusLinear.arrow_swap_horizontal),
),
body: Center(
child: Wrap(
@ -117,7 +117,7 @@ class _LockScreenState extends ConsumerState<LockScreen> with WidgetsBindingObse
direction: Axis.vertical,
children: [
const Icon(
IconsaxOutline.lock_1,
IconsaxPlusLinear.lock_1,
size: 38,
),
if (user != null)

View file

@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:intl/intl.dart';
@ -59,7 +59,7 @@ class LoginEditUser extends ConsumerWidget {
),
Row(
children: [
const Icon(IconsaxBold.clock),
const Icon(IconsaxPlusBold.clock),
const SizedBox(width: 8),
Column(
mainAxisAlignment: MainAxisAlignment.start,

View file

@ -3,7 +3,7 @@ import 'dart:async';
import 'package:flutter/material.dart';
import 'package:auto_route/auto_route.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/account_model.dart';
@ -90,12 +90,12 @@ class _LoginPageState extends ConsumerState<LoginScreen> {
if (!AdaptiveLayout.of(context).isDesktop)
FloatingActionButton(
key: const Key("edit_button"),
child: const Icon(IconsaxOutline.edit_2),
child: const Icon(IconsaxPlusLinear.edit_2),
onPressed: () => setState(() => editingUsers = !editingUsers),
),
FloatingActionButton(
key: const Key("new_button"),
child: const Icon(IconsaxOutline.add_square),
child: const Icon(IconsaxPlusLinear.add_square),
onPressed: startAddingNewUser,
),
].addInBetween(const SizedBox(width: 16)),
@ -287,7 +287,7 @@ class _LoginPageState extends ConsumerState<LoginScreen> {
ref.read(authProvider.notifier).setServer("");
},
icon: const Icon(
IconsaxOutline.arrow_left_2,
IconsaxPlusLinear.arrow_left_2,
),
),
),
@ -315,7 +315,7 @@ class _LoginPageState extends ConsumerState<LoginScreen> {
child: IconButton.filled(
onPressed: () => retrieveListOfUsers(),
icon: const Icon(
IconsaxOutline.refresh,
IconsaxPlusLinear.refresh,
),
),
),
@ -381,7 +381,7 @@ class _LoginPageState extends ConsumerState<LoginScreen> {
children: [
Text(context.localized.login),
const SizedBox(width: 8),
const Icon(IconsaxBold.send_1),
const Icon(IconsaxPlusBold.send_1),
],
),
),

View file

@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:reorderable_grid/reorderable_grid.dart';
@ -80,7 +80,7 @@ class LoginUserGrid extends ConsumerWidget {
mainAxisSize: MainAxisSize.max,
children: [
const Icon(
IconsaxBold.driver_2,
IconsaxPlusBold.driver_2,
size: 14,
),
const SizedBox(width: 4),
@ -107,7 +107,7 @@ class LoginUserGrid extends ConsumerWidget {
child: const Padding(
padding: EdgeInsets.all(8.0),
child: Icon(
IconsaxBold.edit_2,
IconsaxPlusBold.edit_2,
size: 14,
),
),

View file

@ -1,7 +1,7 @@
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/credentials_model.dart';
@ -46,7 +46,7 @@ class DiscoverServersWidget extends ConsumerWidget {
style: context.textTheme.bodyLarge,
),
const Spacer(),
const Opacity(opacity: 0.65, child: Icon(IconsaxOutline.bookmark, size: 16)),
const Opacity(opacity: 0.65, child: Icon(IconsaxPlusLinear.bookmark, size: 16)),
],
),
const SizedBox(height: 4),
@ -69,7 +69,7 @@ class DiscoverServersWidget extends ConsumerWidget {
style: context.textTheme.bodyLarge,
),
const Spacer(),
const Opacity(opacity: 0.65, child: Icon(IconsaxBold.airdrop, size: 16)),
const Opacity(opacity: 0.65, child: Icon(IconsaxPlusBold.airdrop, size: 16)),
],
),
const SizedBox(height: 4),
@ -135,7 +135,7 @@ class _ServerInfoCard extends StatelessWidget {
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Icon(
IconsaxBold.driver,
IconsaxPlusBold.driver,
color: Theme.of(context).colorScheme.onPrimaryContainer,
),
),
@ -158,7 +158,7 @@ class _ServerInfoCard extends StatelessWidget {
],
),
),
const Icon(IconsaxOutline.edit_2, size: 16)
const Icon(IconsaxPlusLinear.edit_2, size: 16)
].addInBetween(const SizedBox(width: 12)),
),
),

View file

@ -1,4 +1,4 @@
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:fladder/jellyfin/jellyfin_open_api.swagger.dart';
import 'package:fladder/models/item_base_model.dart';
import 'package:fladder/providers/edit_item_provider.dart';
@ -103,7 +103,7 @@ class _EditDialogSwitcherState extends ConsumerState<EditDialogSwitcher> with Ti
style: Theme.of(context).textTheme.titleLarge,
),
),
IconButton(onPressed: () => refreshEditor(), icon: const Icon(IconsaxOutline.refresh))
IconButton(onPressed: () => refreshEditor(), icon: const Icon(IconsaxPlusLinear.refresh))
],
),
),

View file

@ -1,5 +1,5 @@
import 'package:collection/collection.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:fladder/jellyfin/jellyfin_open_api.swagger.dart';
import 'package:fladder/models/items/item_shared_models.dart';
import 'package:fladder/providers/edit_item_provider.dart';
@ -557,7 +557,7 @@ class _EditGeneralState extends ConsumerState<EditFields> {
.read(editItemProvider.notifier)
.updateField(MapEntry(e.key, newDate.toIso8601String()));
},
icon: const Icon(IconsaxOutline.calendar_2))
icon: const Icon(IconsaxPlusLinear.calendar_2))
],
),
DisplayOrder _ => Builder(builder: (context) {

View file

@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:collection/collection.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/item_base_model.dart';
@ -67,7 +67,7 @@ class _IdentifyScreenState extends ConsumerState<IdentifyScreen> with TickerProv
const Spacer(),
IconButton(
onPressed: () async => await ref.read(provider.notifier).fetchInformation(),
icon: const Icon(IconsaxOutline.refresh)),
icon: const Icon(IconsaxPlusLinear.refresh)),
],
),
TabBar(

View file

@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/information_model.dart';
@ -83,7 +83,7 @@ class ItemInfoScreenState extends ConsumerState<ItemInfoScreen> {
const SizedBox(width: 6),
IconButton(
onPressed: () => ref.read(provider.notifier).getItemInformation(widget.item),
icon: const Icon(IconsaxOutline.refresh),
icon: const Icon(IconsaxPlusLinear.refresh),
),
],
),

View file

@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:extended_image/extended_image.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_cache_manager/flutter_cache_manager.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:share_plus/share_plus.dart';
@ -301,13 +301,13 @@ class _PhotoViewerControllsState extends ConsumerState<PhotoViewerControls> with
children: [
ElevatedIconButton(
onPressed: widget.openOptions,
icon: IconsaxOutline.more_2,
icon: IconsaxPlusLinear.more_2,
),
const Spacer(),
ElevatedIconButton(
onPressed: markAsFavourite,
color: widget.photo.userData.isFavourite ? Colors.red : null,
icon: widget.photo.userData.isFavourite ? IconsaxBold.heart : IconsaxOutline.heart,
icon: widget.photo.userData.isFavourite ? IconsaxPlusBold.heart : IconsaxPlusLinear.heart,
),
ProgressFloatingButton(
controller: timerController,

View file

@ -5,7 +5,7 @@ import 'package:flutter/services.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:extended_image/extended_image.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_blurhash/flutter_blurhash.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
@ -334,7 +334,7 @@ class _PhotoViewerScreenState extends ConsumerState<PhotoViewerScreen> with Widg
IconButton.styleFrom(shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8))),
onPressed: () =>
controller.nextPage(duration: const Duration(milliseconds: 125), curve: Curves.easeInOut),
icon: const Icon(IconsaxBold.arrow_right_1),
icon: const Icon(IconsaxPlusBold.arrow_right_1),
),
),
),
@ -358,7 +358,7 @@ class _PhotoViewerScreenState extends ConsumerState<PhotoViewerScreen> with Widg
IconButton.styleFrom(shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8))),
onPressed: () =>
controller.previousPage(duration: const Duration(milliseconds: 125), curve: Curves.easeInOut),
icon: const Icon(IconsaxBold.arrow_left),
icon: const Icon(IconsaxPlusBold.arrow_left),
),
),
),
@ -410,8 +410,8 @@ class _PhotoViewerScreenState extends ConsumerState<PhotoViewerScreen> with Widg
child: AnimatedVisibilityIcon(
key: Key(currentPhoto.id),
isFilled: currentPhoto.userData.isFavourite,
filledIcon: IconsaxBold.heart,
outlinedIcon: IconsaxOutline.heart,
filledIcon: IconsaxPlusBold.heart,
outlinedIcon: IconsaxPlusLinear.heart,
),
),
)
@ -441,8 +441,8 @@ class _PhotoViewerScreenState extends ConsumerState<PhotoViewerScreen> with Widg
.read(photoViewSettingsProvider.notifier)
.update((state) => state.copyWith(repeat: !state.repeat)),
icon: ref.watch(photoViewSettingsProvider.select((value) => value.repeat))
? IconsaxOutline.repeat
: IconsaxOutline.repeate_one,
? IconsaxPlusLinear.repeat
: IconsaxPlusLinear.repeate_one,
),
ElevatedIconButtonLabel(
label: context.localized.audio,
@ -450,8 +450,8 @@ class _PhotoViewerScreenState extends ConsumerState<PhotoViewerScreen> with Widg
.read(photoViewSettingsProvider.notifier)
.update((state) => state.copyWith(mute: !state.mute)),
icon: ref.watch(photoViewSettingsProvider.select((value) => value.mute))
? IconsaxOutline.volume_slash
: IconsaxOutline.volume_high,
? IconsaxPlusLinear.volume_slash
: IconsaxPlusLinear.volume_high,
),
ElevatedIconButtonLabel(
label: context.localized.autoPlay,
@ -459,8 +459,8 @@ class _PhotoViewerScreenState extends ConsumerState<PhotoViewerScreen> with Widg
.read(photoViewSettingsProvider.notifier)
.update((state) => state.copyWith(autoPlay: !state.autoPlay)),
icon: ref.watch(photoViewSettingsProvider.select((value) => value.autoPlay))
? IconsaxOutline.play_remove
: IconsaxOutline.play,
? IconsaxPlusLinear.play_remove
: IconsaxPlusLinear.play,
),
ElevatedIconButtonLabel(
label: context.localized.backgroundBlur,
@ -468,8 +468,8 @@ class _PhotoViewerScreenState extends ConsumerState<PhotoViewerScreen> with Widg
.read(photoViewSettingsProvider.notifier)
.update((state) => state.copyWith(theaterMode: !state.theaterMode)),
icon: ref.watch(photoViewSettingsProvider.select((value) => value.theaterMode))
? IconsaxOutline.filter_remove
: IconsaxOutline.filter,
? IconsaxPlusLinear.filter_remove
: IconsaxPlusLinear.filter,
),
].addInBetween(const SizedBox(width: 16)),
);

View file

@ -2,7 +2,7 @@ import 'dart:async';
import 'package:flutter/material.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:path/path.dart';
import 'package:wakelock_plus/wakelock_plus.dart';
@ -222,7 +222,7 @@ class _SimpleVideoPlayerState extends ConsumerState<SimpleVideoPlayer> with Wind
}
},
icon: Icon(
player.lastState.playing ? IconsaxBold.pause_circle : IconsaxBold.play_circle,
player.lastState.playing ? IconsaxPlusBold.pause_circle : IconsaxPlusBold.play_circle,
),
)
],

View file

@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/item_base_model.dart';
@ -55,7 +55,7 @@ class _AddToPlaylistState extends ConsumerState<AddToPlaylist> {
),
IconButton(
onPressed: () => ref.read(provider.notifier).setItems(widget.items),
icon: const Icon(IconsaxOutline.refresh),
icon: const Icon(IconsaxPlusLinear.refresh),
)
],
),

View file

@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:auto_route/auto_route.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
@ -31,7 +31,7 @@ const socials = [
_Socials(
'Weblate',
'https://hosted.weblate.org/projects/fladder/',
IconsaxOutline.global,
IconsaxPlusLinear.global,
),
];

View file

@ -1,7 +1,7 @@
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:file_picker/file_picker.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
@ -74,7 +74,7 @@ List<Widget> buildClientSettingsDownload(BuildContext context, WidgetRef ref, Fu
],
),
),
icon: const Icon(IconsaxOutline.folder_minus),
icon: const Icon(IconsaxPlusLinear.folder_minus),
)
: null,
),

View file

@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:auto_route/auto_route.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/settings/home_settings_model.dart';
@ -76,15 +76,15 @@ class _SettingsScreenState extends ConsumerState<SettingsScreen> {
IconData get deviceIcon {
if (AdaptiveLayout.of(context).isDesktop) {
return IconsaxOutline.monitor;
return IconsaxPlusLinear.monitor;
}
switch (AdaptiveLayout.viewSizeOf(context)) {
case ViewSize.phone:
return IconsaxOutline.mobile;
return IconsaxPlusLinear.mobile;
case ViewSize.tablet:
return IconsaxOutline.monitor;
return IconsaxPlusLinear.monitor;
case ViewSize.desktop:
return IconsaxOutline.monitor;
return IconsaxPlusLinear.monitor;
}
}
@ -115,21 +115,21 @@ class _SettingsScreenState extends ConsumerState<SettingsScreen> {
if (quickConnectAvailable)
SettingsListTile(
label: Text(context.localized.settingsQuickConnectTitle),
icon: IconsaxOutline.password_check,
icon: IconsaxPlusLinear.password_check,
onTap: () => openQuickConnectDialog(context),
),
SettingsListTile(
label: Text(context.localized.settingsProfileTitle),
subLabel: Text(context.localized.settingsProfileDesc),
selected: containsRoute(const SecuritySettingsRoute()),
icon: IconsaxOutline.security_user,
icon: IconsaxPlusLinear.security_user,
onTap: () => navigateTo(const SecuritySettingsRoute()),
),
SettingsListTile(
label: Text(context.localized.settingsPlayerTitle),
subLabel: Text(context.localized.settingsPlayerDesc),
selected: containsRoute(const PlayerSettingsRoute()),
icon: IconsaxOutline.video_play,
icon: IconsaxPlusLinear.video_play,
onTap: () => navigateTo(const PlayerSettingsRoute()),
),
SettingsListTile(
@ -162,7 +162,7 @@ class _SettingsScreenState extends ConsumerState<SettingsScreen> {
context.router.replaceAll([const LoginRoute()]);
},
child: const Icon(
IconsaxOutline.arrow_swap_horizontal,
IconsaxPlusLinear.arrow_swap_horizontal,
),
),
const SizedBox(width: 16),
@ -205,7 +205,7 @@ class _SettingsScreenState extends ConsumerState<SettingsScreen> {
);
},
child: Icon(
IconsaxOutline.logout,
IconsaxPlusLinear.logout,
color: Theme.of(context).colorScheme.onErrorContainer,
),
),

View file

@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/util/list_padding.dart';
@ -41,9 +41,9 @@ class SettingsMessageBox extends ConsumerWidget {
children: [
Icon(
switch (messageType) {
MessageType.info => IconsaxOutline.information,
MessageType.warning => IconsaxOutline.warning_2,
MessageType.error => IconsaxOutline.danger,
MessageType.info => IconsaxPlusLinear.information,
MessageType.warning => IconsaxPlusLinear.warning_2,
MessageType.error => IconsaxPlusLinear.danger,
},
),
Flexible(

View file

@ -1,4 +1,4 @@
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:fladder/models/account_model.dart';
import 'package:fladder/screens/shared/fladder_snackbar.dart';
import 'package:fladder/screens/shared/passcode_input.dart';
@ -16,7 +16,7 @@ void showAuthOptionsDialogue(
context: context,
builder: (context) => AlertDialog(
scrollable: true,
icon: const Icon(IconsaxBold.lock_1),
icon: const Icon(IconsaxPlusBold.lock_1),
title: Text(context.localized.appLockTitle(currentUser.name)),
actionsOverflowDirection: VerticalDirection.down,
actions: Authentication.values

View file

@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:collection/collection.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:fladder/models/settings/home_settings_model.dart';
import 'package:fladder/util/adaptive_layout.dart';
@ -96,7 +96,7 @@ class CategoryChip<T> extends StatelessWidget {
newEntry = null;
onClear!();
},
icon: const Icon(IconsaxOutline.back_square),
icon: const Icon(IconsaxPlusLinear.back_square),
label: Text(context.localized.clear),
)
].addInBetween(const SizedBox(width: 6));
@ -123,7 +123,7 @@ class CategoryChip<T> extends StatelessWidget {
newEntry = null;
onClear!();
},
icon: const Icon(IconsaxOutline.back_square),
icon: const Icon(IconsaxPlusLinear.back_square),
label: Text(context.localized.clear),
)
].addInBetween(const SizedBox(width: 6)),

View file

@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:auto_route/auto_route.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/item_base_model.dart';
@ -194,7 +194,7 @@ class _DetailScaffoldState extends ConsumerState<DetailScaffold> {
onPressed: () => context.router.popBack(),
icon: Padding(
padding: EdgeInsets.all(AdaptiveLayout.of(context).inputDevice == InputDevice.pointer ? 0 : 4),
child: const Icon(IconsaxOutline.arrow_left_2),
child: const Icon(IconsaxPlusLinear.arrow_left_2),
),
),
const Spacer(),
@ -241,7 +241,7 @@ class _DetailScaffoldState extends ConsumerState<DetailScaffold> {
message: context.localized.refresh,
child: IconButton(
onPressed: () => context.refreshData(),
icon: const Icon(IconsaxOutline.refresh),
icon: const Icon(IconsaxPlusLinear.refresh),
),
),
),
@ -259,7 +259,7 @@ class _DetailScaffoldState extends ConsumerState<DetailScaffold> {
message: context.localized.home,
child: IconButton(
onPressed: () => context.router.navigate(const DashboardRoute()),
icon: const Icon(IconsaxOutline.home),
icon: const Icon(IconsaxPlusLinear.home),
),
),
],

View file

@ -1,5 +1,5 @@
import 'package:desktop_drop/desktop_drop.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:fladder/screens/shared/outlined_text_field.dart';
import 'package:fladder/util/adaptive_layout.dart';
import 'package:flutter/foundation.dart';
@ -131,7 +131,7 @@ class _FilePickerBarState extends ConsumerState<FilePickerBar> {
),
const SizedBox(width: 12),
Icon(
IconsaxBold.folder_add,
IconsaxPlusBold.folder_add,
color: contentColor,
)
],

View file

@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:square_progress_indicator/square_progress_indicator.dart';
@ -42,7 +42,7 @@ class BannerPlayButton extends ConsumerWidget {
IconButton(
onPressed: () => item.play(context, ref),
icon: const Icon(
IconsaxBold.play,
IconsaxPlusBold.play,
size: 30,
),
)

View file

@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:collection/collection.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/item_base_model.dart';
@ -194,7 +194,7 @@ class _CarouselBannerState extends ConsumerState<CarouselBanner> {
carouselController.animateTo(currentPos.pixels - itemExtent,
curve: Curves.easeInOutCubic, duration: const Duration(milliseconds: 250));
},
icon: const Icon(IconsaxOutline.arrow_left_2),
icon: const Icon(IconsaxPlusLinear.arrow_left_2),
),
IconButton.filledTonal(
onPressed: () {
@ -202,7 +202,7 @@ class _CarouselBannerState extends ConsumerState<CarouselBanner> {
carouselController.animateTo(currentPos.pixels + itemExtent,
curve: Curves.easeInOutCubic, duration: const Duration(milliseconds: 250));
},
icon: const Icon(IconsaxOutline.arrow_right_3),
icon: const Icon(IconsaxPlusLinear.arrow_right_3),
),
],
),

View file

@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/item_base_model.dart';
@ -43,7 +43,7 @@ class MediaPlayButton extends ConsumerWidget {
),
const SizedBox(width: 4),
const Icon(
IconsaxBold.play,
IconsaxPlusBold.play,
),
],
),

View file

@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/book_model.dart';
@ -171,7 +171,7 @@ class _PosterImageState extends ConsumerState<PosterImage> {
StatusCard(
color: Colors.red,
child: Icon(
IconsaxBold.heart,
IconsaxPlusBold.heart,
size: 21,
color: Colors.red,
),
@ -252,7 +252,7 @@ class _PosterImageState extends ConsumerState<PosterImage> {
child: IconButton.filledTonal(
onPressed: () => widget.playVideo?.call(false),
icon: const Icon(
IconsaxBold.play,
IconsaxPlusBold.play,
size: 32,
),
),

View file

@ -1,4 +1,4 @@
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:fladder/providers/settings/client_settings_provider.dart';
import 'package:fladder/providers/sync_provider.dart';
import 'package:fladder/screens/shared/media/episode_posters.dart';
@ -13,8 +13,8 @@ import 'package:fladder/models/items/episode_model.dart';
import 'package:fladder/util/humanize_duration.dart';
enum EpisodeDetailsViewType {
list(icon: IconsaxBold.grid_6),
grid(icon: IconsaxBold.grid_2);
list(icon: IconsaxPlusBold.grid_6),
grid(icon: IconsaxPlusBold.grid_2);
const EpisodeDetailsViewType({required this.icon});

View file

@ -1,4 +1,4 @@
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:fladder/util/localization_helper.dart';
import 'package:fladder/util/sticky_header_text.dart';
import 'package:flutter/material.dart';
@ -68,11 +68,11 @@ class _ExpandingOverviewState extends ConsumerState<ExpandingOverview> {
child: expanded
? IconButton.filledTonal(
onPressed: toggleState,
icon: const Icon(IconsaxOutline.arrow_up_2),
icon: const Icon(IconsaxPlusLinear.arrow_up_2),
)
: IconButton.filledTonal(
onPressed: toggleState,
icon: const Icon(IconsaxOutline.arrow_down_1),
icon: const Icon(IconsaxPlusLinear.arrow_down_1),
),
),
),

View file

@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:async/async.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/item_base_model.dart';
@ -253,7 +253,7 @@ class _MediaBannerState extends ConsumerState<MediaBanner> {
children: [
IconButton.filledTonal(
onPressed: () => nextSlide(),
icon: const Icon(IconsaxOutline.arrow_right_3),
icon: const Icon(IconsaxPlusLinear.arrow_right_3),
)
],
),

View file

@ -1,4 +1,4 @@
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:fladder/models/book_model.dart';
import 'package:fladder/models/item_base_model.dart';
import 'package:fladder/models/items/item_shared_models.dart';
@ -181,7 +181,7 @@ class PosterListItem extends ConsumerWidget {
),
if (poster.userData.isFavourite)
const Icon(
IconsaxBold.heart,
IconsaxPlusBold.heart,
color: Colors.red,
),
if (AdaptiveLayout.of(context).isDesktop)

View file

@ -1,5 +1,5 @@
import 'package:auto_route/auto_route.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:fladder/util/list_padding.dart';
import 'package:fladder/util/localization_helper.dart';
import 'package:fladder/widgets/navigation_scaffold/components/settings_user_icon.dart';
@ -36,7 +36,7 @@ class NestedSliverAppBar extends ConsumerWidget {
),
onPressed: () => Scaffold.of(parent).openDrawer(),
icon: const Icon(
IconsaxBold.menu,
IconsaxPlusBold.menu,
size: 28,
),
),
@ -59,7 +59,7 @@ class NestedSliverAppBar extends ConsumerWidget {
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
const Icon(IconsaxOutline.search_normal),
const Icon(IconsaxPlusLinear.search_normal),
const SizedBox(width: 16),
Transform.translate(
offset: const Offset(0, 2.5),

View file

@ -1,4 +1,4 @@
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:fladder/models/item_base_model.dart';
import 'package:fladder/models/syncing/sync_item.dart';
import 'package:fladder/providers/sync/sync_provider_helpers.dart';
@ -45,10 +45,10 @@ class _SyncButtonState extends ConsumerState<SyncButton> {
syncedItem != null
? status == SyncStatus.partially
? (progress?.progress ?? 0) > 0
? IconsaxOutline.arrow_down
: IconsaxOutline.more_circle
: IconsaxOutline.tick_circle
: IconsaxOutline.arrow_down_2,
? IconsaxPlusLinear.arrow_down
: IconsaxPlusLinear.more_circle
: IconsaxPlusLinear.tick_circle
: IconsaxPlusLinear.arrow_down_2,
color: status?.color,
size: (progress?.progress ?? 0) > 0 ? 16 : null,
),

View file

@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:background_downloader/background_downloader.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/items/episode_model.dart';
@ -73,7 +73,7 @@ class _SyncItemDetailsState extends ConsumerState<SyncItemDetails> {
),
IconButton(
onPressed: () => Navigator.pop(context),
icon: const Icon(IconsaxBold.close_circle),
icon: const Icon(IconsaxPlusBold.close_circle),
)
],
),
@ -126,19 +126,19 @@ class _SyncItemDetailsState extends ConsumerState<SyncItemDetails> {
IconButton(
onPressed: () =>
ref.read(backgroundDownloaderProvider).pause(combinedStream!.task!),
icon: const Icon(IconsaxBold.pause),
icon: const Icon(IconsaxPlusBold.pause),
),
if (combinedStream?.status == TaskStatus.paused) ...[
IconButton(
onPressed: () =>
ref.read(backgroundDownloaderProvider).resume(combinedStream!.task!),
icon: const Icon(IconsaxBold.play),
icon: const Icon(IconsaxPlusBold.play),
),
IconButton(
onPressed: () => ref
.read(syncProvider.notifier)
.deleteFullSyncFiles(syncedItem, combinedStream?.task),
icon: const Icon(IconsaxBold.stop),
icon: const Icon(IconsaxPlusBold.stop),
),
],
const SizedBox(width: 16)
@ -168,7 +168,7 @@ class _SyncItemDetailsState extends ConsumerState<SyncItemDetails> {
if (!hasFile && !downloadTask.hasDownload && syncedItem.hasVideoFile)
IconButtonAwait(
onPressed: () async => await ref.read(syncProvider.notifier).syncVideoFile(syncedItem, false),
icon: const Icon(IconsaxOutline.cloud_change),
icon: const Icon(IconsaxPlusLinear.cloud_change),
)
else if (hasFile)
IconButtonAwait(
@ -187,7 +187,7 @@ class _SyncItemDetailsState extends ConsumerState<SyncItemDetails> {
context.localized.cancel,
);
},
icon: const Icon(IconsaxOutline.trash),
icon: const Icon(IconsaxPlusLinear.trash),
),
].addInBetween(const SizedBox(width: 16)),
),

View file

@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/syncing/sync_item.dart';
@ -43,7 +43,7 @@ class SyncListItemState extends ConsumerState<SyncListItem> {
child: const Padding(
padding: EdgeInsets.all(8.0),
child: Row(
children: [Icon(IconsaxBold.trash)],
children: [Icon(IconsaxPlusBold.trash)],
),
),
),
@ -132,7 +132,7 @@ class SyncListItemState extends ConsumerState<SyncListItem> {
)),
IconButton(
onPressed: () => showSyncItemDetails(context, syncedItem, ref),
icon: const Icon(IconsaxOutline.more_square),
icon: const Icon(IconsaxPlusLinear.more_square),
),
],
),

View file

@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:background_downloader/background_downloader.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/items/episode_model.dart';
@ -75,17 +75,17 @@ class SyncProgressBar extends ConsumerWidget {
if (downloadStatus != TaskStatus.paused)
IconButton(
onPressed: () => ref.read(backgroundDownloaderProvider).pause(downloadTask),
icon: const Icon(IconsaxBold.pause),
icon: const Icon(IconsaxPlusBold.pause),
)
},
if (downloadStatus == TaskStatus.paused && downloadTask != null) ...[
IconButton(
onPressed: () => ref.read(backgroundDownloaderProvider).resume(downloadTask),
icon: const Icon(IconsaxBold.play),
icon: const Icon(IconsaxPlusBold.play),
),
IconButton(
onPressed: () => ref.read(syncProvider.notifier).deleteFullSyncFiles(item, downloadTask),
icon: const Icon(IconsaxBold.stop),
icon: const Icon(IconsaxPlusBold.stop),
)
],
].addInBetween(const SizedBox(width: 8)),

View file

@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:auto_route/auto_route.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/settings/home_settings_model.dart';
@ -83,7 +83,7 @@ class _SyncedScreenState extends ConsumerState<SyncedScreen> {
),
const SizedBox(width: 16),
const Icon(
IconsaxOutline.cloud_cross,
IconsaxPlusLinear.cloud_cross,
)
],
),

View file

@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/syncing/sync_item.dart';
@ -33,7 +33,7 @@ class SyncStatusOverlay extends ConsumerWidget {
valueColor: AlwaysStoppedAnimation(Theme.of(context).colorScheme.error),
),
Text(context.localized.syncOverlayDeleting),
const Icon(IconsaxOutline.trash)
const Icon(IconsaxPlusLinear.trash)
].addPadding(const EdgeInsets.symmetric(horizontal: 16)),
),
),
@ -55,7 +55,7 @@ class SyncStatusOverlay extends ConsumerWidget {
valueColor: AlwaysStoppedAnimation(Theme.of(context).colorScheme.error),
),
Text(context.localized.syncOverlaySyncing),
const Icon(IconsaxOutline.cloud_notif)
const Icon(IconsaxPlusLinear.cloud_notif)
].addPadding(const EdgeInsets.symmetric(horizontal: 16)),
),
),

View file

@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/items/episode_model.dart';
@ -97,7 +97,7 @@ class _SyncedEpisodeItemState extends ConsumerState<SyncedEpisodeItem> {
if (!hasFile && !downloadTask.hasDownload)
IconButtonAwait(
onPressed: () async => await ref.read(syncProvider.notifier).syncVideoFile(syncedItem, false),
icon: const Icon(IconsaxOutline.cloud_change),
icon: const Icon(IconsaxPlusLinear.cloud_change),
)
else if (hasFile)
IconButtonAwait(
@ -116,7 +116,7 @@ class _SyncedEpisodeItemState extends ConsumerState<SyncedEpisodeItem> {
context.localized.cancel,
);
},
icon: const Icon(IconsaxOutline.trash),
icon: const Icon(IconsaxPlusLinear.trash),
)
].addInBetween(const SizedBox(width: 16)),
);

View file

@ -2,7 +2,7 @@ import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/playback/playback_model.dart';
@ -70,7 +70,7 @@ class _VideoPlaybackInformation extends ConsumerWidget {
),
IconButton.filled(
onPressed: () => context.copyToClipboard(playbackModel?.media?.url ?? "No url"),
icon: const Icon(IconsaxOutline.copy),
icon: const Icon(IconsaxPlusLinear.copy),
)
],
)

View file

@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:screen_brightness/screen_brightness.dart';
@ -276,13 +276,13 @@ class _VideoPlayerNextWrapperState extends ConsumerState<VideoPlayerNextWrapper>
IconButton.filledTonal(
onPressed: () => hideNextUp(),
tooltip: context.localized.resumeVideo,
icon: const Icon(IconsaxBold.maximize_4),
icon: const Icon(IconsaxPlusBold.maximize_4),
),
const SizedBox(width: 8),
IconButton.filledTonal(
onPressed: () => closePlayer(),
tooltip: context.localized.closeVideo,
icon: const Icon(IconsaxBold.close_square),
icon: const Icon(IconsaxPlusBold.close_square),
),
],
),
@ -454,13 +454,13 @@ class _SimpleControls extends ConsumerWidget {
children: [
IconButton.filledTonal(
onPressed: () => player.playOrPause(),
icon: Icon(isPlaying ? IconsaxBold.pause : IconsaxBold.play),
icon: Icon(isPlaying ? IconsaxPlusBold.pause : IconsaxPlusBold.play),
),
if (skip != null)
IconButton.filledTonal(
onPressed: skip,
tooltip: context.localized.playNextVideo,
icon: const Icon(IconsaxBold.next),
icon: const Icon(IconsaxPlusBold.next),
)
].addInBetween(const SizedBox(width: 4)));
}

View file

@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:collection/collection.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/item_base_model.dart';
@ -124,7 +124,7 @@ class _VideoOptionsMobileState extends ConsumerState<VideoOptions> {
icon: Opacity(
opacity: videoSettings.screenBrightness != null ? 0.5 : 1,
child: Icon(
IconsaxBold.autobrightness,
IconsaxPlusBold.autobrightness,
color: Theme.of(context).colorScheme.primary,
),
),

View file

@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/providers/settings/video_player_settings_provider.dart';
@ -70,10 +70,10 @@ class _VideoVolumeSliderState extends ConsumerState<VideoVolumeSlider> {
IconData volumeIcon(double value) {
if (value <= 0) {
return IconsaxOutline.volume_mute;
return IconsaxPlusLinear.volume_mute;
}
if (value < 50) {
return IconsaxOutline.volume_low;
return IconsaxPlusLinear.volume_low;
}
return IconsaxOutline.volume_high;
return IconsaxPlusLinear.volume_high;
}

View file

@ -5,7 +5,7 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:async/async.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:screen_brightness/screen_brightness.dart';
@ -216,7 +216,7 @@ class _DesktopControlsState extends ConsumerState<DesktopControls> {
isSelected: true,
iconSize: 65,
tooltip: "Resume video",
icon: const Icon(IconsaxBold.play),
icon: const Icon(IconsaxPlusBold.play),
),
),
);
@ -253,7 +253,7 @@ class _DesktopControlsState extends ConsumerState<DesktopControls> {
IconButton(
onPressed: () => minimizePlayer(context),
icon: const Icon(
IconsaxOutline.arrow_down_1,
IconsaxPlusLinear.arrow_down_1,
size: 24,
),
),
@ -276,7 +276,7 @@ class _DesktopControlsState extends ConsumerState<DesktopControls> {
Tooltip(
message: context.localized.stop,
child: IconButton(
onPressed: () => closePlayer(), icon: const Icon(IconsaxOutline.close_square))),
onPressed: () => closePlayer(), icon: const Icon(IconsaxPlusLinear.close_square))),
],
),
),
@ -321,22 +321,22 @@ class _DesktopControlsState extends ConsumerState<DesktopControls> {
children: <Widget>[
IconButton(
onPressed: () => showVideoPlayerOptions(context, () => minimizePlayer(context)),
icon: const Icon(IconsaxOutline.more)),
icon: const Icon(IconsaxPlusLinear.more)),
if (AdaptiveLayout.layoutOf(context) == ViewSize.tablet) ...[
IconButton(
onPressed: () => showSubSelection(context),
icon: const Icon(IconsaxOutline.subtitle),
icon: const Icon(IconsaxPlusLinear.subtitle),
),
IconButton(
onPressed: () => showAudioSelection(context),
icon: const Icon(IconsaxOutline.audio_square),
icon: const Icon(IconsaxPlusLinear.audio_square),
),
],
if (AdaptiveLayout.layoutOf(context) == ViewSize.desktop) ...[
Flexible(
child: ElevatedButton.icon(
onPressed: () => showSubSelection(context),
icon: const Icon(IconsaxOutline.subtitle),
icon: const Icon(IconsaxPlusLinear.subtitle),
label: Text(
ref.watch(playBackModel.select((value) {
final language = value?.mediaStreams?.currentSubStream?.language;
@ -350,7 +350,7 @@ class _DesktopControlsState extends ConsumerState<DesktopControls> {
Flexible(
child: ElevatedButton.icon(
onPressed: () => showAudioSelection(context),
icon: const Icon(IconsaxOutline.audio_square),
icon: const Icon(IconsaxPlusLinear.audio_square),
label: Text(
ref.watch(playBackModel.select((value) {
final language = value?.mediaStreams?.currentAudioStream?.language;
@ -375,7 +375,7 @@ class _DesktopControlsState extends ConsumerState<DesktopControls> {
ref.read(videoPlayerProvider).playOrPause();
},
icon: Icon(
mediaPlayback.playing ? IconsaxBold.pause : IconsaxBold.play,
mediaPlayback.playing ? IconsaxPlusBold.pause : IconsaxPlusBold.play,
),
),
seekForwardButton(ref),
@ -389,7 +389,7 @@ class _DesktopControlsState extends ConsumerState<DesktopControls> {
Tooltip(
message: context.localized.stop,
child: IconButton(
onPressed: () => closePlayer(), icon: const Icon(IconsaxOutline.close_square))),
onPressed: () => closePlayer(), icon: const Icon(IconsaxPlusLinear.close_square))),
const Spacer(),
if (AdaptiveLayout.viewSizeOf(context) >= ViewSize.tablet &&
ref.read(videoPlayerProvider).hasPlayer) ...{
@ -398,7 +398,7 @@ class _DesktopControlsState extends ConsumerState<DesktopControls> {
message: context.localized.qualityOptionsTitle,
child: IconButton(
onPressed: () => openQualityOptions(context),
icon: const Icon(IconsaxOutline.speedometer),
icon: const Icon(IconsaxPlusLinear.speedometer),
),
),
},
@ -537,7 +537,7 @@ class _DesktopControlsState extends ConsumerState<DesktopControls> {
: null,
iconSize: 30,
icon: const Icon(
IconsaxOutline.backward,
IconsaxPlusLinear.backward,
),
),
);
@ -563,7 +563,7 @@ class _DesktopControlsState extends ConsumerState<DesktopControls> {
nextVideo != null && !buffering ? () => ref.read(playbackModelHelper).loadNewVideo(nextVideo) : null,
iconSize: 30,
icon: const Icon(
IconsaxOutline.forward,
IconsaxPlusLinear.forward,
),
),
);
@ -577,7 +577,7 @@ class _DesktopControlsState extends ConsumerState<DesktopControls> {
tooltip: "-10",
iconSize: 40,
icon: const Icon(
IconsaxOutline.backward_10_seconds,
IconsaxPlusLinear.backward_10_seconds,
),
);
}
@ -589,7 +589,7 @@ class _DesktopControlsState extends ConsumerState<DesktopControls> {
iconSize: 40,
icon: const Stack(
children: [
Icon(IconsaxOutline.forward_15_seconds),
Icon(IconsaxPlusLinear.forward_15_seconds),
],
),
);

View file

@ -1,7 +1,7 @@
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/book_model.dart';
@ -85,7 +85,7 @@ extension ItemBaseModelExtensions on ItemBaseModel {
if (playAble)
ItemActionButton(
action: () => play(context, ref),
icon: const Icon(IconsaxOutline.play),
icon: const Icon(IconsaxPlusLinear.play),
label: Text(playButtonLabel(context)),
),
if (parentId?.isNotEmpty == true) ...[
@ -105,7 +105,7 @@ extension ItemBaseModelExtensions on ItemBaseModel {
if (!galleryItem && !exclude.contains(ItemActions.details))
ItemActionButton(
action: () async => await navigateTo(context),
icon: const Icon(IconsaxOutline.main_component),
icon: const Icon(IconsaxPlusLinear.main_component),
label: Text(context.localized.showDetails),
)
else if (!exclude.contains(ItemActions.showAlbum) && galleryItem)
@ -117,7 +117,7 @@ extension ItemBaseModelExtensions on ItemBaseModel {
if (!exclude.contains(ItemActions.playFromStart))
if ((userData.progress) > 0)
ItemActionButton(
icon: const Icon(IconsaxOutline.refresh),
icon: const Icon(IconsaxPlusLinear.refresh),
action: (this is BookModel)
? () => ((this as BookModel).play(context, ref, currentPage: 0))
: () => play(context, ref, startPosition: Duration.zero),
@ -129,7 +129,7 @@ extension ItemBaseModelExtensions on ItemBaseModel {
if (!exclude.contains(ItemActions.addCollection) && isAdmin)
if (type != FladderItemType.boxset)
ItemActionButton(
icon: const Icon(IconsaxOutline.archive_add),
icon: const Icon(IconsaxPlusLinear.archive_add),
action: () async {
await addItemToCollection(context, [this]);
if (context.mounted) {
@ -141,7 +141,7 @@ extension ItemBaseModelExtensions on ItemBaseModel {
if (!exclude.contains(ItemActions.addPlaylist))
if (type != FladderItemType.playlist)
ItemActionButton(
icon: const Icon(IconsaxOutline.archive_add),
icon: const Icon(IconsaxPlusLinear.archive_add),
action: () async {
await addItemToPlaylist(context, [this]);
if (context.mounted) {
@ -152,7 +152,7 @@ extension ItemBaseModelExtensions on ItemBaseModel {
),
if (!exclude.contains(ItemActions.markPlayed))
ItemActionButton(
icon: const Icon(IconsaxOutline.eye),
icon: const Icon(IconsaxPlusLinear.eye),
action: () async {
final userData = await ref.read(userProvider.notifier).markAsPlayed(true, id);
onUserDataChanged?.call(userData?.bodyOrThrow);
@ -162,7 +162,7 @@ extension ItemBaseModelExtensions on ItemBaseModel {
),
if (!exclude.contains(ItemActions.markUnplayed))
ItemActionButton(
icon: const Icon(IconsaxOutline.eye_slash),
icon: const Icon(IconsaxPlusLinear.eye_slash),
label: Text(context.localized.markAsUnwatched),
action: () async {
final userData = await ref.read(userProvider.notifier).markAsPlayed(false, id);
@ -172,7 +172,7 @@ extension ItemBaseModelExtensions on ItemBaseModel {
),
if (!exclude.contains(ItemActions.setFavorite))
ItemActionButton(
icon: Icon(userData.isFavourite ? IconsaxOutline.heart_remove : IconsaxOutline.heart_add),
icon: Icon(userData.isFavourite ? IconsaxPlusLinear.heart_remove : IconsaxPlusLinear.heart_add),
action: () async {
final newData = await ref.read(userProvider.notifier).setAsFavorite(!userData.isFavourite, id);
onUserDataChanged?.call(newData?.bodyOrThrow);
@ -184,7 +184,7 @@ extension ItemBaseModelExtensions on ItemBaseModel {
ItemActionDivider(),
if (!exclude.contains(ItemActions.editMetaData) && isAdmin)
ItemActionButton(
icon: const Icon(IconsaxOutline.edit),
icon: const Icon(IconsaxPlusLinear.edit),
action: () async {
final newItem = await showEditItemPopup(context, id);
if (newItem != null) {
@ -195,7 +195,7 @@ extension ItemBaseModelExtensions on ItemBaseModel {
),
if (!exclude.contains(ItemActions.refreshMetaData) && isAdmin)
ItemActionButton(
icon: const Icon(IconsaxOutline.global_refresh),
icon: const Icon(IconsaxPlusLinear.global_refresh),
action: () async {
showRefreshPopup(context, id, detailedName(context) ?? name);
},
@ -205,7 +205,7 @@ extension ItemBaseModelExtensions on ItemBaseModel {
if (!kIsWeb)
if (syncedItem == null)
ItemActionButton(
icon: const Icon(IconsaxOutline.arrow_down_2),
icon: const Icon(IconsaxPlusLinear.arrow_down_2),
label: Text(context.localized.sync),
action: () => ref.read(syncProvider.notifier).addSyncItem(context, this),
)
@ -217,12 +217,12 @@ extension ItemBaseModelExtensions on ItemBaseModel {
)
else if (downloadUrl != null) ...[
ItemActionButton(
icon: const Icon(IconsaxOutline.document_download),
icon: const Icon(IconsaxPlusLinear.document_download),
action: () => downloadFile(downloadUrl),
label: Text(context.localized.downloadFile(type.label(context).toLowerCase())),
),
ItemActionButton(
icon: const Icon(IconsaxOutline.link_21),
icon: const Icon(IconsaxPlusLinear.link_21),
action: () => context.copyToClipboard(downloadUrl),
label: Text(context.localized.copyStreamUrl),
)
@ -232,7 +232,7 @@ extension ItemBaseModelExtensions on ItemBaseModel {
ItemActionButton(
icon: Container(
child: const Icon(
IconsaxOutline.trash,
IconsaxPlusLinear.trash,
),
),
action: () async {
@ -250,7 +250,7 @@ extension ItemBaseModelExtensions on ItemBaseModel {
),
if (!exclude.contains(ItemActions.identify) && identifiable && isAdmin)
ItemActionButton(
icon: const Icon(IconsaxOutline.search_normal),
icon: const Icon(IconsaxPlusLinear.search_normal),
action: () async {
showIdentifyScreen(context, this);
},
@ -258,7 +258,7 @@ extension ItemBaseModelExtensions on ItemBaseModel {
),
if (!exclude.contains(ItemActions.mediaInfo))
ItemActionButton(
icon: const Icon(IconsaxOutline.info_circle),
icon: const Icon(IconsaxPlusLinear.info_circle),
action: () async {
showInfoScreen(context, this);
},

View file

@ -1,4 +1,4 @@
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:fladder/screens/shared/flat_button.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
@ -36,7 +36,7 @@ class StickyHeaderTextState extends ConsumerState<StickyHeaderText> {
Padding(
padding: const EdgeInsets.symmetric(horizontal: 8).copyWith(bottom: 4),
child: Icon(
IconsaxOutline.arrow_right_3,
IconsaxPlusLinear.arrow_right_3,
size: 18,
color: Theme.of(context).colorScheme.onSurfaceVariant,
),

View file

@ -1,7 +1,7 @@
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:window_manager/window_manager.dart';
@ -173,8 +173,8 @@ class _CurrentlyPlayingBarState extends ConsumerState<FloatingPlayerBar> {
},
icon: Icon(
ref.watch(videoPlayerSettingsProvider.select((value) => value.volume)) <= 0
? IconsaxBold.volume_cross
: IconsaxBold.volume_high,
? IconsaxPlusBold.volume_cross
: IconsaxPlusBold.volume_high,
),
),
},
@ -183,7 +183,7 @@ class _CurrentlyPlayingBarState extends ConsumerState<FloatingPlayerBar> {
waitDuration: const Duration(milliseconds: 500),
child: IconButton(
onPressed: () async => stopPlayer(),
icon: const Icon(IconsaxBold.stop),
icon: const Icon(IconsaxPlusBold.stop),
),
),
].addInBetween(const SizedBox(width: 6)),

View file

@ -3,7 +3,7 @@ import 'package:flutter/services.dart';
import 'package:auto_route/auto_route.dart';
import 'package:collection/collection.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/settings/home_settings_model.dart';
@ -162,7 +162,7 @@ class _NavigationBodyState extends ConsumerState<NavigationBody> {
});
}
},
icon: const Icon(IconsaxBold.menu),
icon: const Icon(IconsaxPlusBold.menu),
),
if (AdaptiveLayout.layoutModeOf(context) == LayoutMode.dual) ...[
const SizedBox(height: 8),
@ -198,7 +198,7 @@ class _NavigationBodyState extends ConsumerState<NavigationBody> {
color: Theme.of(context).colorScheme.primaryContainer,
child: const Padding(
padding: EdgeInsets.all(10),
child: Icon(IconsaxBold.setting_3),
child: Icon(IconsaxPlusBold.setting_3),
),
)
: const SettingsUserIcon()),

View file

@ -2,7 +2,7 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:auto_route/auto_route.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/collection_types.dart';
@ -54,7 +54,7 @@ class NestedNavigationDrawer extends ConsumerWidget {
),
IconButton(
onPressed: () => toggleExpanded(false),
icon: const Icon(IconsaxOutline.menu),
icon: const Icon(IconsaxPlusLinear.menu),
),
],
),
@ -96,7 +96,7 @@ class NestedNavigationDrawer extends ConsumerWidget {
actions: [
ItemActionButton(
label: Text(context.localized.scanLibrary),
icon: const Icon(IconsaxOutline.refresh),
icon: const Icon(IconsaxPlusLinear.refresh),
action: () => showRefreshPopup(context, library.id, library.name),
),
],
@ -113,7 +113,7 @@ class NestedNavigationDrawer extends ConsumerWidget {
offset: const Offset(-8, 0),
child: DrawerListButton(
label: context.localized.settings,
selectedIcon: const Icon(IconsaxBold.setting_3),
selectedIcon: const Icon(IconsaxPlusBold.setting_3),
selected: currentLocation.contains(const SettingsRoute().routeName),
icon: const SizedBox(width: 35, height: 35, child: SettingsUserIcon()),
onPressed: () {
@ -132,8 +132,8 @@ class NestedNavigationDrawer extends ConsumerWidget {
else
DrawerListButton(
label: context.localized.settings,
selectedIcon: const Icon(IconsaxBold.setting_2),
icon: const Icon(IconsaxOutline.setting_2),
selectedIcon: const Icon(IconsaxPlusBold.setting_2),
icon: const Icon(IconsaxPlusLinear.setting_2),
selected: currentLocation.contains(const SettingsRoute().routeName),
onPressed: () {
switch (AdaptiveLayout.layoutModeOf(context)) {

View file

@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:window_manager/window_manager.dart';
@ -28,7 +28,7 @@ class FullScreenButton extends ConsumerWidget {
return IconButton(
onPressed: () => toggleFullScreen(ref),
icon: Icon(
fullScreen ? IconsaxOutline.screenmirroring : IconsaxOutline.maximize_4,
fullScreen ? IconsaxPlusLinear.screenmirroring : IconsaxPlusLinear.maximize_4,
),
);
}

View file

@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:universal_html/html.dart' as html;
@ -37,7 +37,7 @@ class FullScreenButton extends ConsumerWidget {
return IconButton(
onPressed: () => toggleFullScreen(ref),
icon: Icon(
fullScreen ? IconsaxOutline.screenmirroring : IconsaxOutline.maximize_4,
fullScreen ? IconsaxPlusLinear.screenmirroring : IconsaxPlusLinear.maximize_4,
),
);
}

View file

@ -1,4 +1,4 @@
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:fladder/providers/settings/client_settings_provider.dart';
import 'package:fladder/util/adaptive_layout.dart';
import 'package:fladder/util/disable_keypad_focus.dart';
@ -124,7 +124,7 @@ class _HorizontalListState extends ConsumerState<HorizontalList> {
curve: Curves.easeInOut);
},
icon: const Icon(
IconsaxOutline.arrow_left_2,
IconsaxPlusLinear.arrow_left_2,
size: 20,
)),
),
@ -155,7 +155,7 @@ class _HorizontalListState extends ConsumerState<HorizontalList> {
curve: Curves.easeInOut);
},
icon: const Icon(
IconsaxOutline.arrow_right_3,
IconsaxPlusLinear.arrow_right_3,
size: 20,
)),
),

View file

@ -4,7 +4,7 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:async/async.dart';
import 'package:ficonsax/ficonsax.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:square_progress_indicator/square_progress_indicator.dart';
@ -160,7 +160,7 @@ class _ProgressFloatingButtonState extends ConsumerState<ProgressFloatingButton>
strokeWidth: 4,
value: timeLeft.inMilliseconds / timer._duration.inMilliseconds,
),
Icon(isActive ? IconsaxBold.pause : IconsaxBold.play)
Icon(isActive ? IconsaxPlusBold.pause : IconsaxPlusBold.play)
],
),
),

View file

@ -502,14 +502,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.3"
ficonsax:
dependency: "direct main"
description:
name: ficonsax
sha256: f7c69817fb4a9a8545ed66656990d4634adad61b2b8d601fb91ba99d389fad47
url: "https://pub.dev"
source: hosted
version: "0.0.3"
file:
dependency: transitive
description:
@ -890,6 +882,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.0.0"
iconsax_plus:
dependency: "direct main"
description:
name: iconsax_plus
sha256: e9e51b0652a1d3ceea5fedbfc2c1bb4ad432c2ceb7be7de2e30caf085678933c
url: "https://pub.dev"
source: hosted
version: "1.0.0"
image:
dependency: transitive
description:

View file

@ -37,7 +37,7 @@ dependencies:
# Use with the CupertinoIcons class for iOS style icons.
# Icons
cupertino_icons: ^1.0.8
ficonsax: ^0.0.3
iconsax_plus: ^1.0.0
# Network and HTTP
chopper: ^8.0.4