Skip to content

Commit ca25119

Browse files
committed
moved view to beta
1 parent d753fc1 commit ca25119

File tree

18 files changed

+290
-289
lines changed

18 files changed

+290
-289
lines changed

.github/workflows/build.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,6 @@ jobs:
113113
uses: subosito/flutter-action@v2
114114
with:
115115
channel: stable
116-
flutter-version: 3.27.1
117116

118117
- name: Install Flutter dependencies
119118
run: flutter pub get
@@ -180,7 +179,6 @@ jobs:
180179
uses: subosito/flutter-action@v2
181180
with:
182181
channel: stable
183-
flutter-version: 3.27.1
184182

185183
- name: Extract version from pubspec.yaml
186184
id: extract_version
@@ -252,7 +250,6 @@ jobs:
252250
uses: subosito/flutter-action@v2
253251
with:
254252
channel: stable
255-
flutter-version: 3.27.1
256253

257254
- name: Install Flutter dependencies
258255
run: flutter pub get

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,3 +45,6 @@ app.*.map.json
4545
/android/app/debug
4646
/android/app/profile
4747
/android/app/release
48+
49+
md/build/.last_build_id
50+
/android/app/.cxx/

lib/features/home/home.dart

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,12 @@ class Home extends HookConsumerWidget {
111111
context.push('/offlineProgress');
112112
},
113113
),
114+
PopupMenuOption(
115+
label: S.of(context).playlists,
116+
onTap: (PopupMenuOption option) {
117+
context.push('/list-view');
118+
},
119+
),
114120
PopupMenuOption(
115121
label: S.of(context).addUser,
116122
onTap: (PopupMenuOption option) {
@@ -143,7 +149,10 @@ class Home extends HookConsumerWidget {
143149
search: previousSort?.search ?? '',
144150
filter: previousSort?.filter,
145151
filterKey: previousSort?.filterKey,
146-
sort: previousSort?.sort ?? (index == 2 ? 'name' : null),
152+
sort: previousSort?.sort ??
153+
((index == 2 && currentLibrary?.mediaType == 'book')
154+
? 'name'
155+
: null),
147156
desc: previousSort?.desc ?? 0,
148157
previous: [
149158
...?sortList.state.previous?.where((LibrarySort sort) {
@@ -194,13 +203,6 @@ class Home extends HookConsumerWidget {
194203
),
195204
label: S.of(context).series,
196205
),
197-
BottomNavigationBarItem(
198-
icon: Icon(
199-
Icons.list_alt,
200-
color: Theme.of(context).colorScheme.onSurface,
201-
),
202-
label: 'Lists',
203-
),
204206
],
205207
tabsBackgroundColor: Theme.of(context).colorScheme.surface,
206208
),

lib/features/library/list/collection_view.dart

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import 'dart:convert';
2+
13
import 'package:abs_flutter/api/list/response/collection_response.dart';
24
import 'package:abs_flutter/features/library/item_components/item_series.dart';
35
import 'package:abs_flutter/models/library_preview_item.dart';
@@ -75,7 +77,9 @@ class _CollectionViewState extends ConsumerState<CollectionView> {
7577
name: currentSeries.name,
7678
);
7779

78-
return MultiItem('/collection-view/${currentSeries.id}',
80+
String base64Id = Uri.encodeComponent(base64.encode(utf8.encode(currentSeries.id)));
81+
82+
return MultiItem('/collection-view/$base64Id',
7983
series: seriesItem);
8084
},
8185
);

lib/features/library/list/list_view.dart

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import 'dart:convert';
2+
13
import 'package:abs_flutter/api/library_items/library_item.dart';
24
import 'package:abs_flutter/api/list/collection.dart';
35
import 'package:abs_flutter/api/list/playlist.dart';
@@ -26,14 +28,16 @@ class ListsItemView extends ConsumerWidget {
2628
return Center(child: Text('Error: ${items.error}'));
2729
}
2830

31+
final String decodedId = utf8.decode(base64.decode(id));
32+
2933
final List<LibraryItem> libraryItems = [];
3034
String title = '';
3135
if (type == ListViewType.collection) {
32-
final Collection? collection = items.getCollectionById(id);
36+
final Collection? collection = items.getCollectionById(decodedId);
3337
libraryItems.addAll(collection?.items ?? []);
3438
title = collection?.name ?? '';
3539
} else {
36-
final Playlist? playlist = items.getPlaylistById(id);
40+
final Playlist? playlist = items.getPlaylistById(decodedId);
3741
libraryItems.addAll(playlist?.items
3842
?.map((e) => e.libraryItem)
3943
.where((element) => element != null)

lib/features/library/list/playlist_view.dart

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import 'dart:convert';
2+
13
import 'package:abs_flutter/api/list/response/playlist_response.dart';
24
import 'package:abs_flutter/features/library/item_components/item_series.dart';
35
import 'package:abs_flutter/models/library_preview_item.dart';
@@ -84,7 +86,9 @@ class _PlaylistViewState extends ConsumerState<PlaylistView> {
8486
name: currentSeries.name,
8587
);
8688

87-
return MultiItem('/playlist-view/${currentSeries.id}',
89+
String base64Id = Uri.encodeComponent(base64.encode(utf8.encode(currentSeries.id)));
90+
91+
return MultiItem('/playlist-view/$base64Id',
8892
series: seriesItem);
8993
},
9094
);

lib/features/library/list_items.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,12 @@ class TabBarWidget extends ConsumerWidget {
1717
title: TabBar(
1818
indicatorSize: TabBarIndicatorSize.tab,
1919
padding: EdgeInsets.zero,
20+
indicator: BoxDecoration(
21+
borderRadius: BorderRadius.only(
22+
topLeft: Radius.circular(10),
23+
topRight: Radius.circular(10)),
24+
color: Theme.of(context).colorScheme.surfaceContainer,
25+
),
2026
tabs: [
2127
Tab(text: S.of(context).collections),
2228
Tab(text: S.of(context).playlists),

lib/features/library/series/series_view.dart

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import 'dart:convert';
2+
13
import 'package:abs_flutter/features/library/item_components/item_series.dart';
24
import 'package:abs_flutter/models/library_preview_item.dart';
35
import 'package:abs_flutter/models/library_series_preview.dart';
@@ -158,8 +160,11 @@ class _SeriesViewState extends ConsumerState<SeriesView> {
158160
name: currentSeries.name,
159161
);
160162

163+
String base64Id = Uri.encodeComponent(base64.encode(utf8.encode(currentSeries.id)));
164+
String base64Name = Uri.encodeComponent(base64.encode(utf8.encode(currentSeries.name)));
165+
161166
return MultiItem(
162-
'/series-view/${seriesItem.name}/${seriesItem.id}',
167+
'/series-view/$base64Name/$base64Id',
163168
series: seriesItem);
164169
},
165170
);

lib/features/library/series/single_series_view.dart

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import 'dart:convert';
2+
13
import 'package:abs_flutter/features/library/item_components/item_series.dart';
24
import 'package:abs_flutter/features/library/item_components/library_item_widget.dart';
35
import 'package:abs_flutter/features/library/notch/notch_content.dart';
@@ -32,9 +34,12 @@ class _SingleSeriesViewState extends ConsumerState<SingleSeriesView> {
3234

3335
@override
3436
void initState() {
37+
String? decodedSeriesId = widget.seriesId != null
38+
? utf8.decode(base64.decode(widget.seriesId!))
39+
: null;
3540
_sort = LibrarySort(
3641
index: 3,
37-
filter: widget.seriesId,
42+
filter: decodedSeriesId,
3843
filterKey: 'series',
3944
sort: 'sequence',
4045
desc: (ref.read(settingsProvider)[Constants.SORT_SERIES_ASC]) ? 1 : 0,
@@ -86,14 +91,22 @@ class _SingleSeriesViewState extends ConsumerState<SingleSeriesView> {
8691
Widget build(BuildContext context) {
8792
final series = ref.watch(libraryItemsWithSortProvider(_sort));
8893

94+
// Convert base64 encoded series name to a readable format
95+
String? decodedSeriesName = widget.seriesName != null
96+
? utf8.decode(base64.decode(widget.seriesName!))
97+
: null;
98+
String? decodedSeriesId = widget.seriesId != null
99+
? utf8.decode(base64.decode(widget.seriesId!))
100+
: null;
101+
89102
if (series == null) return const Center(child: CircularProgressIndicator());
90103
if (series.filterBy == null ||
91104
series.filterBy!.isEmpty ||
92105
!series.filterBy!.contains('series.')) {
93106
return PlatformScaffold(
94107
appBar: PlatformAppBar(
95108
title: PlatformText(
96-
widget.seriesName ?? series.items.first.seriesName ?? ''),
109+
decodedSeriesName ?? series.items.first.seriesName ?? ''),
97110
),
98111
body: Center(child: PlatformText(S.of(context).noSeriesSelected)));
99112
}
@@ -102,9 +115,9 @@ class _SingleSeriesViewState extends ConsumerState<SingleSeriesView> {
102115
books: series.items,
103116
total: series.total,
104117
page: series.page,
105-
id: widget.seriesId ?? '',
118+
id: decodedSeriesId ?? '',
106119
libraryId: '',
107-
name: widget.seriesName ?? series.items.first.seriesName ?? '');
120+
name: decodedSeriesName ?? series.items.first.seriesName ?? '');
108121

109122
const double screenWidth = 800;
110123

lib/openapi/openapi.dart

Lines changed: 0 additions & 24 deletions
This file was deleted.

0 commit comments

Comments
 (0)