Skip to content

Commit cd7e939

Browse files
committed
feat: Improved Switches and Loading Indicators on iOS
1 parent 3b825c3 commit cd7e939

File tree

9 files changed

+111
-41
lines changed

9 files changed

+111
-41
lines changed

lib/ui/add_book_screen/add_book_screen.dart

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -286,10 +286,15 @@ class _AddBookScreenState extends State<AddBookScreen> {
286286
if (_isCoverDownloading) {
287287
return Padding(
288288
padding: const EdgeInsets.symmetric(vertical: 50),
289-
child: LoadingAnimationWidget.threeArchedCircle(
290-
color: Theme.of(context).colorScheme.primary,
291-
size: 36,
292-
),
289+
child: Platform.isIOS
290+
? CupertinoActivityIndicator(
291+
radius: 20,
292+
color: Theme.of(context).colorScheme.primary,
293+
)
294+
: LoadingAnimationWidget.threeArchedCircle(
295+
color: Theme.of(context).colorScheme.primary,
296+
size: 36,
297+
),
293298
);
294299
} else {
295300
return const CoverViewEdit();

lib/ui/books_screen/widgets/sort_bottom_sheet.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ class _SortBottomSheetState extends State<SortBottomSheet> {
175175
) {
176176
return SizedBox(
177177
height: 40,
178-
child: Switch(
178+
child: Switch.adaptive(
179179
value: state.onlyFavourite,
180180
onChanged: (value) => BlocProvider.of<SortBloc>(context).add(
181181
ChangeSortEvent(
@@ -198,7 +198,7 @@ class _SortBottomSheetState extends State<SortBottomSheet> {
198198
BuildContext context,
199199
SetSortState state,
200200
) {
201-
return Switch(
201+
return Switch.adaptive(
202202
value: state.displayTags,
203203
onChanged: (value) => BlocProvider.of<SortBloc>(context).add(
204204
ChangeSortEvent(
@@ -220,7 +220,7 @@ class _SortBottomSheetState extends State<SortBottomSheet> {
220220
BuildContext context,
221221
SetSortState state,
222222
) {
223-
return Switch(
223+
return Switch.adaptive(
224224
value: state.filterTagsAsAnd,
225225
onChanged: (value) => BlocProvider.of<SortBloc>(context).add(
226226
ChangeSortEvent(
@@ -242,7 +242,7 @@ class _SortBottomSheetState extends State<SortBottomSheet> {
242242
BuildContext context,
243243
SetSortState state,
244244
) {
245-
return Switch(
245+
return Switch.adaptive(
246246
value: state.filterOutTags,
247247
onChanged: (value) => BlocProvider.of<SortBloc>(context).add(
248248
ChangeSortEvent(

lib/ui/search_covers_screen/widgets/search_covers_grid.dart

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import 'dart:convert';
2+
import 'dart:io';
23

4+
import 'package:flutter/cupertino.dart';
35
import 'package:flutter/material.dart';
46
import 'package:flutter/services.dart';
57
import 'package:flutter_bloc/flutter_bloc.dart';
@@ -147,10 +149,15 @@ class _SearchCoversGridState extends State<SearchCoversGrid> {
147149
) {
148150
return PagedChildBuilderDelegate<String>(
149151
firstPageProgressIndicatorBuilder: (_) => Center(
150-
child: LoadingAnimationWidget.staggeredDotsWave(
151-
color: Theme.of(context).colorScheme.primary,
152-
size: 50,
153-
),
152+
child: Platform.isIOS
153+
? CupertinoActivityIndicator(
154+
radius: 20,
155+
color: Theme.of(context).colorScheme.primary,
156+
)
157+
: LoadingAnimationWidget.staggeredDotsWave(
158+
color: Theme.of(context).colorScheme.primary,
159+
size: 50,
160+
),
154161
),
155162
itemBuilder: (context, imageURL, _) => InkWell(
156163
onTap: () async {

lib/ui/search_ol_editions_screen/search_ol_editions_screen.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ class _SearchOLEditionsScreenState extends State<SearchOLEditionsScreen> {
105105
padding: const EdgeInsets.all(10),
106106
child: Row(
107107
children: [
108-
Switch(
108+
Switch.adaptive(
109109
value: _onlyEditionsWithCovers,
110110
onChanged: (value) {
111111
setState(() {

lib/ui/search_ol_editions_screen/widgets/book_card_ol_edition.dart

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1+
import 'dart:io';
2+
13
import 'package:cached_network_image/cached_network_image.dart';
24
import 'package:easy_localization/easy_localization.dart';
5+
import 'package:flutter/cupertino.dart';
36
import 'package:flutter/material.dart';
47
import 'package:loading_animation_widget/loading_animation_widget.dart';
58
import 'package:openreads/core/themes/app_theme.dart';
@@ -61,10 +64,17 @@ class BookCardOLEdition extends StatelessWidget {
6164
placeholder: (context, url) => Center(
6265
child: Container(
6366
padding: const EdgeInsets.all(5),
64-
child: LoadingAnimationWidget.threeArchedCircle(
65-
color: Theme.of(context).colorScheme.primary,
66-
size: 24,
67-
),
67+
child: Platform.isIOS
68+
? CupertinoActivityIndicator(
69+
radius: 20,
70+
color:
71+
Theme.of(context).colorScheme.primary,
72+
)
73+
: LoadingAnimationWidget.threeArchedCircle(
74+
color:
75+
Theme.of(context).colorScheme.primary,
76+
size: 24,
77+
),
6878
),
6979
),
7080
errorWidget: (context, url, error) =>

lib/ui/search_ol_editions_screen/widgets/ol_editions_grid.dart

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
import 'dart:io';
2+
3+
import 'package:flutter/cupertino.dart';
14
import 'package:flutter/material.dart';
25
import 'package:infinite_scroll_pagination/infinite_scroll_pagination.dart';
36
import 'package:loading_animation_widget/loading_animation_widget.dart';
@@ -98,18 +101,28 @@ class OLEditionsGrid extends StatelessWidget {
98101
showNoMoreItemsIndicatorAsGridChild: false,
99102
builderDelegate: PagedChildBuilderDelegate<OLEditionResult>(
100103
firstPageProgressIndicatorBuilder: (_) => Center(
101-
child: LoadingAnimationWidget.staggeredDotsWave(
102-
color: Theme.of(context).colorScheme.primary,
103-
size: 50,
104-
),
104+
child: Platform.isIOS
105+
? CupertinoActivityIndicator(
106+
radius: 20,
107+
color: Theme.of(context).colorScheme.primary,
108+
)
109+
: LoadingAnimationWidget.staggeredDotsWave(
110+
color: Theme.of(context).colorScheme.primary,
111+
size: 50,
112+
),
105113
),
106114
newPageProgressIndicatorBuilder: (_) => Center(
107115
child: Padding(
108116
padding: const EdgeInsets.all(20.0),
109-
child: LoadingAnimationWidget.staggeredDotsWave(
110-
color: Theme.of(context).colorScheme.primary,
111-
size: 50,
112-
),
117+
child: Platform.isIOS
118+
? CupertinoActivityIndicator(
119+
radius: 20,
120+
color: Theme.of(context).colorScheme.primary,
121+
)
122+
: LoadingAnimationWidget.staggeredDotsWave(
123+
color: Theme.of(context).colorScheme.primary,
124+
size: 50,
125+
),
113126
),
114127
),
115128
itemBuilder: (context, item, index) => BookCardOLEdition(

lib/ui/search_ol_screen/search_ol_screen.dart.dart

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1+
import 'dart:io';
2+
13
import 'package:barcode_scan2/barcode_scan2.dart';
24
import 'package:easy_localization/easy_localization.dart';
5+
import 'package:flutter/cupertino.dart';
36
import 'package:flutter/material.dart';
47
import 'package:flutter_bloc/flutter_bloc.dart';
58
import 'package:infinite_scroll_pagination/infinite_scroll_pagination.dart';
@@ -380,18 +383,32 @@ class _SearchOLScreenState extends State<SearchOLScreen>
380383
builderDelegate:
381384
PagedChildBuilderDelegate<OLSearchResultDoc>(
382385
firstPageProgressIndicatorBuilder: (_) => Center(
383-
child: LoadingAnimationWidget.staggeredDotsWave(
384-
color: Theme.of(context).colorScheme.primary,
385-
size: 42,
386-
),
386+
child: Platform.isIOS
387+
? CupertinoActivityIndicator(
388+
radius: 20,
389+
color:
390+
Theme.of(context).colorScheme.primary,
391+
)
392+
: LoadingAnimationWidget.staggeredDotsWave(
393+
color:
394+
Theme.of(context).colorScheme.primary,
395+
size: 42,
396+
),
387397
),
388398
newPageProgressIndicatorBuilder: (_) => Center(
389399
child: Padding(
390400
padding: const EdgeInsets.all(20.0),
391-
child: LoadingAnimationWidget.staggeredDotsWave(
392-
color: Theme.of(context).colorScheme.primary,
393-
size: 42,
394-
),
401+
child: Platform.isIOS
402+
? CupertinoActivityIndicator(
403+
radius: 20,
404+
color:
405+
Theme.of(context).colorScheme.primary,
406+
)
407+
: LoadingAnimationWidget.staggeredDotsWave(
408+
color:
409+
Theme.of(context).colorScheme.primary,
410+
size: 42,
411+
),
395412
),
396413
),
397414
noItemsFoundIndicatorBuilder: (_) => Center(

lib/ui/search_ol_screen/widgets/book_card_ol.dart

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1+
import 'dart:io';
2+
13
import 'package:cached_network_image/cached_network_image.dart';
24
import 'package:easy_localization/easy_localization.dart';
5+
import 'package:flutter/cupertino.dart';
36
import 'package:flutter/material.dart';
47
import 'package:loading_animation_widget/loading_animation_widget.dart';
58
import 'package:openreads/core/themes/app_theme.dart';
@@ -56,10 +59,17 @@ class BookCardOL extends StatelessWidget {
5659
placeholder: (context, url) => Center(
5760
child: Container(
5861
padding: const EdgeInsets.all(5),
59-
child: LoadingAnimationWidget.threeArchedCircle(
60-
color: Theme.of(context).colorScheme.primary,
61-
size: 24,
62-
),
62+
child: Platform.isIOS
63+
? CupertinoActivityIndicator(
64+
radius: 20,
65+
color:
66+
Theme.of(context).colorScheme.primary,
67+
)
68+
: LoadingAnimationWidget.threeArchedCircle(
69+
color:
70+
Theme.of(context).colorScheme.primary,
71+
size: 24,
72+
),
6373
),
6474
),
6575
errorWidget: (context, url, error) =>

lib/ui/statistics_screen/statistics_screen.dart

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1+
import 'dart:io';
2+
13
import 'package:easy_localization/easy_localization.dart';
4+
import 'package:flutter/cupertino.dart';
25
import 'package:flutter/material.dart';
36
import 'package:flutter_bloc/flutter_bloc.dart';
47
import 'package:loading_animation_widget/loading_animation_widget.dart';
@@ -77,10 +80,15 @@ class _StatisticsScreenState extends State<StatisticsScreen> {
7780
);
7881
} else {
7982
return Center(
80-
child: LoadingAnimationWidget.fourRotatingDots(
81-
color: Theme.of(context).primaryColor,
82-
size: 42,
83-
),
83+
child: Platform.isIOS
84+
? CupertinoActivityIndicator(
85+
radius: 20,
86+
color: Theme.of(context).colorScheme.primary,
87+
)
88+
: LoadingAnimationWidget.fourRotatingDots(
89+
color: Theme.of(context).primaryColor,
90+
size: 42,
91+
),
8492
);
8593
}
8694
},

0 commit comments

Comments
 (0)