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

Persist API data

parent 8a60fb29
No related branches found
No related tags found
1 merge request!32Resolve "Persist scrobbles data"
Pipeline #4590 passed
Showing
with 390 additions and 8 deletions
org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
app.versionName=0.0.28
app.versionCode=28
app.versionName=0.0.29
app.versionCode=29
{
"app_name": "Scrobbles",
"": "",
"bottom_nav_home": "Home",
"bottom_nav_discoveries": "Discoveries",
......
{
"app_name": "Scrobbles",
"": "",
"bottom_nav_home": "Accueil",
"bottom_nav_discoveries": "Découvertes",
......
Save scrobbles data from API.
Sauvegarde des données d'écoutes de l'API.
import 'package:equatable/equatable.dart';
import 'package:flutter/material.dart';
import 'package:hydrated_bloc/hydrated_bloc.dart';
import 'package:scrobbles/models/counts_by_day.dart';
part 'data_counts_by_day_state.dart';
class DataCountsByDayCubit extends HydratedCubit<DataCountsByDayState> {
DataCountsByDayCubit() : super(const DataCountsByDayState());
void getData(DataCountsByDayState state) {
emit(state);
}
CountsByDayData? getValue() {
return state.countsByDay;
}
void setValue(CountsByDayData? countsByDay) {
emit(DataCountsByDayState(
countsByDay: countsByDay,
));
}
@override
DataCountsByDayState? fromJson(Map<String, dynamic> json) {
return DataCountsByDayState(
countsByDay: CountsByDayData.fromJson(json['countsByDay']),
);
}
@override
Map<String, Object?>? toJson(DataCountsByDayState state) {
return <String, Object?>{
'countsByDay': state.countsByDay?.toJson(),
};
}
}
part of 'data_counts_by_day_cubit.dart';
@immutable
class DataCountsByDayState extends Equatable {
const DataCountsByDayState({
this.countsByDay,
});
final CountsByDayData? countsByDay;
@override
List<Object?> get props => <Object?>[
countsByDay,
];
}
import 'package:equatable/equatable.dart';
import 'package:flutter/material.dart';
import 'package:hydrated_bloc/hydrated_bloc.dart';
import 'package:scrobbles/models/counts_by_hour.dart';
part 'data_counts_by_hour_state.dart';
class DataCountsByHourCubit extends HydratedCubit<DataCountsByHourState> {
DataCountsByHourCubit() : super(const DataCountsByHourState());
void getData(DataCountsByHourState state) {
emit(state);
}
CountsByHourData? getValue() {
return state.countsByHour;
}
void setValue(CountsByHourData? countsByHour) {
emit(DataCountsByHourState(
countsByHour: countsByHour,
));
}
@override
DataCountsByHourState? fromJson(Map<String, dynamic> json) {
return DataCountsByHourState(
countsByHour: CountsByHourData.fromJson(json['countsByHour']),
);
}
@override
Map<String, Object?>? toJson(DataCountsByHourState state) {
return <String, Object?>{
'countsByHour': state.countsByHour?.toJson(),
};
}
}
part of 'data_counts_by_hour_cubit.dart';
@immutable
class DataCountsByHourState extends Equatable {
const DataCountsByHourState({
this.countsByHour,
});
final CountsByHourData? countsByHour;
@override
List<Object?> get props => <Object?>[
countsByHour,
];
}
import 'package:equatable/equatable.dart';
import 'package:flutter/material.dart';
import 'package:hydrated_bloc/hydrated_bloc.dart';
import 'package:scrobbles/models/discoveries.dart';
part 'data_discoveries_state.dart';
class DataDiscoveriesCubit extends HydratedCubit<DataDiscoveriesState> {
DataDiscoveriesCubit() : super(const DataDiscoveriesState());
void getData(DataDiscoveriesState state) {
emit(state);
}
DiscoveriesData? getValue() {
return state.discoveries;
}
void setValue(DiscoveriesData? discoveries) {
emit(DataDiscoveriesState(
discoveries: discoveries,
));
}
@override
DataDiscoveriesState? fromJson(Map<String, dynamic> json) {
return DataDiscoveriesState(
discoveries: DiscoveriesData.fromJson(json['discoveries']),
);
}
@override
Map<String, Object?>? toJson(DataDiscoveriesState state) {
return <String, Object?>{
'discoveries': state.discoveries?.toJson(),
};
}
}
part of 'data_discoveries_cubit.dart';
@immutable
class DataDiscoveriesState extends Equatable {
const DataDiscoveriesState({
this.discoveries,
});
final DiscoveriesData? discoveries;
@override
List<Object?> get props => <Object?>[
discoveries,
];
}
import 'package:equatable/equatable.dart';
import 'package:flutter/material.dart';
import 'package:hydrated_bloc/hydrated_bloc.dart';
import 'package:scrobbles/models/statistics_global.dart';
part 'data_statistics_global_state.dart';
class DataStatisticsGlobalCubit extends HydratedCubit<DataStatisticsGlobalState> {
DataStatisticsGlobalCubit() : super(const DataStatisticsGlobalState());
void getData(DataStatisticsGlobalState state) {
emit(state);
}
StatisticsGlobalData? getValue() {
return state.statisticsGlobal;
}
void setValue(StatisticsGlobalData? statisticsGlobal) {
emit(DataStatisticsGlobalState(
statisticsGlobal: statisticsGlobal,
));
}
@override
DataStatisticsGlobalState? fromJson(Map<String, dynamic> json) {
return DataStatisticsGlobalState(
statisticsGlobal: StatisticsGlobalData.fromJson(json['statisticsGlobal']),
);
}
@override
Map<String, Object?>? toJson(DataStatisticsGlobalState state) {
return <String, Object?>{
'statisticsGlobal': state.statisticsGlobal?.toJson(),
};
}
}
part of 'data_statistics_global_cubit.dart';
@immutable
class DataStatisticsGlobalState extends Equatable {
const DataStatisticsGlobalState({
this.statisticsGlobal,
});
final StatisticsGlobalData? statisticsGlobal;
@override
List<Object?> get props => <Object?>[
statisticsGlobal,
];
}
import 'package:equatable/equatable.dart';
import 'package:flutter/material.dart';
import 'package:hydrated_bloc/hydrated_bloc.dart';
import 'package:scrobbles/models/statistics_recent.dart';
part 'data_statistics_recent_state.dart';
class DataStatisticsRecentCubit extends HydratedCubit<DataStatisticsRecentState> {
DataStatisticsRecentCubit() : super(const DataStatisticsRecentState());
void getData(DataStatisticsRecentState state) {
emit(state);
}
StatisticsRecentData? getValue() {
return state.statisticsRecent;
}
void setValue(StatisticsRecentData? statisticsRecent) {
emit(DataStatisticsRecentState(
statisticsRecent: statisticsRecent,
));
}
@override
DataStatisticsRecentState? fromJson(Map<String, dynamic> json) {
return DataStatisticsRecentState(
statisticsRecent: StatisticsRecentData.fromJson(json['statisticsRecent']),
);
}
@override
Map<String, Object?>? toJson(DataStatisticsRecentState state) {
return <String, Object?>{
'statisticsRecent': state.statisticsRecent?.toJson(),
};
}
}
part of 'data_statistics_recent_cubit.dart';
@immutable
class DataStatisticsRecentState extends Equatable {
const DataStatisticsRecentState({
this.statisticsRecent,
});
final StatisticsRecentData? statisticsRecent;
@override
List<Object?> get props => <Object?>[
statisticsRecent,
];
}
import 'package:equatable/equatable.dart';
import 'package:flutter/material.dart';
import 'package:hydrated_bloc/hydrated_bloc.dart';
import 'package:scrobbles/models/timeline.dart';
part 'data_timeline_state.dart';
class DataTimelineCubit extends HydratedCubit<DataTimelineState> {
DataTimelineCubit() : super(const DataTimelineState());
void getData(DataTimelineState state) {
emit(state);
}
TimelineData? getValue() {
return state.timeline;
}
void setValue(TimelineData? timeline) {
emit(DataTimelineState(
timeline: timeline,
));
}
@override
DataTimelineState? fromJson(Map<String, dynamic> json) {
return DataTimelineState(
timeline: TimelineData.fromJson(json['timeline']),
);
}
@override
Map<String, Object?>? toJson(DataTimelineState state) {
return <String, Object?>{
'timeline': state.timeline?.toJson(),
};
}
}
part of 'data_timeline_cubit.dart';
@immutable
class DataTimelineState extends Equatable {
const DataTimelineState({
this.timeline,
});
final TimelineData? timeline;
@override
List<Object?> get props => <Object?>[
timeline,
];
}
import 'package:equatable/equatable.dart';
import 'package:flutter/material.dart';
import 'package:hydrated_bloc/hydrated_bloc.dart';
import 'package:scrobbles/models/topartists.dart';
part 'data_top_artists_state.dart';
class DataTopArtistsCubit extends HydratedCubit<DataTopArtistsState> {
DataTopArtistsCubit() : super(const DataTopArtistsState());
void getData(DataTopArtistsState state) {
emit(state);
}
TopArtistsData? getValue(key) {
return state.topArtists;
}
void setValue(TopArtistsData? topArtists) {
emit(DataTopArtistsState(
topArtists: topArtists,
));
}
@override
DataTopArtistsState? fromJson(Map<String, dynamic> json) {
return DataTopArtistsState(
topArtists: TopArtistsData.fromJson(json['topArtists']),
);
}
@override
Map<String, Object?>? toJson(DataTopArtistsState state) {
return <String, Object?>{
'topArtists': state.topArtists?.toJson(),
};
}
}
part of 'data_top_artists_cubit.dart';
@immutable
class DataTopArtistsState extends Equatable {
const DataTopArtistsState({
this.topArtists,
});
final TopArtistsData? topArtists;
@override
List<Object?> get props => <Object?>[
topArtists,
];
}
......@@ -19,11 +19,7 @@ class CountsByDayData {
return CountsByDayData(data: data);
}
factory CountsByDayData.createEmpty() {
return CountsByDayData.fromJson({'counts-by-day': {}});
}
String toString() {
Map<String, Object?>? toJson() {
Map<String, double> map = {};
this.data.keys.forEach((day) {
......@@ -31,6 +27,10 @@ class CountsByDayData {
map[day.toString()] = value != null ? value.toDouble() : 0.0;
});
return jsonEncode({'counts-by-day': map});
return {'counts-by-day': map};
}
String toString() {
return jsonEncode(this.toJson());
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment