Skip to content
Snippets Groups Projects
Commit 4a2d8639 authored by Benoît Harrault's avatar Benoît Harrault
Browse files

Improve refresh cards data and charts

parent 28142ac4
No related branches found
No related tags found
1 merge request!36Resolve "Improve refresh data and charts"
Pipeline #4652 passed
This commit is part of merge request !36. Comments created here will be created in the context of that merge request.
...@@ -19,27 +19,23 @@ class CardStatisticsRecent extends StatelessWidget { ...@@ -19,27 +19,23 @@ class CardStatisticsRecent extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
final int daysCount = Settings.statisticsRecentDaysCount; final int daysCount = Settings.statisticsRecentDaysCount;
// data context return BlocBuilder<DataStatisticsRecentCubit, DataStatisticsRecentState>(
return BlocProvider<DataStatisticsRecentCubit>( builder: (BuildContext context, DataStatisticsRecentState dataState) {
create: (BuildContext context) => DataStatisticsRecentCubit(), return CardContent(
child: BlocBuilder<DataStatisticsRecentCubit, DataStatisticsRecentState>( color: Theme.of(context).colorScheme.primary,
builder: (BuildContext context, DataStatisticsRecentState dataState) { title: 'recent_statistics'.tr(
return CardContent( namedArgs: {
color: Theme.of(context).colorScheme.primary, 'daysCount': daysCount.toString(),
title: 'recent_statistics'.tr( },
namedArgs: { ),
'daysCount': daysCount.toString(), loader: updateStatisticsRecent(Settings.statisticsRecentDaysCount),
}, content: ContentStatisticsRecent(
), statistics: StatisticsRecentData.fromJson(
loader: updateStatisticsRecent(Settings.statisticsRecentDaysCount), jsonDecode(dataState.statisticsRecent.toString())),
content: ContentStatisticsRecent( isLoading: false,
statistics: StatisticsRecentData.fromJson( ),
jsonDecode(dataState.statisticsRecent.toString())), );
isLoading: false, },
),
);
},
),
); );
} }
...@@ -50,23 +46,21 @@ class CardStatisticsRecent extends StatelessWidget { ...@@ -50,23 +46,21 @@ class CardStatisticsRecent extends StatelessWidget {
late Future<StatisticsRecentData> futureStatisticsRecent = late Future<StatisticsRecentData> futureStatisticsRecent =
ScrobblesApi.fetchRecentStatistics(daysCount); ScrobblesApi.fetchRecentStatistics(daysCount);
return BlocProvider<DataStatisticsRecentCubit>( return BlocBuilder<DataStatisticsRecentCubit, DataStatisticsRecentState>(
create: (BuildContext context) => DataStatisticsRecentCubit(), builder: (BuildContext context, DataStatisticsRecentState state) {
child: BlocBuilder<DataStatisticsRecentCubit, DataStatisticsRecentState>( return FutureBuilder<StatisticsRecentData>(
builder: (BuildContext context, DataStatisticsRecentState state) { future: futureStatisticsRecent,
return FutureBuilder<StatisticsRecentData>( builder: (context, snapshot) {
future: futureStatisticsRecent, if (snapshot.hasError) {
builder: (context, snapshot) { return ShowErrorWidget(message: '${snapshot.error}');
if (snapshot.hasError) { }
return ShowErrorWidget(message: '${snapshot.error}');
}
BlocProvider.of<DataStatisticsRecentCubit>(context).setValue(snapshot.data); BlocProvider.of<DataStatisticsRecentCubit>(context).update(snapshot.data);
return !snapshot.hasData ? loading : done;
}, return !snapshot.hasData ? loading : done;
); },
}, );
), },
); );
} }
} }
...@@ -20,33 +20,30 @@ class CardTimeline extends StatelessWidget { ...@@ -20,33 +20,30 @@ class CardTimeline extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
final int daysCount = Settings.timelineDaysCount; final int daysCount = Settings.timelineDaysCount;
return BlocProvider<DataTimelineCubit>( return BlocBuilder<DataTimelineCubit, DataTimelineState>(
create: (BuildContext context) => DataTimelineCubit(), builder: (BuildContext context, DataTimelineState state) {
child: BlocBuilder<DataTimelineCubit, DataTimelineState>( return CardContent(
builder: (BuildContext context, DataTimelineState state) { color: Theme.of(context).colorScheme.surface,
return CardContent( title: 'timeline_title'.tr(
color: Theme.of(context).colorScheme.surface, namedArgs: {
title: 'timeline_title'.tr( 'daysCount': daysCount.toString(),
namedArgs: { },
'daysCount': daysCount.toString(), ),
}, loader: updateTimeline(Settings.timelineDaysCount),
), content: Stack(
loader: updateTimeline(Settings.timelineDaysCount), children: [
content: Stack( ChartTimelineCounts(
children: [ chartData: TimelineData.fromJson(jsonDecode(state.timeline.toString())),
ChartTimelineCounts( isLoading: false,
chartData: TimelineData.fromJson(jsonDecode(state.timeline.toString())), ),
isLoading: false, ChartTimelineEclecticism(
), chartData: TimelineData.fromJson(jsonDecode(state.timeline.toString())),
ChartTimelineEclecticism( isLoading: false,
chartData: TimelineData.fromJson(jsonDecode(state.timeline.toString())), ),
isLoading: false, ],
), ),
], );
), },
);
},
),
); );
} }
...@@ -56,23 +53,21 @@ class CardTimeline extends StatelessWidget { ...@@ -56,23 +53,21 @@ class CardTimeline extends StatelessWidget {
late Future<TimelineData> futureTimeline = ScrobblesApi.fetchTimeline(daysCount); late Future<TimelineData> futureTimeline = ScrobblesApi.fetchTimeline(daysCount);
return BlocProvider<DataTimelineCubit>( return BlocBuilder<DataTimelineCubit, DataTimelineState>(
create: (BuildContext context) => DataTimelineCubit(), builder: (BuildContext context, DataTimelineState dataTimelineState) {
child: BlocBuilder<DataTimelineCubit, DataTimelineState>( return FutureBuilder<TimelineData>(
builder: (BuildContext context, DataTimelineState state) { future: futureTimeline,
return FutureBuilder<TimelineData>( builder: (context, snapshot) {
future: futureTimeline, if (snapshot.hasError) {
builder: (context, snapshot) { return ShowErrorWidget(message: '${snapshot.error}');
if (snapshot.hasError) { }
return ShowErrorWidget(message: '${snapshot.error}');
}
BlocProvider.of<DataTimelineCubit>(context).setValue(snapshot.data); BlocProvider.of<DataTimelineCubit>(context).update(snapshot.data);
return !snapshot.hasData ? loading : done;
}, return !snapshot.hasData ? loading : done;
); },
}, );
), },
); );
} }
} }
...@@ -19,25 +19,22 @@ class CardTopArtists extends StatelessWidget { ...@@ -19,25 +19,22 @@ class CardTopArtists extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
final int daysCount = Settings.topArtistsDaysCount; final int daysCount = Settings.topArtistsDaysCount;
return BlocProvider<DataTopArtistsCubit>( return BlocBuilder<DataTopArtistsCubit, DataTopArtistsState>(
create: (BuildContext context) => DataTopArtistsCubit(), builder: (BuildContext context, DataTopArtistsState state) {
child: BlocBuilder<DataTopArtistsCubit, DataTopArtistsState>( return CardContent(
builder: (BuildContext context, DataTopArtistsState state) { color: Theme.of(context).colorScheme.surface,
return CardContent( title: 'top_artists_title'.tr(
color: Theme.of(context).colorScheme.surface, namedArgs: {
title: 'top_artists_title'.tr( 'daysCount': daysCount.toString(),
namedArgs: { },
'daysCount': daysCount.toString(), ),
}, loader: updateTopArtists(Settings.topArtistsDaysCount),
), content: ChartTopArtists(
loader: updateTopArtists(Settings.topArtistsDaysCount), chartData: TopArtistsData.fromJson(jsonDecode(state.topArtists.toString())),
content: ChartTopArtists( isLoading: false,
chartData: TopArtistsData.fromJson(jsonDecode(state.topArtists.toString())), ),
isLoading: false, );
), },
);
},
),
); );
} }
...@@ -47,23 +44,21 @@ class CardTopArtists extends StatelessWidget { ...@@ -47,23 +44,21 @@ class CardTopArtists extends StatelessWidget {
late Future<TopArtistsData> futureTopArtists = ScrobblesApi.fetchTopArtists(daysCount); late Future<TopArtistsData> futureTopArtists = ScrobblesApi.fetchTopArtists(daysCount);
return BlocProvider<DataTopArtistsCubit>( return BlocBuilder<DataTopArtistsCubit, DataTopArtistsState>(
create: (BuildContext context) => DataTopArtistsCubit(), builder: (BuildContext context, DataTopArtistsState state) {
child: BlocBuilder<DataTopArtistsCubit, DataTopArtistsState>( return FutureBuilder<TopArtistsData>(
builder: (BuildContext context, DataTopArtistsState state) { future: futureTopArtists,
return FutureBuilder<TopArtistsData>( builder: (context, snapshot) {
future: futureTopArtists, if (snapshot.hasError) {
builder: (context, snapshot) { return ShowErrorWidget(message: '${snapshot.error}');
if (snapshot.hasError) { }
return ShowErrorWidget(message: '${snapshot.error}');
}
BlocProvider.of<DataTopArtistsCubit>(context).setValue(snapshot.data); BlocProvider.of<DataTopArtistsCubit>(context).update(snapshot.data);
return !snapshot.hasData ? loading : done;
}, return !snapshot.hasData ? loading : done;
); },
}, );
), },
); );
} }
} }
...@@ -17,6 +17,12 @@ class ChartCountsByDay extends CustomBarChart { ...@@ -17,6 +17,12 @@ class ChartCountsByDay extends CustomBarChart {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
if (this.chartData.data.keys.length == 0) {
return SizedBox(
height: this.chartHeight,
);
}
return Container( return Container(
height: this.chartHeight, height: this.chartHeight,
child: this.isLoading child: this.isLoading
......
...@@ -17,6 +17,12 @@ class ChartCountsByHour extends CustomBarChart { ...@@ -17,6 +17,12 @@ class ChartCountsByHour extends CustomBarChart {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
if (this.chartData.data.keys.length == 0) {
return SizedBox(
height: this.chartHeight,
);
}
return Container( return Container(
height: this.chartHeight, height: this.chartHeight,
child: this.isLoading child: this.isLoading
......
...@@ -14,6 +14,12 @@ class ChartDiscoveriesArtists extends CustomBarChart { ...@@ -14,6 +14,12 @@ class ChartDiscoveriesArtists extends CustomBarChart {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
if (this.chartData.data.keys.length == 0) {
return SizedBox(
height: this.chartHeight,
);
}
return Container( return Container(
height: this.chartHeight, height: this.chartHeight,
child: this.isLoading child: this.isLoading
......
...@@ -14,6 +14,12 @@ class ChartDiscoveriesTracks extends CustomBarChart { ...@@ -14,6 +14,12 @@ class ChartDiscoveriesTracks extends CustomBarChart {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
if (this.chartData.data.keys.length == 0) {
return SizedBox(
height: this.chartHeight,
);
}
return Container( return Container(
height: this.chartHeight, height: this.chartHeight,
child: this.isLoading child: this.isLoading
......
...@@ -15,6 +15,12 @@ class ChartTimelineCounts extends CustomBarChart { ...@@ -15,6 +15,12 @@ class ChartTimelineCounts extends CustomBarChart {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
if (this.chartData.data.keys.length == 0) {
return SizedBox(
height: this.chartHeight,
);
}
return Container( return Container(
height: this.chartHeight, height: this.chartHeight,
child: this.isLoading child: this.isLoading
......
...@@ -16,6 +16,12 @@ class ChartTimelineEclecticism extends CustomLineChart { ...@@ -16,6 +16,12 @@ class ChartTimelineEclecticism extends CustomLineChart {
Widget build(BuildContext context) { Widget build(BuildContext context) {
final horizontalScale = getHorizontalScale(); final horizontalScale = getHorizontalScale();
if (this.chartData.data.keys.length == 0) {
return SizedBox(
height: this.chartHeight,
);
}
return Container( return Container(
height: this.chartHeight, height: this.chartHeight,
child: this.isLoading child: this.isLoading
......
...@@ -3,7 +3,7 @@ description: Display scrobbles data and charts ...@@ -3,7 +3,7 @@ description: Display scrobbles data and charts
publish_to: 'none' publish_to: 'none'
version: 0.0.33+33 version: 0.0.34+34
environment: environment:
sdk: '^3.0.0' sdk: '^3.0.0'
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment