Renamed Theme Utils and work on Progress List Item

Signed-off-by: Andreas Fahrecker <AndreasFahrecker@gmail.com>
This commit is contained in:
Andreas Fahrecker 2021-03-18 16:05:09 +01:00
parent d6ca3d4270
commit e71b65bdf3
5 changed files with 43 additions and 27 deletions

View File

@ -5,7 +5,7 @@ import 'package:flutter_redux/flutter_redux.dart';
import 'package:redux/redux.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/utils/color_utils.dart';
import 'package:time_progress_tracker/utils/theme_utils.dart';
class TimeProgressTrackerApp extends StatelessWidget {
static const String name = "Time Progress Tracker";

View File

@ -6,6 +6,7 @@ import 'package:flutter_platform_widgets/flutter_platform_widgets.dart';
import 'package:percent_indicator/linear_percent_indicator.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/utils/theme_utils.dart';
class ProgressListTileStrings {
static String percentString(TimeProgress tp) =>
@ -28,13 +29,26 @@ class ProgressListItem extends StatelessWidget {
@required this.leftColor,
});
Widget _renderSubtitle(BuildContext context) {
@override
Widget build(BuildContext context) {
void _onTileTap() =>
Navigator.pushNamed(context, ProgressDetailScreen.routeName,
arguments: ProgressDetailScreenArguments(timeProgress.id));
Text _renderTitle(bool material) => Text(
timeProgress.name,
style: material ? null : cupertinoCardTextStyle,
);
Widget _renderSubtitle() {
if (!timeProgress.hasStarted())
return PlatformText(ProgressListTileStrings.startsInDaysString(timeProgress));
return PlatformText(
ProgressListTileStrings.startsInDaysString(timeProgress));
if (timeProgress.hasEnded())
return PlatformText(ProgressListTileStrings.endedDaysAgoString(timeProgress));
return PlatformText(
ProgressListTileStrings.endedDaysAgoString(timeProgress));
return LinearPercentIndicator(
center: PlatformText(ProgressListTileStrings.percentString(timeProgress)),
center:
PlatformText(ProgressListTileStrings.percentString(timeProgress)),
percent: timeProgress.percentDone(),
progressColor: doneColor,
backgroundColor: leftColor,
@ -42,33 +56,34 @@ class ProgressListItem extends StatelessWidget {
);
}
@override
Widget build(BuildContext context) {
void _onTileTap() =>
Navigator.pushNamed(context, ProgressDetailScreen.routeName,
arguments: ProgressDetailScreenArguments(timeProgress.id));
Text titleText = Text(timeProgress.name);
if (Platform.isIOS)
Widget _renderCupertino() {
CupertinoThemeData theme = CupertinoTheme.of(context);
return CupertinoButton(
child: Container(
decoration: BoxDecoration(
color: Colors.grey,
color: theme.primaryColor,
borderRadius: BorderRadius.circular(12),
),
padding: EdgeInsets.fromLTRB(15, 15, 5, 5),
child: Column(
children: [
titleText,
_renderSubtitle(context),
_renderTitle(false),
_renderSubtitle(),
],
),
),
onPressed: _onTileTap);
}
Widget _renderMaterial() {
return ListTile(
title: titleText,
subtitle: _renderSubtitle(context),
title: _renderTitle(true),
subtitle: _renderSubtitle(),
onTap: _onTileTap,
);
}
if (Platform.isIOS) return _renderCupertino();
return _renderMaterial();
}
}

View File

@ -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/progress_creation_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';
class DashboardScreen extends StatefulWidget {

View File

@ -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/platform_action_button.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';
class ProgressCreationScreen extends StatefulWidget {

View File

@ -17,4 +17,5 @@ final CupertinoThemeData cupertinoThemeData = CupertinoThemeData(
scaffoldBackgroundColor: Colors.white,
);
final toolbarTextStyle = TextStyle(color: Colors.white, fontSize: 16);
final cupertinoCardTextStyle = TextStyle(color: Colors.white);
final bottomTabsBackground = Colors.indigoAccent;