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

Merge branch '6-refresh-on-pull-down' into 'master'

Resolve "Refresh on pull down"

Closes #6

See merge request !28
parents ab2baf8b 2138afec
No related branches found
No related tags found
1 merge request!28Resolve "Refresh on pull down"
Pipeline #4680 passed
org.gradle.jvmargs=-Xmx1536M org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true
app.versionName=0.0.38 app.versionName=0.0.39
app.versionCode=38 app.versionCode=39
Update data on page pull down.
Mise à jour des données en tirant la page vers le bas.
...@@ -3,12 +3,18 @@ import 'package:flutter/material.dart'; ...@@ -3,12 +3,18 @@ import 'package:flutter/material.dart';
import 'package:scrobbles/ui/widgets/cards/discoveries.dart'; import 'package:scrobbles/ui/widgets/cards/discoveries.dart';
class ScreenDiscoveries extends StatelessWidget { class ScreenDiscoveries extends StatelessWidget {
const ScreenDiscoveries({super.key}); final Function() notifyParent;
const ScreenDiscoveries({super.key, required this.notifyParent});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Material( return Material(
color: Theme.of(context).colorScheme.background, color: Theme.of(context).colorScheme.background,
child: RefreshIndicator(
onRefresh: () async {
this.notifyParent();
},
child: ListView( child: ListView(
padding: const EdgeInsets.symmetric(horizontal: 4), padding: const EdgeInsets.symmetric(horizontal: 4),
physics: const BouncingScrollPhysics(), physics: const BouncingScrollPhysics(),
...@@ -18,6 +24,7 @@ class ScreenDiscoveries extends StatelessWidget { ...@@ -18,6 +24,7 @@ class ScreenDiscoveries extends StatelessWidget {
const SizedBox(height: 36), const SizedBox(height: 36),
], ],
), ),
),
); );
} }
} }
...@@ -6,12 +6,18 @@ import 'package:scrobbles/ui/widgets/cards/timeline.dart'; ...@@ -6,12 +6,18 @@ import 'package:scrobbles/ui/widgets/cards/timeline.dart';
import 'package:scrobbles/ui/widgets/cards/top_artists.dart'; import 'package:scrobbles/ui/widgets/cards/top_artists.dart';
class ScreenHome extends StatelessWidget { class ScreenHome extends StatelessWidget {
const ScreenHome({super.key}); final Function() notifyParent;
const ScreenHome({super.key, required this.notifyParent});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Material( return Material(
color: Theme.of(context).colorScheme.background, color: Theme.of(context).colorScheme.background,
child: RefreshIndicator(
onRefresh: () async {
this.notifyParent();
},
child: ListView( child: ListView(
padding: const EdgeInsets.symmetric(horizontal: 4), padding: const EdgeInsets.symmetric(horizontal: 4),
physics: const BouncingScrollPhysics(), physics: const BouncingScrollPhysics(),
...@@ -27,6 +33,7 @@ class ScreenHome extends StatelessWidget { ...@@ -27,6 +33,7 @@ class ScreenHome extends StatelessWidget {
const SizedBox(height: 36), const SizedBox(height: 36),
], ],
), ),
),
); );
} }
} }
...@@ -4,12 +4,18 @@ import 'package:scrobbles/ui/widgets/cards/counts_by_day.dart'; ...@@ -4,12 +4,18 @@ import 'package:scrobbles/ui/widgets/cards/counts_by_day.dart';
import 'package:scrobbles/ui/widgets/cards/counts_by_hour.dart'; import 'package:scrobbles/ui/widgets/cards/counts_by_hour.dart';
class ScreenStatistics extends StatelessWidget { class ScreenStatistics extends StatelessWidget {
const ScreenStatistics({super.key}); final Function() notifyParent;
const ScreenStatistics({super.key, required this.notifyParent});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Material( return Material(
color: Theme.of(context).colorScheme.background, color: Theme.of(context).colorScheme.background,
child: RefreshIndicator(
onRefresh: () async {
this.notifyParent();
},
child: ListView( child: ListView(
padding: const EdgeInsets.symmetric(horizontal: 4), padding: const EdgeInsets.symmetric(horizontal: 4),
physics: const BouncingScrollPhysics(), physics: const BouncingScrollPhysics(),
...@@ -21,6 +27,7 @@ class ScreenStatistics extends StatelessWidget { ...@@ -21,6 +27,7 @@ class ScreenStatistics extends StatelessWidget {
const SizedBox(height: 36), const SizedBox(height: 36),
], ],
), ),
),
); );
} }
} }
...@@ -20,10 +20,10 @@ class SkeletonScreen extends StatefulWidget { ...@@ -20,10 +20,10 @@ class SkeletonScreen extends StatefulWidget {
class _SkeletonScreenState extends State<SkeletonScreen> { class _SkeletonScreenState extends State<SkeletonScreen> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
const List<Widget> pageNavigation = <Widget>[ List<Widget> pageNavigation = <Widget>[
const ScreenHome(), ScreenHome(notifyParent: refresh),
const ScreenDiscoveries(), ScreenDiscoveries(notifyParent: refresh),
const ScreenStatistics(), ScreenStatistics(notifyParent: refresh),
const ScreenSettings(), const ScreenSettings(),
]; ];
...@@ -53,6 +53,11 @@ class _SkeletonScreenState extends State<SkeletonScreen> { ...@@ -53,6 +53,11 @@ class _SkeletonScreenState extends State<SkeletonScreen> {
} }
refresh() { refresh() {
setState(() {}); void rebuild(Element el) {
el.markNeedsBuild();
el.visitChildren(rebuild);
}
(context as Element).visitChildren(rebuild);
} }
} }
...@@ -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.38+38 version: 0.0.39+39
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