Compare commits

...

6 Commits

Author SHA1 Message Date
Richard Hajek
b38ab70b90
Merge 42e954428b into 878a441a9f 2025-09-06 22:38:22 +06:00
Kingkor Roy Tirtho
878a441a9f fix: windows webview2 environment permission issue 2025-09-06 22:32:41 +06:00
Richard Hajek
42e954428b feat: added filtering duplicates in recent 2025-01-18 18:01:26 +01:00
Kingkor Roy Tirtho
8c1337d1fc
Merge pull request #2118 from KRTirtho/dev
chore: release 3.9.0
2024-12-09 00:04:29 +06:00
Kingkor Roy Tirtho
94e704087f Merge branch 'dev' 2024-10-09 16:38:23 +06:00
Kingkor Roy Tirtho
8e287ab1e5
Merge pull request #1981 from KRTirtho/dev
Release 3.8.3
2024-10-09 15:39:31 +06:00
4 changed files with 39 additions and 34 deletions

View File

@ -9,7 +9,7 @@ import 'package:spotube/provider/history/recent.dart';
class HomeRecentlyPlayedSection extends HookConsumerWidget {
const HomeRecentlyPlayedSection({super.key});
@override
Widget build(BuildContext context, ref) {
final history = ref.watch(recentlyPlayedItems);
@ -20,17 +20,20 @@ class HomeRecentlyPlayedSection extends HookConsumerWidget {
return const SizedBox();
}
final uniqueItems = <dynamic>{};
final filteredItems = [
for (final item in historyData)
if (item.playlist != null && item.playlist?.id != null && uniqueItems.add(item.playlist!.id!))
item.playlist
else if (item.album != null && item.album?.id != null && uniqueItems.add(item.album?.id))
item.album
];
return Skeletonizer(
enabled: history.isLoading,
child: HorizontalPlaybuttonCardView(
title: Text(context.l10n.recently_played),
items: [
for (final item in historyData)
if (item.playlist != null)
item.playlist
else if (item.album != null)
item.album
],
items: filteredItems,
hasNextPage: false,
isLoadingNextPage: false,
onFetchMore: () {},

View File

@ -71,32 +71,34 @@ class LogsPage extends HookConsumerWidget {
),
)
],
child: switch (logsQuery) {
AsyncData(:final value) => InterScrollbar(
controller: controller,
child: SingleChildScrollView(
padding: const EdgeInsets.all(8.0),
child: SafeArea(
child: switch (logsQuery) {
AsyncData(:final value) => InterScrollbar(
controller: controller,
child: Card(child: SelectableText(value)),
),
),
AsyncError(:final error) => switch (error) {
StateError() => Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Undraw(
illustration: UndrawIllustration.noData,
height: 200 * context.theme.scaling,
width: 200 * context.theme.scaling,
color: context.theme.colorScheme.primary,
),
Text(context.l10n.no_logs_found).muted().small(),
],
child: SingleChildScrollView(
padding: const EdgeInsets.all(8.0),
controller: controller,
child: Card(child: SelectableText(value)),
),
_ => Center(child: Text(error.toString())),
},
_ => const Center(child: CircularProgressIndicator()),
},
),
AsyncError(:final error) => switch (error) {
StateError() => Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Undraw(
illustration: UndrawIllustration.noData,
height: 200 * context.theme.scaling,
width: 200 * context.theme.scaling,
color: context.theme.colorScheme.primary,
),
Text(context.l10n.no_logs_found).muted().small(),
],
),
_ => Center(child: Text(error.toString())),
},
_ => const Center(child: CircularProgressIndicator()),
},
),
);
}
}

View File

@ -1221,7 +1221,7 @@ packages:
description:
path: "."
ref: main
resolved-ref: "52cd25a12c1af6a8819963d222026539e8537586"
resolved-ref: "01935a75640092af7947bfb21a497240376f0c83"
url: "https://github.com/KRTirtho/hetu_spotube_plugin.git"
source: git
version: "0.0.1"

View File

@ -56,7 +56,7 @@ dependencies:
flutter_feather_icons: ^2.0.0+1
flutter_form_builder: ^9.6.0
flutter_hooks: ^0.20.5
flutter_inappwebview: ^6.1.3
flutter_inappwebview: ^6.1.5
flutter_localizations:
sdk: flutter
flutter_native_splash: ^2.4.6