Initial commit

This commit is contained in:
2023-01-22 19:44:38 +01:00
parent 021bc02992
commit 1baa8028fa
164 changed files with 6587 additions and 2 deletions
.idea
.metadataAPI.jsonREADME.mdanalysis_options.yaml
android
assets
client.iml
ios
lib
linux
macos
pubspec.yaml
test
web
windows

28
lib/widget/ListItem.dart Normal file

@ -0,0 +1,28 @@
import 'package:flutter/material.dart';
class ListItemNavigator extends StatelessWidget {
const ListItemNavigator({Key? key, required this.icon, required this.text, required this.target, this.onLongPress, this.arrow = true}) : super(key: key);
final IconData icon;
final String text;
final bool arrow;
final Widget target;
final GestureLongPressCallback? onLongPress;
@override
Widget build(BuildContext context) {
onTabAction() => Navigator.push(context, MaterialPageRoute(builder: (context) => target));
onLongPressAction() => onLongPress;
return ListTile(
leading: Icon(icon),
title: Text(text),
trailing: arrow ? const Icon(Icons.arrow_right) : null,
onTap: onTabAction,
onLongPress: onLongPressAction,
);
}
}

@ -0,0 +1,30 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:marianum_mobile/data/incomingPacket.dart';
import 'package:provider/provider.dart';
class LoadingPacket extends StatefulWidget {
final Widget child;
final IncomingPacket packet;
const LoadingPacket({Key? key, required this.child, required this.packet}) : super(key: key);
@override
State<LoadingPacket> createState() => _LoadingPacketState();
}
class _LoadingPacketState extends State<LoadingPacket> {
@override
Widget build(BuildContext context) {
return widget.packet.isReceived ? widget.child : Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
const CircularProgressIndicator(),
Padding(padding: const EdgeInsets.all(20), child: Text("Request: '${widget.packet.packetId}'"))
]
)
);
}
}

@ -0,0 +1,29 @@
import 'package:flutter/material.dart';
class LoadingSpinner extends StatefulWidget {
const LoadingSpinner({Key? key}) : super(key: key);
@override
State<LoadingSpinner> createState() => _LoadingSpinnerState();
}
class _LoadingSpinnerState extends State<LoadingSpinner> {
@override
Widget build(BuildContext context) {
return Dialog(
child: Padding(
padding: const EdgeInsets.all(20),
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
CircularProgressIndicator(
color: Theme.of(context).primaryColor,
),
const Padding(padding: EdgeInsets.only(left: 15), child: Text("Daten abrufen...")),
],
),
),
);
}
}