fix lang source

This commit is contained in:
kodjomoustapha 2023-05-16 18:02:51 +01:00
parent 1c7972bc76
commit 181647512e
4 changed files with 61 additions and 64 deletions

17
lib/models/settings.dart Normal file
View file

@ -0,0 +1,17 @@
// import 'package:isar/isar.dart';
// import 'package:mangayomi/models/chapter.dart';
// part 'settings.g.dart';
// @collection
// @Name("Settings")
// class Settings {
// Id? id;
// int? mangaId;
// String? date;
// Settings({
// this.id = 227,
// required this.mangaId,
// required this.date,
// });
// }

View file

@ -1,6 +1,5 @@
import 'package:hive_flutter/hive_flutter.dart';
import 'package:mangayomi/utils/constant.dart';
import 'package:mangayomi/models/source.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
part 'hive_provider.g.dart';

View file

@ -1,9 +1,8 @@
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:hive_flutter/hive_flutter.dart';
import 'package:mangayomi/providers/hive_provider.dart';
import 'package:isar/isar.dart';
import 'package:mangayomi/main.dart';
import 'package:mangayomi/models/source.dart';
import 'package:mangayomi/sources/source_list.dart';
import 'package:mangayomi/utils/lang.dart';
import 'package:mangayomi/views/browse/extension/widgets/extension_lang_list_tile_widget.dart';
@ -17,64 +16,42 @@ class ExtensionsLang extends ConsumerWidget {
appBar: AppBar(
title: const Text("Extensions"),
),
body:Container(),
// ValueListenableBuilder<Box<Source>>(
// valueListenable: ref.watch(hiveBoxMangaSourceProvider).listenable(),
// builder: (context, value, child) {
// final entri = value.values.toList();
// return ListView.builder(
// itemCount: language.length,
// itemBuilder: (context, index) {
// return ExtensionLangListTileWidget(
// lang: lang(language[index]),
// onChanged: (val) {
// if (val == true) {
// for (var element in sourcesList) {
// if (element.lang == lang(language[index])) {
// if (!ref
// .watch(hiveBoxMangaSourceProvider)
// .containsKey(
// "${element.sourceName}${element.lang}")) {
// ref.watch(hiveBoxMangaSourceProvider).put(
// "${element.sourceName}${element.lang}",
// element);
// }
// }
// }
// List<dynamic> entries = ref
// .watch(hiveBoxMangaProvider)
// .get("language_filter", defaultValue: []);
// entries.remove("${lang(language[index])}");
// ref
// .watch(hiveBoxMangaProvider)
// .put("language_filter", entries);
// } else {
// for (var element in entri) {
// if (element.lang == lang(language[index])) {
// ref
// .watch(hiveBoxMangaSourceProvider)
// .delete("${element.sourceName}${element.lang}");
// }
// }
// List<dynamic> entries = ref
// .watch(hiveBoxMangaProvider)
// .get("language_filter", defaultValue: []);
// entries.add("${lang(language[index])}");
// ref
// .watch(hiveBoxMangaProvider)
// .put("language_filter", entries);
// }
// },
// value: entri
// .where((element) =>
// element.lang == "${lang(language[index])}")
// .isNotEmpty,
// );
// },
// );
// }),
body: StreamBuilder(
stream:
isar.sources.filter().idIsNotNull().watch(fireImmediately: true),
builder: (context, snapshot) {
List<Source>? entri = snapshot.hasData ? snapshot.data : [];
return ListView.builder(
itemCount: language.length,
itemBuilder: (context, index) {
return ExtensionLangListTileWidget(
lang: lang(language[index]),
onChanged: (val) {
isar.writeTxnSync(() {
if (val == true) {
for (var source in entri) {
if (source.lang == lang(language[index])) {
isar.sources.putSync(source..isActive = true);
}
}
} else {
for (var source in entri) {
if (source.lang == lang(language[index])) {
isar.sources.putSync(source..isActive = false);
}
}
}
});
},
value: entri!
.where((element) =>
element.lang == "${lang(language[index])}")
.where((element) => element.isActive!)
.isNotEmpty,
);
},
);
}),
);
}
}

View file

@ -22,8 +22,12 @@ class ExtensionScreen extends ConsumerWidget {
return Padding(
padding: const EdgeInsets.only(top: 10),
child: StreamBuilder(
stream:
isar.sources.filter().idIsNotNull().watch(fireImmediately: true),
stream: isar.sources
.filter()
.idIsNotNull()
.and()
.isActiveEqualTo(true)
.watch(fireImmediately: true),
builder: (context, snapshot) {
if (snapshot.hasData && snapshot.data!.isNotEmpty) {
final entries = snapshot.data!;