diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 005fd8b1..ea535855 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -1,7 +1,5 @@ PODS: - - app_links (6.4.1): - - Flutter - - audio_session (0.0.1): + - app_links (7.0.0): - Flutter - connectivity_plus (0.0.1): - Flutter @@ -57,9 +55,8 @@ PODS: - Flutter - isar_community_flutter_libs (1.0.0): - Flutter - - just_audio (0.0.1): + - m_extension_server (0.0.1): - Flutter - - FlutterMacOS - media_kit_libs_ios_video (1.0.4): - Flutter - media_kit_video (0.0.1): @@ -81,26 +78,16 @@ PODS: - SDWebImage/Core (5.17.0) - share_plus (0.0.1): - Flutter - - sqflite_darwin (0.0.4): - - Flutter - - FlutterMacOS - SwiftyGif (5.4.4) - url_launcher_ios (0.0.1): - Flutter - - video_player_avfoundation (0.0.1): - - Flutter - - FlutterMacOS - volume_controller (0.0.1): - Flutter - wakelock_plus (0.0.1): - Flutter - - webview_flutter_wkwebview (0.0.1): - - Flutter - - FlutterMacOS DEPENDENCIES: - app_links (from `.symlinks/plugins/app_links/ios`) - - audio_session (from `.symlinks/plugins/audio_session/ios`) - connectivity_plus (from `.symlinks/plugins/connectivity_plus/ios`) - device_info_plus (from `.symlinks/plugins/device_info_plus/ios`) - file_picker (from `.symlinks/plugins/file_picker/ios`) @@ -110,7 +97,7 @@ DEPENDENCIES: - flutter_qjs (from `.symlinks/plugins/flutter_qjs/ios`) - flutter_web_auth_2 (from `.symlinks/plugins/flutter_web_auth_2/ios`) - isar_community_flutter_libs (from `.symlinks/plugins/isar_community_flutter_libs/ios`) - - just_audio (from `.symlinks/plugins/just_audio/darwin`) + - m_extension_server (from `.symlinks/plugins/m_extension_server/ios`) - media_kit_libs_ios_video (from `.symlinks/plugins/media_kit_libs_ios_video/ios`) - media_kit_video (from `.symlinks/plugins/media_kit_video/ios`) - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) @@ -119,12 +106,9 @@ DEPENDENCIES: - rust_lib_mangayomi (from `.symlinks/plugins/rust_lib_mangayomi/ios`) - screen_brightness_ios (from `.symlinks/plugins/screen_brightness_ios/ios`) - share_plus (from `.symlinks/plugins/share_plus/ios`) - - sqflite_darwin (from `.symlinks/plugins/sqflite_darwin/darwin`) - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) - - video_player_avfoundation (from `.symlinks/plugins/video_player_avfoundation/darwin`) - volume_controller (from `.symlinks/plugins/volume_controller/ios`) - wakelock_plus (from `.symlinks/plugins/wakelock_plus/ios`) - - webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/darwin`) SPEC REPOS: trunk: @@ -137,8 +121,6 @@ SPEC REPOS: EXTERNAL SOURCES: app_links: :path: ".symlinks/plugins/app_links/ios" - audio_session: - :path: ".symlinks/plugins/audio_session/ios" connectivity_plus: :path: ".symlinks/plugins/connectivity_plus/ios" device_info_plus: @@ -157,8 +139,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/flutter_web_auth_2/ios" isar_community_flutter_libs: :path: ".symlinks/plugins/isar_community_flutter_libs/ios" - just_audio: - :path: ".symlinks/plugins/just_audio/darwin" + m_extension_server: + :path: ".symlinks/plugins/m_extension_server/ios" media_kit_libs_ios_video: :path: ".symlinks/plugins/media_kit_libs_ios_video/ios" media_kit_video: @@ -175,22 +157,15 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/screen_brightness_ios/ios" share_plus: :path: ".symlinks/plugins/share_plus/ios" - sqflite_darwin: - :path: ".symlinks/plugins/sqflite_darwin/darwin" url_launcher_ios: :path: ".symlinks/plugins/url_launcher_ios/ios" - video_player_avfoundation: - :path: ".symlinks/plugins/video_player_avfoundation/darwin" volume_controller: :path: ".symlinks/plugins/volume_controller/ios" wakelock_plus: :path: ".symlinks/plugins/wakelock_plus/ios" - webview_flutter_wkwebview: - :path: ".symlinks/plugins/webview_flutter_wkwebview/darwin" SPEC CHECKSUMS: - app_links: 3dbc685f76b1693c66a6d9dd1e9ab6f73d97dc0a - audio_session: 9bb7f6c970f21241b19f5a3658097ae459681ba0 + app_links: a754cbec3c255bd4bbb4d236ecc06f28cd9a7ce8 connectivity_plus: cb623214f4e1f6ef8fe7403d580fdad517d2f7dd device_info_plus: 21fcca2080fbcd348be798aa36c3e5ed849eefbe DKImagePickerController: b512c28220a2b8ac7419f21c491fc8534b7601ac @@ -202,24 +177,21 @@ SPEC CHECKSUMS: flutter_qjs: 1d5918f42171154e88dd545dd45f126c0291976f flutter_web_auth_2: 3464a7c16dc6480b6194fc89913bae6e82f28405 isar_community_flutter_libs: bede843185a61a05ff364a05c9b23209523f7e0d - just_audio: 4e391f57b79cad2b0674030a00453ca5ce817eed + m_extension_server: 6946ec189542b271dbd15629b9498595f1036761 media_kit_libs_ios_video: 5a18affdb97d1f5d466dc79988b13eff6c5e2854 media_kit_video: 1746e198cb697d1ffb734b1d05ec429d1fcd1474 OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94 package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499 - path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564 + path_provider_foundation: bb55f6dbba17d0dccd6737fe6f7f34fbd0376880 permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d rust_lib_mangayomi: 360a904274b47351a0f7c26d3ce5aa6392bb8db3 screen_brightness_ios: 9953fd7da5bd480f1a93990daeec2eb42d4f3b52 SDWebImage: 750adf017a315a280c60fde706ab1e552a3ae4e9 share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a - sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0 SwiftyGif: 93a1cc87bf3a51916001cf8f3d63835fb64c819f - url_launcher_ios: 694010445543906933d732453a59da0a173ae33d - video_player_avfoundation: 2cef49524dd1f16c5300b9cd6efd9611ce03639b + url_launcher_ios: 7a95fa5b60cc718a708b8f2966718e93db0cef1b volume_controller: 3657a1f65bedb98fa41ff7dc5793537919f31b12 wakelock_plus: e29112ab3ef0b318e58cfa5c32326458be66b556 - webview_flutter_wkwebview: 8ebf4fded22593026f7dbff1fbff31ea98573c8d PODFILE CHECKSUM: a57f30d18f102dd3ce366b1d62a55ecbef2158e5 diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 6f5b82f0..4ade37b4 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -561,5 +561,7 @@ "show_scroll_percentage": "Show Scroll Percentage", "remove_extra_paragraph_spacing": "Remove Extra Paragraph Spacing", "select_label_color": "Select {label} Color", - "default_user_agent": "Defaul user agent" + "default_user_agent": "Defaul user agent", + "forceLandscapeMode": "Force landscape mode", + "forceLandscapeModeSubtitle": "Force the player to use landscape orientation." } diff --git a/lib/l10n/app_zh.arb b/lib/l10n/app_zh.arb index 828fcc87..9cc0310c 100644 --- a/lib/l10n/app_zh.arb +++ b/lib/l10n/app_zh.arb @@ -563,5 +563,8 @@ "line_height": "行高", "show_scroll_percentage": "显示滚动百分比", "remove_extra_paragraph_spacing": "删除额外的段落间距", - "select_label_color": "选择 {label} 颜色" -} \ No newline at end of file + "select_label_color": "选择 {label} 颜色", + "default_user_agent": "默认用户代理", + "forceLandscapeMode": "强制横屏模式", + "forceLandscapeModeSubtitle": "强制播放器使用横屏方向。" + } \ No newline at end of file diff --git a/lib/l10n/generated/app_localizations.dart b/lib/l10n/generated/app_localizations.dart index f0dc2a87..72bb7178 100644 --- a/lib/l10n/generated/app_localizations.dart +++ b/lib/l10n/generated/app_localizations.dart @@ -3442,6 +3442,18 @@ abstract class AppLocalizations { /// In en, this message translates to: /// **'Defaul user agent'** String get default_user_agent; + + /// No description provided for @forceLandscapeMode. + /// + /// In en, this message translates to: + /// **'Force landscape mode'** + String get forceLandscapeMode; + + /// No description provided for @forceLandscapeModeSubtitle. + /// + /// In en, this message translates to: + /// **'Force the player to use landscape orientation.'** + String get forceLandscapeModeSubtitle; } class _AppLocalizationsDelegate diff --git a/lib/l10n/generated/app_localizations_en.dart b/lib/l10n/generated/app_localizations_en.dart index 2a58fbc9..df048da5 100644 --- a/lib/l10n/generated/app_localizations_en.dart +++ b/lib/l10n/generated/app_localizations_en.dart @@ -1781,4 +1781,11 @@ class AppLocalizationsEn extends AppLocalizations { @override String get default_user_agent => 'Defaul user agent'; + + @override + String get forceLandscapeMode => 'Force landscape mode'; + + @override + String get forceLandscapeModeSubtitle => + 'Force the player to use landscape orientation.'; } diff --git a/lib/l10n/generated/app_localizations_zh.dart b/lib/l10n/generated/app_localizations_zh.dart index 0ce76535..4b6cc886 100644 --- a/lib/l10n/generated/app_localizations_zh.dart +++ b/lib/l10n/generated/app_localizations_zh.dart @@ -1738,5 +1738,11 @@ class AppLocalizationsZh extends AppLocalizations { } @override - String get default_user_agent => 'Defaul user agent'; + String get default_user_agent => '默认用户代理'; + + @override + String get forceLandscapeMode => '强制横屏模式'; + + @override + String get forceLandscapeModeSubtitle => '强制播放器使用横屏方向。'; } diff --git a/lib/models/settings.dart b/lib/models/settings.dart index e7757fbc..bea2dcd1 100644 --- a/lib/models/settings.dart +++ b/lib/models/settings.dart @@ -163,6 +163,8 @@ class Settings { bool? fullScreenPlayer; + bool? forceLandscapePlayer; + bool? updateProgressAfterReading; bool? enableAniSkip; @@ -375,6 +377,7 @@ class Settings { this.defaultDoubleTapToSkipLength = 10, this.defaultPlayBackSpeed = 1.0, this.fullScreenPlayer = false, + this.forceLandscapePlayer = false, this.updateProgressAfterReading = true, this.enableAniSkip, this.enableAutoSkip, @@ -581,6 +584,7 @@ class Settings { ? json['defaultPlayBackSpeed'] : (json['defaultPlayBackSpeed'] as int).toDouble(); fullScreenPlayer = json['fullScreenPlayer']; + forceLandscapePlayer = json['forceLandscapePlayer']; updateProgressAfterReading = json['updateProgressAfterReading']; enableAniSkip = json['enableAniSkip']; enableAutoSkip = json['enableAutoSkip']; @@ -787,6 +791,7 @@ class Settings { 'defaultDoubleTapToSkipLength': defaultDoubleTapToSkipLength, 'defaultPlayBackSpeed': defaultPlayBackSpeed, 'fullScreenPlayer': fullScreenPlayer, + 'forceLandscapePlayer': forceLandscapePlayer, 'updateProgressAfterReading': updateProgressAfterReading, 'enableAniSkip': enableAniSkip, 'enableAutoSkip': enableAutoSkip, diff --git a/lib/models/settings.g.dart b/lib/models/settings.g.dart index 87cbb7b0..7e33216a 100644 --- a/lib/models/settings.g.dart +++ b/lib/models/settings.g.dart @@ -364,417 +364,422 @@ const SettingsSchema = CollectionSchema( name: r'followSystemTheme', type: IsarType.bool, ), - r'fullScreenPlayer': PropertySchema( + r'forceLandscapePlayer': PropertySchema( id: 63, + name: r'forceLandscapePlayer', + type: IsarType.bool, + ), + r'fullScreenPlayer': PropertySchema( + id: 64, name: r'fullScreenPlayer', type: IsarType.bool, ), r'fullScreenReader': PropertySchema( - id: 64, + id: 65, name: r'fullScreenReader', type: IsarType.bool, ), r'hideDiscordRpcInIncognito': PropertySchema( - id: 65, + id: 66, name: r'hideDiscordRpcInIncognito', type: IsarType.bool, ), r'hideItems': PropertySchema( - id: 66, + id: 67, name: r'hideItems', type: IsarType.stringList, ), r'hwdecMode': PropertySchema( - id: 67, + id: 68, name: r'hwdecMode', type: IsarType.string, ), r'incognitoMode': PropertySchema( - id: 68, + id: 69, name: r'incognitoMode', type: IsarType.bool, ), r'lastTrackerLibraryLocation': PropertySchema( - id: 69, + id: 70, name: r'lastTrackerLibraryLocation', type: IsarType.string, ), r'libraryDownloadedChapters': PropertySchema( - id: 70, + id: 71, name: r'libraryDownloadedChapters', type: IsarType.bool, ), r'libraryFilterAnimeBookMarkedType': PropertySchema( - id: 71, + id: 72, name: r'libraryFilterAnimeBookMarkedType', type: IsarType.long, ), r'libraryFilterAnimeDownloadType': PropertySchema( - id: 72, + id: 73, name: r'libraryFilterAnimeDownloadType', type: IsarType.long, ), r'libraryFilterAnimeStartedType': PropertySchema( - id: 73, + id: 74, name: r'libraryFilterAnimeStartedType', type: IsarType.long, ), r'libraryFilterAnimeUnreadType': PropertySchema( - id: 74, + id: 75, name: r'libraryFilterAnimeUnreadType', type: IsarType.long, ), r'libraryFilterMangasBookMarkedType': PropertySchema( - id: 75, + id: 76, name: r'libraryFilterMangasBookMarkedType', type: IsarType.long, ), r'libraryFilterMangasDownloadType': PropertySchema( - id: 76, + id: 77, name: r'libraryFilterMangasDownloadType', type: IsarType.long, ), r'libraryFilterMangasStartedType': PropertySchema( - id: 77, + id: 78, name: r'libraryFilterMangasStartedType', type: IsarType.long, ), r'libraryFilterMangasUnreadType': PropertySchema( - id: 78, + id: 79, name: r'libraryFilterMangasUnreadType', type: IsarType.long, ), r'libraryFilterNovelBookMarkedType': PropertySchema( - id: 79, + id: 80, name: r'libraryFilterNovelBookMarkedType', type: IsarType.long, ), r'libraryFilterNovelDownloadType': PropertySchema( - id: 80, + id: 81, name: r'libraryFilterNovelDownloadType', type: IsarType.long, ), r'libraryFilterNovelStartedType': PropertySchema( - id: 81, + id: 82, name: r'libraryFilterNovelStartedType', type: IsarType.long, ), r'libraryFilterNovelUnreadType': PropertySchema( - id: 82, + id: 83, name: r'libraryFilterNovelUnreadType', type: IsarType.long, ), r'libraryLocalSource': PropertySchema( - id: 83, + id: 84, name: r'libraryLocalSource', type: IsarType.bool, ), r'libraryShowCategoryTabs': PropertySchema( - id: 84, + id: 85, name: r'libraryShowCategoryTabs', type: IsarType.bool, ), r'libraryShowContinueReadingButton': PropertySchema( - id: 85, + id: 86, name: r'libraryShowContinueReadingButton', type: IsarType.bool, ), r'libraryShowLanguage': PropertySchema( - id: 86, + id: 87, name: r'libraryShowLanguage', type: IsarType.bool, ), r'libraryShowNumbersOfItems': PropertySchema( - id: 87, + id: 88, name: r'libraryShowNumbersOfItems', type: IsarType.bool, ), r'localFolders': PropertySchema( - id: 88, + id: 89, name: r'localFolders', type: IsarType.stringList, ), r'locale': PropertySchema( - id: 89, + id: 90, name: r'locale', type: IsarType.object, target: r'L10nLocale', ), r'mangaExtensionsRepo': PropertySchema( - id: 90, + id: 91, name: r'mangaExtensionsRepo', type: IsarType.objectList, target: r'Repo', ), r'mangaGridSize': PropertySchema( - id: 91, + id: 92, name: r'mangaGridSize', type: IsarType.long, ), r'mangaHomeDisplayType': PropertySchema( - id: 92, + id: 93, name: r'mangaHomeDisplayType', type: IsarType.byte, enumMap: _SettingsmangaHomeDisplayTypeEnumValueMap, ), r'markEpisodeAsSeenType': PropertySchema( - id: 93, + id: 94, name: r'markEpisodeAsSeenType', type: IsarType.long, ), r'mergeLibraryNavMobile': PropertySchema( - id: 94, + id: 95, name: r'mergeLibraryNavMobile', type: IsarType.bool, ), r'navigationOrder': PropertySchema( - id: 95, + id: 96, name: r'navigationOrder', type: IsarType.stringList, ), r'novelDisplayType': PropertySchema( - id: 96, + id: 97, name: r'novelDisplayType', type: IsarType.byte, enumMap: _SettingsnovelDisplayTypeEnumValueMap, ), r'novelExtensionsRepo': PropertySchema( - id: 97, + id: 98, name: r'novelExtensionsRepo', type: IsarType.objectList, target: r'Repo', ), r'novelFontSize': PropertySchema( - id: 98, + id: 99, name: r'novelFontSize', type: IsarType.long, ), r'novelGridSize': PropertySchema( - id: 99, + id: 100, name: r'novelGridSize', type: IsarType.long, ), r'novelLibraryDownloadedChapters': PropertySchema( - id: 100, + id: 101, name: r'novelLibraryDownloadedChapters', type: IsarType.bool, ), r'novelLibraryLocalSource': PropertySchema( - id: 101, + id: 102, name: r'novelLibraryLocalSource', type: IsarType.bool, ), r'novelLibraryShowCategoryTabs': PropertySchema( - id: 102, + id: 103, name: r'novelLibraryShowCategoryTabs', type: IsarType.bool, ), r'novelLibraryShowContinueReadingButton': PropertySchema( - id: 103, + id: 104, name: r'novelLibraryShowContinueReadingButton', type: IsarType.bool, ), r'novelLibraryShowLanguage': PropertySchema( - id: 104, + id: 105, name: r'novelLibraryShowLanguage', type: IsarType.bool, ), r'novelLibraryShowNumbersOfItems': PropertySchema( - id: 105, + id: 106, name: r'novelLibraryShowNumbersOfItems', type: IsarType.bool, ), r'novelReaderLineHeight': PropertySchema( - id: 106, + id: 107, name: r'novelReaderLineHeight', type: IsarType.double, ), r'novelReaderPadding': PropertySchema( - id: 107, + id: 108, name: r'novelReaderPadding', type: IsarType.long, ), r'novelReaderTextColor': PropertySchema( - id: 108, + id: 109, name: r'novelReaderTextColor', type: IsarType.string, ), r'novelReaderTheme': PropertySchema( - id: 109, + id: 110, name: r'novelReaderTheme', type: IsarType.string, ), r'novelRemoveExtraParagraphSpacing': PropertySchema( - id: 110, + id: 111, name: r'novelRemoveExtraParagraphSpacing', type: IsarType.bool, ), r'novelShowScrollPercentage': PropertySchema( - id: 111, + id: 112, name: r'novelShowScrollPercentage', type: IsarType.bool, ), r'novelTapToScroll': PropertySchema( - id: 112, + id: 113, name: r'novelTapToScroll', type: IsarType.bool, ), r'novelTextAlign': PropertySchema( - id: 113, + id: 114, name: r'novelTextAlign', type: IsarType.byte, enumMap: _SettingsnovelTextAlignEnumValueMap, ), r'onlyIncludePinnedSources': PropertySchema( - id: 114, + id: 115, name: r'onlyIncludePinnedSources', type: IsarType.bool, ), r'pagePreloadAmount': PropertySchema( - id: 115, + id: 116, name: r'pagePreloadAmount', type: IsarType.long, ), r'personalPageModeList': PropertySchema( - id: 116, + id: 117, name: r'personalPageModeList', type: IsarType.objectList, target: r'PersonalPageMode', ), r'personalReaderModeList': PropertySchema( - id: 117, + id: 118, name: r'personalReaderModeList', type: IsarType.objectList, target: r'PersonalReaderMode', ), r'playerSubtitleSettings': PropertySchema( - id: 118, + id: 119, name: r'playerSubtitleSettings', type: IsarType.object, target: r'PlayerSubtitleSettings', ), r'pureBlackDarkMode': PropertySchema( - id: 119, + id: 120, name: r'pureBlackDarkMode', type: IsarType.bool, ), r'relativeTimesTamps': PropertySchema( - id: 120, + id: 121, name: r'relativeTimesTamps', type: IsarType.long, ), r'rpcShowCoverImage': PropertySchema( - id: 121, + id: 122, name: r'rpcShowCoverImage', type: IsarType.bool, ), r'rpcShowReadingWatchingProgress': PropertySchema( - id: 122, + id: 123, name: r'rpcShowReadingWatchingProgress', type: IsarType.bool, ), r'rpcShowTitle': PropertySchema( - id: 123, + id: 124, name: r'rpcShowTitle', type: IsarType.bool, ), r'saveAsCBZArchive': PropertySchema( - id: 124, + id: 125, name: r'saveAsCBZArchive', type: IsarType.bool, ), r'scaleType': PropertySchema( - id: 125, + id: 126, name: r'scaleType', type: IsarType.byte, enumMap: _SettingsscaleTypeEnumValueMap, ), r'showPagesNumber': PropertySchema( - id: 126, + id: 127, name: r'showPagesNumber', type: IsarType.bool, ), r'sortChapterList': PropertySchema( - id: 127, + id: 128, name: r'sortChapterList', type: IsarType.objectList, target: r'SortChapter', ), r'sortLibraryAnime': PropertySchema( - id: 128, + id: 129, name: r'sortLibraryAnime', type: IsarType.object, target: r'SortLibraryManga', ), r'sortLibraryManga': PropertySchema( - id: 129, + id: 130, name: r'sortLibraryManga', type: IsarType.object, target: r'SortLibraryManga', ), r'sortLibraryNovel': PropertySchema( - id: 130, + id: 131, name: r'sortLibraryNovel', type: IsarType.object, target: r'SortLibraryManga', ), r'startDatebackup': PropertySchema( - id: 131, + id: 132, name: r'startDatebackup', type: IsarType.long, ), r'themeIsDark': PropertySchema( - id: 132, + id: 133, name: r'themeIsDark', type: IsarType.bool, ), r'updateProgressAfterReading': PropertySchema( - id: 133, + id: 134, name: r'updateProgressAfterReading', type: IsarType.bool, ), r'updatedAt': PropertySchema( - id: 134, + id: 135, name: r'updatedAt', type: IsarType.long, ), r'useLibass': PropertySchema( - id: 135, + id: 136, name: r'useLibass', type: IsarType.bool, ), r'useMpvConfig': PropertySchema( - id: 136, + id: 137, name: r'useMpvConfig', type: IsarType.bool, ), r'usePageTapZones': PropertySchema( - id: 137, + id: 138, name: r'usePageTapZones', type: IsarType.bool, ), r'useYUV420P': PropertySchema( - id: 138, + id: 139, name: r'useYUV420P', type: IsarType.bool, ), r'userAgent': PropertySchema( - id: 139, + id: 140, name: r'userAgent', type: IsarType.string, ), r'volumeBoostCap': PropertySchema( - id: 140, + id: 141, name: r'volumeBoostCap', type: IsarType.long, ), @@ -1396,134 +1401,135 @@ void _settingsSerialize( writer.writeDouble(offsets[60], object.flexColorSchemeBlendLevel); writer.writeLong(offsets[61], object.flexSchemeColorIndex); writer.writeBool(offsets[62], object.followSystemTheme); - writer.writeBool(offsets[63], object.fullScreenPlayer); - writer.writeBool(offsets[64], object.fullScreenReader); - writer.writeBool(offsets[65], object.hideDiscordRpcInIncognito); - writer.writeStringList(offsets[66], object.hideItems); - writer.writeString(offsets[67], object.hwdecMode); - writer.writeBool(offsets[68], object.incognitoMode); - writer.writeString(offsets[69], object.lastTrackerLibraryLocation); - writer.writeBool(offsets[70], object.libraryDownloadedChapters); - writer.writeLong(offsets[71], object.libraryFilterAnimeBookMarkedType); - writer.writeLong(offsets[72], object.libraryFilterAnimeDownloadType); - writer.writeLong(offsets[73], object.libraryFilterAnimeStartedType); - writer.writeLong(offsets[74], object.libraryFilterAnimeUnreadType); - writer.writeLong(offsets[75], object.libraryFilterMangasBookMarkedType); - writer.writeLong(offsets[76], object.libraryFilterMangasDownloadType); - writer.writeLong(offsets[77], object.libraryFilterMangasStartedType); - writer.writeLong(offsets[78], object.libraryFilterMangasUnreadType); - writer.writeLong(offsets[79], object.libraryFilterNovelBookMarkedType); - writer.writeLong(offsets[80], object.libraryFilterNovelDownloadType); - writer.writeLong(offsets[81], object.libraryFilterNovelStartedType); - writer.writeLong(offsets[82], object.libraryFilterNovelUnreadType); - writer.writeBool(offsets[83], object.libraryLocalSource); - writer.writeBool(offsets[84], object.libraryShowCategoryTabs); - writer.writeBool(offsets[85], object.libraryShowContinueReadingButton); - writer.writeBool(offsets[86], object.libraryShowLanguage); - writer.writeBool(offsets[87], object.libraryShowNumbersOfItems); - writer.writeStringList(offsets[88], object.localFolders); + writer.writeBool(offsets[63], object.forceLandscapePlayer); + writer.writeBool(offsets[64], object.fullScreenPlayer); + writer.writeBool(offsets[65], object.fullScreenReader); + writer.writeBool(offsets[66], object.hideDiscordRpcInIncognito); + writer.writeStringList(offsets[67], object.hideItems); + writer.writeString(offsets[68], object.hwdecMode); + writer.writeBool(offsets[69], object.incognitoMode); + writer.writeString(offsets[70], object.lastTrackerLibraryLocation); + writer.writeBool(offsets[71], object.libraryDownloadedChapters); + writer.writeLong(offsets[72], object.libraryFilterAnimeBookMarkedType); + writer.writeLong(offsets[73], object.libraryFilterAnimeDownloadType); + writer.writeLong(offsets[74], object.libraryFilterAnimeStartedType); + writer.writeLong(offsets[75], object.libraryFilterAnimeUnreadType); + writer.writeLong(offsets[76], object.libraryFilterMangasBookMarkedType); + writer.writeLong(offsets[77], object.libraryFilterMangasDownloadType); + writer.writeLong(offsets[78], object.libraryFilterMangasStartedType); + writer.writeLong(offsets[79], object.libraryFilterMangasUnreadType); + writer.writeLong(offsets[80], object.libraryFilterNovelBookMarkedType); + writer.writeLong(offsets[81], object.libraryFilterNovelDownloadType); + writer.writeLong(offsets[82], object.libraryFilterNovelStartedType); + writer.writeLong(offsets[83], object.libraryFilterNovelUnreadType); + writer.writeBool(offsets[84], object.libraryLocalSource); + writer.writeBool(offsets[85], object.libraryShowCategoryTabs); + writer.writeBool(offsets[86], object.libraryShowContinueReadingButton); + writer.writeBool(offsets[87], object.libraryShowLanguage); + writer.writeBool(offsets[88], object.libraryShowNumbersOfItems); + writer.writeStringList(offsets[89], object.localFolders); writer.writeObject( - offsets[89], + offsets[90], allOffsets, L10nLocaleSchema.serialize, object.locale, ); writer.writeObjectList( - offsets[90], + offsets[91], allOffsets, RepoSchema.serialize, object.mangaExtensionsRepo, ); - writer.writeLong(offsets[91], object.mangaGridSize); - writer.writeByte(offsets[92], object.mangaHomeDisplayType.index); - writer.writeLong(offsets[93], object.markEpisodeAsSeenType); - writer.writeBool(offsets[94], object.mergeLibraryNavMobile); - writer.writeStringList(offsets[95], object.navigationOrder); - writer.writeByte(offsets[96], object.novelDisplayType.index); + writer.writeLong(offsets[92], object.mangaGridSize); + writer.writeByte(offsets[93], object.mangaHomeDisplayType.index); + writer.writeLong(offsets[94], object.markEpisodeAsSeenType); + writer.writeBool(offsets[95], object.mergeLibraryNavMobile); + writer.writeStringList(offsets[96], object.navigationOrder); + writer.writeByte(offsets[97], object.novelDisplayType.index); writer.writeObjectList( - offsets[97], + offsets[98], allOffsets, RepoSchema.serialize, object.novelExtensionsRepo, ); - writer.writeLong(offsets[98], object.novelFontSize); - writer.writeLong(offsets[99], object.novelGridSize); - writer.writeBool(offsets[100], object.novelLibraryDownloadedChapters); - writer.writeBool(offsets[101], object.novelLibraryLocalSource); - writer.writeBool(offsets[102], object.novelLibraryShowCategoryTabs); - writer.writeBool(offsets[103], object.novelLibraryShowContinueReadingButton); - writer.writeBool(offsets[104], object.novelLibraryShowLanguage); - writer.writeBool(offsets[105], object.novelLibraryShowNumbersOfItems); - writer.writeDouble(offsets[106], object.novelReaderLineHeight); - writer.writeLong(offsets[107], object.novelReaderPadding); - writer.writeString(offsets[108], object.novelReaderTextColor); - writer.writeString(offsets[109], object.novelReaderTheme); - writer.writeBool(offsets[110], object.novelRemoveExtraParagraphSpacing); - writer.writeBool(offsets[111], object.novelShowScrollPercentage); - writer.writeBool(offsets[112], object.novelTapToScroll); - writer.writeByte(offsets[113], object.novelTextAlign.index); - writer.writeBool(offsets[114], object.onlyIncludePinnedSources); - writer.writeLong(offsets[115], object.pagePreloadAmount); + writer.writeLong(offsets[99], object.novelFontSize); + writer.writeLong(offsets[100], object.novelGridSize); + writer.writeBool(offsets[101], object.novelLibraryDownloadedChapters); + writer.writeBool(offsets[102], object.novelLibraryLocalSource); + writer.writeBool(offsets[103], object.novelLibraryShowCategoryTabs); + writer.writeBool(offsets[104], object.novelLibraryShowContinueReadingButton); + writer.writeBool(offsets[105], object.novelLibraryShowLanguage); + writer.writeBool(offsets[106], object.novelLibraryShowNumbersOfItems); + writer.writeDouble(offsets[107], object.novelReaderLineHeight); + writer.writeLong(offsets[108], object.novelReaderPadding); + writer.writeString(offsets[109], object.novelReaderTextColor); + writer.writeString(offsets[110], object.novelReaderTheme); + writer.writeBool(offsets[111], object.novelRemoveExtraParagraphSpacing); + writer.writeBool(offsets[112], object.novelShowScrollPercentage); + writer.writeBool(offsets[113], object.novelTapToScroll); + writer.writeByte(offsets[114], object.novelTextAlign.index); + writer.writeBool(offsets[115], object.onlyIncludePinnedSources); + writer.writeLong(offsets[116], object.pagePreloadAmount); writer.writeObjectList( - offsets[116], + offsets[117], allOffsets, PersonalPageModeSchema.serialize, object.personalPageModeList, ); writer.writeObjectList( - offsets[117], + offsets[118], allOffsets, PersonalReaderModeSchema.serialize, object.personalReaderModeList, ); writer.writeObject( - offsets[118], + offsets[119], allOffsets, PlayerSubtitleSettingsSchema.serialize, object.playerSubtitleSettings, ); - writer.writeBool(offsets[119], object.pureBlackDarkMode); - writer.writeLong(offsets[120], object.relativeTimesTamps); - writer.writeBool(offsets[121], object.rpcShowCoverImage); - writer.writeBool(offsets[122], object.rpcShowReadingWatchingProgress); - writer.writeBool(offsets[123], object.rpcShowTitle); - writer.writeBool(offsets[124], object.saveAsCBZArchive); - writer.writeByte(offsets[125], object.scaleType.index); - writer.writeBool(offsets[126], object.showPagesNumber); + writer.writeBool(offsets[120], object.pureBlackDarkMode); + writer.writeLong(offsets[121], object.relativeTimesTamps); + writer.writeBool(offsets[122], object.rpcShowCoverImage); + writer.writeBool(offsets[123], object.rpcShowReadingWatchingProgress); + writer.writeBool(offsets[124], object.rpcShowTitle); + writer.writeBool(offsets[125], object.saveAsCBZArchive); + writer.writeByte(offsets[126], object.scaleType.index); + writer.writeBool(offsets[127], object.showPagesNumber); writer.writeObjectList( - offsets[127], + offsets[128], allOffsets, SortChapterSchema.serialize, object.sortChapterList, ); writer.writeObject( - offsets[128], + offsets[129], allOffsets, SortLibraryMangaSchema.serialize, object.sortLibraryAnime, ); writer.writeObject( - offsets[129], + offsets[130], allOffsets, SortLibraryMangaSchema.serialize, object.sortLibraryManga, ); writer.writeObject( - offsets[130], + offsets[131], allOffsets, SortLibraryMangaSchema.serialize, object.sortLibraryNovel, ); - writer.writeLong(offsets[131], object.startDatebackup); - writer.writeBool(offsets[132], object.themeIsDark); - writer.writeBool(offsets[133], object.updateProgressAfterReading); - writer.writeLong(offsets[134], object.updatedAt); - writer.writeBool(offsets[135], object.useLibass); - writer.writeBool(offsets[136], object.useMpvConfig); - writer.writeBool(offsets[137], object.usePageTapZones); - writer.writeBool(offsets[138], object.useYUV420P); - writer.writeString(offsets[139], object.userAgent); - writer.writeLong(offsets[140], object.volumeBoostCap); + writer.writeLong(offsets[132], object.startDatebackup); + writer.writeBool(offsets[133], object.themeIsDark); + writer.writeBool(offsets[134], object.updateProgressAfterReading); + writer.writeLong(offsets[135], object.updatedAt); + writer.writeBool(offsets[136], object.useLibass); + writer.writeBool(offsets[137], object.useMpvConfig); + writer.writeBool(offsets[138], object.usePageTapZones); + writer.writeBool(offsets[139], object.useYUV420P); + writer.writeString(offsets[140], object.userAgent); + writer.writeLong(offsets[141], object.volumeBoostCap); } Settings _settingsDeserialize( @@ -1660,138 +1666,139 @@ Settings _settingsDeserialize( flexColorSchemeBlendLevel: reader.readDoubleOrNull(offsets[60]), flexSchemeColorIndex: reader.readLongOrNull(offsets[61]), followSystemTheme: reader.readBoolOrNull(offsets[62]), - fullScreenPlayer: reader.readBoolOrNull(offsets[63]), - fullScreenReader: reader.readBoolOrNull(offsets[64]), - hideDiscordRpcInIncognito: reader.readBoolOrNull(offsets[65]), - hideItems: reader.readStringList(offsets[66]), - hwdecMode: reader.readStringOrNull(offsets[67]), + forceLandscapePlayer: reader.readBoolOrNull(offsets[63]), + fullScreenPlayer: reader.readBoolOrNull(offsets[64]), + fullScreenReader: reader.readBoolOrNull(offsets[65]), + hideDiscordRpcInIncognito: reader.readBoolOrNull(offsets[66]), + hideItems: reader.readStringList(offsets[67]), + hwdecMode: reader.readStringOrNull(offsets[68]), id: id, - incognitoMode: reader.readBoolOrNull(offsets[68]), - lastTrackerLibraryLocation: reader.readStringOrNull(offsets[69]), - libraryDownloadedChapters: reader.readBoolOrNull(offsets[70]), - libraryFilterAnimeBookMarkedType: reader.readLongOrNull(offsets[71]), - libraryFilterAnimeDownloadType: reader.readLongOrNull(offsets[72]), - libraryFilterAnimeStartedType: reader.readLongOrNull(offsets[73]), - libraryFilterAnimeUnreadType: reader.readLongOrNull(offsets[74]), - libraryFilterMangasBookMarkedType: reader.readLongOrNull(offsets[75]), - libraryFilterMangasDownloadType: reader.readLongOrNull(offsets[76]), - libraryFilterMangasStartedType: reader.readLongOrNull(offsets[77]), - libraryFilterMangasUnreadType: reader.readLongOrNull(offsets[78]), - libraryFilterNovelBookMarkedType: reader.readLongOrNull(offsets[79]), - libraryFilterNovelDownloadType: reader.readLongOrNull(offsets[80]), - libraryFilterNovelStartedType: reader.readLongOrNull(offsets[81]), - libraryFilterNovelUnreadType: reader.readLongOrNull(offsets[82]), - libraryLocalSource: reader.readBoolOrNull(offsets[83]), - libraryShowCategoryTabs: reader.readBoolOrNull(offsets[84]), - libraryShowContinueReadingButton: reader.readBoolOrNull(offsets[85]), - libraryShowLanguage: reader.readBoolOrNull(offsets[86]), - libraryShowNumbersOfItems: reader.readBoolOrNull(offsets[87]), - localFolders: reader.readStringList(offsets[88]), + incognitoMode: reader.readBoolOrNull(offsets[69]), + lastTrackerLibraryLocation: reader.readStringOrNull(offsets[70]), + libraryDownloadedChapters: reader.readBoolOrNull(offsets[71]), + libraryFilterAnimeBookMarkedType: reader.readLongOrNull(offsets[72]), + libraryFilterAnimeDownloadType: reader.readLongOrNull(offsets[73]), + libraryFilterAnimeStartedType: reader.readLongOrNull(offsets[74]), + libraryFilterAnimeUnreadType: reader.readLongOrNull(offsets[75]), + libraryFilterMangasBookMarkedType: reader.readLongOrNull(offsets[76]), + libraryFilterMangasDownloadType: reader.readLongOrNull(offsets[77]), + libraryFilterMangasStartedType: reader.readLongOrNull(offsets[78]), + libraryFilterMangasUnreadType: reader.readLongOrNull(offsets[79]), + libraryFilterNovelBookMarkedType: reader.readLongOrNull(offsets[80]), + libraryFilterNovelDownloadType: reader.readLongOrNull(offsets[81]), + libraryFilterNovelStartedType: reader.readLongOrNull(offsets[82]), + libraryFilterNovelUnreadType: reader.readLongOrNull(offsets[83]), + libraryLocalSource: reader.readBoolOrNull(offsets[84]), + libraryShowCategoryTabs: reader.readBoolOrNull(offsets[85]), + libraryShowContinueReadingButton: reader.readBoolOrNull(offsets[86]), + libraryShowLanguage: reader.readBoolOrNull(offsets[87]), + libraryShowNumbersOfItems: reader.readBoolOrNull(offsets[88]), + localFolders: reader.readStringList(offsets[89]), mangaExtensionsRepo: reader.readObjectList( - offsets[90], + offsets[91], RepoSchema.deserialize, allOffsets, Repo(), ), - mangaGridSize: reader.readLongOrNull(offsets[91]), + mangaGridSize: reader.readLongOrNull(offsets[92]), mangaHomeDisplayType: _SettingsmangaHomeDisplayTypeValueEnumMap[reader.readByteOrNull( - offsets[92], + offsets[93], )] ?? DisplayType.comfortableGrid, - markEpisodeAsSeenType: reader.readLongOrNull(offsets[93]), - mergeLibraryNavMobile: reader.readBoolOrNull(offsets[94]), - navigationOrder: reader.readStringList(offsets[95]), + markEpisodeAsSeenType: reader.readLongOrNull(offsets[94]), + mergeLibraryNavMobile: reader.readBoolOrNull(offsets[95]), + navigationOrder: reader.readStringList(offsets[96]), novelDisplayType: _SettingsnovelDisplayTypeValueEnumMap[reader.readByteOrNull( - offsets[96], + offsets[97], )] ?? DisplayType.comfortableGrid, novelExtensionsRepo: reader.readObjectList( - offsets[97], + offsets[98], RepoSchema.deserialize, allOffsets, Repo(), ), - novelFontSize: reader.readLongOrNull(offsets[98]), - novelLibraryDownloadedChapters: reader.readBoolOrNull(offsets[100]), - novelLibraryLocalSource: reader.readBoolOrNull(offsets[101]), - novelLibraryShowCategoryTabs: reader.readBoolOrNull(offsets[102]), - novelLibraryShowContinueReadingButton: reader.readBoolOrNull(offsets[103]), - novelLibraryShowLanguage: reader.readBoolOrNull(offsets[104]), - novelLibraryShowNumbersOfItems: reader.readBoolOrNull(offsets[105]), - novelReaderLineHeight: reader.readDoubleOrNull(offsets[106]), - novelReaderPadding: reader.readLongOrNull(offsets[107]), - novelReaderTextColor: reader.readStringOrNull(offsets[108]), - novelReaderTheme: reader.readStringOrNull(offsets[109]), - novelRemoveExtraParagraphSpacing: reader.readBoolOrNull(offsets[110]), - novelShowScrollPercentage: reader.readBoolOrNull(offsets[111]), - novelTapToScroll: reader.readBoolOrNull(offsets[112]), + novelFontSize: reader.readLongOrNull(offsets[99]), + novelLibraryDownloadedChapters: reader.readBoolOrNull(offsets[101]), + novelLibraryLocalSource: reader.readBoolOrNull(offsets[102]), + novelLibraryShowCategoryTabs: reader.readBoolOrNull(offsets[103]), + novelLibraryShowContinueReadingButton: reader.readBoolOrNull(offsets[104]), + novelLibraryShowLanguage: reader.readBoolOrNull(offsets[105]), + novelLibraryShowNumbersOfItems: reader.readBoolOrNull(offsets[106]), + novelReaderLineHeight: reader.readDoubleOrNull(offsets[107]), + novelReaderPadding: reader.readLongOrNull(offsets[108]), + novelReaderTextColor: reader.readStringOrNull(offsets[109]), + novelReaderTheme: reader.readStringOrNull(offsets[110]), + novelRemoveExtraParagraphSpacing: reader.readBoolOrNull(offsets[111]), + novelShowScrollPercentage: reader.readBoolOrNull(offsets[112]), + novelTapToScroll: reader.readBoolOrNull(offsets[113]), novelTextAlign: _SettingsnovelTextAlignValueEnumMap[reader.readByteOrNull( - offsets[113], + offsets[114], )] ?? NovelTextAlign.left, - onlyIncludePinnedSources: reader.readBoolOrNull(offsets[114]), - pagePreloadAmount: reader.readLongOrNull(offsets[115]), + onlyIncludePinnedSources: reader.readBoolOrNull(offsets[115]), + pagePreloadAmount: reader.readLongOrNull(offsets[116]), personalPageModeList: reader.readObjectList( - offsets[116], + offsets[117], PersonalPageModeSchema.deserialize, allOffsets, PersonalPageMode(), ), personalReaderModeList: reader.readObjectList( - offsets[117], + offsets[118], PersonalReaderModeSchema.deserialize, allOffsets, PersonalReaderMode(), ), playerSubtitleSettings: reader.readObjectOrNull( - offsets[118], + offsets[119], PlayerSubtitleSettingsSchema.deserialize, allOffsets, ), - pureBlackDarkMode: reader.readBoolOrNull(offsets[119]), - relativeTimesTamps: reader.readLongOrNull(offsets[120]), - rpcShowCoverImage: reader.readBoolOrNull(offsets[121]), - rpcShowReadingWatchingProgress: reader.readBoolOrNull(offsets[122]), - rpcShowTitle: reader.readBoolOrNull(offsets[123]), - saveAsCBZArchive: reader.readBoolOrNull(offsets[124]), + pureBlackDarkMode: reader.readBoolOrNull(offsets[120]), + relativeTimesTamps: reader.readLongOrNull(offsets[121]), + rpcShowCoverImage: reader.readBoolOrNull(offsets[122]), + rpcShowReadingWatchingProgress: reader.readBoolOrNull(offsets[123]), + rpcShowTitle: reader.readBoolOrNull(offsets[124]), + saveAsCBZArchive: reader.readBoolOrNull(offsets[125]), scaleType: - _SettingsscaleTypeValueEnumMap[reader.readByteOrNull(offsets[125])] ?? + _SettingsscaleTypeValueEnumMap[reader.readByteOrNull(offsets[126])] ?? ScaleType.fitScreen, - showPagesNumber: reader.readBoolOrNull(offsets[126]), + showPagesNumber: reader.readBoolOrNull(offsets[127]), sortChapterList: reader.readObjectList( - offsets[127], + offsets[128], SortChapterSchema.deserialize, allOffsets, SortChapter(), ), sortLibraryAnime: reader.readObjectOrNull( - offsets[128], - SortLibraryMangaSchema.deserialize, - allOffsets, - ), - sortLibraryManga: reader.readObjectOrNull( offsets[129], SortLibraryMangaSchema.deserialize, allOffsets, ), - sortLibraryNovel: reader.readObjectOrNull( + sortLibraryManga: reader.readObjectOrNull( offsets[130], SortLibraryMangaSchema.deserialize, allOffsets, ), - startDatebackup: reader.readLongOrNull(offsets[131]), - themeIsDark: reader.readBoolOrNull(offsets[132]), - updateProgressAfterReading: reader.readBoolOrNull(offsets[133]), - updatedAt: reader.readLongOrNull(offsets[134]), - useLibass: reader.readBoolOrNull(offsets[135]), - useMpvConfig: reader.readBoolOrNull(offsets[136]), - usePageTapZones: reader.readBoolOrNull(offsets[137]), - useYUV420P: reader.readBoolOrNull(offsets[138]), - userAgent: reader.readStringOrNull(offsets[139]), - volumeBoostCap: reader.readLongOrNull(offsets[140]), + sortLibraryNovel: reader.readObjectOrNull( + offsets[131], + SortLibraryMangaSchema.deserialize, + allOffsets, + ), + startDatebackup: reader.readLongOrNull(offsets[132]), + themeIsDark: reader.readBoolOrNull(offsets[133]), + updateProgressAfterReading: reader.readBoolOrNull(offsets[134]), + updatedAt: reader.readLongOrNull(offsets[135]), + useLibass: reader.readBoolOrNull(offsets[136]), + useMpvConfig: reader.readBoolOrNull(offsets[137]), + usePageTapZones: reader.readBoolOrNull(offsets[138]), + useYUV420P: reader.readBoolOrNull(offsets[139]), + userAgent: reader.readStringOrNull(offsets[140]), + volumeBoostCap: reader.readLongOrNull(offsets[141]), ); object.chapterFilterBookmarkedList = reader .readObjectList( @@ -1818,11 +1825,11 @@ Settings _settingsDeserialize( FilterScanlator(), ); object.locale = reader.readObjectOrNull( - offsets[89], + offsets[90], L10nLocaleSchema.deserialize, allOffsets, ); - object.novelGridSize = reader.readLongOrNull(offsets[99]); + object.novelGridSize = reader.readLongOrNull(offsets[100]); return object; } @@ -2065,17 +2072,17 @@ P _settingsDeserializeProp

( case 65: return (reader.readBoolOrNull(offset)) as P; case 66: - return (reader.readStringList(offset)) as P; + return (reader.readBoolOrNull(offset)) as P; case 67: - return (reader.readStringOrNull(offset)) as P; + return (reader.readStringList(offset)) as P; case 68: - return (reader.readBoolOrNull(offset)) as P; - case 69: return (reader.readStringOrNull(offset)) as P; - case 70: + case 69: return (reader.readBoolOrNull(offset)) as P; + case 70: + return (reader.readStringOrNull(offset)) as P; case 71: - return (reader.readLongOrNull(offset)) as P; + return (reader.readBoolOrNull(offset)) as P; case 72: return (reader.readLongOrNull(offset)) as P; case 73: @@ -2099,7 +2106,7 @@ P _settingsDeserializeProp

( case 82: return (reader.readLongOrNull(offset)) as P; case 83: - return (reader.readBoolOrNull(offset)) as P; + return (reader.readLongOrNull(offset)) as P; case 84: return (reader.readBoolOrNull(offset)) as P; case 85: @@ -2109,15 +2116,17 @@ P _settingsDeserializeProp

( case 87: return (reader.readBoolOrNull(offset)) as P; case 88: - return (reader.readStringList(offset)) as P; + return (reader.readBoolOrNull(offset)) as P; case 89: + return (reader.readStringList(offset)) as P; + case 90: return (reader.readObjectOrNull( offset, L10nLocaleSchema.deserialize, allOffsets, )) as P; - case 90: + case 91: return (reader.readObjectList( offset, RepoSchema.deserialize, @@ -2125,27 +2134,27 @@ P _settingsDeserializeProp

( Repo(), )) as P; - case 91: - return (reader.readLongOrNull(offset)) as P; case 92: + return (reader.readLongOrNull(offset)) as P; + case 93: return (_SettingsmangaHomeDisplayTypeValueEnumMap[reader.readByteOrNull( offset, )] ?? DisplayType.comfortableGrid) as P; - case 93: - return (reader.readLongOrNull(offset)) as P; case 94: - return (reader.readBoolOrNull(offset)) as P; + return (reader.readLongOrNull(offset)) as P; case 95: - return (reader.readStringList(offset)) as P; + return (reader.readBoolOrNull(offset)) as P; case 96: + return (reader.readStringList(offset)) as P; + case 97: return (_SettingsnovelDisplayTypeValueEnumMap[reader.readByteOrNull( offset, )] ?? DisplayType.comfortableGrid) as P; - case 97: + case 98: return (reader.readObjectList( offset, RepoSchema.deserialize, @@ -2153,12 +2162,10 @@ P _settingsDeserializeProp

( Repo(), )) as P; - case 98: - return (reader.readLongOrNull(offset)) as P; case 99: return (reader.readLongOrNull(offset)) as P; case 100: - return (reader.readBoolOrNull(offset)) as P; + return (reader.readLongOrNull(offset)) as P; case 101: return (reader.readBoolOrNull(offset)) as P; case 102: @@ -2170,30 +2177,32 @@ P _settingsDeserializeProp

( case 105: return (reader.readBoolOrNull(offset)) as P; case 106: - return (reader.readDoubleOrNull(offset)) as P; + return (reader.readBoolOrNull(offset)) as P; case 107: - return (reader.readLongOrNull(offset)) as P; + return (reader.readDoubleOrNull(offset)) as P; case 108: - return (reader.readStringOrNull(offset)) as P; + return (reader.readLongOrNull(offset)) as P; case 109: return (reader.readStringOrNull(offset)) as P; case 110: - return (reader.readBoolOrNull(offset)) as P; + return (reader.readStringOrNull(offset)) as P; case 111: return (reader.readBoolOrNull(offset)) as P; case 112: return (reader.readBoolOrNull(offset)) as P; case 113: + return (reader.readBoolOrNull(offset)) as P; + case 114: return (_SettingsnovelTextAlignValueEnumMap[reader.readByteOrNull( offset, )] ?? NovelTextAlign.left) as P; - case 114: - return (reader.readBoolOrNull(offset)) as P; case 115: - return (reader.readLongOrNull(offset)) as P; + return (reader.readBoolOrNull(offset)) as P; case 116: + return (reader.readLongOrNull(offset)) as P; + case 117: return (reader.readObjectList( offset, PersonalPageModeSchema.deserialize, @@ -2201,7 +2210,7 @@ P _settingsDeserializeProp

( PersonalPageMode(), )) as P; - case 117: + case 118: return (reader.readObjectList( offset, PersonalReaderModeSchema.deserialize, @@ -2209,19 +2218,17 @@ P _settingsDeserializeProp

( PersonalReaderMode(), )) as P; - case 118: + case 119: return (reader.readObjectOrNull( offset, PlayerSubtitleSettingsSchema.deserialize, allOffsets, )) as P; - case 119: - return (reader.readBoolOrNull(offset)) as P; case 120: - return (reader.readLongOrNull(offset)) as P; - case 121: return (reader.readBoolOrNull(offset)) as P; + case 121: + return (reader.readLongOrNull(offset)) as P; case 122: return (reader.readBoolOrNull(offset)) as P; case 123: @@ -2229,12 +2236,14 @@ P _settingsDeserializeProp

( case 124: return (reader.readBoolOrNull(offset)) as P; case 125: + return (reader.readBoolOrNull(offset)) as P; + case 126: return (_SettingsscaleTypeValueEnumMap[reader.readByteOrNull(offset)] ?? ScaleType.fitScreen) as P; - case 126: - return (reader.readBoolOrNull(offset)) as P; case 127: + return (reader.readBoolOrNull(offset)) as P; + case 128: return (reader.readObjectList( offset, SortChapterSchema.deserialize, @@ -2242,13 +2251,6 @@ P _settingsDeserializeProp

( SortChapter(), )) as P; - case 128: - return (reader.readObjectOrNull( - offset, - SortLibraryMangaSchema.deserialize, - allOffsets, - )) - as P; case 129: return (reader.readObjectOrNull( offset, @@ -2264,15 +2266,20 @@ P _settingsDeserializeProp

( )) as P; case 131: - return (reader.readLongOrNull(offset)) as P; + return (reader.readObjectOrNull( + offset, + SortLibraryMangaSchema.deserialize, + allOffsets, + )) + as P; case 132: - return (reader.readBoolOrNull(offset)) as P; + return (reader.readLongOrNull(offset)) as P; case 133: return (reader.readBoolOrNull(offset)) as P; case 134: - return (reader.readLongOrNull(offset)) as P; - case 135: return (reader.readBoolOrNull(offset)) as P; + case 135: + return (reader.readLongOrNull(offset)) as P; case 136: return (reader.readBoolOrNull(offset)) as P; case 137: @@ -2280,8 +2287,10 @@ P _settingsDeserializeProp

( case 138: return (reader.readBoolOrNull(offset)) as P; case 139: - return (reader.readStringOrNull(offset)) as P; + return (reader.readBoolOrNull(offset)) as P; case 140: + return (reader.readStringOrNull(offset)) as P; + case 141: return (reader.readLongOrNull(offset)) as P; default: throw IsarError('Unknown property with id $propertyId'); @@ -6814,6 +6823,36 @@ extension SettingsQueryFilter }); } + QueryBuilder + forceLandscapePlayerIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition( + const FilterCondition.isNull(property: r'forceLandscapePlayer'), + ); + }); + } + + QueryBuilder + forceLandscapePlayerIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition( + const FilterCondition.isNotNull(property: r'forceLandscapePlayer'), + ); + }); + } + + QueryBuilder + forceLandscapePlayerEqualTo(bool? value) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition( + FilterCondition.equalTo( + property: r'forceLandscapePlayer', + value: value, + ), + ); + }); + } + QueryBuilder fullScreenPlayerIsNull() { return QueryBuilder.apply(this, (query) { @@ -12766,6 +12805,19 @@ extension SettingsQuerySortBy on QueryBuilder { }); } + QueryBuilder sortByForceLandscapePlayer() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'forceLandscapePlayer', Sort.asc); + }); + } + + QueryBuilder + sortByForceLandscapePlayerDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'forceLandscapePlayer', Sort.desc); + }); + } + QueryBuilder sortByFullScreenPlayer() { return QueryBuilder.apply(this, (query) { return query.addSortBy(r'fullScreenPlayer', Sort.asc); @@ -14274,6 +14326,19 @@ extension SettingsQuerySortThenBy }); } + QueryBuilder thenByForceLandscapePlayer() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'forceLandscapePlayer', Sort.asc); + }); + } + + QueryBuilder + thenByForceLandscapePlayerDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'forceLandscapePlayer', Sort.desc); + }); + } + QueryBuilder thenByFullScreenPlayer() { return QueryBuilder.apply(this, (query) { return query.addSortBy(r'fullScreenPlayer', Sort.asc); @@ -15498,6 +15563,12 @@ extension SettingsQueryWhereDistinct }); } + QueryBuilder distinctByForceLandscapePlayer() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'forceLandscapePlayer'); + }); + } + QueryBuilder distinctByFullScreenPlayer() { return QueryBuilder.apply(this, (query) { return query.addDistinctBy(r'fullScreenPlayer'); @@ -16385,6 +16456,13 @@ extension SettingsQueryProperty }); } + QueryBuilder + forceLandscapePlayerProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'forceLandscapePlayer'); + }); + } + QueryBuilder fullScreenPlayerProperty() { return QueryBuilder.apply(this, (query) { return query.addPropertyName(r'fullScreenPlayer'); diff --git a/lib/modules/anime/anime_player_view.dart b/lib/modules/anime/anime_player_view.dart index 618e34a6..67dcaebc 100644 --- a/lib/modules/anime/anime_player_view.dart +++ b/lib/modules/anime/anime_player_view.dart @@ -882,6 +882,12 @@ mp.register_script_message('call_button_${button.id}_long', button${button.id}lo }); _firstTime = false; } + if (!_isDesktop) { + final forceLandscape = ref.read(forceLandscapePlayerStateProvider); + if (forceLandscape) { + _setLandscapeMode(true); + } + } _currentPositionSub = _player.stream.position.listen( _unifiedPositionHandler, ); diff --git a/lib/modules/manga/download/providers/download_provider.g.dart b/lib/modules/manga/download/providers/download_provider.g.dart index 0d816264..38eb9219 100644 --- a/lib/modules/manga/download/providers/download_provider.g.dart +++ b/lib/modules/manga/download/providers/download_provider.g.dart @@ -136,7 +136,7 @@ final class DownloadChapterProvider } } -String _$downloadChapterHash() => r'b64c5de46eafb0e7322eb599e49de3b09f027c04'; +String _$downloadChapterHash() => r'c503cef46aa7083316b023400f0aa470ae3a3bc4'; final class DownloadChapterFamily extends $Family with diff --git a/lib/modules/more/data_and_storage/providers/storage_usage.g.dart b/lib/modules/more/data_and_storage/providers/storage_usage.g.dart index 71a6d90c..5bb30dfb 100644 --- a/lib/modules/more/data_and_storage/providers/storage_usage.g.dart +++ b/lib/modules/more/data_and_storage/providers/storage_usage.g.dart @@ -43,7 +43,7 @@ final class TotalChapterCacheSizeStateProvider } String _$totalChapterCacheSizeStateHash() => - r'6e92eec01cc21fbea3996d220c0b2edaadec3786'; + r'fdecfd853bcd1355217fcef9590d6c69fbd92ce4'; abstract class _$TotalChapterCacheSizeState extends $Notifier { String build(); diff --git a/lib/modules/more/settings/player/player_screen.dart b/lib/modules/more/settings/player/player_screen.dart index 8792b15a..7097c50d 100644 --- a/lib/modules/more/settings/player/player_screen.dart +++ b/lib/modules/more/settings/player/player_screen.dart @@ -33,6 +33,7 @@ class _PlayerScreenState extends ConsumerState { final useLibass = ref.watch(useLibassStateProvider); final fullScreenPlayer = ref.watch(fullScreenPlayerStateProvider); + final forceLandscapePlayer = ref.watch(forceLandscapePlayerStateProvider); return Scaffold( appBar: AppBar(title: Text(context.l10n.internal_player)), body: SingleChildScrollView( @@ -487,6 +488,17 @@ class _PlayerScreenState extends ConsumerState { ref.read(fullScreenPlayerStateProvider.notifier).set(value); }, ), + SwitchListTile( + value: forceLandscapePlayer, + title: Text(context.l10n.forceLandscapeMode), + subtitle: Text( + context.l10n.forceLandscapeModeSubtitle, + style: TextStyle(fontSize: 11, color: context.secondaryColor), + ), + onChanged: (value) { + ref.read(forceLandscapePlayerStateProvider.notifier).set(value); + }, + ), ], ), ), diff --git a/lib/modules/more/settings/player/providers/player_state_provider.dart b/lib/modules/more/settings/player/providers/player_state_provider.dart index 5996fb87..e8a57bf3 100644 --- a/lib/modules/more/settings/player/providers/player_state_provider.dart +++ b/lib/modules/more/settings/player/providers/player_state_provider.dart @@ -232,3 +232,23 @@ class UseMpvConfigState extends _$UseMpvConfigState { ); } } + +@riverpod +class ForceLandscapePlayerState extends _$ForceLandscapePlayerState { + @override + bool build() { + return isar.settings.getSync(227)!.forceLandscapePlayer ?? false; + } + + void set(bool value) { + final settings = isar.settings.getSync(227); + state = value; + isar.writeTxnSync( + () => isar.settings.putSync( + settings! + ..forceLandscapePlayer = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), + ); + } +} diff --git a/lib/modules/more/settings/player/providers/player_state_provider.g.dart b/lib/modules/more/settings/player/providers/player_state_provider.g.dart index f5596774..fd0e0990 100644 --- a/lib/modules/more/settings/player/providers/player_state_provider.g.dart +++ b/lib/modules/more/settings/player/providers/player_state_provider.g.dart @@ -605,3 +605,56 @@ abstract class _$UseMpvConfigState extends $Notifier { element.handleValue(ref, created); } } + +@ProviderFor(ForceLandscapePlayerState) +const forceLandscapePlayerStateProvider = ForceLandscapePlayerStateProvider._(); + +final class ForceLandscapePlayerStateProvider + extends $NotifierProvider { + const ForceLandscapePlayerStateProvider._() + : super( + from: null, + argument: null, + retry: null, + name: r'forceLandscapePlayerStateProvider', + isAutoDispose: true, + dependencies: null, + $allTransitiveDependencies: null, + ); + + @override + String debugGetCreateSourceHash() => _$forceLandscapePlayerStateHash(); + + @$internal + @override + ForceLandscapePlayerState create() => ForceLandscapePlayerState(); + + Override overrideWithValue(bool value) { + return $ProviderOverride( + origin: this, + providerOverride: $SyncValueProvider(value), + ); + } +} + +String _$forceLandscapePlayerStateHash() => + r'65d3e0b91d7b6d38e9f70893a8c71f13029715b5'; + +abstract class _$ForceLandscapePlayerState extends $Notifier { + bool build(); + @$mustCallSuper + @override + void runBuild() { + final created = build(); + final ref = this.ref as $Ref; + final element = + ref.element + as $ClassProviderElement< + AnyNotifier, + bool, + Object?, + Object? + >; + element.handleValue(ref, created); + } +}