acivity description management, seed data mods
This commit is contained in:
parent
ebca90e69a
commit
6917754933
@ -73,7 +73,7 @@ Future<void> seedDb(AppDatabase database) async {
|
|||||||
|
|
||||||
Map<Symbol, Value> payload = {
|
Map<Symbol, Value> payload = {
|
||||||
Symbol('title'): Value<String>(exercise['name']),
|
Symbol('title'): Value<String>(exercise['name']),
|
||||||
Symbol('description'): Value<String>(exercise['instructions'].toString()),
|
Symbol('description'): Value<String>(json.encode(exercise['instructions'])),
|
||||||
Symbol('force'): Value<String>(exercise['force'] ?? "")
|
Symbol('force'): Value<String>(exercise['force'] ?? "")
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -6,10 +6,11 @@ showMediaDetailWidget(BuildContext context, MediaItem media) {
|
|||||||
showEditorSheet(context, MediaDetails(media: media));
|
showEditorSheet(context, MediaDetails(media: media));
|
||||||
}
|
}
|
||||||
|
|
||||||
showEditorSheet(BuildContext context, Widget widget) {
|
showGenericSheet(BuildContext context, Widget widget) {
|
||||||
showModalBottomSheet<void>(
|
showModalBottomSheet<void>(
|
||||||
shape: RoundedRectangleBorder(
|
shape: RoundedRectangleBorder(
|
||||||
borderRadius: BorderRadius.only(topLeft: Radius.circular(10.0), topRight: Radius.circular(10.0)),
|
borderRadius: BorderRadius.only(
|
||||||
|
topLeft: Radius.circular(10.0), topRight: Radius.circular(10.0)),
|
||||||
),
|
),
|
||||||
context: context,
|
context: context,
|
||||||
showDragHandle: true,
|
showDragHandle: true,
|
||||||
@ -19,3 +20,21 @@ showEditorSheet(BuildContext context, Widget widget) {
|
|||||||
return widget;
|
return widget;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
showEditorSheet(BuildContext context, Widget widget) {
|
||||||
|
showGenericSheet(context, widget);
|
||||||
|
}
|
||||||
|
|
||||||
|
String jsonToDescription(List text) {
|
||||||
|
String content = '';
|
||||||
|
|
||||||
|
for (int i = 0; i < text.length; i++) {
|
||||||
|
if (content.isEmpty) {
|
||||||
|
content = text[i];
|
||||||
|
} else {
|
||||||
|
content = "$content\n\n${text[i]}";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return content;
|
||||||
|
}
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
import 'dart:convert';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:sendtrain/daos/media_items_dao.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/extensions/string_extensions.dart';
|
||||||
import 'package:sendtrain/helpers/date_time_helpers.dart';
|
import 'package:sendtrain/helpers/date_time_helpers.dart';
|
||||||
import 'package:sendtrain/helpers/media_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/models/activity_timer_model.dart';
|
||||||
import 'package:sendtrain/widgets/activities/activity_view.dart';
|
import 'package:sendtrain/widgets/activities/activity_view.dart';
|
||||||
import 'package:sendtrain/widgets/builders/dialogs.dart';
|
import 'package:sendtrain/widgets/builders/dialogs.dart';
|
||||||
@ -59,16 +62,22 @@ class ActivityCardState extends State<ActivityCard> {
|
|||||||
if (atm.activity?.id == widget.activity.id) {
|
if (atm.activity?.id == widget.activity.id) {
|
||||||
return Text(
|
return Text(
|
||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
|
overflow: TextOverflow.ellipsis,
|
||||||
"${widget.activity.title.toTitleCase()} (${formattedTime(atm.totalTime)})");
|
"${widget.activity.title.toTitleCase()} (${formattedTime(atm.totalTime)})");
|
||||||
} else {
|
} else {
|
||||||
return Text(
|
return Text(
|
||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
|
overflow: TextOverflow.ellipsis,
|
||||||
widget.activity.title.toTitleCase());
|
widget.activity.title.toTitleCase());
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
subtitle: Text(
|
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),
|
contentPadding: EdgeInsets.only(left: 13),
|
||||||
trailing: Flex(
|
trailing: Flex(
|
||||||
direction: Axis.vertical,
|
direction: Axis.vertical,
|
||||||
|
@ -1,14 +1,16 @@
|
|||||||
|
import 'dart:convert';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_expandable_fab/flutter_expandable_fab.dart';
|
import 'package:flutter_expandable_fab/flutter_expandable_fab.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:sendtrain/daos/actions_dao.dart';
|
import 'package:sendtrain/daos/actions_dao.dart';
|
||||||
import 'package:sendtrain/database/database.dart';
|
import 'package:sendtrain/database/database.dart';
|
||||||
import 'package:sendtrain/extensions/string_extensions.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/models/activity_timer_model.dart';
|
||||||
import 'package:sendtrain/widgets/activities/activity_action_view.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_categories.dart';
|
||||||
import 'package:sendtrain/widgets/activities/activity_view_media.dart';
|
import 'package:sendtrain/widgets/activities/activity_view_media.dart';
|
||||||
import 'package:sendtrain/widgets/activities/activity_view_types.dart';
|
|
||||||
|
|
||||||
class ActivityView extends StatefulWidget {
|
class ActivityView extends StatefulWidget {
|
||||||
const ActivityView({super.key, required this.activity});
|
const ActivityView({super.key, required this.activity});
|
||||||
@ -185,17 +187,43 @@ class _ActivityViewState extends State<ActivityView> {
|
|||||||
padding: const EdgeInsets.only(
|
padding: const EdgeInsets.only(
|
||||||
top: 0, bottom: 10, left: 15, right: 15),
|
top: 0, bottom: 10, left: 15, right: 15),
|
||||||
child: Text(
|
child: Text(
|
||||||
maxLines: 5,
|
maxLines: 4,
|
||||||
|
overflow: TextOverflow. ellipsis,
|
||||||
|
softWrap: true,
|
||||||
textAlign: TextAlign.left,
|
textAlign: TextAlign.left,
|
||||||
style: const TextStyle(fontSize: 15),
|
style: const TextStyle(fontSize: 15),
|
||||||
activity.description ?? "")),
|
jsonToDescription(json.decode(activity.description ?? "")))),
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.only(left: 15),
|
padding: EdgeInsets.only(right: 15),
|
||||||
child: Text("read more...",
|
child: Align(
|
||||||
style: TextStyle(
|
alignment: Alignment.topRight,
|
||||||
color: Colors.deepPurpleAccent))),
|
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(
|
const Padding(
|
||||||
padding: EdgeInsets.fromLTRB(15, 20, 0, 10),
|
padding: EdgeInsets.fromLTRB(15, 10, 0, 10),
|
||||||
child: Text(
|
child: Text(
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 20,
|
fontSize: 20,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user