From 249d35462844a4656deaa676e653f25c73137c99 Mon Sep 17 00:00:00 2001 From: Erdem Yerebasmaz Date: Fri, 17 May 2024 00:42:19 +0300 Subject: [PATCH] Use a transparent placeholder when switching chapter image closes #583 --- lib/main.dart | 45 +++++++++++++++++----------- lib/routes/podcast/podcast_page.dart | 8 +++++ pubspec.lock | 4 +-- pubspec.yaml | 2 +- 4 files changed, 39 insertions(+), 20 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 2ba27d789..95f611528 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -45,12 +45,14 @@ void main() async { final repository = SembastRepository(); await Firebase.initializeApp(); _configureEasyLoading(); - SharedPreferences.getInstance().then((preferences) async { - await runMigration(preferences); - AppBlocs blocs = AppBlocs(repository.backupDatabaseListener); - runApp(AppBlocsProvider( - appBlocs: blocs, - child: AnytimePodcastApp( + SharedPreferences.getInstance().then( + (preferences) async { + await runMigration(preferences); + AppBlocs blocs = AppBlocs(repository.backupDatabaseListener); + runApp( + AppBlocsProvider( + appBlocs: blocs, + child: AnytimePodcastApp( mobileService, repository, Provider( @@ -65,17 +67,26 @@ void main() async { ), dispose: (_, value) => value.dispose(), child: PlayerControlsBuilder( - builder: playerBuilder, - child: PlaceholderBuilder( - builder: placeholderBuilder, - errorBuilder: errorPlaceholderBuilder, - child: SharePodcastButtonBuilder( - builder: sharePodcastButtonBuilder, - child: ShareEpisodeButtonBuilder( - builder: shareEpisodeButtonBuilder, - child: UserApp(repository.reloadDatabaseSink))))), - )))); - }); + builder: playerBuilder, + child: PlaceholderBuilder( + builder: placeholderBuilder, + errorBuilder: errorPlaceholderBuilder, + podcastImageBuilder: podcastImagePlaceholderBuilder, + child: SharePodcastButtonBuilder( + builder: sharePodcastButtonBuilder, + child: ShareEpisodeButtonBuilder( + builder: shareEpisodeButtonBuilder, + child: UserApp(repository.reloadDatabaseSink), + ), + ), + ), + ), + ), + ), + ), + ); + }, + ); }, (error, stackTrace) async { BreezBridge breezBridge = ServiceInjector().breezBridge; if (error is! FlutterErrorDetails) { diff --git a/lib/routes/podcast/podcast_page.dart b/lib/routes/podcast/podcast_page.dart index fc9bee8d7..aba48a9d3 100644 --- a/lib/routes/podcast/podcast_page.dart +++ b/lib/routes/podcast/podcast_page.dart @@ -264,6 +264,14 @@ WidgetBuilder placeholderBuilder() { return builder; } +WidgetBuilder podcastImagePlaceholderBuilder() { + builder(BuildContext context) => Container( + color: Colors.transparent, + constraints: const BoxConstraints.expand(), + ); + return builder; +} + WidgetBuilder errorPlaceholderBuilder() { builder(BuildContext context) => Placeholder( color: Theme.of(context).colorScheme.error, diff --git a/pubspec.lock b/pubspec.lock index 9670309c5..a1cbad08a 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -37,8 +37,8 @@ packages: dependency: "direct main" description: path: "." - ref: "7ae0038eb14e1ebaa1eb8a26ae144a795e0b787d" - resolved-ref: "7ae0038eb14e1ebaa1eb8a26ae144a795e0b787d" + ref: db9f878aa640954aa272e92bd7a5c364683179a9 + resolved-ref: db9f878aa640954aa272e92bd7a5c364683179a9 url: "https://github.com/breez/anytime_podcast_player.git" source: git version: "1.2.1+74-breez" diff --git a/pubspec.yaml b/pubspec.yaml index e6f45b6f3..e4ac4c914 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -101,7 +101,7 @@ dependencies: anytime: git: url: https://github.com/breez/anytime_podcast_player.git - ref: 7ae0038eb14e1ebaa1eb8a26ae144a795e0b787d + ref: db9f878aa640954aa272e92bd7a5c364683179a9 flutter_downloader: git: url: https://github.com/breez/flutter_downloader.git