diff --git a/android/gradle.properties b/android/gradle.properties
index 4d8dcd2635bb8701e212029096d53cf5dc060e45..62205f40150696555e74bed7fbf2f63d6f99f49b 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.0.40
-app.versionCode=40
+app.versionName=0.0.41
+app.versionCode=41
diff --git a/assets/translations/en.json b/assets/translations/en.json
index d9a54c42bc93dabb289af72c895dfa06f6cfffdd..3c3161ddd6fdce8e232a174f94291efbdcacd95f 100644
--- a/assets/translations/en.json
+++ b/assets/translations/en.json
@@ -27,9 +27,8 @@
   "settings_title": "Settings",
   "settings_label_username": "Username: ",
   "settings_label_security_token": "Security token: ",
-  "settings_label_counts_by_day_days_count": "Counts by day: ",
-  "settings_label_counts_by_hour_days_count": "Counts by hour: ",
   "settings_label_discoveries_days_count": "Discoveries: ",
+  "settings_label_distribution_days_count": "Distributions : ",
   "settings_label_statistics_recent_days_count": "Recent statistics: ",
   "settings_label_timeline_days_count": "Timeline: ",
   "settings_label_top_artists_days_count": "Top Artists: ",
diff --git a/assets/translations/fr.json b/assets/translations/fr.json
index c2c257dd8b3ef1c2cba8cde4225194b9509d5449..7870ef831dea5485266e868ecb1552f28bf71c89 100644
--- a/assets/translations/fr.json
+++ b/assets/translations/fr.json
@@ -27,9 +27,8 @@
   "settings_title": "Paramètres",
   "settings_label_username": "Utilisateur : ",
   "settings_label_security_token": "Jeton de sécurité : ",
-  "settings_label_counts_by_day_days_count": "Répartition par heure : ",
-  "settings_label_counts_by_hour_days_count": "Répartition par jour : ",
   "settings_label_discoveries_days_count": "Découvertes : ",
+  "settings_label_distribution_days_count": "Répartitions : ",
   "settings_label_statistics_recent_days_count": "Statistiques récentes : ",
   "settings_label_timeline_days_count": "Timeline : ",
   "settings_label_top_artists_days_count": "Top Artistes : ",
diff --git a/fastlane/metadata/android/en-US/changelogs/41.txt b/fastlane/metadata/android/en-US/changelogs/41.txt
new file mode 100644
index 0000000000000000000000000000000000000000..3b52d6529c53dcc852e14f2284e0c767e756cf2f
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/41.txt
@@ -0,0 +1 @@
+Merge settings for distribution charts.
diff --git a/fastlane/metadata/android/fr-FR/changelogs/41.txt b/fastlane/metadata/android/fr-FR/changelogs/41.txt
new file mode 100644
index 0000000000000000000000000000000000000000..3afab5bbc82e28ca16e023e0634eedd777251ff4
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/41.txt
@@ -0,0 +1 @@
+Fusion des paramètres pour les graphiques de répartition.
diff --git a/lib/config/default_settings.dart b/lib/config/default_settings.dart
index c90ec49030da99d4cb50c1a871ed3725c02ab49f..e56460587678ed53759c14cc68e3a8ebd899e3b3 100644
--- a/lib/config/default_settings.dart
+++ b/lib/config/default_settings.dart
@@ -7,9 +7,8 @@ class DefaultSettings {
     60,
     90,
   ];
-  static const int defaultCountsByDayDaysCount = 21;
-  static const int defaultCountsByHourDaysCount = 21;
   static const int defaultDiscoveriesDaysCount = 14;
+  static const int defaultDistributionDaysCount = 21;
   static const int defaultStatisticsRecentDaysCount = 21;
   static const int defaultTimelineDaysCount = 14;
   static const int defaultTopArtistsDaysCount = 14;
diff --git a/lib/cubit/settings_cubit.dart b/lib/cubit/settings_cubit.dart
index e471dd2719594910f3e44e9f23c727a37c2e8c61..5b4374aa2b8ea5ec3450d8409b7d2ee2eb9b0fec 100644
--- a/lib/cubit/settings_cubit.dart
+++ b/lib/cubit/settings_cubit.dart
@@ -17,18 +17,14 @@ class SettingsCubit extends HydratedCubit<SettingsState> {
     return state.securityToken ?? '';
   }
 
