Fixed Delete Time Progress Bug
Signed-off-by: Andreas Fahrecker <AndreasFahrecker@gmail.com>
This commit is contained in:
parent
fad8d8b49b
commit
6dde08d74d
@ -1,3 +1,5 @@
|
|||||||
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_redux/flutter_redux.dart';
|
import 'package:flutter_redux/flutter_redux.dart';
|
||||||
import 'package:redux/redux.dart';
|
import 'package:redux/redux.dart';
|
||||||
@ -5,6 +7,7 @@ import 'package:time_progress_tracker/actions/actions.dart';
|
|||||||
import 'package:time_progress_tracker/models/app_exceptions.dart';
|
import 'package:time_progress_tracker/models/app_exceptions.dart';
|
||||||
import 'package:time_progress_tracker/models/app_state.dart';
|
import 'package:time_progress_tracker/models/app_state.dart';
|
||||||
import 'package:time_progress_tracker/models/time_progress.dart';
|
import 'package:time_progress_tracker/models/time_progress.dart';
|
||||||
|
import 'package:time_progress_tracker/screens/home_screen.dart';
|
||||||
import 'package:time_progress_tracker/selectors/time_progress_selectors.dart';
|
import 'package:time_progress_tracker/selectors/time_progress_selectors.dart';
|
||||||
import 'package:time_progress_tracker/widgets/app_yes_no_dialog_widget.dart';
|
import 'package:time_progress_tracker/widgets/app_yes_no_dialog_widget.dart';
|
||||||
import 'package:time_progress_tracker/widgets/progress_detail_widgets/progress_detail_circular_percent_widget.dart';
|
import 'package:time_progress_tracker/widgets/progress_detail_widgets/progress_detail_circular_percent_widget.dart';
|
||||||
@ -109,7 +112,7 @@ class _ProgressDetailScreenState extends State<ProgressDetailScreen> {
|
|||||||
|
|
||||||
void _onDeleteTimeProgress(Store<AppState> store, String id) {
|
void _onDeleteTimeProgress(Store<AppState> store, String id) {
|
||||||
store.dispatch(DeleteTimeProgressAction(id));
|
store.dispatch(DeleteTimeProgressAction(id));
|
||||||
Navigator.pop(context);
|
Navigator.popUntil(context, ModalRoute.withName(HomeScreen.routeName));
|
||||||
}
|
}
|
||||||
|
|
||||||
void _onCloseDialog() {
|
void _onCloseDialog() {
|
||||||
@ -155,6 +158,10 @@ class _ProgressDetailScreenState extends State<ProgressDetailScreen> {
|
|||||||
_ViewModel.fromStoreAndArg(store, args),
|
_ViewModel.fromStoreAndArg(store, args),
|
||||||
onInit: loadTimeProgressListIfUnloaded,
|
onInit: loadTimeProgressListIfUnloaded,
|
||||||
builder: (BuildContext context, _ViewModel vm) {
|
builder: (BuildContext context, _ViewModel vm) {
|
||||||
|
if (vm.timeProgress == null)
|
||||||
|
return Center(
|
||||||
|
child: Text("Error Invalid Time Progress"),
|
||||||
|
);
|
||||||
return Column(
|
return Column(
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Expanded(
|
Expanded(
|
||||||
@ -170,7 +177,8 @@ class _ProgressDetailScreenState extends State<ProgressDetailScreen> {
|
|||||||
: "The Name of the Time Progress has to be set.",
|
: "The Name of the Time Progress has to be set.",
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
: (vm.hasProgressStarted && !vm.hasEnded)
|
: (vm.timeProgress.hasStarted() &&
|
||||||
|
!vm.timeProgress.hasEnded())
|
||||||
? FittedBox(
|
? FittedBox(
|
||||||
fit: BoxFit.fitWidth,
|
fit: BoxFit.fitWidth,
|
||||||
child: Text(
|
child: Text(
|
||||||
@ -196,7 +204,7 @@ class _ProgressDetailScreenState extends State<ProgressDetailScreen> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
(vm.hasProgressStarted && !vm.hasEnded)
|
(vm.timeProgress.hasStarted() && !vm.timeProgress.hasEnded())
|
||||||
? Expanded(
|
? Expanded(
|
||||||
flex: 2,
|
flex: 2,
|
||||||
child: ProgressDetailCircularPercent(
|
child: ProgressDetailCircularPercent(
|
||||||
@ -207,13 +215,13 @@ class _ProgressDetailScreenState extends State<ProgressDetailScreen> {
|
|||||||
)
|
)
|
||||||
: Expanded(
|
: Expanded(
|
||||||
flex: 2,
|
flex: 2,
|
||||||
child: !vm.hasEnded
|
child: !vm.timeProgress.hasEnded()
|
||||||
? Text(
|
? Text(
|
||||||
"Starts in ${vm.timeProgress.startTime.difference(DateTime.now()).inDays} Days.")
|
"Starts in ${vm.timeProgress.startTime.difference(DateTime.now()).inDays} Days.")
|
||||||
: Text(
|
: Text(
|
||||||
"Ended ${DateTime.now().difference(vm.timeProgress.endTime).inDays} Days ago."),
|
"Ended ${DateTime.now().difference(vm.timeProgress.endTime).inDays} Days ago."),
|
||||||
),
|
),
|
||||||
(vm.hasProgressStarted && !vm.hasEnded)
|
(vm.timeProgress.hasStarted() && !vm.timeProgress.hasEnded())
|
||||||
? Expanded(
|
? Expanded(
|
||||||
flex: 1,
|
flex: 1,
|
||||||
child: ProgressDetailLinearPercent(
|
child: ProgressDetailLinearPercent(
|
||||||
@ -271,22 +279,13 @@ class _ProgressDetailScreenState extends State<ProgressDetailScreen> {
|
|||||||
|
|
||||||
class _ViewModel {
|
class _ViewModel {
|
||||||
final TimeProgress timeProgress;
|
final TimeProgress timeProgress;
|
||||||
final bool hasProgressStarted;
|
|
||||||
final bool hasEnded;
|
|
||||||
|
|
||||||
_ViewModel({
|
_ViewModel({@required this.timeProgress});
|
||||||
@required this.timeProgress,
|
|
||||||
@required this.hasProgressStarted,
|
|
||||||
@required this.hasEnded,
|
|
||||||
});
|
|
||||||
|
|
||||||
static _ViewModel fromStoreAndArg(
|
static _ViewModel fromStoreAndArg(
|
||||||
Store<AppState> store, ProgressDetailScreenArguments args) {
|
Store<AppState> store, ProgressDetailScreenArguments args) {
|
||||||
int currentTime = DateTime.now().millisecondsSinceEpoch;
|
|
||||||
TimeProgress tp = timeProgressByIdSelector(store.state, args.id);
|
|
||||||
return _ViewModel(
|
return _ViewModel(
|
||||||
timeProgress: tp,
|
timeProgress: timeProgressByIdSelector(store.state, args.id),
|
||||||
hasProgressStarted: currentTime > tp.startTime.millisecondsSinceEpoch,
|
);
|
||||||
hasEnded: tp.endTime.millisecondsSinceEpoch < currentTime);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -45,5 +45,5 @@ List<TimeProgress> pastTimeProgressesSelector(AppState state) =>
|
|||||||
TimeProgress timeProgressByIdSelector(AppState state, String id) {
|
TimeProgress timeProgressByIdSelector(AppState state, String id) {
|
||||||
if (state.timeProgressList.length < 1) return null;
|
if (state.timeProgressList.length < 1) return null;
|
||||||
return state.timeProgressList
|
return state.timeProgressList
|
||||||
.firstWhere((timeProgress) => timeProgress.id == id);
|
.firstWhere((timeProgress) => timeProgress.id == id, orElse: () => null);
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
|||||||
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
|
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
|
||||||
# Read more about iOS versioning at
|
# Read more about iOS versioning at
|
||||||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
||||||
version: 0.0.9+9
|
version: 0.0.10+10
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.7.0 <3.0.0"
|
sdk: ">=2.7.0 <3.0.0"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user