From e7ad3663817205fb22b846c55a761fbe5a3ee408 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr>
Date: Sun, 7 Jul 2024 15:50:14 +0200
Subject: [PATCH] Fix/improve refresh data

---
 android/gradle.properties                     |  4 +-
 .../metadata/android/en-US/changelogs/59.txt  |  1 +
 .../metadata/android/fr-FR/changelogs/59.txt  |  1 +
 lib/cubit/activity_cubit.dart                 | 60 -------------------
 lib/cubit/activity_state.dart                 | 15 -----
 lib/main.dart                                 |  2 -
 lib/models/activity/activity.dart             | 26 --------
 lib/ui/nav/global_app_bar.dart                | 22 ++++++-
 lib/ui/pages/discoveries.dart                 |  8 ++-
 lib/ui/pages/home.dart                        | 10 +++-
 lib/ui/pages/statistics.dart                  |  8 ++-
 pubspec.yaml                                  |  2 +-
 12 files changed, 45 insertions(+), 114 deletions(-)
 create mode 100644 fastlane/metadata/android/en-US/changelogs/59.txt
 create mode 100644 fastlane/metadata/android/fr-FR/changelogs/59.txt
 delete mode 100644 lib/cubit/activity_cubit.dart
 delete mode 100644 lib/cubit/activity_state.dart
 delete mode 100644 lib/models/activity/activity.dart

diff --git a/android/gradle.properties b/android/gradle.properties
index 7dd3e32..02bde78 100644
--- a/android/gradle.properties
+++ b/android/gradle.properties
@@ -1,5 +1,5 @@
 org.gradle.jvmargs=-Xmx1536M
 android.useAndroidX=true
 android.enableJetifier=true
