Renamed ProgressDashboardScreen to HomeScreen

Signed-off-by: Andreas Fahrecker <AndreasFahrecker@gmail.com>
This commit is contained in:
Andreas Fahrecker 2021-02-11 15:01:53 +01:00
parent 409ccbcdda
commit d289cfc4d5
6 changed files with 69 additions and 194 deletions

View File

@ -3,7 +3,7 @@ import 'package:flutter_redux/flutter_redux.dart';
import 'package:redux/redux.dart';
import 'package:time_progress_tracker/models/app_state.dart';
import 'package:time_progress_tracker/screens/progress_creation_screen.dart';
import 'package:time_progress_tracker/screens/progress_dashboard_screen.dart';
import 'package:time_progress_tracker/screens/home_screen.dart';
import 'package:time_progress_tracker/screens/progress_detail_screen.dart';
class TimeProgressTrackerApp extends StatelessWidget {
@ -28,10 +28,10 @@ class TimeProgressTrackerApp extends StatelessWidget {
brightness: Brightness.light,
visualDensity: VisualDensity.adaptivePlatformDensity,
),
initialRoute: ProgressDashboardScreen.routeName,
initialRoute: HomeScreen.routeName,
routes: {
ProgressDashboardScreen.routeName: (BuildContext context) =>
ProgressDashboardScreen(),
HomeScreen.routeName: (BuildContext context) =>
HomeScreen(),
ProgressDetailScreen.routeName: (BuildContext context) =>
ProgressDetailScreen(),
ProgressCreationScreen.routeName: (BuildContext context) =>

View File

@ -0,0 +1,57 @@
import 'package:flutter/material.dart';
import 'package:time_progress_tracker/screens/progress_creation_screen.dart';
import 'package:time_progress_tracker/widgets/home_widgets/home_bottom_navbar.dart';
import 'package:time_progress_tracker/widgets/home_widgets/home_active_progresses_tab.dart';
import 'package:time_progress_tracker/widgets/home_widgets/home_inactive_progresses_tab.dart';
import 'package:time_progress_tracker/widgets/home_widgets/home_settings_tab.dart';
class HomeScreen extends StatefulWidget {
static const routeName = "/home";
static const title = "Time Progress Tracker";
@override
State<StatefulWidget> createState() {
return _HomeScreenState();
}
}
class _HomeScreenState extends State<HomeScreen> {
int _currentIndex = 0;
final List<Widget> _children = [
HomeActiveProgressesTab(),
HomeInactiveProgressesTab(),
HomeSettingsTab(),
];
void onBottomTabTapped(int index) {
setState(() {
_currentIndex = index;
});
}
@override
Widget build(BuildContext context) {
ThemeData appTheme = Theme.of(context);
return Scaffold(
appBar: AppBar(
title: Text(HomeScreen.title),
),
body: _children[_currentIndex],
floatingActionButtonLocation: FloatingActionButtonLocation.endFloat,
floatingActionButton: _currentIndex != 2
? FloatingActionButton(
heroTag: "createProgressBTN",
child: Icon(Icons.add),
onPressed: () {
Navigator.pushNamed(context, ProgressCreationScreen.routeName);
},
)
: null,
bottomNavigationBar: HomeBottomNavBar(
currentIndex: _currentIndex,
onTap: onBottomTabTapped,
),
);
}
}

View File

@ -5,8 +5,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_state.dart';
import 'package:time_progress_tracker/models/time_progress.dart';
import 'package:time_progress_tracker/screens/progress_dashboard_screen.dart';
import 'package:time_progress_tracker/widgets/app_drawer_widget.dart';
import 'package:time_progress_tracker/screens/home_screen.dart';
class ProgressCreationScreen extends StatefulWidget {
static const routeName = "/progress-creation";
@ -40,7 +39,7 @@ class _ProgressCreationScreenState extends State<ProgressCreationScreen> {
TimeProgress(_nameController.text, pickedStartTime, pickedEndTime);
StoreProvider.of<AppState>(context)
.dispatch(AddTimeProgressAction(tpToCreate));
Navigator.pushNamed(context, ProgressDashboardScreen.routeName);
Navigator.pushNamed(context, HomeScreen.routeName);
} on TimeProgressInvalidNameException catch (e) {
setState(() {
_validName = false;
@ -151,7 +150,7 @@ class _ProgressCreationScreenState extends State<ProgressCreationScreen> {
heroTag: "cancelTimeProgressCreationBTN",
child: Icon(Icons.cancel),
onPressed: () {
Navigator.pushNamed(context, ProgressDashboardScreen.routeName);
Navigator.pushNamed(context, HomeScreen.routeName);
},
),
)

View File

@ -1,180 +0,0 @@
import 'package:flutter/material.dart';
import 'package:redux/redux.dart';
import 'package:time_progress_tracker/models/app_state.dart';
import 'package:time_progress_tracker/models/time_progress.dart';
import 'package:time_progress_tracker/screens/progress_creation_screen.dart';
import 'package:time_progress_tracker/selectors/time_progress_selectors.dart';
import 'package:time_progress_tracker/widgets/home_widgets/home_bottom_navbar.dart';
import 'package:time_progress_tracker/widgets/home_widgets/home_active_progresses_tab.dart';
import 'package:time_progress_tracker/widgets/home_widgets/home_inactive_progresses_tab.dart';
import 'package:time_progress_tracker/widgets/home_widgets/home_settings_tab.dart';
class ProgressDashboardScreen extends StatefulWidget {
static const routeName = "/progress-dashboard";
static const title = "Time Progress Tracker";
@override
State<StatefulWidget> createState() {
return _ProgressDashboardScreenState();
}
}
class _ProgressDashboardScreenState extends State<ProgressDashboardScreen> {
int _currentIndex = 0;
final List<Widget> _children = [
HomeActiveProgressesTab(),
HomeInactiveProgressesTab(),
HomeSettingsTab(),
];
void onBottomTabTapped(int index) {
setState(() {
_currentIndex = index;
});
}
@override
Widget build(BuildContext context) {
ThemeData appTheme = Theme.of(context);
return Scaffold(
appBar: AppBar(
title: Text(ProgressDashboardScreen.title),
),
body: _children[_currentIndex],
/*
StoreConnector(
converter: _ViewModel.fromStore,
onInit: loadTimeProgressListIfUnloaded,
builder: (BuildContext context, _ViewModel vm) {
if (!vm.hasLoaded) {
return Center(
child: CircularProgressIndicator(),
);
}
List<Widget> startedProgressesTileList = List<Widget>();
List<Widget> futureProgressesTileList = List<Widget>();
if (vm.hasFutureProgresses) {
for (TimeProgress tp in vm.futureTimeProgresses) {
futureProgressesTileList.add(
Card(
child: ListTile(
title: Text(tp.name),
subtitle: Text(
"Starts in ${tp.startTime.difference(DateTime.now()).inDays} Days."),
onTap: () {
Navigator.pushNamed(
context, ProgressDetailScreen.routeName,
arguments: ProgressDetailScreenArguments(tp.id));
},
),
),
);
}
}
List<Widget> pastProgressesTileList = List<Widget>();
if (vm.pastTimeProgresses.length > 0) {
for (TimeProgress tp in vm.pastTimeProgresses) {
pastProgressesTileList.add(
Card(
child: ListTile(
title: Text(tp.name),
subtitle: Text(
"Ended ${DateTime.now().difference(tp.endTime).inDays} Days ago."),
onTap: () {
Navigator.pushNamed(context, ProgressDetailScreen.routeName,
arguments: ProgressDetailScreenArguments(tp.id));
},
)),
);
}
}
double dividerHeight = 1;
double screenHeight = MediaQuery.of(context).size.height -
50 -
dividerHeight -
1; //Divider
List<Widget> columnChildren = List<Widget>();
int tpCount = vm.currentTimeProgresses.length +
vm.futureTimeProgresses.length +
vm.pastTimeProgresses.length;
if (vm.hasCurrentProgresses) {
columnChildren.add(Container(
height: screenHeight - 100,
child: ListView(
padding: EdgeInsets.all(8),
children: startedProgressesTileList,
),
));
}
if (!vm.hasCurrentProgresses &&
!vm.hasFutureProgresses &&
vm.pastTimeProgresses.length < 1) {
columnChildren.add(Container(
margin: EdgeInsets.all(16),
child: Center(
child: Text("You don't have any tracked Progress."),
),
));
}
return Column(
children: columnChildren,
);
},
)
*/
floatingActionButtonLocation: FloatingActionButtonLocation.endFloat,
floatingActionButton: _currentIndex != 2
? FloatingActionButton(
heroTag: "createProgressBTN",
child: Icon(Icons.add),
onPressed: () {
Navigator.pushNamed(context, ProgressCreationScreen.routeName);
},
)
: null,
bottomNavigationBar: HomeBottomNavBar(
currentIndex: _currentIndex,
onTap: onBottomTabTapped,
),
);
}
}
class _ViewModel {
final List<TimeProgress> currentTimeProgresses;
final bool hasCurrentProgresses;
final List<TimeProgress> futureTimeProgresses;
final bool hasFutureProgresses;
final List<TimeProgress> pastTimeProgresses;
final bool hasLoaded;
_ViewModel({
@required this.currentTimeProgresses,
@required this.hasCurrentProgresses,
@required this.futureTimeProgresses,
@required this.hasFutureProgresses,
@required this.pastTimeProgresses,
@required this.hasLoaded,
});
static _ViewModel fromStore(Store<AppState> store) {
List<TimeProgress> currentTPList = currentTimeProgressSelector(store.state);
List<TimeProgress> futureTPList = futureTimeProgressesSelector(store.state);
return _ViewModel(
currentTimeProgresses: currentTPList,
hasCurrentProgresses: currentTPList.length > 0,
futureTimeProgresses: futureTPList,
hasFutureProgresses: futureTPList.length > 0,
pastTimeProgresses: pastTimeProgressesSelector(store.state),
hasLoaded: store.state.hasLoaded,
);
}
}

View File

@ -5,9 +5,8 @@ import 'package:time_progress_tracker/actions/actions.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/time_progress.dart';
import 'package:time_progress_tracker/screens/progress_dashboard_screen.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/widgets/app_drawer_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_edit_dates_row_widget.dart';
@ -111,7 +110,7 @@ class _ProgressDetailScreenState extends State<ProgressDetailScreen> {
void _onDeleteTimeProgress(Store<AppState> store, String id) {
store.dispatch(DeleteTimeProgressAction(id));
Navigator.popAndPushNamed(context, ProgressDashboardScreen.routeName);
Navigator.popAndPushNamed(context, HomeScreen.routeName);
}
void _onCloseDialog() {

View File

@ -7,7 +7,7 @@ import 'package:time_progress_tracker/actions/actions.dart';
import 'package:time_progress_tracker/app.dart';
import 'package:time_progress_tracker/models/app_state.dart';
import 'package:time_progress_tracker/models/time_progress.dart';
import 'package:time_progress_tracker/screens/progress_dashboard_screen.dart';
import 'package:time_progress_tracker/screens/home_screen.dart';
import 'package:time_progress_tracker/screens/progress_detail_screen.dart';
import 'package:time_progress_tracker/selectors/time_progress_selectors.dart';
@ -43,11 +43,11 @@ class AppDrawer extends StatelessWidget {
color: appTheme.accentColor,
margin: EdgeInsets.only(bottom: 8),
child: ListTile(
title: Text(ProgressDashboardScreen.title),
title: Text(HomeScreen.title),
trailing: Icon(Icons.dashboard),
onTap: () {
Navigator.pop(context);
Navigator.pushNamed(context, ProgressDashboardScreen.routeName);
Navigator.pushNamed(context, HomeScreen.routeName);
},
),
));