Merge branch 'develop' into feature-highEduGraduationCalculator
# Conflicts: # lib/view/pages/overhang.dart
This commit is contained in:
		@@ -22,20 +22,20 @@ class _FeedbackDialogState extends State<FeedbackDialog> {
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
    return AlertDialog(
 | 
			
		||||
 | 
			
		||||
      title: const Text("Feedback"),
 | 
			
		||||
      title: const Text('Feedback'),
 | 
			
		||||
      content: Column(
 | 
			
		||||
        mainAxisSize: MainAxisSize.min,
 | 
			
		||||
        children: [
 | 
			
		||||
          const Text("Feedback, Anregungen, Ideen, Fehler und Verbesserungen"),
 | 
			
		||||
          const Text('Feedback, Anregungen, Ideen, Fehler und Verbesserungen'),
 | 
			
		||||
          const SizedBox(height: 10),
 | 
			
		||||
          const Text("Bitte gib keine geheimen Daten wie z.B. Passwörter weiter.", style: TextStyle(fontSize: 10)),
 | 
			
		||||
          const Text('Bitte gib keine geheimen Daten wie z.B. Passwörter weiter.', style: TextStyle(fontSize: 10)),
 | 
			
		||||
          const SizedBox(height: 10),
 | 
			
		||||
          TextField(
 | 
			
		||||
            controller: _feedbackInput,
 | 
			
		||||
            autofocus: true,
 | 
			
		||||
            decoration: const InputDecoration(
 | 
			
		||||
              border: OutlineInputBorder(),
 | 
			
		||||
              label: Text("Feedback und Verbesserungen")
 | 
			
		||||
              label: Text('Feedback und Verbesserungen')
 | 
			
		||||
            ),
 | 
			
		||||
            // style: TextStyle(),
 | 
			
		||||
            // expands: true,
 | 
			
		||||
@@ -44,12 +44,12 @@ class _FeedbackDialogState extends State<FeedbackDialog> {
 | 
			
		||||
          ),
 | 
			
		||||
          Visibility(
 | 
			
		||||
            visible: _error != null,
 | 
			
		||||
            child: Text("Senden fehlgeschlagen: $_error", style: const TextStyle(color: Colors.red))
 | 
			
		||||
            child: Text('Senden fehlgeschlagen: $_error', style: const TextStyle(color: Colors.red))
 | 
			
		||||
          )
 | 
			
		||||
        ],
 | 
			
		||||
      ),
 | 
			
		||||
      actions: [
 | 
			
		||||
        TextButton(onPressed: () => Navigator.of(context).pop(), child: const Text("Abbrechen")),
 | 
			
		||||
        TextButton(onPressed: () => Navigator.of(context).pop(), child: const Text('Abbrechen')),
 | 
			
		||||
        TextButton(
 | 
			
		||||
          onPressed: () async {
 | 
			
		||||
            AddFeedback(
 | 
			
		||||
@@ -62,7 +62,7 @@ class _FeedbackDialogState extends State<FeedbackDialog> {
 | 
			
		||||
            .run()
 | 
			
		||||
            .then((value) {
 | 
			
		||||
              Navigator.of(context).pop();
 | 
			
		||||
              InfoDialog.show(context, "Danke für dein Feedback!");
 | 
			
		||||
              InfoDialog.show(context, 'Danke für dein Feedback!');
 | 
			
		||||
            })
 | 
			
		||||
            .catchError((error, trace) {
 | 
			
		||||
                setState(() {
 | 
			
		||||
@@ -70,7 +70,7 @@ class _FeedbackDialogState extends State<FeedbackDialog> {
 | 
			
		||||
                });
 | 
			
		||||
            });
 | 
			
		||||
          },
 | 
			
		||||
          child: const Text("Senden"),
 | 
			
		||||
          child: const Text('Senden'),
 | 
			
		||||
        )
 | 
			
		||||
      ],
 | 
			
		||||
    );
 | 
			
		||||
 
 | 
			
		||||
@@ -24,7 +24,7 @@ class _GradeAverageState extends State<GradeAverage> {
 | 
			
		||||
 | 
			
		||||
  String getGradeDisplay(int grade) {
 | 
			
		||||
    if(gradeSystem) {
 | 
			
		||||
      return "Note $grade";
 | 
			
		||||
      return 'Note $grade';
 | 
			
		||||
    } else {
 | 
			
		||||
      return "$grade Punkt${grade > 1 ? "e" : ""}";
 | 
			
		||||
    }
 | 
			
		||||
@@ -48,22 +48,22 @@ class _GradeAverageState extends State<GradeAverage> {
 | 
			
		||||
      if(!settings.val().gradeAveragesSettings.askedForPreferredGradeSystem) {
 | 
			
		||||
        settings.val(write: true).gradeAveragesSettings.askedForPreferredGradeSystem = true;
 | 
			
		||||
        showDialog(context: context, builder: (context) => AlertDialog(
 | 
			
		||||
          title: const Text("Notensystem"),
 | 
			
		||||
          content: const Text("Wähle dein bevorzugtes Schulnotensystem"),
 | 
			
		||||
          title: const Text('Notensystem'),
 | 
			
		||||
          content: const Text('Wähle dein bevorzugtes Schulnotensystem'),
 | 
			
		||||
          actions: [
 | 
			
		||||
            TextButton(
 | 
			
		||||
              onPressed: () {
 | 
			
		||||
                switchSystem(true);
 | 
			
		||||
                Navigator.of(context).pop();
 | 
			
		||||
              },
 | 
			
		||||
              child: const Text("Realschule"),
 | 
			
		||||
              child: const Text('Realschule'),
 | 
			
		||||
            ),
 | 
			
		||||
            TextButton(
 | 
			
		||||
              onPressed: () {
 | 
			
		||||
                switchSystem(false);
 | 
			
		||||
                Navigator.of(context).pop();
 | 
			
		||||
              },
 | 
			
		||||
              child: const Text("Oberstufe"),
 | 
			
		||||
              child: const Text('Oberstufe'),
 | 
			
		||||
            ),
 | 
			
		||||
          ],
 | 
			
		||||
        ));
 | 
			
		||||
@@ -81,7 +81,7 @@ class _GradeAverageState extends State<GradeAverage> {
 | 
			
		||||
 | 
			
		||||
    return Scaffold(
 | 
			
		||||
      appBar: AppBar(
 | 
			
		||||
        title: const Text("Notendurschnittsrechner"),
 | 
			
		||||
        title: const Text('Notendurschnittsrechner'),
 | 
			
		||||
        actions: [
 | 
			
		||||
          Visibility(
 | 
			
		||||
            visible: grades.isNotEmpty,
 | 
			
		||||
@@ -89,9 +89,9 @@ class _GradeAverageState extends State<GradeAverage> {
 | 
			
		||||
              showDialog(
 | 
			
		||||
                context: context,
 | 
			
		||||
                builder: (context) => ConfirmDialog(
 | 
			
		||||
                  title: "Zurücksetzen?",
 | 
			
		||||
                  content: "Alle Einträge werden entfernt.",
 | 
			
		||||
                  confirmButton: "Zurücksetzen",
 | 
			
		||||
                  title: 'Zurücksetzen?',
 | 
			
		||||
                  content: 'Alle Einträge werden entfernt.',
 | 
			
		||||
                  confirmButton: 'Zurücksetzen',
 | 
			
		||||
                  onConfirm: () {
 | 
			
		||||
                    grades.clear();
 | 
			
		||||
                    setState(() {});
 | 
			
		||||
@@ -109,7 +109,7 @@ class _GradeAverageState extends State<GradeAverage> {
 | 
			
		||||
                children: [
 | 
			
		||||
                  Icon(e ? Icons.calculate_outlined : Icons.school_outlined, color: Theme.of(context).colorScheme.onSurface),
 | 
			
		||||
                  const SizedBox(width: 15),
 | 
			
		||||
                  Text(e ? "Notensystem" : "Punktesystem"),
 | 
			
		||||
                  Text(e ? 'Notensystem' : 'Punktesystem'),
 | 
			
		||||
                ],
 | 
			
		||||
              ),
 | 
			
		||||
            )).toList(),
 | 
			
		||||
@@ -120,9 +120,9 @@ class _GradeAverageState extends State<GradeAverage> {
 | 
			
		||||
                showDialog(
 | 
			
		||||
                  context: context,
 | 
			
		||||
                  builder: (context) => ConfirmDialog(
 | 
			
		||||
                    title: "Notensystem wechseln",
 | 
			
		||||
                    content: "Beim wechsel des Notensystems werden alle Einträge zurückgesetzt.",
 | 
			
		||||
                    confirmButton: "Fortfahren",
 | 
			
		||||
                    title: 'Notensystem wechseln',
 | 
			
		||||
                    content: 'Beim wechsel des Notensystems werden alle Einträge zurückgesetzt.',
 | 
			
		||||
                    confirmButton: 'Fortfahren',
 | 
			
		||||
                    onConfirm: () => switchSystem(e),
 | 
			
		||||
                  ),
 | 
			
		||||
                );
 | 
			
		||||
@@ -142,7 +142,7 @@ class _GradeAverageState extends State<GradeAverage> {
 | 
			
		||||
          const SizedBox(height: 10),
 | 
			
		||||
          const Divider(),
 | 
			
		||||
          const SizedBox(height: 10),
 | 
			
		||||
          Text(gradeSystem ? "Wähle unten die Anzahl deiner jewiligen Noten aus" : "Wähle unten die Anzahl deiner jeweiligen Punkte aus"),
 | 
			
		||||
          Text(gradeSystem ? 'Wähle unten die Anzahl deiner jewiligen Noten aus' : 'Wähle unten die Anzahl deiner jeweiligen Punkte aus'),
 | 
			
		||||
          const SizedBox(height: 10),
 | 
			
		||||
          Expanded(
 | 
			
		||||
            child: ListView.builder(
 | 
			
		||||
@@ -169,7 +169,7 @@ class _GradeAverageState extends State<GradeAverage> {
 | 
			
		||||
                            icon: const Icon(Icons.remove),
 | 
			
		||||
                            color: Theme.of(context).colorScheme.onSurface,
 | 
			
		||||
                          ),
 | 
			
		||||
                          Text("${grades.where(isThis).length}", style: const TextStyle(fontSize: 15, fontWeight: FontWeight.bold)),
 | 
			
		||||
                          Text('${grades.where(isThis).length}', style: const TextStyle(fontSize: 15, fontWeight: FontWeight.bold)),
 | 
			
		||||
                          IconButton(
 | 
			
		||||
                            onPressed: () {
 | 
			
		||||
                              setState(() {
 | 
			
		||||
 
 | 
			
		||||
@@ -42,23 +42,23 @@ class _HolidaysState extends State<Holidays> {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  String parseString(String enDate) {
 | 
			
		||||
    return Jiffy.parse(enDate).format(pattern: "dd.MM.yyyy");
 | 
			
		||||
    return Jiffy.parse(enDate).format(pattern: 'dd.MM.yyyy');
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  void showDisclaimer() {
 | 
			
		||||
    showDialog(context: context, builder: (context) {
 | 
			
		||||
      return AlertDialog(
 | 
			
		||||
        title: const Text("Richtigkeit und Bereitstellung der Daten"),
 | 
			
		||||
        title: const Text('Richtigkeit und Bereitstellung der Daten'),
 | 
			
		||||
        content: Column(
 | 
			
		||||
          mainAxisSize: MainAxisSize.min,
 | 
			
		||||
          children: [
 | 
			
		||||
            const Text(""
 | 
			
		||||
                "Sämtliche Datumsangaben sind ohne Gewähr.\n"
 | 
			
		||||
                "Ich übernehme weder Verantwortung für die Richtigkeit der Daten noch hafte ich für wirtschaftliche Schäden die aus der Verwendung dieser Daten entstehen können.\n\n"
 | 
			
		||||
                "Die Daten stammen von https://ferien-api.de/"),
 | 
			
		||||
            const Text(''
 | 
			
		||||
                'Sämtliche Datumsangaben sind ohne Gewähr.\n'
 | 
			
		||||
                'Ich übernehme weder Verantwortung für die Richtigkeit der Daten noch hafte ich für wirtschaftliche Schäden die aus der Verwendung dieser Daten entstehen können.\n\n'
 | 
			
		||||
                'Die Daten stammen von https://ferien-api.de/'),
 | 
			
		||||
            const SizedBox(height: 30),
 | 
			
		||||
            ListTile(
 | 
			
		||||
              title: const Text("Diese Meldung nicht mehr anzeigen"),
 | 
			
		||||
              title: const Text('Diese Meldung nicht mehr anzeigen'),
 | 
			
		||||
              trailing: Checkbox(
 | 
			
		||||
                value: settings.val().holidaysSettings.dismissedDisclaimer,
 | 
			
		||||
                onChanged: (value) => settings.val(write: true).holidaysSettings.dismissedDisclaimer = value!,
 | 
			
		||||
@@ -67,8 +67,8 @@ class _HolidaysState extends State<Holidays> {
 | 
			
		||||
          ],
 | 
			
		||||
        ),
 | 
			
		||||
        actions: [
 | 
			
		||||
          TextButton(child: const Text("ferien-api.de besuchen"), onPressed: () => ConfirmDialog.openBrowser(context, "https://ferien-api.de/")),
 | 
			
		||||
          TextButton(child: const Text("Okay"), onPressed: () => Navigator.of(context).pop()),
 | 
			
		||||
          TextButton(child: const Text('ferien-api.de besuchen'), onPressed: () => ConfirmDialog.openBrowser(context, 'https://ferien-api.de/')),
 | 
			
		||||
          TextButton(child: const Text('Okay'), onPressed: () => Navigator.of(context).pop()),
 | 
			
		||||
        ],
 | 
			
		||||
      );
 | 
			
		||||
    });
 | 
			
		||||
@@ -78,11 +78,11 @@ class _HolidaysState extends State<Holidays> {
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
    return Scaffold(
 | 
			
		||||
      appBar: AppBar(
 | 
			
		||||
        title: const Text("Schulferien in Hessen"),
 | 
			
		||||
        title: const Text('Schulferien in Hessen'),
 | 
			
		||||
        actions: [
 | 
			
		||||
          IconButton(
 | 
			
		||||
            icon: const Icon(Icons.warning_amber_outlined),
 | 
			
		||||
            onPressed: () => showDisclaimer(),
 | 
			
		||||
            onPressed: showDisclaimer,
 | 
			
		||||
          ),
 | 
			
		||||
          PopupMenuButton<bool>(
 | 
			
		||||
            initialValue: settings.val().holidaysSettings.showPastEvents,
 | 
			
		||||
@@ -95,7 +95,7 @@ class _HolidaysState extends State<Holidays> {
 | 
			
		||||
                    children: [
 | 
			
		||||
                      Icon(e ? Icons.history_outlined : Icons.history_toggle_off_outlined, color: Theme.of(context).colorScheme.onSurface),
 | 
			
		||||
                      const SizedBox(width: 15),
 | 
			
		||||
                      Text(e ? "Alle anzeigen" : "Nur zukünftige anzeigen")
 | 
			
		||||
                      Text(e ? 'Alle anzeigen' : 'Nur zukünftige anzeigen')
 | 
			
		||||
                    ],
 | 
			
		||||
                  )
 | 
			
		||||
              )).toList();
 | 
			
		||||
@@ -115,19 +115,19 @@ class _HolidaysState extends State<Holidays> {
 | 
			
		||||
        List<GetHolidaysResponseObject> holidays = value.getHolidaysResponse.data;
 | 
			
		||||
        if(!showPastEvents) holidays = holidays.where((element) => DateTime.parse(element.end).isAfter(DateTime.now())).toList();
 | 
			
		||||
 | 
			
		||||
        if(holidays.isEmpty) return const PlaceholderView(icon: Icons.search_off, text: "Es wurden keine Ferieneinträge gefunden!");
 | 
			
		||||
        if(holidays.isEmpty) return const PlaceholderView(icon: Icons.search_off, text: 'Es wurden keine Ferieneinträge gefunden!');
 | 
			
		||||
 | 
			
		||||
        return ListView.builder(
 | 
			
		||||
            itemCount: holidays.length,
 | 
			
		||||
            itemBuilder: (context, index) {
 | 
			
		||||
              GetHolidaysResponseObject holiday = holidays[index];
 | 
			
		||||
              String holidayType = holiday.name.split(" ").first.capitalize();
 | 
			
		||||
              String holidayType = holiday.name.split(' ').first.capitalize();
 | 
			
		||||
              return ListTile(
 | 
			
		||||
                leading: const CenteredLeading(Icon(Icons.calendar_month)),
 | 
			
		||||
                title: Text("$holidayType ab ${parseString(holiday.start)}"),
 | 
			
		||||
                subtitle: Text("bis ${parseString(holiday.end)}"),
 | 
			
		||||
                title: Text('$holidayType ab ${parseString(holiday.start)}'),
 | 
			
		||||
                subtitle: Text('bis ${parseString(holiday.end)}'),
 | 
			
		||||
                onTap: () => showDialog(context: context, builder: (context) => SimpleDialog(
 | 
			
		||||
                  title: Text("$holidayType ${holiday.year} in Hessen"),
 | 
			
		||||
                  title: Text('$holidayType ${holiday.year} in Hessen'),
 | 
			
		||||
                  children: [
 | 
			
		||||
                    ListTile(
 | 
			
		||||
                      leading: const CenteredLeading(Icon(Icons.signpost_outlined)),
 | 
			
		||||
@@ -136,11 +136,11 @@ class _HolidaysState extends State<Holidays> {
 | 
			
		||||
                    ),
 | 
			
		||||
                    ListTile(
 | 
			
		||||
                      leading: const Icon(Icons.arrow_forward),
 | 
			
		||||
                      title: Text("vom ${parseString(holiday.start)}"),
 | 
			
		||||
                      title: Text('vom ${parseString(holiday.start)}'),
 | 
			
		||||
                    ),
 | 
			
		||||
                    ListTile(
 | 
			
		||||
                      leading: const Icon(Icons.arrow_back),
 | 
			
		||||
                      title: Text("bis zum ${parseString(holiday.end)}"),
 | 
			
		||||
                      title: Text('bis zum ${parseString(holiday.end)}'),
 | 
			
		||||
                    ),
 | 
			
		||||
                    Visibility(
 | 
			
		||||
                      visible: !DateTime.parse(holiday.start).difference(DateTime.now()).isNegative,
 | 
			
		||||
 
 | 
			
		||||
@@ -27,7 +27,7 @@ class _MessageState extends State<Message> {
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
    return Scaffold(
 | 
			
		||||
      appBar: AppBar(
 | 
			
		||||
        title: const Text("Marianum Message"),
 | 
			
		||||
        title: const Text('Marianum Message'),
 | 
			
		||||
      ),
 | 
			
		||||
      body: Consumer<MessageProps>(builder: (context, value, child) {
 | 
			
		||||
        if(value.primaryLoading()) return const LoadingSpinner();
 | 
			
		||||
@@ -43,7 +43,7 @@ class _MessageState extends State<Message> {
 | 
			
		||||
                    children: [Icon(Icons.newspaper)],
 | 
			
		||||
                  ),
 | 
			
		||||
                  title: Text(message.name, overflow: TextOverflow.ellipsis),
 | 
			
		||||
                  subtitle: Text("vom ${message.date}"),
 | 
			
		||||
                  subtitle: Text('vom ${message.date}'),
 | 
			
		||||
                  trailing: const Icon(Icons.arrow_right),
 | 
			
		||||
                  onTap: () {
 | 
			
		||||
                    Navigator.push(context, MaterialPageRoute(builder: (context) => MessageView(basePath: value.getMessagesResponse.base, message: message)));
 | 
			
		||||
 
 | 
			
		||||
@@ -29,12 +29,12 @@ class _MessageViewState extends State<MessageView> {
 | 
			
		||||
          Navigator.of(context).pop();
 | 
			
		||||
          showDialog(context: context, builder: (context) {
 | 
			
		||||
            return AlertDialog(
 | 
			
		||||
              title: const Text("Fehler beim öffnen"),
 | 
			
		||||
              title: const Text('Fehler beim öffnen'),
 | 
			
		||||
              content: Text("Dokument '${widget.message.name}' konnte nicht geladen werden:\n${e.description}"),
 | 
			
		||||
              actions: [
 | 
			
		||||
                TextButton(onPressed: () {
 | 
			
		||||
                  Navigator.of(context).pop();
 | 
			
		||||
                }, child: const Text("Ok"))
 | 
			
		||||
                }, child: const Text('Ok'))
 | 
			
		||||
              ],
 | 
			
		||||
            );
 | 
			
		||||
          });
 | 
			
		||||
@@ -43,9 +43,9 @@ class _MessageViewState extends State<MessageView> {
 | 
			
		||||
          showDialog(
 | 
			
		||||
            context: context,
 | 
			
		||||
            builder: (context) => ConfirmDialog(
 | 
			
		||||
              title: "Link öffnen",
 | 
			
		||||
              content: "Möchtest du den folgenden Link öffnen?\n${e.uri}",
 | 
			
		||||
              confirmButton: "Öffnen",
 | 
			
		||||
              title: 'Link öffnen',
 | 
			
		||||
              content: 'Möchtest du den folgenden Link öffnen?\n${e.uri}',
 | 
			
		||||
              confirmButton: 'Öffnen',
 | 
			
		||||
              onConfirm: () => launchUrl(Uri.parse(e.uri), mode: LaunchMode.externalApplication),
 | 
			
		||||
            ),
 | 
			
		||||
          );
 | 
			
		||||
 
 | 
			
		||||
@@ -8,10 +8,10 @@ class Roomplan extends StatelessWidget {
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
    return Scaffold(
 | 
			
		||||
      appBar: AppBar(
 | 
			
		||||
        title: const Text("Raumplan"),
 | 
			
		||||
        title: const Text('Raumplan'),
 | 
			
		||||
      ),
 | 
			
		||||
      body: PhotoView(
 | 
			
		||||
        imageProvider: Image.asset("assets/img/raumplan.jpg").image,
 | 
			
		||||
        imageProvider: Image.asset('assets/img/raumplan.jpg').image,
 | 
			
		||||
        minScale: 0.5,
 | 
			
		||||
        maxScale: 2.0,
 | 
			
		||||
        backgroundDecoration: BoxDecoration(color: Theme.of(context).colorScheme.background),
 | 
			
		||||
 
 | 
			
		||||
@@ -16,18 +16,18 @@ class _QrShareViewState extends State<QrShareView> {
 | 
			
		||||
      length: 2,
 | 
			
		||||
      child: Scaffold(
 | 
			
		||||
        appBar: AppBar(
 | 
			
		||||
          title: const Text("Teile die App"),
 | 
			
		||||
          title: const Text('Teile die App'),
 | 
			
		||||
          bottom: const TabBar(
 | 
			
		||||
            tabs: [
 | 
			
		||||
              Tab(icon: Icon(Icons.android_outlined), text: "Android"),
 | 
			
		||||
              Tab(icon: Icon(Icons.apple_outlined), text: "iOS & iPadOS"),
 | 
			
		||||
              Tab(icon: Icon(Icons.android_outlined), text: 'Android'),
 | 
			
		||||
              Tab(icon: Icon(Icons.apple_outlined), text: 'iOS & iPadOS'),
 | 
			
		||||
            ],
 | 
			
		||||
          ),
 | 
			
		||||
        ),
 | 
			
		||||
        body: const TabBarView(
 | 
			
		||||
          children: [
 | 
			
		||||
            AppSharePlatformView("Für Android", "https://play.google.com/store/apps/details?id=eu.mhsl.marianum.mobile.client"),
 | 
			
		||||
            AppSharePlatformView("Für iOS & iPad", "https://apps.apple.com/us/app/marianum-fulda/id6458789560"),
 | 
			
		||||
            AppSharePlatformView('Für Android', 'https://play.google.com/store/apps/details?id=eu.mhsl.marianum.mobile.client'),
 | 
			
		||||
            AppSharePlatformView('Für iOS & iPad', 'https://apps.apple.com/us/app/marianum-fulda/id6458789560'),
 | 
			
		||||
          ],
 | 
			
		||||
        ),
 | 
			
		||||
      ),
 | 
			
		||||
 
 | 
			
		||||
@@ -13,7 +13,7 @@ class SelectShareTypeDialog extends StatelessWidget {
 | 
			
		||||
      children: [
 | 
			
		||||
        ListTile(
 | 
			
		||||
          leading: const Icon(Icons.qr_code_2_outlined),
 | 
			
		||||
          title: const Text("Per QR-Code"),
 | 
			
		||||
          title: const Text('Per QR-Code'),
 | 
			
		||||
          trailing: const Icon(Icons.arrow_right),
 | 
			
		||||
          onTap: () {
 | 
			
		||||
            Navigator.of(context).push(MaterialPageRoute(builder: (context) => const QrShareView()));
 | 
			
		||||
@@ -21,16 +21,16 @@ class SelectShareTypeDialog extends StatelessWidget {
 | 
			
		||||
        ),
 | 
			
		||||
        ListTile(
 | 
			
		||||
          leading: const Icon(Icons.link_outlined),
 | 
			
		||||
          title: const Text("Per Link teilen"),
 | 
			
		||||
          title: const Text('Per Link teilen'),
 | 
			
		||||
          trailing: const Icon(Icons.arrow_right),
 | 
			
		||||
          onTap: () {
 | 
			
		||||
            Share.share(
 | 
			
		||||
                sharePositionOrigin: SharePositionOrigin.get(context),
 | 
			
		||||
                subject: "App Teilen",
 | 
			
		||||
                "Hol dir die für das Marianum maßgeschneiderte App:"
 | 
			
		||||
                    "\n\nAndroid: https://play.google.com/store/apps/details?id=eu.mhsl.marianum.mobile.client "
 | 
			
		||||
                    "\niOS: https://apps.apple.com/us/app/marianum-fulda/id6458789560 "
 | 
			
		||||
                    "\n\nViel Spaß!"
 | 
			
		||||
                subject: 'App Teilen',
 | 
			
		||||
                'Hol dir die für das Marianum maßgeschneiderte App:'
 | 
			
		||||
                    '\n\nAndroid: https://play.google.com/store/apps/details?id=eu.mhsl.marianum.mobile.client '
 | 
			
		||||
                    '\niOS: https://apps.apple.com/us/app/marianum-fulda/id6458789560 '
 | 
			
		||||
                    '\n\nViel Spaß!'
 | 
			
		||||
            );
 | 
			
		||||
          },
 | 
			
		||||
        )
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user