-app.versionName=0.1.0
-app.versionCode=58
+app.versionName=0.1.1
+app.versionCode=59
diff --git a/fastlane/metadata/android/en-US/changelogs/59.txt b/fastlane/metadata/android/en-US/changelogs/59.txt
new file mode 100644
index 0000000..ea7fb7e
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/59.txt
@@ -0,0 +1 @@
+Fix/improve refresh data.
diff --git a/fastlane/metadata/android/fr-FR/changelogs/59.txt b/fastlane/metadata/android/fr-FR/changelogs/59.txt
new file mode 100644
index 0000000..ce11b4e
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/59.txt
@@ -0,0 +1 @@
+Correction/amélioration de la mise à jour des données.
diff --git a/lib/cubit/activity_cubit.dart b/lib/cubit/activity_cubit.dart
deleted file mode 100644
index 55bfee6..0000000
--- a/lib/cubit/activity_cubit.dart
+++ /dev/null
@@ -1,60 +0,0 @@
-import 'package:equatable/equatable.dart';
-import 'package:flutter/material.dart';
-import 'package:flutter_bloc/flutter_bloc.dart';
-import 'package:hydrated_bloc/hydrated_bloc.dart';
-
-import 'package:scrobbles/cubit/data_counts_by_day_cubit.dart';
-import 'package:scrobbles/cubit/data_counts_by_hour_cubit.dart';
-import 'package:scrobbles/cubit/data_discoveries_cubit.dart';
-import 'package:scrobbles/cubit/data_heatmap_cubit.dart';
-import 'package:scrobbles/cubit/data_new_artists_cubit.dart';
-import 'package:scrobbles/cubit/data_new_tracks_cubit.dart';
-import 'package:scrobbles/cubit/data_statistics_global_cubit.dart';
-import 'package:scrobbles/cubit/data_statistics_recent_cubit.dart';
-import 'package:scrobbles/cubit/data_timeline_cubit.dart';
-import 'package:scrobbles/cubit/data_top_artists_cubit.dart';
-import 'package:scrobbles/models/activity/activity.dart';
-
-part 'activity_state.dart';
-
-class ActivityCubit extends HydratedCubit<ActivityState> {
-  ActivityCubit()
-      : super(ActivityState(
-          currentActivity: Activity.createNull(),
-        ));
-
-  void updateState(Activity activity) {
-    emit(ActivityState(
-      currentActivity: activity,
-    ));
-  }
-
-  void refresh(BuildContext context) {
-    BlocProvider.of<DataCountsByDayCubit>(context).refresh(context);
-    BlocProvider.of<DataCountsByHourCubit>(context).refresh(context);
-    BlocProvider.of<DataDiscoveriesCubit>(context).refresh(context);
-    BlocProvider.of<DataHeatmapCubit>(context).refresh(context);
-    BlocProvider.of<DataNewArtistsCubit>(context).refresh(context);
-    BlocProvider.of<DataNewTracksCubit>(context).refresh(context);
-    BlocProvider.of<DataStatisticsGlobalCubit>(context).refresh(context);
-    BlocProvider.of<DataStatisticsRecentCubit>(context).refresh(context);
-    BlocProvider.of<DataTimelineCubit>(context).refresh(context);
-    BlocProvider.of<DataTopArtistsCubit>(context).refresh(context);
-  }
-
-  @override
-  ActivityState? fromJson(Map<String, dynamic> json) {
-    final Activity currentActivity = json['currentActivity'] as Activity;
-
-    return ActivityState(
-      currentActivity: currentActivity,
-    );
-  }
-
-  @override
-  Map<String, dynamic>? toJson(ActivityState state) {
-    return <String, dynamic>{
-      'currentActivity': state.currentActivity.toJson(),
-    };
-  }
-}
diff --git a/lib/cubit/activity_state.dart b/lib/cubit/activity_state.dart
deleted file mode 100644
index 887b45e..0000000
--- a/lib/cubit/activity_state.dart
+++ /dev/null
@@ -1,15 +0,0 @@
-part of 'activity_cubit.dart';
-
-@immutable
-class ActivityState extends Equatable {
-  const ActivityState({
-    required this.currentActivity,
-  });
-
-  final Activity currentActivity;
-
-  @override
-  List<dynamic> get props => <dynamic>[
-        currentActivity,
-      ];
-}
diff --git a/lib/main.dart b/lib/main.dart
index a69592e..01c4a43 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -9,7 +9,6 @@ import 'package:hydrated_bloc/hydrated_bloc.dart';
 import 'package:path_provider/path_provider.dart';
 
 import 'package:scrobbles/config/theme.dart';
-import 'package:scrobbles/cubit/activity_cubit.dart';
 import 'package:scrobbles/cubit/nav_cubit_pages.dart';
 import 'package:scrobbles/cubit/nav_cubit_screens.dart';
 import 'package:scrobbles/cubit/data_counts_by_day_cubit.dart';
