From 13fe7e2ef43a30e10d75e96a006f30a19881315b Mon Sep 17 00:00:00 2001 From: Joshua Burman Date: Sun, 8 Dec 2024 14:40:12 -0500 Subject: [PATCH] more prep work for local data storage --- lib/widgets/activity_card.dart | 76 ++++++++++++++++++++++------------ lib/widgets/session_card.dart | 23 ++++++++++ 2 files changed, 72 insertions(+), 27 deletions(-) diff --git a/lib/widgets/activity_card.dart b/lib/widgets/activity_card.dart index 776be35..20386bc 100644 --- a/lib/widgets/activity_card.dart +++ b/lib/widgets/activity_card.dart @@ -60,33 +60,55 @@ class ActivityCardState extends State { mainAxisSize: MainAxisSize.min, children: [ ListTile( - leading: Padding( - padding: const EdgeInsets.fromLTRB(0, 0, 0, 0), - child: Container( - width: 60, - decoration: BoxDecoration( - image: DecorationImage( - fit: BoxFit.cover, - image: findMediaByType( - widget.activity.actions[0].media, 'image')), - // color: Colors.blue, - borderRadius: - const BorderRadius.all(Radius.elliptical(10, 10)), - ), - )), - title: Consumer( - builder: (context, atm, child) { - if (atm.activity?.id == widget.activity.id) { - return Text( - maxLines: 1, - "${widget.activity.title} (${formattedTime(atm.totalTime)})"); - } else { - return Text(maxLines: 1, widget.activity.title); - } - }, - ), - subtitle: Text(maxLines: 2, widget.activity.description), - ), + leading: Padding( + padding: const EdgeInsets.fromLTRB(0, 0, 0, 0), + child: Container( + width: 60, + decoration: BoxDecoration( + image: DecorationImage( + fit: BoxFit.cover, + image: findMediaByType( + widget.activity.actions[0].media, 'image')), + // color: Colors.blue, + borderRadius: + const BorderRadius.all(Radius.elliptical(10, 10)), + ), + )), + title: Consumer( + builder: (context, atm, child) { + if (atm.activity?.id == widget.activity.id) { + return Text( + maxLines: 1, + "${widget.activity.title} (${formattedTime(atm.totalTime)})"); + } else { + return Text(maxLines: 1, widget.activity.title); + } + }, + ), + subtitle: Text(maxLines: 2, widget.activity.description), + trailing: IconButton( + visualDensity: VisualDensity.compact, + icon: Icon(Icons.close_rounded), + onPressed: () { + showAdaptiveDialog( + context: context, + builder: (BuildContext context) => AlertDialog( + title: const Text('Activity Removal'), + content: const Text('Would you like to permanently remove this activity from the current session?'), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context, 'Cancel'), + child: const Text('Cancel'), + ), + TextButton( + onPressed: () => Navigator.pop(context, 'OK'), + child: const Text('OK'), + ), + ], + ), + ); + }, + )), ], )), ); diff --git a/lib/widgets/session_card.dart b/lib/widgets/session_card.dart index cd4eb0c..3169cd0 100644 --- a/lib/widgets/session_card.dart +++ b/lib/widgets/session_card.dart @@ -214,6 +214,29 @@ class SessionCard extends StatelessWidget { )), title: Text(maxLines: 1, data.title), subtitle: Text(maxLines: 1, dateFormat.format(data.date)), + trailing: IconButton( + visualDensity: VisualDensity.compact, + icon: Icon(Icons.close_rounded), + onPressed: () { + showAdaptiveDialog( + context: context, + builder: (BuildContext context) => AlertDialog( + title: const Text('Session Removal'), + content: const Text('Would you like to permanently remove this session?'), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context, 'Cancel'), + child: const Text('Cancel'), + ), + TextButton( + onPressed: () => Navigator.pop(context, 'OK'), + child: const Text('OK'), + ), + ], + ), + ); + }, + ), ), ListTile( contentPadding: const EdgeInsets.fromLTRB(15, 0, 15, 15),