Renamed Theme Utils and work on Progress List Item
Signed-off-by: Andreas Fahrecker <AndreasFahrecker@gmail.com>
This commit is contained in:
parent
d6ca3d4270
commit
e71b65bdf3
@ -5,7 +5,7 @@ import 'package:flutter_redux/flutter_redux.dart';
|
|||||||
import 'package:redux/redux.dart';
|
import 'package:redux/redux.dart';
|
||||||
import 'package:time_progress_tracker/redux/app_state.dart';
|
import 'package:time_progress_tracker/redux/app_state.dart';
|
||||||
import 'package:time_progress_tracker/ui/screens/dashboard_screen.dart';
|
import 'package:time_progress_tracker/ui/screens/dashboard_screen.dart';
|
||||||
import 'package:time_progress_tracker/utils/color_utils.dart';
|
import 'package:time_progress_tracker/utils/theme_utils.dart';
|
||||||
|
|
||||||
class TimeProgressTrackerApp extends StatelessWidget {
|
class TimeProgressTrackerApp extends StatelessWidget {
|
||||||
static const String name = "Time Progress Tracker";
|
static const String name = "Time Progress Tracker";
|
||||||
|
@ -6,6 +6,7 @@ import 'package:flutter_platform_widgets/flutter_platform_widgets.dart';
|
|||||||
import 'package:percent_indicator/linear_percent_indicator.dart';
|
import 'package:percent_indicator/linear_percent_indicator.dart';
|
||||||
import 'package:time_progress_tracker/models/time_progress.dart';
|
import 'package:time_progress_tracker/models/time_progress.dart';
|
||||||
import 'package:time_progress_tracker/ui/screens/progress_detail_screen.dart';
|
import 'package:time_progress_tracker/ui/screens/progress_detail_screen.dart';
|
||||||
|
import 'package:time_progress_tracker/utils/theme_utils.dart';
|
||||||
|
|
||||||
class ProgressListTileStrings {
|
class ProgressListTileStrings {
|
||||||
static String percentString(TimeProgress tp) =>
|
static String percentString(TimeProgress tp) =>
|
||||||
@ -28,47 +29,61 @@ class ProgressListItem extends StatelessWidget {
|
|||||||
@required this.leftColor,
|
@required this.leftColor,
|
||||||
});
|
});
|
||||||
|
|
||||||
Widget _renderSubtitle(BuildContext context) {
|
|
||||||
if (!timeProgress.hasStarted())
|
|
||||||
return PlatformText(ProgressListTileStrings.startsInDaysString(timeProgress));
|
|
||||||
if (timeProgress.hasEnded())
|
|
||||||
return PlatformText(ProgressListTileStrings.endedDaysAgoString(timeProgress));
|
|
||||||
return LinearPercentIndicator(
|
|
||||||
center: PlatformText(ProgressListTileStrings.percentString(timeProgress)),
|
|
||||||
percent: timeProgress.percentDone(),
|
|
||||||
progressColor: doneColor,
|
|
||||||
backgroundColor: leftColor,
|
|
||||||
lineHeight: 20,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
void _onTileTap() =>
|
void _onTileTap() =>
|
||||||
Navigator.pushNamed(context, ProgressDetailScreen.routeName,
|
Navigator.pushNamed(context, ProgressDetailScreen.routeName,
|
||||||
arguments: ProgressDetailScreenArguments(timeProgress.id));
|
arguments: ProgressDetailScreenArguments(timeProgress.id));
|
||||||
Text titleText = Text(timeProgress.name);
|
Text _renderTitle(bool material) => Text(
|
||||||
|
timeProgress.name,
|
||||||
|
style: material ? null : cupertinoCardTextStyle,
|
||||||
|
);
|
||||||
|
|
||||||
if (Platform.isIOS)
|
Widget _renderSubtitle() {
|
||||||
|
if (!timeProgress.hasStarted())
|
||||||
|
return PlatformText(
|
||||||
|
ProgressListTileStrings.startsInDaysString(timeProgress));
|
||||||
|
if (timeProgress.hasEnded())
|
||||||
|
return PlatformText(
|
||||||
|
ProgressListTileStrings.endedDaysAgoString(timeProgress));
|
||||||
|
return LinearPercentIndicator(
|
||||||
|
center:
|
||||||
|
PlatformText(ProgressListTileStrings.percentString(timeProgress)),
|
||||||
|
percent: timeProgress.percentDone(),
|
||||||
|
progressColor: doneColor,
|
||||||
|
backgroundColor: leftColor,
|
||||||
|
lineHeight: 20,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _renderCupertino() {
|
||||||
|
CupertinoThemeData theme = CupertinoTheme.of(context);
|
||||||
return CupertinoButton(
|
return CupertinoButton(
|
||||||
child: Container(
|
child: Container(
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: Colors.grey,
|
color: theme.primaryColor,
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
),
|
),
|
||||||
padding: EdgeInsets.fromLTRB(15, 15, 5, 5),
|
padding: EdgeInsets.fromLTRB(15, 15, 5, 5),
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
titleText,
|
_renderTitle(false),
|
||||||
_renderSubtitle(context),
|
_renderSubtitle(),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
onPressed: _onTileTap);
|
onPressed: _onTileTap);
|
||||||
return ListTile(
|
}
|
||||||
title: titleText,
|
|
||||||
subtitle: _renderSubtitle(context),
|
Widget _renderMaterial() {
|
||||||
onTap: _onTileTap,
|
return ListTile(
|
||||||
);
|
title: _renderTitle(true),
|
||||||
|
subtitle: _renderSubtitle(),
|
||||||
|
onTap: _onTileTap,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Platform.isIOS) return _renderCupertino();
|
||||||
|
return _renderMaterial();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@ import 'package:time_progress_tracker/ui/screens/active_time_progresses_screen.d
|
|||||||
import 'package:time_progress_tracker/ui/screens/inactive_time_progresses_screen.dart';
|
import 'package:time_progress_tracker/ui/screens/inactive_time_progresses_screen.dart';
|
||||||
import 'package:time_progress_tracker/ui/screens/progress_creation_screen.dart';
|
import 'package:time_progress_tracker/ui/screens/progress_creation_screen.dart';
|
||||||
import 'package:time_progress_tracker/ui/screens/settings_screen.dart';
|
import 'package:time_progress_tracker/ui/screens/settings_screen.dart';
|
||||||
import 'package:time_progress_tracker/utils/color_utils.dart';
|
import 'package:time_progress_tracker/utils/theme_utils.dart';
|
||||||
import 'package:time_progress_tracker/utils/constants.dart';
|
import 'package:time_progress_tracker/utils/constants.dart';
|
||||||
|
|
||||||
class DashboardScreen extends StatefulWidget {
|
class DashboardScreen extends StatefulWidget {
|
||||||
|
@ -12,7 +12,7 @@ import 'package:time_progress_tracker/redux/store_connectors/create_time_progres
|
|||||||
import 'package:time_progress_tracker/ui/buttons/create_progress_button.dart';
|
import 'package:time_progress_tracker/ui/buttons/create_progress_button.dart';
|
||||||
import 'package:time_progress_tracker/ui/buttons/platform_action_button.dart';
|
import 'package:time_progress_tracker/ui/buttons/platform_action_button.dart';
|
||||||
import 'package:time_progress_tracker/ui/progress/progress_editor_widget.dart';
|
import 'package:time_progress_tracker/ui/progress/progress_editor_widget.dart';
|
||||||
import 'package:time_progress_tracker/utils/color_utils.dart';
|
import 'package:time_progress_tracker/utils/theme_utils.dart';
|
||||||
import 'package:time_progress_tracker/utils/helper_functions.dart';
|
import 'package:time_progress_tracker/utils/helper_functions.dart';
|
||||||
|
|
||||||
class ProgressCreationScreen extends StatefulWidget {
|
class ProgressCreationScreen extends StatefulWidget {
|
||||||
|
@ -17,4 +17,5 @@ final CupertinoThemeData cupertinoThemeData = CupertinoThemeData(
|
|||||||
scaffoldBackgroundColor: Colors.white,
|
scaffoldBackgroundColor: Colors.white,
|
||||||
);
|
);
|
||||||
final toolbarTextStyle = TextStyle(color: Colors.white, fontSize: 16);
|
final toolbarTextStyle = TextStyle(color: Colors.white, fontSize: 16);
|
||||||
|
final cupertinoCardTextStyle = TextStyle(color: Colors.white);
|
||||||
final bottomTabsBackground = Colors.indigoAccent;
|
final bottomTabsBackground = Colors.indigoAccent;
|
Loading…
x
Reference in New Issue
Block a user