From a6cb78380d57ea9f3f68c82aee2c211e38287813 Mon Sep 17 00:00:00 2001 From: Kingkor Roy Tirtho Date: Wed, 24 Jan 2024 00:22:14 +0600 Subject: [PATCH] chore: show icon with error msg #1085 --- lib/collections/spotube_icons.dart | 1 + lib/l10n/app_en.arb | 3 +- lib/pages/lyrics/plain_lyrics.dart | 23 ++++++++++--- lib/pages/lyrics/synced_lyrics.dart | 21 ++++++++---- untranslated_messages.json | 51 +++++++++++++++++++---------- 5 files changed, 71 insertions(+), 28 deletions(-) diff --git a/lib/collections/spotube_icons.dart b/lib/collections/spotube_icons.dart index c6acd669..65e6c1a0 100644 --- a/lib/collections/spotube_icons.dart +++ b/lib/collections/spotube_icons.dart @@ -41,6 +41,7 @@ abstract class SpotubeIcons { static const clock = FeatherIcons.clock; static const lyrics = Icons.lyrics_rounded; static const lyricsOff = Icons.lyrics_outlined; + static const noLyrics = Icons.music_off_outlined; static const logout = FeatherIcons.logOut; static const login = FeatherIcons.logIn; static const dashboard = FeatherIcons.grid; diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 6b61cbae..07df5f06 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -285,5 +285,6 @@ "browse_all": "Browse All", "genres": "Genres", "explore_genres": "Explore Genres", - "friends": "Friends" + "friends": "Friends", + "no_lyrics_available": "Sorry, unable find lyrics for this track" } \ No newline at end of file diff --git a/lib/pages/lyrics/plain_lyrics.dart b/lib/pages/lyrics/plain_lyrics.dart index 0ac1ac66..bee5114d 100644 --- a/lib/pages/lyrics/plain_lyrics.dart +++ b/lib/pages/lyrics/plain_lyrics.dart @@ -1,12 +1,15 @@ import 'package:collection/collection.dart'; import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; +import 'package:gap/gap.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:palette_generator/palette_generator.dart'; import 'package:spotify/spotify.dart'; +import 'package:spotube/collections/spotube_icons.dart'; import 'package:spotube/components/lyrics/zoom_controls.dart'; import 'package:spotube/components/shared/shimmers/shimmer_lyrics.dart'; import 'package:spotube/extensions/constrains.dart'; +import 'package:spotube/extensions/context.dart'; import 'package:spotube/provider/proxy_playlist/proxy_playlist_provider.dart'; @@ -72,10 +75,22 @@ class PlainLyrics extends HookConsumerWidget { if (lyricsQuery.isLoading || lyricsQuery.isRefreshing) { return const ShimmerLyrics(); } else if (lyricsQuery.hasError) { - return Text( - "Sorry, no Lyrics were found for `${playlist.activeTrack?.name}` :'(\n${lyricsQuery.error.toString().replaceAll("Exception: ", "")}", - style: textTheme.bodyLarge?.copyWith( - color: palette.bodyTextColor, + return Container( + alignment: Alignment.center, + padding: const EdgeInsets.all(16), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Text( + context.l10n.no_lyrics_available, + style: textTheme.bodyLarge?.copyWith( + color: palette.bodyTextColor, + ), + textAlign: TextAlign.center, + ), + const Gap(26), + const Icon(SpotubeIcons.noLyrics, size: 60), + ], ), ); } diff --git a/lib/pages/lyrics/synced_lyrics.dart b/lib/pages/lyrics/synced_lyrics.dart index 0dc0b1f1..ddef1c65 100644 --- a/lib/pages/lyrics/synced_lyrics.dart +++ b/lib/pages/lyrics/synced_lyrics.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; +import 'package:gap/gap.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:palette_generator/palette_generator.dart'; import 'package:spotify/spotify.dart' hide Offset; @@ -7,6 +8,7 @@ import 'package:spotube/collections/spotube_icons.dart'; import 'package:spotube/components/lyrics/zoom_controls.dart'; import 'package:spotube/components/shared/shimmers/shimmer_lyrics.dart'; import 'package:spotube/extensions/constrains.dart'; +import 'package:spotube/extensions/context.dart'; import 'package:spotube/hooks/controllers/use_auto_scroll_controller.dart'; import 'package:spotube/components/lyrics/use_synced_lyrics.dart'; import 'package:scroll_to_index/scroll_to_index.dart'; @@ -188,12 +190,19 @@ class SyncedLyrics extends HookConsumerWidget { child: ShimmerLyrics(), ) else if (playlist.activeTrack != null && - (timedLyricsQuery.hasError)) - Text( - "Sorry, no Lyrics were found for `${playlist.activeTrack?.name}` :'(\n${timedLyricsQuery.error.toString().replaceAll("Exception: ", "")}", - style: bodyTextTheme, - ) - else if (isUnSyncLyric == true) + (timedLyricsQuery.hasError)) ...[ + Container( + alignment: Alignment.center, + padding: const EdgeInsets.all(16), + child: Text( + context.l10n.no_lyrics_available, + style: bodyTextTheme, + textAlign: TextAlign.center, + ), + ), + const Gap(26), + const Icon(SpotubeIcons.noLyrics, size: 60), + ] else if (isUnSyncLyric == true) Expanded( child: Center( child: RichText( diff --git a/untranslated_messages.json b/untranslated_messages.json index 2fd7ceca..45a6df11 100644 --- a/untranslated_messages.json +++ b/untranslated_messages.json @@ -2,102 +2,119 @@ "ar": [ "step_3_steps", "step_4_steps", - "friends" + "friends", + "no_lyrics_available" ], "bn": [ "step_3_steps", "step_4_steps", - "friends" + "friends", + "no_lyrics_available" ], "ca": [ "step_3_steps", "step_4_steps", - "friends" + "friends", + "no_lyrics_available" ], "de": [ "step_3_steps", "step_4_steps", - "friends" + "friends", + "no_lyrics_available" ], "es": [ "step_3_steps", "step_4_steps", - "friends" + "friends", + "no_lyrics_available" ], "fa": [ "step_3_steps", "step_4_steps", - "friends" + "friends", + "no_lyrics_available" ], "fr": [ "step_3_steps", "step_4_steps", - "friends" + "friends", + "no_lyrics_available" ], "hi": [ "step_3_steps", "step_4_steps", - "friends" + "friends", + "no_lyrics_available" ], "it": [ "step_3_steps", "step_4_steps", - "friends" + "friends", + "no_lyrics_available" ], "ja": [ "step_3_steps", "step_4_steps", - "friends" + "friends", + "no_lyrics_available" ], "nl": [ "step_3_steps", "step_4_steps", - "friends" + "friends", + "no_lyrics_available" ], "pl": [ "step_3_steps", "step_4_steps", - "friends" + "friends", + "no_lyrics_available" ], "pt": [ "step_3_steps", "step_4_steps", - "friends" + "friends", + "no_lyrics_available" ], "ru": [ "step_3_steps", "step_4_steps", - "friends" + "friends", + "no_lyrics_available" ], "tr": [ "step_3_steps", "step_4_steps", - "friends" + "friends", + "no_lyrics_available" ], "uk": [ "step_3_steps", "step_4_steps", - "friends" + "friends", + "no_lyrics_available" ], "zh": [ "step_3_steps", "step_4_steps", - "friends" + "friends", + "no_lyrics_available" ] }