diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 5e941bbe..fe43ed85 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -120,6 +120,7 @@ "custom_location": "Custom location", "only_on_wifi": "Only on wifi", "save_as_cbz_archive": "Save as CBZ archive", + "concurrent_downloads": "Concurrent downloads", "browse_subtitle": "Sources, global search", "only_include_pinned_sources": "Only include pinned sources", "nsfw_sources": "NSFW (+18) sources", @@ -370,10 +371,12 @@ "next_5_chapters": "Next 5 chapters", "next_10_chapters": "Next 10 chapters", "next_25_chapters": "Next 25 chapters", + "all_chapters": "All chapters", "next_episode": "Next episode", "next_5_episodes": "Next 5 episodes", "next_10_episodes": "Next 10 episodes", "next_25_episodes": "Next 25 episodes", + "all_episodes": "All episodes", "cover_saved": "Cover saved", "set_as_cover": "Set as cover", "use_this_as_cover_art": "Use this as cover art?", diff --git a/lib/l10n/generated/app_localizations.dart b/lib/l10n/generated/app_localizations.dart index ddeda4a2..ed2b3256 100644 --- a/lib/l10n/generated/app_localizations.dart +++ b/lib/l10n/generated/app_localizations.dart @@ -837,6 +837,12 @@ abstract class AppLocalizations { /// **'Save as CBZ archive'** String get save_as_cbz_archive; + /// No description provided for @concurrent_downloads. + /// + /// In en, this message translates to: + /// **'Concurrent downloads'** + String get concurrent_downloads; + /// No description provided for @browse_subtitle. /// /// In en, this message translates to: @@ -2337,6 +2343,12 @@ abstract class AppLocalizations { /// **'Next 25 chapters'** String get next_25_chapters; + /// No description provided for @all_chapters. + /// + /// In en, this message translates to: + /// **'All chapters'** + String get all_chapters; + /// No description provided for @next_episode. /// /// In en, this message translates to: @@ -2361,6 +2373,12 @@ abstract class AppLocalizations { /// **'Next 25 episodes'** String get next_25_episodes; + /// No description provided for @all_episodes. + /// + /// In en, this message translates to: + /// **'All episodes'** + String get all_episodes; + /// No description provided for @cover_saved. /// /// In en, this message translates to: diff --git a/lib/l10n/generated/app_localizations_ar.dart b/lib/l10n/generated/app_localizations_ar.dart index 956005df..03466977 100644 --- a/lib/l10n/generated/app_localizations_ar.dart +++ b/lib/l10n/generated/app_localizations_ar.dart @@ -372,6 +372,9 @@ class AppLocalizationsAr extends AppLocalizations { @override String get save_as_cbz_archive => 'حفظ كأرشيف CBZ'; + @override + String get concurrent_downloads => 'Concurrent downloads'; + @override String get browse_subtitle => 'المصادر، البحث العام'; @@ -1152,6 +1155,9 @@ class AppLocalizationsAr extends AppLocalizations { @override String get next_25_chapters => 'الفصول الخمسة والعشرون التالية'; + @override + String get all_chapters => 'All chapters'; + @override String get next_episode => 'الحلقة التالية'; @@ -1164,6 +1170,9 @@ class AppLocalizationsAr extends AppLocalizations { @override String get next_25_episodes => 'الخمسة وعشرون حلقة التالية'; + @override + String get all_episodes => 'All episodes'; + @override String get cover_saved => 'الغلاف المحفوظ'; diff --git a/lib/l10n/generated/app_localizations_de.dart b/lib/l10n/generated/app_localizations_de.dart index f9efc137..bfd0f35d 100644 --- a/lib/l10n/generated/app_localizations_de.dart +++ b/lib/l10n/generated/app_localizations_de.dart @@ -372,6 +372,9 @@ class AppLocalizationsDe extends AppLocalizations { @override String get save_as_cbz_archive => 'Als CBZ-Archiv speichern'; + @override + String get concurrent_downloads => 'Concurrent downloads'; + @override String get browse_subtitle => 'Quellen, globale Suche'; @@ -1152,6 +1155,9 @@ class AppLocalizationsDe extends AppLocalizations { @override String get next_25_chapters => 'Nächsten 25 Kapitel'; + @override + String get all_chapters => 'All chapters'; + @override String get next_episode => 'Nächste Episode'; @@ -1164,6 +1170,9 @@ class AppLocalizationsDe extends AppLocalizations { @override String get next_25_episodes => 'Nächsten 25 Episoden'; + @override + String get all_episodes => 'All episodes'; + @override String get cover_saved => 'Titelbild gespeichert'; diff --git a/lib/l10n/generated/app_localizations_en.dart b/lib/l10n/generated/app_localizations_en.dart index 2063c157..3ed240cd 100644 --- a/lib/l10n/generated/app_localizations_en.dart +++ b/lib/l10n/generated/app_localizations_en.dart @@ -372,6 +372,9 @@ class AppLocalizationsEn extends AppLocalizations { @override String get save_as_cbz_archive => 'Save as CBZ archive'; + @override + String get concurrent_downloads => 'Concurrent downloads'; + @override String get browse_subtitle => 'Sources, global search'; @@ -1152,6 +1155,9 @@ class AppLocalizationsEn extends AppLocalizations { @override String get next_25_chapters => 'Next 25 chapters'; + @override + String get all_chapters => 'All chapters'; + @override String get next_episode => 'Next episode'; @@ -1164,6 +1170,9 @@ class AppLocalizationsEn extends AppLocalizations { @override String get next_25_episodes => 'Next 25 episodes'; + @override + String get all_episodes => 'All episodes'; + @override String get cover_saved => 'Cover saved'; diff --git a/lib/l10n/generated/app_localizations_es.dart b/lib/l10n/generated/app_localizations_es.dart index 3a653f23..29085dc4 100644 --- a/lib/l10n/generated/app_localizations_es.dart +++ b/lib/l10n/generated/app_localizations_es.dart @@ -372,6 +372,9 @@ class AppLocalizationsEs extends AppLocalizations { @override String get save_as_cbz_archive => 'Guardar como archivo CBZ'; + @override + String get concurrent_downloads => 'Concurrent downloads'; + @override String get browse_subtitle => 'Fuentes, búsqueda global'; @@ -1152,6 +1155,9 @@ class AppLocalizationsEs extends AppLocalizations { @override String get next_25_chapters => 'Próximos 25 capítulos'; + @override + String get all_chapters => 'All chapters'; + @override String get next_episode => 'Siguiente episodio'; @@ -1164,6 +1170,9 @@ class AppLocalizationsEs extends AppLocalizations { @override String get next_25_episodes => 'Siguientes 25 episodios'; + @override + String get all_episodes => 'All episodes'; + @override String get cover_saved => 'Portada guardada'; diff --git a/lib/l10n/generated/app_localizations_fr.dart b/lib/l10n/generated/app_localizations_fr.dart index 8bb37ea5..b7068276 100644 --- a/lib/l10n/generated/app_localizations_fr.dart +++ b/lib/l10n/generated/app_localizations_fr.dart @@ -372,6 +372,9 @@ class AppLocalizationsFr extends AppLocalizations { @override String get save_as_cbz_archive => 'Enregistrer comme archive CBZ'; + @override + String get concurrent_downloads => 'Concurrent downloads'; + @override String get browse_subtitle => 'Sources, extensions, recherche globale'; @@ -1152,6 +1155,9 @@ class AppLocalizationsFr extends AppLocalizations { @override String get next_25_chapters => '25 chapitres suivants'; + @override + String get all_chapters => 'All chapters'; + @override String get next_episode => 'Épisode suivant'; @@ -1164,6 +1170,9 @@ class AppLocalizationsFr extends AppLocalizations { @override String get next_25_episodes => '25 épisodes suivants'; + @override + String get all_episodes => 'All episodes'; + @override String get cover_saved => 'Couverture enregistrée'; diff --git a/lib/l10n/generated/app_localizations_id.dart b/lib/l10n/generated/app_localizations_id.dart index c3e29778..4cc3f7a2 100644 --- a/lib/l10n/generated/app_localizations_id.dart +++ b/lib/l10n/generated/app_localizations_id.dart @@ -372,6 +372,9 @@ class AppLocalizationsId extends AppLocalizations { @override String get save_as_cbz_archive => 'Simpan sebagai Arsip CBZ'; + @override + String get concurrent_downloads => 'Concurrent downloads'; + @override String get browse_subtitle => 'Sumber, Pencarian Umum'; @@ -1152,6 +1155,9 @@ class AppLocalizationsId extends AppLocalizations { @override String get next_25_chapters => '25 bab berikutnya'; + @override + String get all_chapters => 'All chapters'; + @override String get next_episode => 'Episode berikutnya'; @@ -1164,6 +1170,9 @@ class AppLocalizationsId extends AppLocalizations { @override String get next_25_episodes => '25 episode berikutnya'; + @override + String get all_episodes => 'All episodes'; + @override String get cover_saved => 'Sampul disimpan'; diff --git a/lib/l10n/generated/app_localizations_it.dart b/lib/l10n/generated/app_localizations_it.dart index a7b16e5a..3f088fdf 100644 --- a/lib/l10n/generated/app_localizations_it.dart +++ b/lib/l10n/generated/app_localizations_it.dart @@ -372,6 +372,9 @@ class AppLocalizationsIt extends AppLocalizations { @override String get save_as_cbz_archive => 'Salva come archivio CBZ'; + @override + String get concurrent_downloads => 'Concurrent downloads'; + @override String get browse_subtitle => 'Fonti, ricerca globale'; @@ -1152,6 +1155,9 @@ class AppLocalizationsIt extends AppLocalizations { @override String get next_25_chapters => 'Prossimi 25 capitoli'; + @override + String get all_chapters => 'All chapters'; + @override String get next_episode => 'Prossimo episodio'; @@ -1164,6 +1170,9 @@ class AppLocalizationsIt extends AppLocalizations { @override String get next_25_episodes => 'Prossimi 25 episodi'; + @override + String get all_episodes => 'All episodes'; + @override String get cover_saved => 'Copertina salvata'; diff --git a/lib/l10n/generated/app_localizations_pt.dart b/lib/l10n/generated/app_localizations_pt.dart index 316b94a7..5e7dbb5d 100644 --- a/lib/l10n/generated/app_localizations_pt.dart +++ b/lib/l10n/generated/app_localizations_pt.dart @@ -372,6 +372,9 @@ class AppLocalizationsPt extends AppLocalizations { @override String get save_as_cbz_archive => 'Salvar como arquivo CBZ'; + @override + String get concurrent_downloads => 'Concurrent downloads'; + @override String get browse_subtitle => 'Fontes, pesquisa global'; @@ -1152,6 +1155,9 @@ class AppLocalizationsPt extends AppLocalizations { @override String get next_25_chapters => 'Próximos 25 capítulos'; + @override + String get all_chapters => 'All chapters'; + @override String get next_episode => 'Próximo episódio'; @@ -1164,6 +1170,9 @@ class AppLocalizationsPt extends AppLocalizations { @override String get next_25_episodes => 'Próximos 25 episódios'; + @override + String get all_episodes => 'All episodes'; + @override String get cover_saved => 'Capa salva'; diff --git a/lib/l10n/generated/app_localizations_ru.dart b/lib/l10n/generated/app_localizations_ru.dart index 4a6e38cb..8e942330 100644 --- a/lib/l10n/generated/app_localizations_ru.dart +++ b/lib/l10n/generated/app_localizations_ru.dart @@ -372,6 +372,9 @@ class AppLocalizationsRu extends AppLocalizations { @override String get save_as_cbz_archive => 'Сохранить как архив CBZ'; + @override + String get concurrent_downloads => 'Concurrent downloads'; + @override String get browse_subtitle => 'Источники, глобальный поиск'; @@ -1152,6 +1155,9 @@ class AppLocalizationsRu extends AppLocalizations { @override String get next_25_chapters => 'Следующие 25 глав'; + @override + String get all_chapters => 'All chapters'; + @override String get next_episode => 'Следующий эпизод'; @@ -1164,6 +1170,9 @@ class AppLocalizationsRu extends AppLocalizations { @override String get next_25_episodes => 'Следующие 25 эпизодов'; + @override + String get all_episodes => 'All episodes'; + @override String get cover_saved => 'Обложка сохранена'; diff --git a/lib/l10n/generated/app_localizations_th.dart b/lib/l10n/generated/app_localizations_th.dart index fbb7f3aa..8af03c3c 100644 --- a/lib/l10n/generated/app_localizations_th.dart +++ b/lib/l10n/generated/app_localizations_th.dart @@ -372,6 +372,9 @@ class AppLocalizationsTh extends AppLocalizations { @override String get save_as_cbz_archive => 'จัดเก็บเป็น CBZ'; + @override + String get concurrent_downloads => 'Concurrent downloads'; + @override String get browse_subtitle => 'Sources, global search'; @@ -1152,6 +1155,9 @@ class AppLocalizationsTh extends AppLocalizations { @override String get next_25_chapters => '25 ตอนถัดไป'; + @override + String get all_chapters => 'All chapters'; + @override String get next_episode => 'ตอนถัดไป'; @@ -1164,6 +1170,9 @@ class AppLocalizationsTh extends AppLocalizations { @override String get next_25_episodes => '25 ตอนถัดไป'; + @override + String get all_episodes => 'All episodes'; + @override String get cover_saved => 'จัดเก็บภาพปกแล้ว'; diff --git a/lib/l10n/generated/app_localizations_tr.dart b/lib/l10n/generated/app_localizations_tr.dart index 249f40b3..256bc41f 100644 --- a/lib/l10n/generated/app_localizations_tr.dart +++ b/lib/l10n/generated/app_localizations_tr.dart @@ -372,6 +372,9 @@ class AppLocalizationsTr extends AppLocalizations { @override String get save_as_cbz_archive => 'CBZ Arşivi Olarak Kaydet'; + @override + String get concurrent_downloads => 'Concurrent downloads'; + @override String get browse_subtitle => 'Kaynaklar, genel arama'; @@ -1152,6 +1155,9 @@ class AppLocalizationsTr extends AppLocalizations { @override String get next_25_chapters => 'Sonraki 25 bölüm'; + @override + String get all_chapters => 'All chapters'; + @override String get next_episode => 'Sonraki Bölüm'; @@ -1164,6 +1170,9 @@ class AppLocalizationsTr extends AppLocalizations { @override String get next_25_episodes => 'Sonraki 25 Bölüm'; + @override + String get all_episodes => 'All episodes'; + @override String get cover_saved => 'Kapak kaydedildi'; diff --git a/lib/l10n/generated/app_localizations_zh.dart b/lib/l10n/generated/app_localizations_zh.dart index 3a89b4ed..97fc8e1c 100644 --- a/lib/l10n/generated/app_localizations_zh.dart +++ b/lib/l10n/generated/app_localizations_zh.dart @@ -372,6 +372,9 @@ class AppLocalizationsZh extends AppLocalizations { @override String get save_as_cbz_archive => '保存为CBZ档案'; + @override + String get concurrent_downloads => 'Concurrent downloads'; + @override String get browse_subtitle => '来源,全球搜索'; @@ -1152,6 +1155,9 @@ class AppLocalizationsZh extends AppLocalizations { @override String get next_25_chapters => '下25章'; + @override + String get all_chapters => 'All chapters'; + @override String get next_episode => '下一集'; @@ -1164,6 +1170,9 @@ class AppLocalizationsZh extends AppLocalizations { @override String get next_25_episodes => '接下来的 25 集'; + @override + String get all_episodes => 'All episodes'; + @override String get cover_saved => '封面已保存'; diff --git a/lib/models/settings.dart b/lib/models/settings.dart index 154d04c7..303d61a4 100644 --- a/lib/models/settings.dart +++ b/lib/models/settings.dart @@ -82,6 +82,8 @@ class Settings { bool? saveAsCBZArchive; + int? concurrentDownloads; + String? downloadLocation; List? filterScanlatorList; @@ -271,6 +273,7 @@ class Settings { this.pureBlackDarkMode = false, this.downloadOnlyOnWifi = false, this.saveAsCBZArchive = false, + this.concurrentDownloads = 2, this.downloadLocation = "", this.cropBorders = false, this.libraryLocalSource, @@ -404,6 +407,7 @@ class Settings { doubleTapAnimationSpeed = json['doubleTapAnimationSpeed']; downloadLocation = json['downloadLocation']; downloadOnlyOnWifi = json['downloadOnlyOnWifi']; + concurrentDownloads = json['concurrentDownloads']; filterScanlatorList = (json['filterScanlatorList'] as List?) ?.map((e) => FilterScanlator.fromJson(e)) @@ -604,6 +608,7 @@ class Settings { 'doubleTapAnimationSpeed': doubleTapAnimationSpeed, 'downloadLocation': downloadLocation, 'downloadOnlyOnWifi': downloadOnlyOnWifi, + 'concurrentDownloads': concurrentDownloads, 'filterScanlatorList': filterScanlatorList, 'flexColorSchemeBlendLevel': flexColorSchemeBlendLevel, 'flexSchemeColorIndex': flexSchemeColorIndex, diff --git a/lib/models/settings.g.dart b/lib/models/settings.g.dart index dac2ecbf..d8bb0fd9 100644 --- a/lib/models/settings.g.dart +++ b/lib/models/settings.g.dart @@ -167,424 +167,429 @@ const SettingsSchema = CollectionSchema( type: IsarType.byte, enumMap: _SettingscolorFilterBlendModeEnumValueMap, ), - r'cookiesList': PropertySchema( + r'concurrentDownloads': PropertySchema( id: 28, + name: r'concurrentDownloads', + type: IsarType.long, + ), + r'cookiesList': PropertySchema( + id: 29, name: r'cookiesList', type: IsarType.objectList, target: r'MCookie', ), r'cropBorders': PropertySchema( - id: 29, + id: 30, name: r'cropBorders', type: IsarType.bool, ), r'customColorFilter': PropertySchema( - id: 30, + id: 31, name: r'customColorFilter', type: IsarType.object, target: r'CustomColorFilter', ), r'dateFormat': PropertySchema( - id: 31, + id: 32, name: r'dateFormat', type: IsarType.string, ), r'defaultDoubleTapToSkipLength': PropertySchema( - id: 32, + id: 33, name: r'defaultDoubleTapToSkipLength', type: IsarType.long, ), r'defaultPlayBackSpeed': PropertySchema( - id: 33, + id: 34, name: r'defaultPlayBackSpeed', type: IsarType.double, ), r'defaultReaderMode': PropertySchema( - id: 34, + id: 35, name: r'defaultReaderMode', type: IsarType.byte, enumMap: _SettingsdefaultReaderModeEnumValueMap, ), r'defaultSkipIntroLength': PropertySchema( - id: 35, + id: 36, name: r'defaultSkipIntroLength', type: IsarType.long, ), r'defaultSubtitleLang': PropertySchema( - id: 36, + id: 37, name: r'defaultSubtitleLang', type: IsarType.object, target: r'L10nLocale', ), r'disableSectionType': PropertySchema( - id: 37, + id: 38, name: r'disableSectionType', type: IsarType.byte, enumMap: _SettingsdisableSectionTypeEnumValueMap, ), r'displayType': PropertySchema( - id: 38, + id: 39, name: r'displayType', type: IsarType.byte, enumMap: _SettingsdisplayTypeEnumValueMap, ), r'doubleTapAnimationSpeed': PropertySchema( - id: 39, + id: 40, name: r'doubleTapAnimationSpeed', type: IsarType.long, ), r'downloadLocation': PropertySchema( - id: 40, + id: 41, name: r'downloadLocation', type: IsarType.string, ), r'downloadOnlyOnWifi': PropertySchema( - id: 41, + id: 42, name: r'downloadOnlyOnWifi', type: IsarType.bool, ), r'enableAniSkip': PropertySchema( - id: 42, + id: 43, name: r'enableAniSkip', type: IsarType.bool, ), r'enableAutoSkip': PropertySchema( - id: 43, + id: 44, name: r'enableAutoSkip', type: IsarType.bool, ), r'enableCustomColorFilter': PropertySchema( - id: 44, + id: 45, name: r'enableCustomColorFilter', type: IsarType.bool, ), r'filterScanlatorList': PropertySchema( - id: 45, + id: 46, name: r'filterScanlatorList', type: IsarType.objectList, target: r'FilterScanlator', ), r'flexColorSchemeBlendLevel': PropertySchema( - id: 46, + id: 47, name: r'flexColorSchemeBlendLevel', type: IsarType.double, ), r'flexSchemeColorIndex': PropertySchema( - id: 47, + id: 48, name: r'flexSchemeColorIndex', type: IsarType.long, ), r'followSystemTheme': PropertySchema( - id: 48, + id: 49, name: r'followSystemTheme', type: IsarType.bool, ), r'fullScreenPlayer': PropertySchema( - id: 49, + id: 50, name: r'fullScreenPlayer', type: IsarType.bool, ), r'fullScreenReader': PropertySchema( - id: 50, + id: 51, name: r'fullScreenReader', type: IsarType.bool, ), r'hideItems': PropertySchema( - id: 51, + id: 52, name: r'hideItems', type: IsarType.stringList, ), r'incognitoMode': PropertySchema( - id: 52, + id: 53, name: r'incognitoMode', type: IsarType.bool, ), r'libraryDownloadedChapters': PropertySchema( - id: 53, + id: 54, name: r'libraryDownloadedChapters', type: IsarType.bool, ), r'libraryFilterAnimeBookMarkedType': PropertySchema( - id: 54, + id: 55, name: r'libraryFilterAnimeBookMarkedType', type: IsarType.long, ), r'libraryFilterAnimeDownloadType': PropertySchema( - id: 55, + id: 56, name: r'libraryFilterAnimeDownloadType', type: IsarType.long, ), r'libraryFilterAnimeStartedType': PropertySchema( - id: 56, + id: 57, name: r'libraryFilterAnimeStartedType', type: IsarType.long, ), r'libraryFilterAnimeUnreadType': PropertySchema( - id: 57, + id: 58, name: r'libraryFilterAnimeUnreadType', type: IsarType.long, ), r'libraryFilterMangasBookMarkedType': PropertySchema( - id: 58, + id: 59, name: r'libraryFilterMangasBookMarkedType', type: IsarType.long, ), r'libraryFilterMangasDownloadType': PropertySchema( - id: 59, + id: 60, name: r'libraryFilterMangasDownloadType', type: IsarType.long, ), r'libraryFilterMangasStartedType': PropertySchema( - id: 60, + id: 61, name: r'libraryFilterMangasStartedType', type: IsarType.long, ), r'libraryFilterMangasUnreadType': PropertySchema( - id: 61, + id: 62, name: r'libraryFilterMangasUnreadType', type: IsarType.long, ), r'libraryFilterNovelBookMarkedType': PropertySchema( - id: 62, + id: 63, name: r'libraryFilterNovelBookMarkedType', type: IsarType.long, ), r'libraryFilterNovelDownloadType': PropertySchema( - id: 63, + id: 64, name: r'libraryFilterNovelDownloadType', type: IsarType.long, ), r'libraryFilterNovelStartedType': PropertySchema( - id: 64, + id: 65, name: r'libraryFilterNovelStartedType', type: IsarType.long, ), r'libraryFilterNovelUnreadType': PropertySchema( - id: 65, + id: 66, name: r'libraryFilterNovelUnreadType', type: IsarType.long, ), r'libraryLocalSource': PropertySchema( - id: 66, + id: 67, name: r'libraryLocalSource', type: IsarType.bool, ), r'libraryShowCategoryTabs': PropertySchema( - id: 67, + id: 68, name: r'libraryShowCategoryTabs', type: IsarType.bool, ), r'libraryShowContinueReadingButton': PropertySchema( - id: 68, + id: 69, name: r'libraryShowContinueReadingButton', type: IsarType.bool, ), r'libraryShowLanguage': PropertySchema( - id: 69, + id: 70, name: r'libraryShowLanguage', type: IsarType.bool, ), r'libraryShowNumbersOfItems': PropertySchema( - id: 70, + id: 71, name: r'libraryShowNumbersOfItems', type: IsarType.bool, ), r'locale': PropertySchema( - id: 71, + id: 72, name: r'locale', type: IsarType.object, target: r'L10nLocale', ), r'mangaExtensionsRepo': PropertySchema( - id: 72, + id: 73, name: r'mangaExtensionsRepo', type: IsarType.objectList, target: r'Repo', ), r'mangaGridSize': PropertySchema( - id: 73, + id: 74, name: r'mangaGridSize', type: IsarType.long, ), r'mangaHomeDisplayType': PropertySchema( - id: 74, + id: 75, name: r'mangaHomeDisplayType', type: IsarType.byte, enumMap: _SettingsmangaHomeDisplayTypeEnumValueMap, ), r'markEpisodeAsSeenType': PropertySchema( - id: 75, + id: 76, name: r'markEpisodeAsSeenType', type: IsarType.long, ), r'navigationOrder': PropertySchema( - id: 76, + id: 77, name: r'navigationOrder', type: IsarType.stringList, ), r'novelDisplayType': PropertySchema( - id: 77, + id: 78, name: r'novelDisplayType', type: IsarType.byte, enumMap: _SettingsnovelDisplayTypeEnumValueMap, ), r'novelExtensionsRepo': PropertySchema( - id: 78, + id: 79, name: r'novelExtensionsRepo', type: IsarType.objectList, target: r'Repo', ), r'novelFontSize': PropertySchema( - id: 79, + id: 80, name: r'novelFontSize', type: IsarType.long, ), r'novelGridSize': PropertySchema( - id: 80, + id: 81, name: r'novelGridSize', type: IsarType.long, ), r'novelLibraryDownloadedChapters': PropertySchema( - id: 81, + id: 82, name: r'novelLibraryDownloadedChapters', type: IsarType.bool, ), r'novelLibraryLocalSource': PropertySchema( - id: 82, + id: 83, name: r'novelLibraryLocalSource', type: IsarType.bool, ), r'novelLibraryShowCategoryTabs': PropertySchema( - id: 83, + id: 84, name: r'novelLibraryShowCategoryTabs', type: IsarType.bool, ), r'novelLibraryShowContinueReadingButton': PropertySchema( - id: 84, + id: 85, name: r'novelLibraryShowContinueReadingButton', type: IsarType.bool, ), r'novelLibraryShowLanguage': PropertySchema( - id: 85, + id: 86, name: r'novelLibraryShowLanguage', type: IsarType.bool, ), r'novelLibraryShowNumbersOfItems': PropertySchema( - id: 86, + id: 87, name: r'novelLibraryShowNumbersOfItems', type: IsarType.bool, ), r'novelTextAlign': PropertySchema( - id: 87, + id: 88, name: r'novelTextAlign', type: IsarType.byte, enumMap: _SettingsnovelTextAlignEnumValueMap, ), r'onlyIncludePinnedSources': PropertySchema( - id: 88, + id: 89, name: r'onlyIncludePinnedSources', type: IsarType.bool, ), r'pagePreloadAmount': PropertySchema( - id: 89, + id: 90, name: r'pagePreloadAmount', type: IsarType.long, ), r'personalPageModeList': PropertySchema( - id: 90, + id: 91, name: r'personalPageModeList', type: IsarType.objectList, target: r'PersonalPageMode', ), r'personalReaderModeList': PropertySchema( - id: 91, + id: 92, name: r'personalReaderModeList', type: IsarType.objectList, target: r'PersonalReaderMode', ), r'playerSubtitleSettings': PropertySchema( - id: 92, + id: 93, name: r'playerSubtitleSettings', type: IsarType.object, target: r'PlayerSubtitleSettings', ), r'pureBlackDarkMode': PropertySchema( - id: 93, + id: 94, name: r'pureBlackDarkMode', type: IsarType.bool, ), r'relativeTimesTamps': PropertySchema( - id: 94, + id: 95, name: r'relativeTimesTamps', type: IsarType.long, ), r'saveAsCBZArchive': PropertySchema( - id: 95, + id: 96, name: r'saveAsCBZArchive', type: IsarType.bool, ), r'scaleType': PropertySchema( - id: 96, + id: 97, name: r'scaleType', type: IsarType.byte, enumMap: _SettingsscaleTypeEnumValueMap, ), r'showPagesNumber': PropertySchema( - id: 97, + id: 98, name: r'showPagesNumber', type: IsarType.bool, ), r'sortChapterList': PropertySchema( - id: 98, + id: 99, name: r'sortChapterList', type: IsarType.objectList, target: r'SortChapter', ), r'sortLibraryAnime': PropertySchema( - id: 99, + id: 100, name: r'sortLibraryAnime', type: IsarType.object, target: r'SortLibraryManga', ), r'sortLibraryManga': PropertySchema( - id: 100, + id: 101, name: r'sortLibraryManga', type: IsarType.object, target: r'SortLibraryManga', ), r'sortLibraryNovel': PropertySchema( - id: 101, + id: 102, name: r'sortLibraryNovel', type: IsarType.object, target: r'SortLibraryManga', ), r'startDatebackup': PropertySchema( - id: 102, + id: 103, name: r'startDatebackup', type: IsarType.long, ), r'themeIsDark': PropertySchema( - id: 103, + id: 104, name: r'themeIsDark', type: IsarType.bool, ), r'updateProgressAfterReading': PropertySchema( - id: 104, + id: 105, name: r'updateProgressAfterReading', type: IsarType.bool, ), r'useLibass': PropertySchema( - id: 105, + id: 106, name: r'useLibass', type: IsarType.bool, ), r'usePageTapZones': PropertySchema( - id: 106, + id: 107, name: r'usePageTapZones', type: IsarType.bool, ), r'userAgent': PropertySchema( - id: 107, + id: 108, name: r'userAgent', type: IsarType.string, ) @@ -1019,156 +1024,157 @@ void _settingsSerialize( writer.writeBool(offsets[25], object.checkForExtensionUpdates); writer.writeBool(offsets[26], object.clearChapterCacheOnAppLaunch); writer.writeByte(offsets[27], object.colorFilterBlendMode.index); + writer.writeLong(offsets[28], object.concurrentDownloads); writer.writeObjectList( - offsets[28], + offsets[29], allOffsets, MCookieSchema.serialize, object.cookiesList, ); - writer.writeBool(offsets[29], object.cropBorders); + writer.writeBool(offsets[30], object.cropBorders); writer.writeObject( - offsets[30], + offsets[31], allOffsets, CustomColorFilterSchema.serialize, object.customColorFilter, ); - writer.writeString(offsets[31], object.dateFormat); - writer.writeLong(offsets[32], object.defaultDoubleTapToSkipLength); - writer.writeDouble(offsets[33], object.defaultPlayBackSpeed); - writer.writeByte(offsets[34], object.defaultReaderMode.index); - writer.writeLong(offsets[35], object.defaultSkipIntroLength); + writer.writeString(offsets[32], object.dateFormat); + writer.writeLong(offsets[33], object.defaultDoubleTapToSkipLength); + writer.writeDouble(offsets[34], object.defaultPlayBackSpeed); + writer.writeByte(offsets[35], object.defaultReaderMode.index); + writer.writeLong(offsets[36], object.defaultSkipIntroLength); writer.writeObject( - offsets[36], + offsets[37], allOffsets, L10nLocaleSchema.serialize, object.defaultSubtitleLang, ); - writer.writeByte(offsets[37], object.disableSectionType.index); - writer.writeByte(offsets[38], object.displayType.index); - writer.writeLong(offsets[39], object.doubleTapAnimationSpeed); - writer.writeString(offsets[40], object.downloadLocation); - writer.writeBool(offsets[41], object.downloadOnlyOnWifi); - writer.writeBool(offsets[42], object.enableAniSkip); - writer.writeBool(offsets[43], object.enableAutoSkip); - writer.writeBool(offsets[44], object.enableCustomColorFilter); + writer.writeByte(offsets[38], object.disableSectionType.index); + writer.writeByte(offsets[39], object.displayType.index); + writer.writeLong(offsets[40], object.doubleTapAnimationSpeed); + writer.writeString(offsets[41], object.downloadLocation); + writer.writeBool(offsets[42], object.downloadOnlyOnWifi); + writer.writeBool(offsets[43], object.enableAniSkip); + writer.writeBool(offsets[44], object.enableAutoSkip); + writer.writeBool(offsets[45], object.enableCustomColorFilter); writer.writeObjectList( - offsets[45], + offsets[46], allOffsets, FilterScanlatorSchema.serialize, object.filterScanlatorList, ); - writer.writeDouble(offsets[46], object.flexColorSchemeBlendLevel); - writer.writeLong(offsets[47], object.flexSchemeColorIndex); - writer.writeBool(offsets[48], object.followSystemTheme); - writer.writeBool(offsets[49], object.fullScreenPlayer); - writer.writeBool(offsets[50], object.fullScreenReader); - writer.writeStringList(offsets[51], object.hideItems); - writer.writeBool(offsets[52], object.incognitoMode); - writer.writeBool(offsets[53], object.libraryDownloadedChapters); - writer.writeLong(offsets[54], object.libraryFilterAnimeBookMarkedType); - writer.writeLong(offsets[55], object.libraryFilterAnimeDownloadType); - writer.writeLong(offsets[56], object.libraryFilterAnimeStartedType); - writer.writeLong(offsets[57], object.libraryFilterAnimeUnreadType); - writer.writeLong(offsets[58], object.libraryFilterMangasBookMarkedType); - writer.writeLong(offsets[59], object.libraryFilterMangasDownloadType); - writer.writeLong(offsets[60], object.libraryFilterMangasStartedType); - writer.writeLong(offsets[61], object.libraryFilterMangasUnreadType); - writer.writeLong(offsets[62], object.libraryFilterNovelBookMarkedType); - writer.writeLong(offsets[63], object.libraryFilterNovelDownloadType); - writer.writeLong(offsets[64], object.libraryFilterNovelStartedType); - writer.writeLong(offsets[65], object.libraryFilterNovelUnreadType); - writer.writeBool(offsets[66], object.libraryLocalSource); - writer.writeBool(offsets[67], object.libraryShowCategoryTabs); - writer.writeBool(offsets[68], object.libraryShowContinueReadingButton); - writer.writeBool(offsets[69], object.libraryShowLanguage); - writer.writeBool(offsets[70], object.libraryShowNumbersOfItems); + writer.writeDouble(offsets[47], object.flexColorSchemeBlendLevel); + writer.writeLong(offsets[48], object.flexSchemeColorIndex); + writer.writeBool(offsets[49], object.followSystemTheme); + writer.writeBool(offsets[50], object.fullScreenPlayer); + writer.writeBool(offsets[51], object.fullScreenReader); + writer.writeStringList(offsets[52], object.hideItems); + writer.writeBool(offsets[53], object.incognitoMode); + writer.writeBool(offsets[54], object.libraryDownloadedChapters); + writer.writeLong(offsets[55], object.libraryFilterAnimeBookMarkedType); + writer.writeLong(offsets[56], object.libraryFilterAnimeDownloadType); + writer.writeLong(offsets[57], object.libraryFilterAnimeStartedType); + writer.writeLong(offsets[58], object.libraryFilterAnimeUnreadType); + writer.writeLong(offsets[59], object.libraryFilterMangasBookMarkedType); + writer.writeLong(offsets[60], object.libraryFilterMangasDownloadType); + writer.writeLong(offsets[61], object.libraryFilterMangasStartedType); + writer.writeLong(offsets[62], object.libraryFilterMangasUnreadType); + writer.writeLong(offsets[63], object.libraryFilterNovelBookMarkedType); + writer.writeLong(offsets[64], object.libraryFilterNovelDownloadType); + writer.writeLong(offsets[65], object.libraryFilterNovelStartedType); + writer.writeLong(offsets[66], object.libraryFilterNovelUnreadType); + writer.writeBool(offsets[67], object.libraryLocalSource); + writer.writeBool(offsets[68], object.libraryShowCategoryTabs); + writer.writeBool(offsets[69], object.libraryShowContinueReadingButton); + writer.writeBool(offsets[70], object.libraryShowLanguage); + writer.writeBool(offsets[71], object.libraryShowNumbersOfItems); writer.writeObject( - offsets[71], + offsets[72], allOffsets, L10nLocaleSchema.serialize, object.locale, ); writer.writeObjectList( - offsets[72], + offsets[73], allOffsets, RepoSchema.serialize, object.mangaExtensionsRepo, ); - writer.writeLong(offsets[73], object.mangaGridSize); - writer.writeByte(offsets[74], object.mangaHomeDisplayType.index); - writer.writeLong(offsets[75], object.markEpisodeAsSeenType); - writer.writeStringList(offsets[76], object.navigationOrder); - writer.writeByte(offsets[77], object.novelDisplayType.index); + writer.writeLong(offsets[74], object.mangaGridSize); + writer.writeByte(offsets[75], object.mangaHomeDisplayType.index); + writer.writeLong(offsets[76], object.markEpisodeAsSeenType); + writer.writeStringList(offsets[77], object.navigationOrder); + writer.writeByte(offsets[78], object.novelDisplayType.index); writer.writeObjectList( - offsets[78], + offsets[79], allOffsets, RepoSchema.serialize, object.novelExtensionsRepo, ); - writer.writeLong(offsets[79], object.novelFontSize); - writer.writeLong(offsets[80], object.novelGridSize); - writer.writeBool(offsets[81], object.novelLibraryDownloadedChapters); - writer.writeBool(offsets[82], object.novelLibraryLocalSource); - writer.writeBool(offsets[83], object.novelLibraryShowCategoryTabs); - writer.writeBool(offsets[84], object.novelLibraryShowContinueReadingButton); - writer.writeBool(offsets[85], object.novelLibraryShowLanguage); - writer.writeBool(offsets[86], object.novelLibraryShowNumbersOfItems); - writer.writeByte(offsets[87], object.novelTextAlign.index); - writer.writeBool(offsets[88], object.onlyIncludePinnedSources); - writer.writeLong(offsets[89], object.pagePreloadAmount); + writer.writeLong(offsets[80], object.novelFontSize); + writer.writeLong(offsets[81], object.novelGridSize); + writer.writeBool(offsets[82], object.novelLibraryDownloadedChapters); + writer.writeBool(offsets[83], object.novelLibraryLocalSource); + writer.writeBool(offsets[84], object.novelLibraryShowCategoryTabs); + writer.writeBool(offsets[85], object.novelLibraryShowContinueReadingButton); + writer.writeBool(offsets[86], object.novelLibraryShowLanguage); + writer.writeBool(offsets[87], object.novelLibraryShowNumbersOfItems); + writer.writeByte(offsets[88], object.novelTextAlign.index); + writer.writeBool(offsets[89], object.onlyIncludePinnedSources); + writer.writeLong(offsets[90], object.pagePreloadAmount); writer.writeObjectList( - offsets[90], + offsets[91], allOffsets, PersonalPageModeSchema.serialize, object.personalPageModeList, ); writer.writeObjectList( - offsets[91], + offsets[92], allOffsets, PersonalReaderModeSchema.serialize, object.personalReaderModeList, ); writer.writeObject( - offsets[92], + offsets[93], allOffsets, PlayerSubtitleSettingsSchema.serialize, object.playerSubtitleSettings, ); - writer.writeBool(offsets[93], object.pureBlackDarkMode); - writer.writeLong(offsets[94], object.relativeTimesTamps); - writer.writeBool(offsets[95], object.saveAsCBZArchive); - writer.writeByte(offsets[96], object.scaleType.index); - writer.writeBool(offsets[97], object.showPagesNumber); + writer.writeBool(offsets[94], object.pureBlackDarkMode); + writer.writeLong(offsets[95], object.relativeTimesTamps); + writer.writeBool(offsets[96], object.saveAsCBZArchive); + writer.writeByte(offsets[97], object.scaleType.index); + writer.writeBool(offsets[98], object.showPagesNumber); writer.writeObjectList( - offsets[98], + offsets[99], allOffsets, SortChapterSchema.serialize, object.sortChapterList, ); writer.writeObject( - offsets[99], + offsets[100], allOffsets, SortLibraryMangaSchema.serialize, object.sortLibraryAnime, ); writer.writeObject( - offsets[100], + offsets[101], allOffsets, SortLibraryMangaSchema.serialize, object.sortLibraryManga, ); writer.writeObject( - offsets[101], + offsets[102], allOffsets, SortLibraryMangaSchema.serialize, object.sortLibraryNovel, ); - writer.writeLong(offsets[102], object.startDatebackup); - writer.writeBool(offsets[103], object.themeIsDark); - writer.writeBool(offsets[104], object.updateProgressAfterReading); - writer.writeBool(offsets[105], object.useLibass); - writer.writeBool(offsets[106], object.usePageTapZones); - writer.writeString(offsets[107], object.userAgent); + writer.writeLong(offsets[103], object.startDatebackup); + writer.writeBool(offsets[104], object.themeIsDark); + writer.writeBool(offsets[105], object.updateProgressAfterReading); + writer.writeBool(offsets[106], object.useLibass); + writer.writeBool(offsets[107], object.usePageTapZones); + writer.writeString(offsets[108], object.userAgent); } Settings _settingsDeserialize( @@ -1235,147 +1241,148 @@ Settings _settingsDeserialize( colorFilterBlendMode: _SettingscolorFilterBlendModeValueEnumMap[ reader.readByteOrNull(offsets[27])] ?? ColorFilterBlendMode.none, + concurrentDownloads: reader.readLongOrNull(offsets[28]), cookiesList: reader.readObjectList( - offsets[28], + offsets[29], MCookieSchema.deserialize, allOffsets, MCookie(), ), - cropBorders: reader.readBoolOrNull(offsets[29]), + cropBorders: reader.readBoolOrNull(offsets[30]), customColorFilter: reader.readObjectOrNull( - offsets[30], + offsets[31], CustomColorFilterSchema.deserialize, allOffsets, ), - dateFormat: reader.readStringOrNull(offsets[31]), - defaultDoubleTapToSkipLength: reader.readLongOrNull(offsets[32]), - defaultPlayBackSpeed: reader.readDoubleOrNull(offsets[33]), + dateFormat: reader.readStringOrNull(offsets[32]), + defaultDoubleTapToSkipLength: reader.readLongOrNull(offsets[33]), + defaultPlayBackSpeed: reader.readDoubleOrNull(offsets[34]), defaultReaderMode: _SettingsdefaultReaderModeValueEnumMap[ - reader.readByteOrNull(offsets[34])] ?? + reader.readByteOrNull(offsets[35])] ?? ReaderMode.vertical, - defaultSkipIntroLength: reader.readLongOrNull(offsets[35]), + defaultSkipIntroLength: reader.readLongOrNull(offsets[36]), disableSectionType: _SettingsdisableSectionTypeValueEnumMap[ - reader.readByteOrNull(offsets[37])] ?? + reader.readByteOrNull(offsets[38])] ?? SectionType.all, displayType: - _SettingsdisplayTypeValueEnumMap[reader.readByteOrNull(offsets[38])] ?? + _SettingsdisplayTypeValueEnumMap[reader.readByteOrNull(offsets[39])] ?? DisplayType.compactGrid, - doubleTapAnimationSpeed: reader.readLongOrNull(offsets[39]), - downloadLocation: reader.readStringOrNull(offsets[40]), - downloadOnlyOnWifi: reader.readBoolOrNull(offsets[41]), - enableAniSkip: reader.readBoolOrNull(offsets[42]), - enableAutoSkip: reader.readBoolOrNull(offsets[43]), - enableCustomColorFilter: reader.readBoolOrNull(offsets[44]), - flexColorSchemeBlendLevel: reader.readDoubleOrNull(offsets[46]), - flexSchemeColorIndex: reader.readLongOrNull(offsets[47]), - followSystemTheme: reader.readBoolOrNull(offsets[48]), - fullScreenPlayer: reader.readBoolOrNull(offsets[49]), - fullScreenReader: reader.readBoolOrNull(offsets[50]), - hideItems: reader.readStringList(offsets[51]), + doubleTapAnimationSpeed: reader.readLongOrNull(offsets[40]), + downloadLocation: reader.readStringOrNull(offsets[41]), + downloadOnlyOnWifi: reader.readBoolOrNull(offsets[42]), + enableAniSkip: reader.readBoolOrNull(offsets[43]), + enableAutoSkip: reader.readBoolOrNull(offsets[44]), + enableCustomColorFilter: reader.readBoolOrNull(offsets[45]), + flexColorSchemeBlendLevel: reader.readDoubleOrNull(offsets[47]), + flexSchemeColorIndex: reader.readLongOrNull(offsets[48]), + followSystemTheme: reader.readBoolOrNull(offsets[49]), + fullScreenPlayer: reader.readBoolOrNull(offsets[50]), + fullScreenReader: reader.readBoolOrNull(offsets[51]), + hideItems: reader.readStringList(offsets[52]), id: id, - incognitoMode: reader.readBoolOrNull(offsets[52]), - libraryDownloadedChapters: reader.readBoolOrNull(offsets[53]), - libraryFilterAnimeBookMarkedType: reader.readLongOrNull(offsets[54]), - libraryFilterAnimeDownloadType: reader.readLongOrNull(offsets[55]), - libraryFilterAnimeStartedType: reader.readLongOrNull(offsets[56]), - libraryFilterAnimeUnreadType: reader.readLongOrNull(offsets[57]), - libraryFilterMangasBookMarkedType: reader.readLongOrNull(offsets[58]), - libraryFilterMangasDownloadType: reader.readLongOrNull(offsets[59]), - libraryFilterMangasStartedType: reader.readLongOrNull(offsets[60]), - libraryFilterMangasUnreadType: reader.readLongOrNull(offsets[61]), - libraryFilterNovelBookMarkedType: reader.readLongOrNull(offsets[62]), - libraryFilterNovelDownloadType: reader.readLongOrNull(offsets[63]), - libraryFilterNovelStartedType: reader.readLongOrNull(offsets[64]), - libraryFilterNovelUnreadType: reader.readLongOrNull(offsets[65]), - libraryLocalSource: reader.readBoolOrNull(offsets[66]), - libraryShowCategoryTabs: reader.readBoolOrNull(offsets[67]), - libraryShowContinueReadingButton: reader.readBoolOrNull(offsets[68]), - libraryShowLanguage: reader.readBoolOrNull(offsets[69]), - libraryShowNumbersOfItems: reader.readBoolOrNull(offsets[70]), + incognitoMode: reader.readBoolOrNull(offsets[53]), + libraryDownloadedChapters: reader.readBoolOrNull(offsets[54]), + libraryFilterAnimeBookMarkedType: reader.readLongOrNull(offsets[55]), + libraryFilterAnimeDownloadType: reader.readLongOrNull(offsets[56]), + libraryFilterAnimeStartedType: reader.readLongOrNull(offsets[57]), + libraryFilterAnimeUnreadType: reader.readLongOrNull(offsets[58]), + libraryFilterMangasBookMarkedType: reader.readLongOrNull(offsets[59]), + libraryFilterMangasDownloadType: reader.readLongOrNull(offsets[60]), + libraryFilterMangasStartedType: reader.readLongOrNull(offsets[61]), + libraryFilterMangasUnreadType: reader.readLongOrNull(offsets[62]), + libraryFilterNovelBookMarkedType: reader.readLongOrNull(offsets[63]), + libraryFilterNovelDownloadType: reader.readLongOrNull(offsets[64]), + libraryFilterNovelStartedType: reader.readLongOrNull(offsets[65]), + libraryFilterNovelUnreadType: reader.readLongOrNull(offsets[66]), + libraryLocalSource: reader.readBoolOrNull(offsets[67]), + libraryShowCategoryTabs: reader.readBoolOrNull(offsets[68]), + libraryShowContinueReadingButton: reader.readBoolOrNull(offsets[69]), + libraryShowLanguage: reader.readBoolOrNull(offsets[70]), + libraryShowNumbersOfItems: reader.readBoolOrNull(offsets[71]), mangaExtensionsRepo: reader.readObjectList( - offsets[72], + offsets[73], RepoSchema.deserialize, allOffsets, Repo(), ), - mangaGridSize: reader.readLongOrNull(offsets[73]), + mangaGridSize: reader.readLongOrNull(offsets[74]), mangaHomeDisplayType: _SettingsmangaHomeDisplayTypeValueEnumMap[ - reader.readByteOrNull(offsets[74])] ?? + reader.readByteOrNull(offsets[75])] ?? DisplayType.comfortableGrid, - markEpisodeAsSeenType: reader.readLongOrNull(offsets[75]), - navigationOrder: reader.readStringList(offsets[76]), + markEpisodeAsSeenType: reader.readLongOrNull(offsets[76]), + navigationOrder: reader.readStringList(offsets[77]), novelDisplayType: _SettingsnovelDisplayTypeValueEnumMap[ - reader.readByteOrNull(offsets[77])] ?? + reader.readByteOrNull(offsets[78])] ?? DisplayType.comfortableGrid, novelExtensionsRepo: reader.readObjectList( - offsets[78], + offsets[79], RepoSchema.deserialize, allOffsets, Repo(), ), - novelFontSize: reader.readLongOrNull(offsets[79]), - novelLibraryDownloadedChapters: reader.readBoolOrNull(offsets[81]), - novelLibraryLocalSource: reader.readBoolOrNull(offsets[82]), - novelLibraryShowCategoryTabs: reader.readBoolOrNull(offsets[83]), - novelLibraryShowContinueReadingButton: reader.readBoolOrNull(offsets[84]), - novelLibraryShowLanguage: reader.readBoolOrNull(offsets[85]), - novelLibraryShowNumbersOfItems: reader.readBoolOrNull(offsets[86]), + novelFontSize: reader.readLongOrNull(offsets[80]), + novelLibraryDownloadedChapters: reader.readBoolOrNull(offsets[82]), + novelLibraryLocalSource: reader.readBoolOrNull(offsets[83]), + novelLibraryShowCategoryTabs: reader.readBoolOrNull(offsets[84]), + novelLibraryShowContinueReadingButton: reader.readBoolOrNull(offsets[85]), + novelLibraryShowLanguage: reader.readBoolOrNull(offsets[86]), + novelLibraryShowNumbersOfItems: reader.readBoolOrNull(offsets[87]), novelTextAlign: _SettingsnovelTextAlignValueEnumMap[ - reader.readByteOrNull(offsets[87])] ?? + reader.readByteOrNull(offsets[88])] ?? NovelTextAlign.left, - onlyIncludePinnedSources: reader.readBoolOrNull(offsets[88]), - pagePreloadAmount: reader.readLongOrNull(offsets[89]), + onlyIncludePinnedSources: reader.readBoolOrNull(offsets[89]), + pagePreloadAmount: reader.readLongOrNull(offsets[90]), personalPageModeList: reader.readObjectList( - offsets[90], + offsets[91], PersonalPageModeSchema.deserialize, allOffsets, PersonalPageMode(), ), personalReaderModeList: reader.readObjectList( - offsets[91], + offsets[92], PersonalReaderModeSchema.deserialize, allOffsets, PersonalReaderMode(), ), playerSubtitleSettings: reader.readObjectOrNull( - offsets[92], + offsets[93], PlayerSubtitleSettingsSchema.deserialize, allOffsets, ), - pureBlackDarkMode: reader.readBoolOrNull(offsets[93]), - relativeTimesTamps: reader.readLongOrNull(offsets[94]), - saveAsCBZArchive: reader.readBoolOrNull(offsets[95]), + pureBlackDarkMode: reader.readBoolOrNull(offsets[94]), + relativeTimesTamps: reader.readLongOrNull(offsets[95]), + saveAsCBZArchive: reader.readBoolOrNull(offsets[96]), scaleType: - _SettingsscaleTypeValueEnumMap[reader.readByteOrNull(offsets[96])] ?? + _SettingsscaleTypeValueEnumMap[reader.readByteOrNull(offsets[97])] ?? ScaleType.fitScreen, - showPagesNumber: reader.readBoolOrNull(offsets[97]), + showPagesNumber: reader.readBoolOrNull(offsets[98]), sortChapterList: reader.readObjectList( - offsets[98], + offsets[99], SortChapterSchema.deserialize, allOffsets, SortChapter(), ), sortLibraryAnime: reader.readObjectOrNull( - offsets[99], - SortLibraryMangaSchema.deserialize, - allOffsets, - ), - sortLibraryManga: reader.readObjectOrNull( offsets[100], SortLibraryMangaSchema.deserialize, allOffsets, ), - sortLibraryNovel: reader.readObjectOrNull( + sortLibraryManga: reader.readObjectOrNull( offsets[101], SortLibraryMangaSchema.deserialize, allOffsets, ), - startDatebackup: reader.readLongOrNull(offsets[102]), - themeIsDark: reader.readBoolOrNull(offsets[103]), - updateProgressAfterReading: reader.readBoolOrNull(offsets[104]), - useLibass: reader.readBoolOrNull(offsets[105]), - usePageTapZones: reader.readBoolOrNull(offsets[106]), - userAgent: reader.readStringOrNull(offsets[107]), + sortLibraryNovel: reader.readObjectOrNull( + offsets[102], + SortLibraryMangaSchema.deserialize, + allOffsets, + ), + startDatebackup: reader.readLongOrNull(offsets[103]), + themeIsDark: reader.readBoolOrNull(offsets[104]), + updateProgressAfterReading: reader.readBoolOrNull(offsets[105]), + useLibass: reader.readBoolOrNull(offsets[106]), + usePageTapZones: reader.readBoolOrNull(offsets[107]), + userAgent: reader.readStringOrNull(offsets[108]), ); object.chapterFilterBookmarkedList = reader.readObjectList( @@ -1391,22 +1398,22 @@ Settings _settingsDeserialize( ChapterFilterUnread(), ); object.defaultSubtitleLang = reader.readObjectOrNull( - offsets[36], + offsets[37], L10nLocaleSchema.deserialize, allOffsets, ); object.filterScanlatorList = reader.readObjectList( - offsets[45], + offsets[46], FilterScanlatorSchema.deserialize, allOffsets, FilterScanlator(), ); object.locale = reader.readObjectOrNull( - offsets[71], + offsets[72], L10nLocaleSchema.deserialize, allOffsets, ); - object.novelGridSize = reader.readLongOrNull(offsets[80]); + object.novelGridSize = reader.readLongOrNull(offsets[81]); return object; } @@ -1515,51 +1522,51 @@ P _settingsDeserializeProp

( reader.readByteOrNull(offset)] ?? ColorFilterBlendMode.none) as P; case 28: + return (reader.readLongOrNull(offset)) as P; + case 29: return (reader.readObjectList( offset, MCookieSchema.deserialize, allOffsets, MCookie(), )) as P; - case 29: - return (reader.readBoolOrNull(offset)) as P; case 30: + return (reader.readBoolOrNull(offset)) as P; + case 31: return (reader.readObjectOrNull( offset, CustomColorFilterSchema.deserialize, allOffsets, )) as P; - case 31: - return (reader.readStringOrNull(offset)) as P; case 32: - return (reader.readLongOrNull(offset)) as P; + return (reader.readStringOrNull(offset)) as P; case 33: - return (reader.readDoubleOrNull(offset)) as P; + return (reader.readLongOrNull(offset)) as P; case 34: + return (reader.readDoubleOrNull(offset)) as P; + case 35: return (_SettingsdefaultReaderModeValueEnumMap[ reader.readByteOrNull(offset)] ?? ReaderMode.vertical) as P; - case 35: - return (reader.readLongOrNull(offset)) as P; case 36: + return (reader.readLongOrNull(offset)) as P; + case 37: return (reader.readObjectOrNull( offset, L10nLocaleSchema.deserialize, allOffsets, )) as P; - case 37: + case 38: return (_SettingsdisableSectionTypeValueEnumMap[ reader.readByteOrNull(offset)] ?? SectionType.all) as P; - case 38: + case 39: return (_SettingsdisplayTypeValueEnumMap[reader.readByteOrNull(offset)] ?? DisplayType.compactGrid) as P; - case 39: - return (reader.readLongOrNull(offset)) as P; case 40: - return (reader.readStringOrNull(offset)) as P; + return (reader.readLongOrNull(offset)) as P; case 41: - return (reader.readBoolOrNull(offset)) as P; + return (reader.readStringOrNull(offset)) as P; case 42: return (reader.readBoolOrNull(offset)) as P; case 43: @@ -1567,30 +1574,30 @@ P _settingsDeserializeProp

