convert to dao calls, prep for migration strategy and first start db seed
This commit is contained in:
@ -25,7 +25,7 @@ class ActivityActionViewState extends State<ActivityActionView> {
|
||||
Widget build(BuildContext context) {
|
||||
ActivityTimerModel atm =
|
||||
Provider.of<ActivityTimerModel>(context, listen: true);
|
||||
List<List<Map<String, dynamic>>> sets = atm.activity!.actions[0].items();
|
||||
List<List<Map<String, dynamic>>> sets = atm.activityModel!.actions[0].items();
|
||||
|
||||
// we need to set the scroll controller
|
||||
// so we can update the selected item position
|
||||
|
@ -36,28 +36,28 @@ class ActivityCardState extends State<ActivityCard> {
|
||||
: Theme.of(context).colorScheme.surfaceContainerLow,
|
||||
clipBehavior: Clip.hardEdge,
|
||||
child: InkWell(
|
||||
// onTap: () => showGeneralDialog(
|
||||
// barrierColor: Colors.black.withOpacity(0.5),
|
||||
// transitionDuration: const Duration(milliseconds: 220),
|
||||
// transitionBuilder: (BuildContext context,
|
||||
// Animation<double> animation,
|
||||
// Animation<double> secondaryAnimation,
|
||||
// Widget child) {
|
||||
// Animation<Offset> custom = Tween<Offset>(
|
||||
// begin: const Offset(0.0, 1.0),
|
||||
// end: const Offset(0.0, 0.0))
|
||||
// .animate(animation);
|
||||
// return SlideTransition(
|
||||
// position: custom,
|
||||
// child: Dialog.fullscreen(
|
||||
// child: ActivityView(activity: widget.activity)));
|
||||
// },
|
||||
// barrierDismissible: true,
|
||||
// barrierLabel: '',
|
||||
// context: context,
|
||||
// pageBuilder: (context, animation1, animation2) {
|
||||
// return Container();
|
||||
// }),
|
||||
onTap: () => showGeneralDialog(
|
||||
barrierColor: Colors.black.withOpacity(0.5),
|
||||
transitionDuration: const Duration(milliseconds: 220),
|
||||
transitionBuilder: (BuildContext context,
|
||||
Animation<double> animation,
|
||||
Animation<double> secondaryAnimation,
|
||||
Widget child) {
|
||||
Animation<Offset> custom = Tween<Offset>(
|
||||
begin: const Offset(0.0, 1.0),
|
||||
end: const Offset(0.0, 0.0))
|
||||
.animate(animation);
|
||||
return SlideTransition(
|
||||
position: custom,
|
||||
child: Dialog.fullscreen(
|
||||
child: ActivityView(activity: widget.activity)));
|
||||
},
|
||||
barrierDismissible: true,
|
||||
barrierLabel: '',
|
||||
context: context,
|
||||
pageBuilder: (context, animation1, animation2) {
|
||||
return Container();
|
||||
}),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: <Widget>[
|
||||
@ -65,6 +65,7 @@ class ActivityCardState extends State<ActivityCard> {
|
||||
leading: Padding(
|
||||
padding: const EdgeInsets.fromLTRB(0, 0, 0, 0),
|
||||
child: Container(
|
||||
padding: EdgeInsets.only(top: 5, bottom: 5),
|
||||
width: 60,
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
|
@ -1,8 +1,8 @@
|
||||
import 'package:drift/drift.dart' hide Column;
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_expandable_fab/flutter_expandable_fab.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:intl/date_symbol_data_local.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:sendtrain/database/daos/activities_dao.dart';
|
||||
|
||||
import 'package:sendtrain/database/database.dart';
|
||||
@ -12,11 +12,10 @@ import 'package:sendtrain/widgets/session_view_activities.dart';
|
||||
import 'package:sendtrain/widgets/session_view_media.dart';
|
||||
|
||||
class SessionView extends StatelessWidget {
|
||||
SessionView({super.key, required this.data, required this.session});
|
||||
const SessionView({super.key, required this.data, required this.session});
|
||||
|
||||
final SessionModel data;
|
||||
final Session session;
|
||||
final AppDatabase database = AppDatabase();
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
@ -24,11 +23,10 @@ class SessionView extends StatelessWidget {
|
||||
final DateFormat dateFormat = DateFormat('yyyy-MM-dd');
|
||||
|
||||
return FutureBuilder<List<Activity>>(
|
||||
future: ActivitiesDao(database).sessionActivities(session.id),
|
||||
future: ActivitiesDao(Provider.of<AppDatabase>(context)).sessionActivities(session.id),
|
||||
builder: (context, snapshot) {
|
||||
if (snapshot.hasData) {
|
||||
final activities = snapshot.data!;
|
||||
database.close();
|
||||
return Scaffold(
|
||||
floatingActionButtonLocation: ExpandableFab.location,
|
||||
floatingActionButton: ExpandableFab(
|
||||
@ -84,7 +82,7 @@ class SessionView extends StatelessWidget {
|
||||
style: TextStyle(
|
||||
fontSize: 20, fontWeight: FontWeight.bold),
|
||||
'Media:')),
|
||||
SessionViewMedia(session: session, media: data.media),
|
||||
SessionViewMedia(session: session),
|
||||
const Padding(
|
||||
padding: EdgeInsets.fromLTRB(15, 30, 0, 10),
|
||||
child: Text(
|
||||
@ -96,7 +94,13 @@ class SessionView extends StatelessWidget {
|
||||
],
|
||||
));
|
||||
} else {
|
||||
return const CircularProgressIndicator();
|
||||
return Container(
|
||||
alignment: Alignment.center,
|
||||
child: SizedBox(
|
||||
height: 50.0,
|
||||
width: 50.0,
|
||||
child: CircularProgressIndicator(),
|
||||
));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -1,12 +1,12 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:sendtrain/database/daos/session_activities_dao.dart';
|
||||
import 'package:sendtrain/database/database.dart';
|
||||
|
||||
class SessionViewAchievements extends StatelessWidget {
|
||||
SessionViewAchievements({super.key, required this.session});
|
||||
const SessionViewAchievements({super.key, required this.session});
|
||||
|
||||
final Session session;
|
||||
final AppDatabase database = AppDatabase();
|
||||
|
||||
List<String> getAchievements(List<SessionActivity> sessionActivities) {
|
||||
List<String> achievements = [];
|
||||
@ -26,12 +26,12 @@ class SessionViewAchievements extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return FutureBuilder<List<SessionActivity>>(
|
||||
future: SessionActivitiesDao(database).sessionActivitiesBySessionId(session.id),
|
||||
future: SessionActivitiesDao(Provider.of<AppDatabase>(context)).sessionActivitiesBySessionId(session.id),
|
||||
builder: (context, snapshot) {
|
||||
if (snapshot.hasData) {
|
||||
final sessionActivities = snapshot.data!;
|
||||
final achievements = getAchievements(sessionActivities);
|
||||
database.close();
|
||||
// database.close();
|
||||
|
||||
return Column(
|
||||
children: [
|
||||
@ -58,7 +58,7 @@ class SessionViewAchievements extends StatelessWidget {
|
||||
],
|
||||
);
|
||||
} else {
|
||||
return const CircularProgressIndicator();
|
||||
return Padding(padding: EdgeInsets.all(15), child:CircularProgressIndicator());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -1,24 +1,22 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:sendtrain/classes/media.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:sendtrain/database/daos/media_items_dao.dart';
|
||||
import 'package:sendtrain/database/database.dart';
|
||||
import 'package:sendtrain/widgets/media_card.dart';
|
||||
|
||||
class SessionViewMedia extends StatelessWidget {
|
||||
SessionViewMedia({super.key, this.media, required this.session});
|
||||
const SessionViewMedia({super.key, required this.session});
|
||||
|
||||
final List<Media>? media;
|
||||
final Session session;
|
||||
final AppDatabase database = AppDatabase();
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return FutureBuilder<List<MediaItem>>(
|
||||
future: MediaItemsDao(database).mediaItemsFromSession(session),
|
||||
future: MediaItemsDao(Provider.of<AppDatabase>(context)).mediaItemsFromSession(session),
|
||||
builder: (context, snapshot) {
|
||||
if (snapshot.hasData) {
|
||||
final mediaItems = snapshot.data!;
|
||||
database.close();
|
||||
// database.close();
|
||||
List<Widget> mediaCards = List.generate(
|
||||
mediaItems.length, (i) => MediaCard(media: mediaItems[i]));
|
||||
|
||||
@ -37,7 +35,7 @@ class SessionViewMedia extends StatelessWidget {
|
||||
],
|
||||
);
|
||||
} else {
|
||||
return CircularProgressIndicator();
|
||||
return Padding(padding: EdgeInsets.all(15), child:CircularProgressIndicator());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
Reference in New Issue
Block a user