Updated Flutter SDK for Null-Safety

Ported Progress Detail Screen to PlatformScaffold

Signed-off-by: Andreas Fahrecker <AndreasFahrecker@gmail.com>
This commit is contained in:
Andreas Fahrecker
2021-03-18 18:34:29 +01:00
parent b1a90b1e05
commit 08db53db20
34 changed files with 245 additions and 138 deletions

View File

@ -1,6 +1,7 @@
import 'package:meta/meta.dart';
import 'package:time_progress_tracker/models/app_settings.dart';
import 'package:time_progress_tracker/models/time_progress.dart';
import 'package:time_progress_tracker/utils/constants.dart';
@immutable
class AppState {
@ -12,14 +13,14 @@ class AppState {
{this.hasProgressesLoaded = false,
this.hasSettingsLoaded = false,
this.timeProgressList = const [],
this.appSettings});
this.appSettings = defaultAppSettings});
factory AppState.initial() =>
AppState(hasProgressesLoaded: false, appSettings: AppSettings.defaults());
AppState(hasProgressesLoaded: false, appSettings: defaultAppSettings);
AppState copyWith({
bool hasLoaded,
List<TimeProgress> timeProgressList,
bool? hasLoaded,
List<TimeProgress>? timeProgressList,
}) {
return AppState(
hasProgressesLoaded: hasLoaded ?? this.hasProgressesLoaded,

View File

@ -4,6 +4,7 @@ import 'package:time_progress_tracker/models/time_progress.dart';
import 'package:time_progress_tracker/redux/actions/app_settings_actions.dart';
import 'package:time_progress_tracker/redux/actions/redux_actions.dart';
import 'package:time_progress_tracker/redux/actions/time_progress_actions.dart';
import 'package:time_progress_tracker/utils/constants.dart';
final timeProgressListReducer = combineReducers<List<TimeProgress>>([
TypedReducer<List<TimeProgress>, TimeProgressListLoadedAction>(
@ -55,7 +56,7 @@ final appSettingsReducers = combineReducers<AppSettings>([
AppSettings _setDefaultSettings(
AppSettings appSettings, AppSettingsNotLoadedAction action) =>
AppSettings.defaults();
defaultAppSettings;
AppSettings _updateAppSettings(
AppSettings appSettings, AppSettingsAction action) =>

View File

@ -1,8 +1,8 @@
import 'dart:ui';
import 'package:time_progress_tracker/models/app_settings.dart';
import 'package:time_progress_tracker/redux/app_state.dart';
import 'package:time_progress_tracker/models/time_progress.dart';
import 'package:time_progress_tracker/redux/app_state.dart';
List<TimeProgress> timeProgressListSelector(AppState state) =>
state.timeProgressList;
@ -45,10 +45,12 @@ List<TimeProgress> pastTimeProgressesSelector(AppState state) =>
DateTime.now().millisecondsSinceEpoch)
.toList();
TimeProgress timeProgressByIdSelector(AppState state, String id) {
TimeProgress? timeProgressByIdSelector(AppState state, String id) {
if (state.timeProgressList.length < 1) return null;
return state.timeProgressList
.firstWhere((timeProgress) => timeProgress.id == id, orElse: () => null);
TimeProgress tp = state.timeProgressList.firstWhere(
(timeProgress) => timeProgress.id == id,
orElse: () => TimeProgress.initialDefault());
return tp != TimeProgress.initialDefault() ? tp : null;
}
AppSettings appSettingsSelector(AppState state) {

View File

@ -14,7 +14,7 @@ class CreateTimeProgressStoreConnector extends StatelessWidget {
loadedBuilder;
CreateTimeProgressStoreConnector({
@required this.loadedBuilder,
required this.loadedBuilder,
});
@override

View File

@ -10,7 +10,7 @@ class SettingsStoreConnector extends StatelessWidget {
final Widget Function(BuildContext, SettingsViewModel) loadedBuilder;
SettingsStoreConnector({
@required this.loadedBuilder,
required this.loadedBuilder,
});
@override

View File

@ -9,7 +9,7 @@ class TimeProgressListStoreConnector extends StatelessWidget {
final Widget Function(BuildContext, TimeProgressListViewModel) loadedBuilder;
TimeProgressListStoreConnector({
@required this.loadedBuilder,
required this.loadedBuilder,
});
@override

View File

@ -4,16 +4,16 @@ import 'package:redux/redux.dart';
import 'package:time_progress_tracker/redux/actions/time_progress_actions.dart';
import 'package:time_progress_tracker/redux/app_state.dart';
import 'package:time_progress_tracker/models/time_progress.dart';
import 'package:time_progress_tracker/utils/helper_functions.dart';
import '../../utils/helper_functions.dart';
class TimeProgressStoreConnector extends StatelessWidget {
final String timeProgressId;
final Widget Function(BuildContext, TimeProgressViewModel) loadedBuilder;
TimeProgressStoreConnector({
@required this.timeProgressId,
@required this.loadedBuilder,
required this.timeProgressId,
required this.loadedBuilder,
});
@override
@ -38,7 +38,7 @@ class TimeProgressStoreConnector extends StatelessWidget {
}
class TimeProgressViewModel {
final TimeProgress tp;
final TimeProgress? tp;
final bool hasTpListLoaded;
final void Function(TimeProgress) updateTimeProgress;