migrating...

This commit is contained in:
Joshua Burman
2025-04-15 15:29:55 -04:00
parent bdc4fee8c2
commit de22d62432
22 changed files with 17610 additions and 1873 deletions

View File

@ -17,19 +17,45 @@ class MediaCard extends StatelessWidget {
@override
Widget build(BuildContext context) {
DecorationImage mediaImage(MediaItem media) {
dynamic image;
mediaImage(MediaItem media) {
Image image = Image.asset('assets/images/placeholder.jpg');
if (media.type == MediaType.image || media.type == MediaType.location) {
image = NetworkImage(media.reference);
image = Image.network(media.reference, loadingBuilder:
(BuildContext context, Widget child,
ImageChunkEvent? loadingProgress) {
if (loadingProgress == null) return child;
return Text('WTF!!!!');
// return Center(
// child: CircularProgressIndicator(
// value: loadingProgress.expectedTotalBytes != null
// ? loadingProgress.cumulativeBytesLoaded /
// loadingProgress.expectedTotalBytes!
// : null,
// ),
// );
});
} else if (media.type == MediaType.localImage) {
image = Image.memory(base64Decode(media.reference)).image;
image = Image.memory(base64Decode(media.reference));
} else if (media.type == MediaType.youtube) {
image =
NetworkImage('https://img.youtube.com/vi/${media.reference}/0.jpg');
} else if (media.type == MediaType.localVideo) {}
Image.network('https://img.youtube.com/vi/${media.reference}/0.jpg',
loadingBuilder: (BuildContext context, Widget child,
ImageChunkEvent? loadingProgress) {
if (loadingProgress == null) return child;
return Text('WTF!!!!');
// return Center(
// child: CircularProgressIndicator(
// value: loadingProgress.expectedTotalBytes != null
// ? loadingProgress.cumulativeBytesLoaded /
// loadingProgress.expectedTotalBytes!
// : null,
// ),
// );
});
} //else if (media.type == MediaType.localVideo) {}
return DecorationImage(image: image, fit: BoxFit.cover);
return DecorationImage(image: image.image, fit: BoxFit.cover);
}
return Container(

View File

@ -13,6 +13,7 @@ import 'package:sendtrain/widgets/generic/elements/generic_progress_indicator.da
import 'package:sendtrain/widgets/sessions/session_activities_editor.dart';
import 'package:sendtrain/widgets/sessions/session_editor.dart';
import 'package:sendtrain/widgets/sessions/session_view_achievements.dart';
import 'package:sendtrain/widgets/sessions/session_view_actions.dart';
import 'package:sendtrain/widgets/sessions/session_view_activities.dart';
import 'package:sendtrain/widgets/sessions/session_view_media.dart';
@ -178,13 +179,20 @@ class _SessionViewState extends State<SessionView> {
fontSize: 20, fontWeight: FontWeight.bold),
'Media:')),
SessionViewMedia(session: session),
// const Padding(
// padding: EdgeInsets.fromLTRB(15, 30, 0, 10),
// child: Text(
// style: TextStyle(
// fontSize: 20, fontWeight: FontWeight.bold),
// 'Activites:')),
// SessionViewActivities(session: session),
const Padding(
padding: EdgeInsets.fromLTRB(15, 30, 0, 10),
child: Text(
style: TextStyle(
fontSize: 20, fontWeight: FontWeight.bold),
'Activites:')),
SessionViewActivities(session: session),
'Actions:')),
SessionViewActions(session: session)
],
));
} else {

View File

@ -0,0 +1,42 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:scrollable_positioned_list/scrollable_positioned_list.dart';
import 'package:sendtrain/daos/action_sets_dao.dart';
import 'package:sendtrain/database/database.dart';
class SessionViewActions extends StatelessWidget {
SessionViewActions({super.key, required this.session});
final Session session;
// final List actions;
final ItemScrollController itemScrollController = ItemScrollController();
final ScrollOffsetController scrollOffsetController =
ScrollOffsetController();
final ItemPositionsListener itemPositionsListener =
ItemPositionsListener.create();
final ScrollOffsetListener scrollOffsetListener =
ScrollOffsetListener.create();
@override
Widget build(BuildContext context) {
return FutureBuilder<List>(
future: ActionSetsDao(Provider.of<AppDatabase>(context))
.fromSession(session),
builder: (context, snapshot) {
if (snapshot.hasData) {
List<ActionSet> actionSets = snapshot.data! as List<ActionSet>;
return Text(actionSets.first.name);
} else {
return Container(
alignment: Alignment.center,
child: SizedBox(
height: 50.0,
width: 50.0,
child: CircularProgressIndicator(),
));
}
});
}
}