-  int getCountsByDayDaysCount() {
-    return state.countsByDayDaysCount ?? DefaultSettings.defaultCountsByDayDaysCount;
-  }
-
-  int getCountsByHourDaysCount() {
-    return state.countsByHourDaysCount ?? DefaultSettings.defaultCountsByHourDaysCount;
-  }
-
   int getDiscoveriesDaysCount() {
     return state.discoveriesDaysCount ?? DefaultSettings.defaultDiscoveriesDaysCount;
   }
 
+  int getDistributionDaysCount() {
+    return state.distributionDaysCount ?? DefaultSettings.defaultDistributionDaysCount;
+  }
+
   int getStatisticsRecentDaysCount() {
     return state.statisticsRecentDaysCount ?? DefaultSettings.defaultStatisticsRecentDaysCount;
   }
@@ -44,9 +40,8 @@ class SettingsCubit extends HydratedCubit<SettingsState> {
   void setValues({
     String? username,
     String? securityToken,
-    int? countsByDayDaysCount,
-    int? countsByHourDaysCount,
     int? discoveriesDaysCount,
+    int? distributionDaysCount,
     int? statisticsRecentDaysCount,
     int? timelineDaysCount,
     int? topArtistsDaysCount,
@@ -54,9 +49,8 @@ class SettingsCubit extends HydratedCubit<SettingsState> {
     emit(SettingsState(
       username: username ?? state.username,
       securityToken: securityToken ?? state.securityToken,
-      countsByDayDaysCount: countsByDayDaysCount ?? state.countsByDayDaysCount,
-      countsByHourDaysCount: countsByHourDaysCount ?? state.countsByHourDaysCount,
       discoveriesDaysCount: discoveriesDaysCount ?? state.discoveriesDaysCount,
+      distributionDaysCount: distributionDaysCount ?? state.distributionDaysCount,
       statisticsRecentDaysCount: statisticsRecentDaysCount ?? state.statisticsRecentDaysCount,
       timelineDaysCount: timelineDaysCount ?? state.timelineDaysCount,
       topArtistsDaysCount: topArtistsDaysCount ?? state.topArtistsDaysCount,
@@ -67,9 +61,8 @@ class SettingsCubit extends HydratedCubit<SettingsState> {
   SettingsState? fromJson(Map<String, dynamic> json) {
     String username = json['username'] as String;
     String securityToken = json['securityToken'] as String;
-    int countsByDayDaysCount = json['countsByDayDaysCount'] as int;
-    int countsByHourDaysCount = json['countsByHourDaysCount'] as int;
     int discoveriesDaysCount = json['discoveriesDaysCount'] as int;
+    int distributionDaysCount = json['distributionDaysCount'] as int;
     int statisticsRecentDaysCount = json['statisticsRecentDaysCount'] as int;
     int timelineDaysCount = json['timelineDaysCount'] as int;
     int topArtistsDaysCount = json['topArtistsDaysCount'] as int;
@@ -77,9 +70,8 @@ class SettingsCubit extends HydratedCubit<SettingsState> {
     return SettingsState(
       username: username,
       securityToken: securityToken,
-      countsByDayDaysCount: countsByDayDaysCount,
-      countsByHourDaysCount: countsByHourDaysCount,
       discoveriesDaysCount: discoveriesDaysCount,
+      distributionDaysCount: distributionDaysCount,
       statisticsRecentDaysCount: statisticsRecentDaysCount,
       timelineDaysCount: timelineDaysCount,
       topArtistsDaysCount: topArtistsDaysCount,
@@ -91,12 +83,10 @@ class SettingsCubit extends HydratedCubit<SettingsState> {
     return <String, dynamic>{
       'username': state.username ?? '',
       'securityToken': state.securityToken ?? '',
-      'countsByDayDaysCount':
-          state.countsByDayDaysCount ?? DefaultSettings.defaultCountsByDayDaysCount,
-      'countsByHourDaysCount':
-          state.countsByHourDaysCount ?? DefaultSettings.defaultCountsByHourDaysCount,
       'discoveriesDaysCount':
           state.discoveriesDaysCount ?? DefaultSettings.defaultDiscoveriesDaysCount,
+      'distributionDaysCount':
+          state.distributionDaysCount ?? DefaultSettings.defaultDistributionDaysCount,
       'statisticsRecentDaysCount':
           state.statisticsRecentDaysCount ?? DefaultSettings.defaultStatisticsRecentDaysCount,
       'timelineDaysCount': state.timelineDaysCount ?? DefaultSettings.defaultTimelineDaysCount,
diff --git a/lib/cubit/settings_state.dart b/lib/cubit/settings_state.dart
index 848b348dbdbef27575eab768dcb31518b3b6b3ce..46d965ebf1aa732b6bc6dff235c0451a8f95ba00 100644
--- a/lib/cubit/settings_state.dart
+++ b/lib/cubit/settings_state.dart
@@ -5,9 +5,8 @@ class SettingsState extends Equatable {
   const SettingsState({
     this.username,
     this.securityToken,
-    this.countsByDayDaysCount,
-    this.countsByHourDaysCount,
     this.discoveriesDaysCount,
+    this.distributionDaysCount,
     this.statisticsRecentDaysCount,
     this.timelineDaysCount,
     this.topArtistsDaysCount,
@@ -15,9 +14,8 @@ class SettingsState extends Equatable {
 
   final String? username;
   final String? securityToken;
-  final int? countsByDayDaysCount;
-  final int? countsByHourDaysCount;
   final int? discoveriesDaysCount;
+  final int? distributionDaysCount;
   final int? statisticsRecentDaysCount;
   final int? timelineDaysCount;
   final int? topArtistsDaysCount;
@@ -26,9 +24,8 @@ class SettingsState extends Equatable {
   List<dynamic> get props => <dynamic>[
         username,
         securityToken,
-        countsByDayDaysCount,
-        countsByHourDaysCount,
         discoveriesDaysCount,
+        distributionDaysCount,
         statisticsRecentDaysCount,
         timelineDaysCount,
         topArtistsDaysCount,
@@ -37,9 +34,8 @@ class SettingsState extends Equatable {
   Map<String, dynamic> get values => <String, dynamic>{
         'username': username,
         'securityToken': securityToken,
-        'countsByDayDaysCount': countsByDayDaysCount,
-        'countsByHourDaysCount': countsByHourDaysCount,
         'discoveriesDaysCount': discoveriesDaysCount,
+        'distributionDaysCount': distributionDaysCount,
         'statisticsRecentDaysCount': statisticsRecentDaysCount,
         'timelineDaysCount': timelineDaysCount,
         'topArtistsDaysCount': topArtistsDaysCount,
diff --git a/lib/ui/widgets/cards/counts_by_day.dart b/lib/ui/widgets/cards/counts_by_day.dart
index 5db1b6962cca0ac87ea21ecb573d3908107bd5ea..f31a516d5fa4f978f7cb6fedd832149f4d5b63f0 100644
--- a/lib/ui/widgets/cards/counts_by_day.dart
+++ b/lib/ui/widgets/cards/counts_by_day.dart
@@ -17,7 +17,7 @@ class CardCountsByDay extends StatelessWidget {
   Widget build(BuildContext context) {
     SettingsCubit settings = BlocProvider.of<SettingsCubit>(context);
 
-    final int daysCount = settings.getCountsByDayDaysCount();
+    final int daysCount = settings.getDistributionDaysCount();
 
     return BlocBuilder<DataCountsByDayCubit, DataCountsByDayState>(
       builder: (BuildContext context, DataCountsByDayState state) {
diff --git a/lib/ui/widgets/cards/counts_by_hour.dart b/lib/ui/widgets/cards/counts_by_hour.dart
index 3421747a89d9832bec2b18f51927278bb9a5ae44..7618d3d394896f8b61f12f4c6630a54525b7b67f 100644
--- a/lib/ui/widgets/cards/counts_by_hour.dart
+++ b/lib/ui/widgets/cards/counts_by_hour.dart
@@ -17,7 +17,7 @@ class CardCountsByHour extends StatelessWidget {
   Widget build(BuildContext context) {
     SettingsCubit settings = BlocProvider.of<SettingsCubit>(context);
 
-    final int daysCount = settings.getCountsByHourDaysCount();
+    final int daysCount = settings.getDistributionDaysCount();
 
     return BlocBuilder<DataCountsByHourCubit, DataCountsByHourState>(
       builder: (BuildContext context, DataCountsByHourState state) {
diff --git a/lib/ui/widgets/settings_form.dart b/lib/ui/widgets/settings_form.dart
index 3ea62666615dc57c8aad45a571a0cdaedd2c1395..bb5f621a0b98a63277d699dd0302c315f95fccb5 100644
--- a/lib/ui/widgets/settings_form.dart
+++ b/lib/ui/widgets/settings_form.dart
@@ -17,16 +17,14 @@ class _SettingsFormState extends State<SettingsForm> {
   final usernameController = TextEditingController();
   final securityTokenController = TextEditingController();
 
-  int countsByDayDaysCount = DefaultSettings.defaultCountsByDayDaysCount;
-  int countsByHourDaysCount = DefaultSettings.defaultCountsByHourDaysCount;
   int discoveriesDaysCount = DefaultSettings.defaultDiscoveriesDaysCount;
+  int distributionDaysCount = DefaultSettings.defaultDistributionDaysCount;
   int statisticsRecentDaysCount = DefaultSettings.defaultStatisticsRecentDaysCount;
   int timelineDaysCount = DefaultSettings.defaultTimelineDaysCount;
   int topArtistsDaysCount = DefaultSettings.defaultTopArtistsDaysCount;
 
-  List<bool> _selectedCountsByDayDaysCount = [];
-  List<bool> _selectedCountsByHourDaysCount = [];
   List<bool> _selectedDiscoveriesDaysCount = [];
+  List<bool> _selectedDistributionDaysCount = [];
   List<bool> _selectedStatisticsRecentDaysCount = [];
   List<bool> _selectedTimelineDaysCount = [];
   List<bool> _selectedTopArtistsDaysCount = [];
@@ -38,19 +36,16 @@ class _SettingsFormState extends State<SettingsForm> {
     usernameController.text = settings.getUsername();
     securityTokenController.text = settings.getSecurityToken();
 
-    countsByDayDaysCount = settings.getCountsByDayDaysCount();
-    countsByHourDaysCount = settings.getCountsByHourDaysCount();
     discoveriesDaysCount = settings.getDiscoveriesDaysCount();
+    distributionDaysCount = settings.getDistributionDaysCount();
     statisticsRecentDaysCount = settings.getStatisticsRecentDaysCount();
     timelineDaysCount = settings.getTimelineDaysCount();
     topArtistsDaysCount = settings.getTopArtistsDaysCount();
 
-    _selectedCountsByDayDaysCount =
-        DefaultSettings.allowedValues.map((e) => (e == countsByDayDaysCount)).toList();
-    _selectedCountsByHourDaysCount =
-        DefaultSettings.allowedValues.map((e) => (e == countsByHourDaysCount)).toList();
     _selectedDiscoveriesDaysCount =
         DefaultSettings.allowedValues.map((e) => (e == discoveriesDaysCount)).toList();
+    _selectedDistributionDaysCount =
+        DefaultSettings.allowedValues.map((e) => (e == distributionDaysCount)).toList();
     _selectedStatisticsRecentDaysCount =
         DefaultSettings.allowedValues.map((e) => (e == statisticsRecentDaysCount)).toList();
     _selectedTimelineDaysCount =
@@ -74,9 +69,8 @@ class _SettingsFormState extends State<SettingsForm> {
       BlocProvider.of<SettingsCubit>(context).setValues(
         username: usernameController.text,
         securityToken: securityTokenController.text,
-        countsByDayDaysCount: countsByDayDaysCount,
-        countsByHourDaysCount: countsByHourDaysCount,
         discoveriesDaysCount: discoveriesDaysCount,
+        distributionDaysCount: distributionDaysCount,
         statisticsRecentDaysCount: statisticsRecentDaysCount,
         timelineDaysCount: timelineDaysCount,
         topArtistsDaysCount: topArtistsDaysCount,
@@ -108,70 +102,47 @@ class _SettingsFormState extends State<SettingsForm> {
         // ),
         // SizedBox(height: 20),
 
-        // Counts by day
-        Row(
-          mainAxisAlignment: MainAxisAlignment.spaceBetween,
-          crossAxisAlignment: CrossAxisAlignment.center,
-          children: [
-            Text('settings_label_counts_by_day_days_count').tr(),
-            ToggleButtons(
-              onPressed: (int index) {
-                setState(() {
-                  countsByDayDaysCount = DefaultSettings.allowedValues[index];
-                  for (int i = 0; i < _selectedCountsByDayDaysCount.length; i++) {
-                    _selectedCountsByDayDaysCount[i] = i == index;
-                  }
-                });
-              },
-              borderRadius: const BorderRadius.all(Radius.circular(8)),
-              constraints: const BoxConstraints(minHeight: 30.0, minWidth: 30.0),
-              isSelected: _selectedCountsByDayDaysCount,
-              children: DefaultSettings.allowedValues.map((e) => Text(e.toString())).toList(),
-            ),
-          ],
-        ),
-
-        // Counts by hour
+        // Discoveries
         Row(
           mainAxisAlignment: MainAxisAlignment.spaceBetween,
           crossAxisAlignment: CrossAxisAlignment.center,
           children: [
-            Text('settings_label_counts_by_hour_days_count').tr(),
+            Text('settings_label_discoveries_days_count').tr(),
             ToggleButtons(
               onPressed: (int index) {
                 setState(() {
-                  countsByHourDaysCount = DefaultSettings.allowedValues[index];
-                  for (int i = 0; i < _selectedCountsByHourDaysCount.length; i++) {
-                    _selectedCountsByHourDaysCount[i] = i == index;
+                  discoveriesDaysCount = DefaultSettings.allowedValues[index];
+                  for (int i = 0; i < _selectedDiscoveriesDaysCount.length; i++) {
+                    _selectedDiscoveriesDaysCount[i] = i == index;
                   }
                 });
               },
               borderRadius: const BorderRadius.all(Radius.circular(8)),
               constraints: const BoxConstraints(minHeight: 30.0, minWidth: 30.0),
-              isSelected: _selectedCountsByHourDaysCount,
+              isSelected: _selectedDiscoveriesDaysCount,
               children: DefaultSettings.allowedValues.map((e) => Text(e.toString())).toList(),
             ),
           ],
         ),
 
-        // Discoveries
+        // Distribution by day/hour + heatmap
         Row(
           mainAxisAlignment: MainAxisAlignment.spaceBetween,
           crossAxisAlignment: CrossAxisAlignment.center,
           children: [
-            Text('settings_label_discoveries_days_count').tr(),
+            Text('settings_label_distribution_days_count').tr(),
             ToggleButtons(
               onPressed: (int index) {
                 setState(() {
-                  discoveriesDaysCount = DefaultSettings.allowedValues[index];
-                  for (int i = 0; i < _selectedDiscoveriesDaysCount.length; i++) {
-                    _selectedDiscoveriesDaysCount[i] = i == index;
+                  distributionDaysCount = DefaultSettings.allowedValues[index];
+                  for (int i = 0; i < _selectedDistributionDaysCount.length; i++) {
+                    _selectedDistributionDaysCount[i] = i == index;
                   }
                 });
               },
               borderRadius: const BorderRadius.all(Radius.circular(8)),
               constraints: const BoxConstraints(minHeight: 30.0, minWidth: 30.0),
-              isSelected: _selectedDiscoveriesDaysCount,
+              isSelected: _selectedDistributionDaysCount,
               children: DefaultSettings.allowedValues.map((e) => Text(e.toString())).toList(),
             ),
           ],
diff --git a/pubspec.yaml b/pubspec.yaml
index a0731a7a9c55a867e0161e81c8ea697847593f7e..8af3ab653348dc325ed678895f8b7d517e76f93a 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -3,7 +3,7 @@ description: Display scrobbles data and charts
 
 publish_to: 'none'
 
-version: 0.0.40+40
+version: 0.0.41+41
 
 environment:
   sdk: '^3.0.0'