( case 44: return (reader.readBoolOrNull(offset)) as P; case 45: + return (reader.readBoolOrNull(offset)) as P; + case 46: return (reader.readObjectList( offset, FilterScanlatorSchema.deserialize, allOffsets, FilterScanlator(), )) as P; - case 46: - return (reader.readDoubleOrNull(offset)) as P; case 47: - return (reader.readLongOrNull(offset)) as P; + return (reader.readDoubleOrNull(offset)) as P; case 48: - return (reader.readBoolOrNull(offset)) as P; + return (reader.readLongOrNull(offset)) as P; case 49: return (reader.readBoolOrNull(offset)) as P; case 50: return (reader.readBoolOrNull(offset)) as P; case 51: - return (reader.readStringList(offset)) as P; - case 52: return (reader.readBoolOrNull(offset)) as P; + case 52: + return (reader.readStringList(offset)) as P; case 53: return (reader.readBoolOrNull(offset)) as P; case 54: - return (reader.readLongOrNull(offset)) as P; + return (reader.readBoolOrNull(offset)) as P; case 55: return (reader.readLongOrNull(offset)) as P; case 56: @@ -1614,7 +1621,7 @@ P _settingsDeserializeProp

( case 65: return (reader.readLongOrNull(offset)) as P; case 66: - return (reader.readBoolOrNull(offset)) as P; + return (reader.readLongOrNull(offset)) as P; case 67: return (reader.readBoolOrNull(offset)) as P; case 68: @@ -1624,45 +1631,45 @@ P _settingsDeserializeProp

( case 70: return (reader.readBoolOrNull(offset)) as P; case 71: + return (reader.readBoolOrNull(offset)) as P; + case 72: return (reader.readObjectOrNull( offset, L10nLocaleSchema.deserialize, allOffsets, )) as P; - case 72: + case 73: return (reader.readObjectList( offset, RepoSchema.deserialize, allOffsets, Repo(), )) as P; - case 73: - return (reader.readLongOrNull(offset)) as P; case 74: + return (reader.readLongOrNull(offset)) as P; + case 75: return (_SettingsmangaHomeDisplayTypeValueEnumMap[ reader.readByteOrNull(offset)] ?? DisplayType.comfortableGrid) as P; - case 75: - return (reader.readLongOrNull(offset)) as P; case 76: - return (reader.readStringList(offset)) as P; + return (reader.readLongOrNull(offset)) as P; case 77: + return (reader.readStringList(offset)) as P; + case 78: return (_SettingsnovelDisplayTypeValueEnumMap[ reader.readByteOrNull(offset)] ?? DisplayType.comfortableGrid) as P; - case 78: + case 79: return (reader.readObjectList( offset, RepoSchema.deserialize, allOffsets, Repo(), )) as P; - case 79: - return (reader.readLongOrNull(offset)) as P; case 80: return (reader.readLongOrNull(offset)) as P; case 81: - return (reader.readBoolOrNull(offset)) as P; + return (reader.readLongOrNull(offset)) as P; case 82: return (reader.readBoolOrNull(offset)) as P; case 83: @@ -1674,57 +1681,53 @@ P _settingsDeserializeProp

( case 86: return (reader.readBoolOrNull(offset)) as P; case 87: + return (reader.readBoolOrNull(offset)) as P; + case 88: return (_SettingsnovelTextAlignValueEnumMap[ reader.readByteOrNull(offset)] ?? NovelTextAlign.left) as P; - case 88: - return (reader.readBoolOrNull(offset)) as P; case 89: - return (reader.readLongOrNull(offset)) as P; + return (reader.readBoolOrNull(offset)) as P; case 90: + return (reader.readLongOrNull(offset)) as P; + case 91: return (reader.readObjectList( offset, PersonalPageModeSchema.deserialize, allOffsets, PersonalPageMode(), )) as P; - case 91: + case 92: return (reader.readObjectList( offset, PersonalReaderModeSchema.deserialize, allOffsets, PersonalReaderMode(), )) as P; - case 92: + case 93: return (reader.readObjectOrNull( offset, PlayerSubtitleSettingsSchema.deserialize, allOffsets, )) as P; - case 93: - return (reader.readBoolOrNull(offset)) as P; case 94: - return (reader.readLongOrNull(offset)) as P; - case 95: return (reader.readBoolOrNull(offset)) as P; + case 95: + return (reader.readLongOrNull(offset)) as P; case 96: + return (reader.readBoolOrNull(offset)) as P; + case 97: return (_SettingsscaleTypeValueEnumMap[reader.readByteOrNull(offset)] ?? ScaleType.fitScreen) as P; - case 97: - return (reader.readBoolOrNull(offset)) as P; case 98: + return (reader.readBoolOrNull(offset)) as P; + case 99: return (reader.readObjectList( offset, SortChapterSchema.deserialize, allOffsets, SortChapter(), )) as P; - case 99: - return (reader.readObjectOrNull( - offset, - SortLibraryMangaSchema.deserialize, - allOffsets, - )) as P; case 100: return (reader.readObjectOrNull( offset, @@ -1738,9 +1741,13 @@ P _settingsDeserializeProp

( allOffsets, )) as P; case 102: - return (reader.readLongOrNull(offset)) as P; + return (reader.readObjectOrNull( + offset, + SortLibraryMangaSchema.deserialize, + allOffsets, + )) as P; case 103: - return (reader.readBoolOrNull(offset)) as P; + return (reader.readLongOrNull(offset)) as P; case 104: return (reader.readBoolOrNull(offset)) as P; case 105: @@ -1748,6 +1755,8 @@ P _settingsDeserializeProp

( case 106: return (reader.readBoolOrNull(offset)) as P; case 107: + return (reader.readBoolOrNull(offset)) as P; + case 108: return (reader.readStringOrNull(offset)) as P; default: throw IsarError('Unknown property with id $propertyId'); @@ -4100,6 +4109,80 @@ extension SettingsQueryFilter }); } + QueryBuilder + concurrentDownloadsIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'concurrentDownloads', + )); + }); + } + + QueryBuilder + concurrentDownloadsIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'concurrentDownloads', + )); + }); + } + + QueryBuilder + concurrentDownloadsEqualTo(int? value) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'concurrentDownloads', + value: value, + )); + }); + } + + QueryBuilder + concurrentDownloadsGreaterThan( + int? value, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'concurrentDownloads', + value: value, + )); + }); + } + + QueryBuilder + concurrentDownloadsLessThan( + int? value, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'concurrentDownloads', + value: value, + )); + }); + } + + QueryBuilder + concurrentDownloadsBetween( + int? lower, + int? upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'concurrentDownloads', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + )); + }); + } + QueryBuilder cookiesListIsNull() { return QueryBuilder.apply(this, (query) { return query.addFilterCondition(const FilterCondition.isNull( @@ -9509,6 +9592,19 @@ extension SettingsQuerySortBy on QueryBuilder { }); } + QueryBuilder sortByConcurrentDownloads() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'concurrentDownloads', Sort.asc); + }); + } + + QueryBuilder + sortByConcurrentDownloadsDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'concurrentDownloads', Sort.desc); + }); + } + QueryBuilder sortByCropBorders() { return QueryBuilder.apply(this, (query) { return query.addSortBy(r'cropBorders', Sort.asc); @@ -10613,6 +10709,19 @@ extension SettingsQuerySortThenBy }); } + QueryBuilder thenByConcurrentDownloads() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'concurrentDownloads', Sort.asc); + }); + } + + QueryBuilder + thenByConcurrentDownloadsDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'concurrentDownloads', Sort.desc); + }); + } + QueryBuilder thenByCropBorders() { return QueryBuilder.apply(this, (query) { return query.addSortBy(r'cropBorders', Sort.asc); @@ -11607,6 +11716,12 @@ extension SettingsQueryWhereDistinct }); } + QueryBuilder distinctByConcurrentDownloads() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'concurrentDownloads'); + }); + } + QueryBuilder distinctByCropBorders() { return QueryBuilder.apply(this, (query) { return query.addDistinctBy(r'cropBorders'); @@ -12237,6 +12352,12 @@ extension SettingsQueryProperty }); } + QueryBuilder concurrentDownloadsProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'concurrentDownloads'); + }); + } + QueryBuilder?, QQueryOperations> cookiesListProperty() { return QueryBuilder.apply(this, (query) { diff --git a/lib/modules/manga/detail/manga_detail_view.dart b/lib/modules/manga/detail/manga_detail_view.dart index 26c7053c..10a1c746 100644 --- a/lib/modules/manga/detail/manga_detail_view.dart +++ b/lib/modules/manga/detail/manga_detail_view.dart @@ -443,6 +443,14 @@ class _MangaDetailViewState extends ConsumerState : context.l10n.unwatched, ), ), + PopupMenuItem( + value: 5, + child: Text( + widget.itemType != ItemType.anime + ? context.l10n.all_chapters + : context.l10n.all_episodes, + ), + ), ]; }, onSelected: (value) { @@ -523,6 +531,25 @@ class _MangaDetailViewState extends ConsumerState ); } } + } else if (value == 5) { + final allChapters = + isar.chapters + .filter() + .idIsNotNull() + .mangaIdEqualTo(widget.manga!.id!) + .findAllSync(); + for (var chapter in allChapters) { + final entry = + isar.downloads + .filter() + .idEqualTo(chapter.id) + .findFirstSync(); + if (entry == null || !entry.isDownload!) { + ref.watch( + downloadChapterProvider(chapter: chapter), + ); + } + } } }, ), diff --git a/lib/modules/manga/download/providers/download_provider.dart b/lib/modules/manga/download/providers/download_provider.dart index 865858f1..1b97f5a4 100644 --- a/lib/modules/manga/download/providers/download_provider.dart +++ b/lib/modules/manga/download/providers/download_provider.dart @@ -40,6 +40,7 @@ Future downloadChapter( botToast(navigatorKey.currentContext!.l10n.downloads_are_limited_to_wifi); return; } + final concurrentDownloads = ref.watch(concurrentDownloadsStateProvider); final http = MClient.init( reqcopyWith: {'useDartHttpClient': true, 'followRedirects': false}, ); @@ -183,6 +184,7 @@ Future downloadChapter( headers: videosUrls.first.headers ?? {}, fileName: p.join(mangaMainDirectory!.path, "$chapterName.mp4"), chapter: chapter, + concurrentDownloads: concurrentDownloads, ); } else { pageUrls = [PageUrl(videosUrls.first.url)]; @@ -326,7 +328,7 @@ Future downloadChapter( }); } else { savePageUrls(); - await MDownloader(chapter: chapter, pageUrls: pages).download((progress) { + await MDownloader(chapter: chapter, pageUrls: pages, concurrentDownloads: concurrentDownloads).download((progress) { setProgress(progress); }); } diff --git a/lib/modules/manga/download/providers/download_provider.g.dart b/lib/modules/manga/download/providers/download_provider.g.dart index 36ab0d8a..73e6cb76 100644 --- a/lib/modules/manga/download/providers/download_provider.g.dart +++ b/lib/modules/manga/download/providers/download_provider.g.dart @@ -6,7 +6,7 @@ part of 'download_provider.dart'; // RiverpodGenerator // ************************************************************************** -String _$downloadChapterHash() => r'd729e45de171814dada724bf6004aeca7ea85a0a'; +String _$downloadChapterHash() => r'ab708c05c18d3449efbb8064f3488adb0e68b1f2'; /// Copied from Dart SDK class _SystemHash { diff --git a/lib/modules/more/settings/downloads/downloads_screen.dart b/lib/modules/more/settings/downloads/downloads_screen.dart index ea6188af..b3c46de3 100644 --- a/lib/modules/more/settings/downloads/downloads_screen.dart +++ b/lib/modules/more/settings/downloads/downloads_screen.dart @@ -2,6 +2,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:mangayomi/modules/more/settings/downloads/providers/downloads_state_provider.dart'; import 'package:mangayomi/providers/l10n_providers.dart'; +import 'package:mangayomi/utils/extensions/build_context_extensions.dart'; +import 'package:numberpicker/numberpicker.dart'; class DownloadsScreen extends ConsumerStatefulWidget { const DownloadsScreen({super.key}); @@ -15,6 +17,7 @@ class _DownloadsScreenState extends ConsumerState { Widget build(BuildContext context) { final saveAsCBZArchiveState = ref.watch(saveAsCBZArchiveStateProvider); final onlyOnWifiState = ref.watch(onlyOnWifiStateProvider); + final concurrentDownloads = ref.watch(concurrentDownloadsStateProvider); final l10n = l10nLocalizations(context); return Scaffold( appBar: AppBar(title: Text(l10n!.downloads)), @@ -35,6 +38,77 @@ class _DownloadsScreenState extends ConsumerState { ref.read(saveAsCBZArchiveStateProvider.notifier).set(value); }, ), + ListTile( + onTap: () { + int currentIntValue = concurrentDownloads; + showDialog( + context: context, + builder: (context) { + return AlertDialog( + title: Text(context.l10n.concurrent_downloads), + content: StatefulBuilder( + builder: + (context, setState) => SizedBox( + height: 200, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + NumberPicker( + value: currentIntValue, + minValue: 1, + maxValue: 255, + step: 1, + haptics: true, + textMapper: (numberText) => numberText, + onChanged: + (value) => setState( + () => currentIntValue = value, + ), + ), + ], + ), + ), + ), + actions: [ + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton( + onPressed: () async { + Navigator.pop(context); + }, + child: Text( + context.l10n.cancel, + style: TextStyle(color: context.primaryColor), + ), + ), + TextButton( + onPressed: () async { + ref + .read( + concurrentDownloadsStateProvider.notifier, + ) + .set(currentIntValue); + Navigator.pop(context); + }, + child: Text( + context.l10n.ok, + style: TextStyle(color: context.primaryColor), + ), + ), + ], + ), + ], + ); + }, + ); + }, + title: Text(context.l10n.concurrent_downloads), + subtitle: Text( + "$concurrentDownloads", + style: TextStyle(fontSize: 11, color: context.secondaryColor), + ), + ), ], ), ), diff --git a/lib/modules/more/settings/downloads/providers/downloads_state_provider.dart b/lib/modules/more/settings/downloads/providers/downloads_state_provider.dart index 1c157f26..f0c82a86 100644 --- a/lib/modules/more/settings/downloads/providers/downloads_state_provider.dart +++ b/lib/modules/more/settings/downloads/providers/downloads_state_provider.dart @@ -65,3 +65,19 @@ class DownloadLocationState extends _$DownloadLocationState { ); } } + +@riverpod +class ConcurrentDownloadsState extends _$ConcurrentDownloadsState { + @override + int build() { + return isar.settings.getSync(227)!.concurrentDownloads ?? 2; + } + + void set(int value) { + final settings = isar.settings.getSync(227); + state = value; + isar.writeTxnSync( + () => isar.settings.putSync(settings!..concurrentDownloads = value), + ); + } +} diff --git a/lib/modules/more/settings/downloads/providers/downloads_state_provider.g.dart b/lib/modules/more/settings/downloads/providers/downloads_state_provider.g.dart index 7c83d041..b4df323a 100644 --- a/lib/modules/more/settings/downloads/providers/downloads_state_provider.g.dart +++ b/lib/modules/more/settings/downloads/providers/downloads_state_provider.g.dart @@ -56,5 +56,22 @@ final downloadLocationStateProvider = AutoDisposeNotifierProvider< ); typedef _$DownloadLocationState = AutoDisposeNotifier<(String, String)>; +String _$concurrentDownloadsStateHash() => + r'665ec25af7d72e3345ce1ca96319419f11f121e6'; + +/// See also [ConcurrentDownloadsState]. +@ProviderFor(ConcurrentDownloadsState) +final concurrentDownloadsStateProvider = + AutoDisposeNotifierProvider.internal( + ConcurrentDownloadsState.new, + name: r'concurrentDownloadsStateProvider', + debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') + ? null + : _$concurrentDownloadsStateHash, + dependencies: null, + allTransitiveDependencies: null, +); + +typedef _$ConcurrentDownloadsState = AutoDisposeNotifier; // ignore_for_file: type=lint // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package diff --git a/lib/services/aniskip.g.dart b/lib/services/aniskip.g.dart index c05db920..b2e1defb 100644 --- a/lib/services/aniskip.g.dart +++ b/lib/services/aniskip.g.dart @@ -6,7 +6,7 @@ part of 'aniskip.dart'; // RiverpodGenerator // ************************************************************************** -String _$aniSkipHash() => r'2e5d19b025a2207ff64da7bf7908450ea9e5ff8c'; +String _$aniSkipHash() => r'887869b54e2e151633efd46da83bde845e14f421'; /// See also [AniSkip]. @ProviderFor(AniSkip) diff --git a/lib/services/download_manager/m3u8/m3u8_downloader.dart b/lib/services/download_manager/m3u8/m3u8_downloader.dart index f8770b41..aab970da 100644 --- a/lib/services/download_manager/m3u8/m3u8_downloader.dart +++ b/lib/services/download_manager/m3u8/m3u8_downloader.dart @@ -39,7 +39,7 @@ class M3u8Downloader { required this.fileName, this.headers, required this.chapter, - this.concurrentDownloads = 15, + this.concurrentDownloads = 2, }); void _log(String message) { diff --git a/lib/services/download_manager/m_downloader.dart b/lib/services/download_manager/m_downloader.dart index 56c85a38..e8a38195 100644 --- a/lib/services/download_manager/m_downloader.dart +++ b/lib/services/download_manager/m_downloader.dart @@ -29,7 +29,7 @@ class MDownloader { MDownloader({ required this.chapter, required this.pageUrls, - this.concurrentDownloads = 15, + this.concurrentDownloads = 2, }); void _log(String message) { diff --git a/lib/services/trackers/anilist.g.dart b/lib/services/trackers/anilist.g.dart index 834afd64..558da2c4 100644 --- a/lib/services/trackers/anilist.g.dart +++ b/lib/services/trackers/anilist.g.dart @@ -6,7 +6,7 @@ part of 'anilist.dart'; // RiverpodGenerator // ************************************************************************** -String _$anilistHash() => r'ddd07acc8d28d2aa95c942566109e9393ca9e5ed'; +String _$anilistHash() => r'70e8cd537270a9054a1ef72de117fc7ad5545218'; /// Copied from Dart SDK class _SystemHash { diff --git a/macos/Podfile.lock b/macos/Podfile.lock index 654e52a2..8f7e352f 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -7,6 +7,8 @@ PODS: - FlutterMacOS - device_info_plus (0.0.1): - FlutterMacOS + - file_picker (0.0.1): + - FlutterMacOS - flutter_inappwebview_macos (0.0.1): - FlutterMacOS - OrderedSet (~> 6.0.3) @@ -63,6 +65,7 @@ DEPENDENCIES: - audio_session (from `Flutter/ephemeral/.symlinks/plugins/audio_session/macos`) - connectivity_plus (from `Flutter/ephemeral/.symlinks/plugins/connectivity_plus/macos`) - device_info_plus (from `Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos`) + - file_picker (from `Flutter/ephemeral/.symlinks/plugins/file_picker/macos`) - flutter_inappwebview_macos (from `Flutter/ephemeral/.symlinks/plugins/flutter_inappwebview_macos/macos`) - flutter_qjs (from `Flutter/ephemeral/.symlinks/plugins/flutter_qjs/macos`) - flutter_web_auth_2 (from `Flutter/ephemeral/.symlinks/plugins/flutter_web_auth_2/macos`) @@ -99,6 +102,8 @@ EXTERNAL SOURCES: :path: Flutter/ephemeral/.symlinks/plugins/connectivity_plus/macos device_info_plus: :path: Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos + file_picker: + :path: Flutter/ephemeral/.symlinks/plugins/file_picker/macos flutter_inappwebview_macos: :path: Flutter/ephemeral/.symlinks/plugins/flutter_inappwebview_macos/macos flutter_qjs: @@ -149,6 +154,7 @@ SPEC CHECKSUMS: audio_session: eaca2512cf2b39212d724f35d11f46180ad3a33e connectivity_plus: 4adf20a405e25b42b9c9f87feff8f4b6fde18a4e device_info_plus: 4fb280989f669696856f8b129e4a5e3cd6c48f76 + file_picker: 7584aae6fa07a041af2b36a2655122d42f578c1a flutter_inappwebview_macos: c2d68649f9f8f1831bfcd98d73fd6256366d9d1d flutter_qjs: cb2d0cba9deade1d03b89f6c432eac126f39482a flutter_web_auth_2: 62b08da29f15a20fa63f144234622a1488d45b65