acivity description management, seed data mods

This commit is contained in:
Joshua Burman
2025-01-06 14:47:14 -05:00
parent ebca90e69a
commit 6917754933
4 changed files with 68 additions and 12 deletions

View File

@ -1,3 +1,5 @@
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:sendtrain/daos/media_items_dao.dart';
@ -6,6 +8,7 @@ import 'package:sendtrain/database/database.dart';
import 'package:sendtrain/extensions/string_extensions.dart';
import 'package:sendtrain/helpers/date_time_helpers.dart';
import 'package:sendtrain/helpers/media_helpers.dart';
import 'package:sendtrain/helpers/widget_helpers.dart';
import 'package:sendtrain/models/activity_timer_model.dart';
import 'package:sendtrain/widgets/activities/activity_view.dart';
import 'package:sendtrain/widgets/builders/dialogs.dart';
@ -59,16 +62,22 @@ class ActivityCardState extends State<ActivityCard> {
if (atm.activity?.id == widget.activity.id) {
return Text(
maxLines: 1,
overflow: TextOverflow.ellipsis,
"${widget.activity.title.toTitleCase()} (${formattedTime(atm.totalTime)})");
} else {
return Text(
maxLines: 1,
overflow: TextOverflow.ellipsis,
widget.activity.title.toTitleCase());
}
},
),
subtitle: Text(
maxLines: 2, widget.activity.description ?? ""),
overflow: TextOverflow.ellipsis,
maxLines: 2,
softWrap: true,
jsonToDescription(json
.decode(widget.activity.description ?? ""))),
contentPadding: EdgeInsets.only(left: 13),
trailing: Flex(
direction: Axis.vertical,

View File

@ -1,14 +1,16 @@
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:flutter_expandable_fab/flutter_expandable_fab.dart';
import 'package:provider/provider.dart';
import 'package:sendtrain/daos/actions_dao.dart';
import 'package:sendtrain/database/database.dart';
import 'package:sendtrain/extensions/string_extensions.dart';
import 'package:sendtrain/helpers/widget_helpers.dart';
import 'package:sendtrain/models/activity_timer_model.dart';
import 'package:sendtrain/widgets/activities/activity_action_view.dart';
import 'package:sendtrain/widgets/activities/activity_view_categories.dart';
import 'package:sendtrain/widgets/activities/activity_view_media.dart';
import 'package:sendtrain/widgets/activities/activity_view_types.dart';
class ActivityView extends StatefulWidget {
const ActivityView({super.key, required this.activity});
@ -185,17 +187,43 @@ class _ActivityViewState extends State<ActivityView> {
padding: const EdgeInsets.only(
top: 0, bottom: 10, left: 15, right: 15),
child: Text(
maxLines: 5,
maxLines: 4,
overflow: TextOverflow. ellipsis,
softWrap: true,
textAlign: TextAlign.left,
style: const TextStyle(fontSize: 15),
activity.description ?? "")),
jsonToDescription(json.decode(activity.description ?? "")))),
Padding(
padding: EdgeInsets.only(left: 15),
child: Text("read more...",
style: TextStyle(
color: Colors.deepPurpleAccent))),
padding: EdgeInsets.only(right: 15),
child: Align(
alignment: Alignment.topRight,
child: TextButton(
style: ButtonStyle(
textStyle:
WidgetStateProperty.all<TextStyle>(
TextStyle(
fontWeight:
FontWeight.normal)),
shape: WidgetStateProperty.all<
RoundedRectangleBorder>(
RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(10.0),
))),
onPressed: () {
showGenericSheet(
context,
Padding(
padding: EdgeInsets.all(15),
child: Text(jsonToDescription(
json.decode(activity.description ??
"")))));
},
child: Text("Read More...",
textAlign: TextAlign.right),
))),
const Padding(
padding: EdgeInsets.fromLTRB(15, 20, 0, 10),
padding: EdgeInsets.fromLTRB(15, 10, 0, 10),
child: Text(
style: TextStyle(
fontSize: 20,