From e772a2b815d2baae1824dde2f395e6b2b9976ac2 Mon Sep 17 00:00:00 2001 From: omkar Date: Sun, 12 Jan 2025 00:49:47 +0530 Subject: [PATCH] fix: for the home screen error when first time open. --- .../service/stremio_connection_service.dart | 6 ++++-- .../widget/stremio/stremio_season_selector.dart | 4 ++-- lib/features/doc_viewer/container/video_viewer.dart | 2 +- .../container/video_viewer/video_viewer_ui.dart | 12 ++++++++++++ .../getting_started/container/create_connection.dart | 1 + lib/features/trakt/service/trakt.service.dart | 2 +- lib/pages/home_tab.page.dart | 9 ++++++++- lib/utils/common.dart | 10 ++++++++++ pubspec.lock | 2 +- 9 files changed, 40 insertions(+), 8 deletions(-) create mode 100644 lib/features/doc_viewer/container/video_viewer/video_viewer_ui.dart create mode 100644 lib/utils/common.dart diff --git a/lib/features/connections/service/stremio_connection_service.dart b/lib/features/connections/service/stremio_connection_service.dart index 1cfaa56..8865128 100644 --- a/lib/features/connections/service/stremio_connection_service.dart +++ b/lib/features/connections/service/stremio_connection_service.dart @@ -178,9 +178,11 @@ class StremioConnectionService extends BaseConnectionService { try { _logger.finer('Fetching catalog from URL: $url'); final httpBody = await http.get(Uri.parse(url)); - return StrmioMeta.fromJson(jsonDecode(httpBody.body)); + return StrmioMeta.fromJson( + jsonDecode(httpBody.body), + ); } catch (e, stack) { - _logger.severe('Error parsing catalog', e, stack); + _logger.severe('Error parsing catalog $url', e, stack); rethrow; } }, diff --git a/lib/features/connections/widget/stremio/stremio_season_selector.dart b/lib/features/connections/widget/stremio/stremio_season_selector.dart index 65ca9d0..0321ce5 100644 --- a/lib/features/connections/widget/stremio/stremio_season_selector.dart +++ b/lib/features/connections/widget/stremio/stremio_season_selector.dart @@ -70,8 +70,8 @@ class _StremioItemSeasonSelectorState extends State final traktService = TraktService.instance; try { - if (traktService!.isEnabled()) { - final result = await traktService.getProgress(widget.meta); + if (TraktService.isEnabled()) { + final result = await traktService!.getProgress(widget.meta); for (final item in result) { if (!_traktProgress.containsKey(item.season)) { diff --git a/lib/features/doc_viewer/container/video_viewer.dart b/lib/features/doc_viewer/container/video_viewer.dart index d29abdf..9384a26 100644 --- a/lib/features/doc_viewer/container/video_viewer.dart +++ b/lib/features/doc_viewer/container/video_viewer.dart @@ -193,7 +193,7 @@ class _VideoViewerState extends State { canCallOnce = true; - if (!TraktService.instance!.isEnabled() || traktProgress == null) { + if (!TraktService.isEnabled() || traktProgress == null) { player.play(); return; } diff --git a/lib/features/doc_viewer/container/video_viewer/video_viewer_ui.dart b/lib/features/doc_viewer/container/video_viewer/video_viewer_ui.dart new file mode 100644 index 0000000..b257c5c --- /dev/null +++ b/lib/features/doc_viewer/container/video_viewer/video_viewer_ui.dart @@ -0,0 +1,12 @@ +import 'package:flutter/material.dart'; + +class VideoViewerUi extends StatelessWidget { + const VideoViewerUi({ + super.key, + }); + + @override + Widget build(BuildContext context) { + return Container(); + } +} diff --git a/lib/features/getting_started/container/create_connection.dart b/lib/features/getting_started/container/create_connection.dart index 8a513b8..d59e626 100644 --- a/lib/features/getting_started/container/create_connection.dart +++ b/lib/features/getting_started/container/create_connection.dart @@ -291,6 +291,7 @@ class _CreateConnectionStepState extends State { final Map _items = { "Cinemeta": "https://v3-cinemeta.strem.io/manifest.json", "Watchhub": "https://watchhub.strem.io/manifest.json", + "Subtitles": "https://opensubtitles-v3.strem.io/manifest.json", }; void _removeAddon(int index) { diff --git a/lib/features/trakt/service/trakt.service.dart b/lib/features/trakt/service/trakt.service.dart index cf54050..a827d3c 100644 --- a/lib/features/trakt/service/trakt.service.dart +++ b/lib/features/trakt/service/trakt.service.dart @@ -581,7 +581,7 @@ class TraktService { return config; } - bool isEnabled() { + static bool isEnabled() { return AppEngine.engine.pb.authStore.record! .getStringValue("trakt_token") != ""; diff --git a/lib/pages/home_tab.page.dart b/lib/pages/home_tab.page.dart index edc4978..415e7ff 100644 --- a/lib/pages/home_tab.page.dart +++ b/lib/pages/home_tab.page.dart @@ -35,7 +35,14 @@ class HomeTabPage extends StatefulWidget { class _HomeTabPageState extends State { late final query = Query( queryFn: () async { - await TraktService.ensureInitialized(); + try { + if (TraktService.isEnabled() == true) { + await TraktService.ensureInitialized(); + } + } catch (e, stack) { + print(e); + print(stack); + } if (widget.defaultLibraries != null) { return Future.value( diff --git a/lib/utils/common.dart b/lib/utils/common.dart new file mode 100644 index 0000000..3869043 --- /dev/null +++ b/lib/utils/common.dart @@ -0,0 +1,10 @@ +extension FirstWhereOrNullExtension on Iterable { + T? firstWhereOrNull(bool Function(T) test) { + for (var element in this) { + if (test(element)) { + return element; + } + } + return null; + } +} diff --git a/pubspec.lock b/pubspec.lock index 0462eb6..4c3ed15 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -918,7 +918,7 @@ packages: source: hosted version: "4.0.0" logging: - dependency: transitive + dependency: "direct main" description: name: logging sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61