@@ -59,7 +58,6 @@ class MyApp extends StatelessWidget {
         BlocProvider<NavCubitPage>(create: (context) => NavCubitPage()),
         BlocProvider<NavCubitScreen>(create: (context) => NavCubitScreen()),
         BlocProvider<ThemeCubit>(create: (context) => ThemeCubit()),
-        BlocProvider<ActivityCubit>(create: (context) => ActivityCubit()),
         BlocProvider<GlobalSettingsCubit>(create: (context) => GlobalSettingsCubit()),
         BlocProvider<DataCountsByDayCubit>(create: (context) => DataCountsByDayCubit()),
         BlocProvider<DataCountsByHourCubit>(create: (context) => DataCountsByHourCubit()),
diff --git a/lib/models/activity/activity.dart b/lib/models/activity/activity.dart
deleted file mode 100644
index 1b890ee..0000000
--- a/lib/models/activity/activity.dart
+++ /dev/null
@@ -1,26 +0,0 @@
-import 'package:scrobbles/utils/tools.dart';
-
-class Activity {
-  const Activity();
-
-  factory Activity.createNull() {
-    return const Activity();
-  }
-
-  void dump() {
-    printlog('');
-    printlog('## Current activity dump:');
-    printlog('');
-    printlog('$Activity:');
-    printlog('');
-  }
-
-  @override
-  String toString() {
-    return '$Activity(${toJson()})';
-  }
-
-  Map<String, dynamic>? toJson() {
-    return <String, dynamic>{};
-  }
-}
diff --git a/lib/ui/nav/global_app_bar.dart b/lib/ui/nav/global_app_bar.dart
index f7cb5e5..7d6ee42 100644
--- a/lib/ui/nav/global_app_bar.dart
+++ b/lib/ui/nav/global_app_bar.dart
@@ -1,8 +1,17 @@
 import 'package:flutter/material.dart';
 import 'package:flutter_bloc/flutter_bloc.dart';
-import 'package:scrobbles/cubit/activity_cubit.dart';
 import 'package:unicons/unicons.dart';
 
+import 'package:scrobbles/cubit/data_counts_by_day_cubit.dart';
+import 'package:scrobbles/cubit/data_counts_by_hour_cubit.dart';
+import 'package:scrobbles/cubit/data_discoveries_cubit.dart';
+import 'package:scrobbles/cubit/data_heatmap_cubit.dart';
+import 'package:scrobbles/cubit/data_new_artists_cubit.dart';
+import 'package:scrobbles/cubit/data_new_tracks_cubit.dart';
+import 'package:scrobbles/cubit/data_statistics_global_cubit.dart';
+import 'package:scrobbles/cubit/data_statistics_recent_cubit.dart';
+import 'package:scrobbles/cubit/data_timeline_cubit.dart';
+import 'package:scrobbles/cubit/data_top_artists_cubit.dart';
 import 'package:scrobbles/cubit/nav_cubit_pages.dart';
 import 'package:scrobbles/config/screen.dart';
 import 'package:scrobbles/cubit/nav_cubit_screens.dart';
@@ -37,7 +46,16 @@ class GlobalAppBar extends StatelessWidget implements PreferredSizeWidget {
           // refresh data
           menuActions.add(IconButton(
             onPressed: () {
-              BlocProvider.of<ActivityCubit>(context).refresh(context);
+              BlocProvider.of<DataCountsByDayCubit>(context).refresh(context);
+              BlocProvider.of<DataCountsByHourCubit>(context).refresh(context);
+              BlocProvider.of<DataDiscoveriesCubit>(context).refresh(context);
+              BlocProvider.of<DataHeatmapCubit>(context).refresh(context);
+              BlocProvider.of<DataNewArtistsCubit>(context).refresh(context);
+              BlocProvider.of<DataNewTracksCubit>(context).refresh(context);
+              BlocProvider.of<DataStatisticsGlobalCubit>(context).refresh(context);
+              BlocProvider.of<DataStatisticsRecentCubit>(context).refresh(context);
+              BlocProvider.of<DataTimelineCubit>(context).refresh(context);
+              BlocProvider.of<DataTopArtistsCubit>(context).refresh(context);
             },
             icon: const Icon(UniconsSolid.refresh),
           ));
diff --git a/lib/ui/pages/discoveries.dart b/lib/ui/pages/discoveries.dart
index ddbbe96..34b0251 100644
--- a/lib/ui/pages/discoveries.dart
+++ b/lib/ui/pages/discoveries.dart
@@ -1,7 +1,9 @@
 import 'package:flutter/material.dart';
 import 'package:flutter_bloc/flutter_bloc.dart';
 
-import 'package:scrobbles/cubit/activity_cubit.dart';
+import 'package:scrobbles/cubit/data_discoveries_cubit.dart';
+import 'package:scrobbles/cubit/data_new_artists_cubit.dart';
+import 'package:scrobbles/cubit/data_new_tracks_cubit.dart';
 import 'package:scrobbles/ui/widgets/cards/discoveries.dart';
 import 'package:scrobbles/ui/widgets/cards/new_artists.dart';
 import 'package:scrobbles/ui/widgets/cards/new_tracks.dart';
@@ -13,7 +15,9 @@ class PageDiscoveries extends StatelessWidget {
   Widget build(BuildContext context) {
     return RefreshIndicator(
       onRefresh: () async {
-        BlocProvider.of<ActivityCubit>(context).refresh(context);
+        BlocProvider.of<DataDiscoveriesCubit>(context).refresh(context);
+        BlocProvider.of<DataNewArtistsCubit>(context).refresh(context);
+        BlocProvider.of<DataNewTracksCubit>(context).refresh(context);
       },
       child: ListView(
         padding: const EdgeInsets.symmetric(horizontal: 4),
diff --git a/lib/ui/pages/home.dart b/lib/ui/pages/home.dart
index f7d4d8b..f1d647a 100644
--- a/lib/ui/pages/home.dart
+++ b/lib/ui/pages/home.dart
@@ -1,7 +1,10 @@
 import 'package:flutter/material.dart';
 import 'package:flutter_bloc/flutter_bloc.dart';
 
-import 'package:scrobbles/cubit/activity_cubit.dart';
+import 'package:scrobbles/cubit/data_statistics_global_cubit.dart';
+import 'package:scrobbles/cubit/data_statistics_recent_cubit.dart';
+import 'package:scrobbles/cubit/data_timeline_cubit.dart';
+import 'package:scrobbles/cubit/data_top_artists_cubit.dart';
 import 'package:scrobbles/ui/widgets/cards/statistics_global.dart';
 import 'package:scrobbles/ui/widgets/cards/statistics_recent.dart';
 import 'package:scrobbles/ui/widgets/cards/timeline.dart';
@@ -14,7 +17,10 @@ class PageHome extends StatelessWidget {
   Widget build(BuildContext context) {
     return RefreshIndicator(
       onRefresh: () async {
-        BlocProvider.of<ActivityCubit>(context).refresh(context);
+        BlocProvider.of<DataStatisticsGlobalCubit>(context).refresh(context);
+        BlocProvider.of<DataStatisticsRecentCubit>(context).refresh(context);
+        BlocProvider.of<DataTimelineCubit>(context).refresh(context);
+        BlocProvider.of<DataTopArtistsCubit>(context).refresh(context);
       },
       child: ListView(
         padding: const EdgeInsets.symmetric(horizontal: 4),
diff --git a/lib/ui/pages/statistics.dart b/lib/ui/pages/statistics.dart
index b0448b6..b232bf0 100644
--- a/lib/ui/pages/statistics.dart
+++ b/lib/ui/pages/statistics.dart
@@ -1,7 +1,9 @@
 import 'package:flutter/material.dart';
 import 'package:flutter_bloc/flutter_bloc.dart';
 
-import 'package:scrobbles/cubit/activity_cubit.dart';
+import 'package:scrobbles/cubit/data_counts_by_day_cubit.dart';
+import 'package:scrobbles/cubit/data_counts_by_hour_cubit.dart';
+import 'package:scrobbles/cubit/data_heatmap_cubit.dart';
 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/heatmap.dart';
@@ -13,7 +15,9 @@ class PageStatistics extends StatelessWidget {
   Widget build(BuildContext context) {
     return RefreshIndicator(
       onRefresh: () async {
-        BlocProvider.of<ActivityCubit>(context).refresh(context);
+        BlocProvider.of<DataCountsByDayCubit>(context).refresh(context);
+        BlocProvider.of<DataCountsByHourCubit>(context).refresh(context);
+        BlocProvider.of<DataHeatmapCubit>(context).refresh(context);
       },
       child: ListView(
         padding: const EdgeInsets.symmetric(horizontal: 4),
diff --git a/pubspec.yaml b/pubspec.yaml
index 63996e0..a48daaa 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -3,7 +3,7 @@ description: Display scrobbles data and charts
 
 publish_to: "none"
 
-version: 0.1.0+58
+version: 0.1.1+59
 
 environment:
   sdk: "^3.0.0"
-- 
GitLab