Created ActiveTimeProgressesScreen and migrated ListView and Item to Platform Specific

Signed-off-by: Andreas Fahrecker <AndreasFahrecker@gmail.com>
This commit is contained in:
Andreas Fahrecker
2021-03-09 20:12:26 +01:00
parent ed5d2b92f7
commit b813481369
6 changed files with 80 additions and 21 deletions

View File

@ -1,3 +1,6 @@
import 'dart:io' show Platform;
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:percent_indicator/linear_percent_indicator.dart';
import 'package:time_progress_tracker/models/time_progress.dart';
@ -14,11 +17,11 @@ class ProgressListTileStrings {
"Ended ${tp.daysSinceEnd()} Days ago.";
}
class ProgressListTile extends StatelessWidget {
class ProgressListItem extends StatelessWidget {
final TimeProgress timeProgress;
final Color doneColor, leftColor;
ProgressListTile({
ProgressListItem({
@required this.timeProgress,
@required this.doneColor,
@required this.leftColor,
@ -43,9 +46,26 @@ class ProgressListTile extends StatelessWidget {
void _onTileTap() =>
Navigator.pushNamed(context, ProgressDetailScreen.routeName,
arguments: ProgressDetailScreenArguments(timeProgress.id));
Text titleText = Text(timeProgress.name);
if (Platform.isIOS)
return CupertinoButton(
child: Container(
decoration: BoxDecoration(
color: Colors.grey,
borderRadius: BorderRadius.circular(12),
),
padding: EdgeInsets.fromLTRB(15, 15, 5, 5),
child: Column(
children: [
titleText,
_renderSubtitle(context),
],
),
),
onPressed: _onTileTap);
return ListTile(
title: Text(timeProgress.name),
title: titleText,
subtitle: _renderSubtitle(context),
onTap: _onTileTap,
);

View File

@ -1,6 +1,9 @@
import 'dart:io' show Platform;
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:time_progress_tracker/models/time_progress.dart';
import 'package:time_progress_tracker/widgets/progress_list_view/progress_list_tile.dart';
import 'package:time_progress_tracker/widgets/progress_list_view/progress_list_item.dart';
class ProgressListView extends StatelessWidget {
final List<TimeProgress> timeProgressList;
@ -12,15 +15,18 @@ class ProgressListView extends StatelessWidget {
@required this.leftColor,
});
Widget _renderListTile(TimeProgress tp) {
ProgressListItem listTile = ProgressListItem(
timeProgress: tp, doneColor: doneColor, leftColor: leftColor);
if (Platform.isIOS) return listTile;
return Card(
child: listTile,
);
}
List<Widget> _renderListViewChildren() {
return timeProgressList
.map((e) => Card(
child: ProgressListTile(
timeProgress: e,
doneColor: doneColor,
leftColor: leftColor,
),
))
.map((e) => _renderListTile(e))
.toList(growable: false);
}