add chapter sort
This commit is contained in:
parent
0d7fbf3ca6
commit
9961d59c17
8 changed files with 474 additions and 55 deletions
|
|
@ -7,7 +7,7 @@ part of 'get_manga_chapter_url.dart';
|
|||
// **************************************************************************
|
||||
|
||||
String _$getMangaChapterUrlHash() =>
|
||||
r'af6919ddfaafdafc0e8c2fa0fa0f686dfccd934a';
|
||||
r'6b40f393d25504e820401a92e7b5387fd07ab973';
|
||||
|
||||
/// Copied from Dart SDK
|
||||
class _SystemHash {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ part of 'get_manga_detail.dart';
|
|||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$getMangaDetailHash() => r'8cc750dd5a207747b8e97db82ce6c1b141c8419a';
|
||||
String _$getMangaDetailHash() => r'ded3d41646d56c670699614c7ab01069ddc52b8d';
|
||||
|
||||
/// Copied from Dart SDK
|
||||
class _SystemHash {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ part of 'get_popular_manga.dart';
|
|||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$getPopularMangaHash() => r'87a02e32e79c310e6717e7ae95bf54fdd13b2a00';
|
||||
String _$getPopularMangaHash() => r'cf3f1c29feafa93591a44549b5d81f25ff65bf4f';
|
||||
|
||||
/// Copied from Dart SDK
|
||||
class _SystemHash {
|
||||
|
|
|
|||
|
|
@ -508,4 +508,3 @@ class LibraryShowContinueReadingButtonState
|
|||
.put('libraryShowContinueReadingButton', value);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -75,8 +75,8 @@ class _MangaDetailViewState extends ConsumerState<MangaDetailView>
|
|||
.length +
|
||||
1;
|
||||
|
||||
final reverse =
|
||||
ref.watch(reverseMangaStateProvider(modelManga: widget.modelManga!));
|
||||
bool reverse = ref.watch(
|
||||
reverseChapterStateProvider(modelManga: widget.modelManga!))["reverse"];
|
||||
|
||||
return NotificationListener<UserScrollNotification>(
|
||||
onNotification: (notification) {
|
||||
|
|
@ -394,7 +394,7 @@ class _MangaDetailViewState extends ConsumerState<MangaDetailView>
|
|||
barItem: Container(),
|
||||
uiType: DraggableMenuUiType.classic,
|
||||
expandable: false,
|
||||
maxHeight: mediaHeight(context, 0.36),
|
||||
maxHeight: 240,
|
||||
fastDrag: false,
|
||||
minimizeBeforeFastDrag: false,
|
||||
child: DefaultTabController(
|
||||
|
|
@ -459,20 +459,33 @@ class _MangaDetailViewState extends ConsumerState<MangaDetailView>
|
|||
);
|
||||
}),
|
||||
Consumer(builder: (context, ref, chil) {
|
||||
final reverse = ref.watch(reverseMangaStateProvider(
|
||||
modelManga: widget.modelManga!));
|
||||
final reverse = ref
|
||||
.read(reverseChapterStateProvider(
|
||||
modelManga: widget.modelManga!)
|
||||
.notifier)
|
||||
.isReverse();
|
||||
final reverseChapter = ref.watch(
|
||||
reverseChapterStateProvider(
|
||||
modelManga: widget.modelManga!));
|
||||
return Column(
|
||||
children: [
|
||||
ListTileChapterSort(
|
||||
label: "By upload date",
|
||||
for (var i = 0; i < 3; i++)
|
||||
ListTileChapterSort(
|
||||
label: i == 0
|
||||
? "By source"
|
||||
: i == 1
|
||||
? "By chapter number"
|
||||
: "By upload date",
|
||||
reverse: reverse,
|
||||
onTap: () {
|
||||
ref
|
||||
.read(reverseMangaStateProvider(
|
||||
.read(reverseChapterStateProvider(
|
||||
modelManga: widget.modelManga!)
|
||||
.notifier)
|
||||
.update(!reverse);
|
||||
}),
|
||||
.set(i);
|
||||
},
|
||||
showLeading: reverseChapter['index'] == i,
|
||||
),
|
||||
],
|
||||
);
|
||||
}),
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
import 'dart:convert';
|
||||
|
||||
import 'package:mangayomi/models/model_manga.dart';
|
||||
import 'package:mangayomi/providers/hive_provider.dart';
|
||||
import 'package:mangayomi/views/manga/download/providers/download_provider.dart';
|
||||
|
|
@ -92,20 +94,54 @@ class IsExtendedState extends _$IsExtendedState {
|
|||
}
|
||||
|
||||
@riverpod
|
||||
class ReverseMangaState extends _$ReverseMangaState {
|
||||
class ReverseChapterState extends _$ReverseChapterState {
|
||||
@override
|
||||
bool build({required ModelManga modelManga}) {
|
||||
dynamic build({required ModelManga modelManga}) {
|
||||
return ref.watch(hiveBoxSettingsProvider).get(
|
||||
"${modelManga.source}/${modelManga.name}-reverseChapter",
|
||||
defaultValue: false);
|
||||
"${modelManga.source}/${modelManga.name}-reverseChapterMap",
|
||||
defaultValue: {"reverse": false, "index": 0});
|
||||
}
|
||||
|
||||
void update(bool value) {
|
||||
ref
|
||||
.watch(hiveBoxSettingsProvider)
|
||||
.put("${modelManga.source}/${modelManga.name}-reverseChapter", value);
|
||||
void update(bool reverse, int index) {
|
||||
var value = {
|
||||
"reverse": state['index'] == index ? !reverse : reverse,
|
||||
"index": index
|
||||
};
|
||||
ref.watch(hiveBoxSettingsProvider).put(
|
||||
"${modelManga.source}/${modelManga.name}-reverseChapterMap", value);
|
||||
state = value;
|
||||
}
|
||||
|
||||
void set(int index) {
|
||||
final reverse = ref
|
||||
.read(reverseChapterStateProvider(modelManga: modelManga).notifier)
|
||||
.isReverse();
|
||||
final sortBySource =
|
||||
ref.watch(sortBySourceStateProvider(modelManga: modelManga));
|
||||
final sortByChapterNumber =
|
||||
ref.watch(sortByChapterNumberStateProvider(modelManga: modelManga));
|
||||
final sortByUploadDate =
|
||||
ref.watch(sortByUploadDateStateProvider(modelManga: modelManga));
|
||||
update(reverse, index);
|
||||
if (index == 0) {
|
||||
ref
|
||||
.read(sortBySourceStateProvider(modelManga: modelManga).notifier)
|
||||
.update(!sortBySource);
|
||||
} else if (index == 1) {
|
||||
ref
|
||||
.read(
|
||||
sortByChapterNumberStateProvider(modelManga: modelManga).notifier)
|
||||
.update(!sortByChapterNumber);
|
||||
} else {
|
||||
ref
|
||||
.read(sortByUploadDateStateProvider(modelManga: modelManga).notifier)
|
||||
.update(!sortByUploadDate);
|
||||
}
|
||||
}
|
||||
|
||||
bool isReverse() {
|
||||
return state["reverse"];
|
||||
}
|
||||
}
|
||||
|
||||
@riverpod
|
||||
|
|
@ -329,6 +365,8 @@ class ChapterFilterBookmarkedState extends _$ChapterFilterBookmarkedState {
|
|||
class ChapterFilterResultState extends _$ChapterFilterResultState {
|
||||
@override
|
||||
ModelManga build({required ModelManga modelManga}) {
|
||||
int indexSelected =
|
||||
ref.watch(reverseChapterStateProvider(modelManga: modelManga))["index"];
|
||||
final data1 = ref
|
||||
.read(chapterFilterDownloadedStateProvider(modelManga: modelManga)
|
||||
.notifier)
|
||||
|
|
@ -341,7 +379,25 @@ class ChapterFilterResultState extends _$ChapterFilterResultState {
|
|||
final data3 = ref
|
||||
.read(chapterFilterBookmarkedStateProvider(modelManga: data2).notifier)
|
||||
.getData();
|
||||
|
||||
if (indexSelected == 0) {
|
||||
data3.chapters!.sort(
|
||||
(a, b) {
|
||||
return b.scanlator!.compareTo(a.scanlator!);
|
||||
},
|
||||
);
|
||||
} else if (indexSelected == 1) {
|
||||
// data3.chapters!.sort(
|
||||
// (a, b) {
|
||||
// return a.dateUpload!.compareTo(b.dateUpload!);
|
||||
// },
|
||||
// );
|
||||
} else {
|
||||
data3.chapters!.sort(
|
||||
(a, b) {
|
||||
return a.dateUpload!.compareTo(b.dateUpload!);
|
||||
},
|
||||
);
|
||||
}
|
||||
return data3;
|
||||
}
|
||||
|
||||
|
|
@ -450,3 +506,53 @@ class ChapterSetDownloadState extends _$ChapterSetDownloadState {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
@riverpod
|
||||
class SortByUploadDateState extends _$SortByUploadDateState {
|
||||
@override
|
||||
bool build({required ModelManga modelManga}) {
|
||||
return ref.watch(hiveBoxSettingsProvider).get(
|
||||
"${modelManga.source}/${modelManga.name}-sortByUploadDateChapter",
|
||||
defaultValue: false);
|
||||
}
|
||||
|
||||
void update(bool value) {
|
||||
ref.watch(hiveBoxSettingsProvider).put(
|
||||
"${modelManga.source}/${modelManga.name}-sortByUploadDateChapter",
|
||||
value);
|
||||
state = value;
|
||||
}
|
||||
}
|
||||
|
||||
@riverpod
|
||||
class SortBySourceState extends _$SortBySourceState {
|
||||
@override
|
||||
bool build({required ModelManga modelManga}) {
|
||||
return ref.watch(hiveBoxSettingsProvider).get(
|
||||
"${modelManga.source}/${modelManga.name}-sortBySourceChapter",
|
||||
defaultValue: false);
|
||||
}
|
||||
|
||||
void update(bool value) {
|
||||
ref.watch(hiveBoxSettingsProvider).put(
|
||||
"${modelManga.source}/${modelManga.name}-sortBySourceChapter", value);
|
||||
state = value;
|
||||
}
|
||||
}
|
||||
|
||||
@riverpod
|
||||
class SortByChapterNumberState extends _$SortByChapterNumberState {
|
||||
@override
|
||||
bool build({required ModelManga modelManga}) {
|
||||
return ref.watch(hiveBoxSettingsProvider).get(
|
||||
"${modelManga.source}/${modelManga.name}-sortByChapterNumberChapter",
|
||||
defaultValue: false);
|
||||
}
|
||||
|
||||
void update(bool value) {
|
||||
ref.watch(hiveBoxSettingsProvider).put(
|
||||
"${modelManga.source}/${modelManga.name}-sortByChapterNumberChapter",
|
||||
value);
|
||||
state = value;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -72,7 +72,8 @@ final isExtendedStateProvider =
|
|||
);
|
||||
|
||||
typedef _$IsExtendedState = AutoDisposeNotifier<bool>;
|
||||
String _$reverseMangaStateHash() => r'27a74f99810dac3d27d428a107a397e03eb2835d';
|
||||
String _$reverseChapterStateHash() =>
|
||||
r'7fb5d8f60f32377ca365eb328f989e31569c8b19';
|
||||
|
||||
/// Copied from Dart SDK
|
||||
class _SystemHash {
|
||||
|
|
@ -95,35 +96,36 @@ class _SystemHash {
|
|||
}
|
||||
}
|
||||
|
||||
abstract class _$ReverseMangaState extends BuildlessAutoDisposeNotifier<bool> {
|
||||
abstract class _$ReverseChapterState
|
||||
extends BuildlessAutoDisposeNotifier<dynamic> {
|
||||
late final ModelManga modelManga;
|
||||
|
||||
bool build({
|
||||
dynamic build({
|
||||
required ModelManga modelManga,
|
||||
});
|
||||
}
|
||||
|
||||
/// See also [ReverseMangaState].
|
||||
@ProviderFor(ReverseMangaState)
|
||||
const reverseMangaStateProvider = ReverseMangaStateFamily();
|
||||
/// See also [ReverseChapterState].
|
||||
@ProviderFor(ReverseChapterState)
|
||||
const reverseChapterStateProvider = ReverseChapterStateFamily();
|
||||
|
||||
/// See also [ReverseMangaState].
|
||||
class ReverseMangaStateFamily extends Family<bool> {
|
||||
/// See also [ReverseMangaState].
|
||||
const ReverseMangaStateFamily();
|
||||
/// See also [ReverseChapterState].
|
||||
class ReverseChapterStateFamily extends Family<dynamic> {
|
||||
/// See also [ReverseChapterState].
|
||||
const ReverseChapterStateFamily();
|
||||
|
||||
/// See also [ReverseMangaState].
|
||||
ReverseMangaStateProvider call({
|
||||
/// See also [ReverseChapterState].
|
||||
ReverseChapterStateProvider call({
|
||||
required ModelManga modelManga,
|
||||
}) {
|
||||
return ReverseMangaStateProvider(
|
||||
return ReverseChapterStateProvider(
|
||||
modelManga: modelManga,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
ReverseMangaStateProvider getProviderOverride(
|
||||
covariant ReverseMangaStateProvider provider,
|
||||
ReverseChapterStateProvider getProviderOverride(
|
||||
covariant ReverseChapterStateProvider provider,
|
||||
) {
|
||||
return call(
|
||||
modelManga: provider.modelManga,
|
||||
|
|
@ -142,33 +144,34 @@ class ReverseMangaStateFamily extends Family<bool> {
|
|||
_allTransitiveDependencies;
|
||||
|
||||
@override
|
||||
String? get name => r'reverseMangaStateProvider';
|
||||
String? get name => r'reverseChapterStateProvider';
|
||||
}
|
||||
|
||||
/// See also [ReverseMangaState].
|
||||
class ReverseMangaStateProvider
|
||||
extends AutoDisposeNotifierProviderImpl<ReverseMangaState, bool> {
|
||||
/// See also [ReverseMangaState].
|
||||
ReverseMangaStateProvider({
|
||||
/// See also [ReverseChapterState].
|
||||
class ReverseChapterStateProvider
|
||||
extends AutoDisposeNotifierProviderImpl<ReverseChapterState, dynamic> {
|
||||
/// See also [ReverseChapterState].
|
||||
ReverseChapterStateProvider({
|
||||
required this.modelManga,
|
||||
}) : super.internal(
|
||||
() => ReverseMangaState()..modelManga = modelManga,
|
||||
from: reverseMangaStateProvider,
|
||||
name: r'reverseMangaStateProvider',
|
||||
() => ReverseChapterState()..modelManga = modelManga,
|
||||
from: reverseChapterStateProvider,
|
||||
name: r'reverseChapterStateProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$reverseMangaStateHash,
|
||||
dependencies: ReverseMangaStateFamily._dependencies,
|
||||
: _$reverseChapterStateHash,
|
||||
dependencies: ReverseChapterStateFamily._dependencies,
|
||||
allTransitiveDependencies:
|
||||
ReverseMangaStateFamily._allTransitiveDependencies,
|
||||
ReverseChapterStateFamily._allTransitiveDependencies,
|
||||
);
|
||||
|
||||
final ModelManga modelManga;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is ReverseMangaStateProvider && other.modelManga == modelManga;
|
||||
return other is ReverseChapterStateProvider &&
|
||||
other.modelManga == modelManga;
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
@ -180,8 +183,8 @@ class ReverseMangaStateProvider
|
|||
}
|
||||
|
||||
@override
|
||||
bool runNotifierBuild(
|
||||
covariant ReverseMangaState notifier,
|
||||
dynamic runNotifierBuild(
|
||||
covariant ReverseChapterState notifier,
|
||||
) {
|
||||
return notifier.build(
|
||||
modelManga: modelManga,
|
||||
|
|
@ -883,4 +886,298 @@ class ChapterSetDownloadStateProvider
|
|||
);
|
||||
}
|
||||
}
|
||||
|
||||
String _$sortByUploadDateStateHash() =>
|
||||
r'a86bc258687f71a0364874e8f6f0401f9fb1a1ee';
|
||||
|
||||
abstract class _$SortByUploadDateState
|
||||
extends BuildlessAutoDisposeNotifier<bool> {
|
||||
late final ModelManga modelManga;
|
||||
|
||||
bool build({
|
||||
required ModelManga modelManga,
|
||||
});
|
||||
}
|
||||
|
||||
/// See also [SortByUploadDateState].
|
||||
@ProviderFor(SortByUploadDateState)
|
||||
const sortByUploadDateStateProvider = SortByUploadDateStateFamily();
|
||||
|
||||
/// See also [SortByUploadDateState].
|
||||
class SortByUploadDateStateFamily extends Family<bool> {
|
||||
/// See also [SortByUploadDateState].
|
||||
const SortByUploadDateStateFamily();
|
||||
|
||||
/// See also [SortByUploadDateState].
|
||||
SortByUploadDateStateProvider call({
|
||||
required ModelManga modelManga,
|
||||
}) {
|
||||
return SortByUploadDateStateProvider(
|
||||
modelManga: modelManga,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
SortByUploadDateStateProvider getProviderOverride(
|
||||
covariant SortByUploadDateStateProvider provider,
|
||||
) {
|
||||
return call(
|
||||
modelManga: provider.modelManga,
|
||||
);
|
||||
}
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _dependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
|
||||
_allTransitiveDependencies;
|
||||
|
||||
@override
|
||||
String? get name => r'sortByUploadDateStateProvider';
|
||||
}
|
||||
|
||||
/// See also [SortByUploadDateState].
|
||||
class SortByUploadDateStateProvider
|
||||
extends AutoDisposeNotifierProviderImpl<SortByUploadDateState, bool> {
|
||||
/// See also [SortByUploadDateState].
|
||||
SortByUploadDateStateProvider({
|
||||
required this.modelManga,
|
||||
}) : super.internal(
|
||||
() => SortByUploadDateState()..modelManga = modelManga,
|
||||
from: sortByUploadDateStateProvider,
|
||||
name: r'sortByUploadDateStateProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$sortByUploadDateStateHash,
|
||||
dependencies: SortByUploadDateStateFamily._dependencies,
|
||||
allTransitiveDependencies:
|
||||
SortByUploadDateStateFamily._allTransitiveDependencies,
|
||||
);
|
||||
|
||||
final ModelManga modelManga;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is SortByUploadDateStateProvider &&
|
||||
other.modelManga == modelManga;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
var hash = _SystemHash.combine(0, runtimeType.hashCode);
|
||||
hash = _SystemHash.combine(hash, modelManga.hashCode);
|
||||
|
||||
return _SystemHash.finish(hash);
|
||||
}
|
||||
|
||||
@override
|
||||
bool runNotifierBuild(
|
||||
covariant SortByUploadDateState notifier,
|
||||
) {
|
||||
return notifier.build(
|
||||
modelManga: modelManga,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
String _$sortBySourceStateHash() => r'77181a7c4e07a7714a0e3230f84830e66e36a40f';
|
||||
|
||||
abstract class _$SortBySourceState extends BuildlessAutoDisposeNotifier<bool> {
|
||||
late final ModelManga modelManga;
|
||||
|
||||
bool build({
|
||||
required ModelManga modelManga,
|
||||
});
|
||||
}
|
||||
|
||||
/// See also [SortBySourceState].
|
||||
@ProviderFor(SortBySourceState)
|
||||
const sortBySourceStateProvider = SortBySourceStateFamily();
|
||||
|
||||
/// See also [SortBySourceState].
|
||||
class SortBySourceStateFamily extends Family<bool> {
|
||||
/// See also [SortBySourceState].
|
||||
const SortBySourceStateFamily();
|
||||
|
||||
/// See also [SortBySourceState].
|
||||
SortBySourceStateProvider call({
|
||||
required ModelManga modelManga,
|
||||
}) {
|
||||
return SortBySourceStateProvider(
|
||||
modelManga: modelManga,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
SortBySourceStateProvider getProviderOverride(
|
||||
covariant SortBySourceStateProvider provider,
|
||||
) {
|
||||
return call(
|
||||
modelManga: provider.modelManga,
|
||||
);
|
||||
}
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _dependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
|
||||
_allTransitiveDependencies;
|
||||
|
||||
@override
|
||||
String? get name => r'sortBySourceStateProvider';
|
||||
}
|
||||
|
||||
/// See also [SortBySourceState].
|
||||
class SortBySourceStateProvider
|
||||
extends AutoDisposeNotifierProviderImpl<SortBySourceState, bool> {
|
||||
/// See also [SortBySourceState].
|
||||
SortBySourceStateProvider({
|
||||
required this.modelManga,
|
||||
}) : super.internal(
|
||||
() => SortBySourceState()..modelManga = modelManga,
|
||||
from: sortBySourceStateProvider,
|
||||
name: r'sortBySourceStateProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$sortBySourceStateHash,
|
||||
dependencies: SortBySourceStateFamily._dependencies,
|
||||
allTransitiveDependencies:
|
||||
SortBySourceStateFamily._allTransitiveDependencies,
|
||||
);
|
||||
|
||||
final ModelManga modelManga;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is SortBySourceStateProvider && other.modelManga == modelManga;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
var hash = _SystemHash.combine(0, runtimeType.hashCode);
|
||||
hash = _SystemHash.combine(hash, modelManga.hashCode);
|
||||
|
||||
return _SystemHash.finish(hash);
|
||||
}
|
||||
|
||||
@override
|
||||
bool runNotifierBuild(
|
||||
covariant SortBySourceState notifier,
|
||||
) {
|
||||
return notifier.build(
|
||||
modelManga: modelManga,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
String _$sortByChapterNumberStateHash() =>
|
||||
r'68dc6bdf97aa6938fe2896d244aac3a77900ee2e';
|
||||
|
||||
abstract class _$SortByChapterNumberState
|
||||
extends BuildlessAutoDisposeNotifier<bool> {
|
||||
late final ModelManga modelManga;
|
||||
|
||||
bool build({
|
||||
required ModelManga modelManga,
|
||||
});
|
||||
}
|
||||
|
||||
/// See also [SortByChapterNumberState].
|
||||
@ProviderFor(SortByChapterNumberState)
|
||||
const sortByChapterNumberStateProvider = SortByChapterNumberStateFamily();
|
||||
|
||||
/// See also [SortByChapterNumberState].
|
||||
class SortByChapterNumberStateFamily extends Family<bool> {
|
||||
/// See also [SortByChapterNumberState].
|
||||
const SortByChapterNumberStateFamily();
|
||||
|
||||
/// See also [SortByChapterNumberState].
|
||||
SortByChapterNumberStateProvider call({
|
||||
required ModelManga modelManga,
|
||||
}) {
|
||||
return SortByChapterNumberStateProvider(
|
||||
modelManga: modelManga,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
SortByChapterNumberStateProvider getProviderOverride(
|
||||
covariant SortByChapterNumberStateProvider provider,
|
||||
) {
|
||||
return call(
|
||||
modelManga: provider.modelManga,
|
||||
);
|
||||
}
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _dependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
|
||||
_allTransitiveDependencies;
|
||||
|
||||
@override
|
||||
String? get name => r'sortByChapterNumberStateProvider';
|
||||
}
|
||||
|
||||
/// See also [SortByChapterNumberState].
|
||||
class SortByChapterNumberStateProvider
|
||||
extends AutoDisposeNotifierProviderImpl<SortByChapterNumberState, bool> {
|
||||
/// See also [SortByChapterNumberState].
|
||||
SortByChapterNumberStateProvider({
|
||||
required this.modelManga,
|
||||
}) : super.internal(
|
||||
() => SortByChapterNumberState()..modelManga = modelManga,
|
||||
from: sortByChapterNumberStateProvider,
|
||||
name: r'sortByChapterNumberStateProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$sortByChapterNumberStateHash,
|
||||
dependencies: SortByChapterNumberStateFamily._dependencies,
|
||||
allTransitiveDependencies:
|
||||
SortByChapterNumberStateFamily._allTransitiveDependencies,
|
||||
);
|
||||
|
||||
final ModelManga modelManga;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is SortByChapterNumberStateProvider &&
|
||||
other.modelManga == modelManga;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
var hash = _SystemHash.combine(0, runtimeType.hashCode);
|
||||
hash = _SystemHash.combine(hash, modelManga.hashCode);
|
||||
|
||||
return _SystemHash.finish(hash);
|
||||
}
|
||||
|
||||
@override
|
||||
bool runNotifierBuild(
|
||||
covariant SortByChapterNumberState notifier,
|
||||
) {
|
||||
return notifier.build(
|
||||
modelManga: modelManga,
|
||||
);
|
||||
}
|
||||
}
|
||||
// ignore_for_file: unnecessary_raw_strings, subtype_of_sealed_class, invalid_use_of_internal_member, do_not_use_environment, prefer_const_constructors, public_member_api_docs, avoid_private_typedef_functions
|
||||
|
|
|
|||
|
|
@ -4,11 +4,13 @@ class ListTileChapterSort extends StatelessWidget {
|
|||
final String label;
|
||||
final bool reverse;
|
||||
final VoidCallback onTap;
|
||||
final bool showLeading;
|
||||
const ListTileChapterSort(
|
||||
{super.key,
|
||||
required this.label,
|
||||
required this.reverse,
|
||||
required this.onTap});
|
||||
required this.onTap,
|
||||
required this.showLeading});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
@ -17,7 +19,9 @@ class ListTileChapterSort extends StatelessWidget {
|
|||
dense: true,
|
||||
leading: Icon(
|
||||
reverse ? Icons.arrow_downward_sharp : Icons.arrow_upward_sharp,
|
||||
color: Theme.of(context).hintColor),
|
||||
color: showLeading
|
||||
? Theme.of(context).primaryColor
|
||||
: Colors.transparent),
|
||||
title: Text(
|
||||
label,
|
||||
style: const TextStyle(fontSize: 14),
|
||||
|
|
|
|||
Loading…
Reference in a new issue