diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index cfd096ce..31c82acc 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -170,7 +170,7 @@ "messagesMessages": "Messages", - "nolleguide": "THE STUDENT GUIDE", + "nolleguide": "The Student Guide", "nolleguideWeAtFsek": "The F-guild", "nolleguideEtiquette": "All you need to know", @@ -323,7 +323,7 @@ "readMotionAnswer": "Read motion answer", "readProposition": "Read motion from the board", - "emergencyContacts": "Emergency contact numbers", + "emergencyContacts": "Emergency Contact Numbers", "emergencyNumOne": "112", "emergencyTitleOne": " - Emergency", "emergencyContentOne": "In case of emergency, always call 112. This number allows you to reach the police, ambulance, fire brigade etc.", diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart index 34bedad2..a10ba2df 100644 --- a/lib/l10n/app_localizations.dart +++ b/lib/l10n/app_localizations.dart @@ -1019,7 +1019,7 @@ abstract class AppLocalizations { /// No description provided for @nolleguide. /// /// In sv, this message translates to: - /// **'NOLLEGUIDEN'** + /// **'Nolleguiden'** String get nolleguide; /// No description provided for @nolleguideWeAtFsek. diff --git a/lib/l10n/app_localizations_en.dart b/lib/l10n/app_localizations_en.dart index 4e443ea4..a7a7b4f6 100644 --- a/lib/l10n/app_localizations_en.dart +++ b/lib/l10n/app_localizations_en.dart @@ -490,7 +490,7 @@ class AppLocalizationsEn extends AppLocalizations { String get messagesMessages => 'Messages'; @override - String get nolleguide => 'THE STUDENT GUIDE'; + String get nolleguide => 'The Student Guide'; @override String get nolleguideWeAtFsek => 'The F-guild'; @@ -933,7 +933,7 @@ class AppLocalizationsEn extends AppLocalizations { String get readProposition => 'Read motion from the board'; @override - String get emergencyContacts => 'Emergency contact numbers'; + String get emergencyContacts => 'Emergency Contact Numbers'; @override String get emergencyNumOne => '112'; diff --git a/lib/l10n/app_localizations_sv.dart b/lib/l10n/app_localizations_sv.dart index e05376a4..82828107 100644 --- a/lib/l10n/app_localizations_sv.dart +++ b/lib/l10n/app_localizations_sv.dart @@ -488,7 +488,7 @@ class AppLocalizationsSv extends AppLocalizations { String get messagesMessages => 'Meddelanden'; @override - String get nolleguide => 'NOLLEGUIDEN'; + String get nolleguide => 'Nolleguiden'; @override String get nolleguideWeAtFsek => 'F-sektionen'; diff --git a/lib/l10n/app_sv.arb b/lib/l10n/app_sv.arb index 66421269..f07981a8 100644 --- a/lib/l10n/app_sv.arb +++ b/lib/l10n/app_sv.arb @@ -170,7 +170,7 @@ "messagesMessages": "Meddelanden", - "nolleguide": "NOLLEGUIDEN", + "nolleguide": "Nolleguiden", "nolleguideWeAtFsek": "F-sektionen", "nolleguideEtiquette": "Allt du behöver veta", diff --git a/lib/main.dart b/lib/main.dart index 86a2fdc0..cdd47683 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -4,7 +4,6 @@ import 'package:fsek_mobile/app.dart'; import 'package:bloc/bloc.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:fsek_mobile/screens/home/nollningHome25.dart'; import 'package:fsek_mobile/screens/moose_game/moose_game.dart'; import 'package:fsek_mobile/screens/news/news.dart'; import 'package:fsek_mobile/screens/calendar/calendar.dart'; @@ -42,8 +41,9 @@ void main() async { final List navbarDestinations = [ Destination(0, Icons.feed_outlined, NewsPage()), Destination(1, Icons.calendar_today, Calendar()), - // Destination(2, Icons.home, HomePage()), - Destination(2, Icons.home, NollningHomePage()), + // During introduction, modify NollningHomePage() and comment the normal HomePage() + // Destination(2, Icons.home, NollningHomePage()), + Destination(2, Icons.home, HomePage()), Destination(3, CustomIcons.moose, MooseGamePage()), Destination(4, Icons.list, OtherContent()), ]; diff --git a/lib/screens/home/home.dart b/lib/screens/home/home.dart index cfa1505f..c8b71414 100644 --- a/lib/screens/home/home.dart +++ b/lib/screens/home/home.dart @@ -1,17 +1,24 @@ import 'package:flutter/material.dart'; import 'package:fsek_mobile/l10n/app_localizations.dart'; +import 'package:flutter/foundation.dart'; import 'package:fsek_mobile/screens/cafe/cafe.dart'; import 'package:fsek_mobile/screens/gallery/gallery.dart'; -import 'package:fsek_mobile/screens/nollning/map_page.dart'; -import 'package:fsek_mobile/screens/nollning/new_questscreen/quest_home.dart'; -import 'package:fsek_mobile/screens/nollning/nolleguide25/nolleguide_home.dart'; -import 'package:fsek_mobile/screens/nollning/schedule.dart'; -import 'package:fsek_mobile/screens/placeholder/placeholder.dart'; +import 'package:fsek_mobile/screens/guild_meeting/candidacy_poster.dart'; +import 'package:fsek_mobile/screens/guild_meeting/other_documents.dart'; +import 'package:fsek_mobile/screens/guild_meeting/about_guild_meeting.dart'; +import 'package:fsek_mobile/screens/guild_meeting/propositions.dart'; +import 'package:fsek_mobile/screens/guild_meeting/motions.dart'; +import 'package:fsek_mobile/screens/moose_game/moose_game.dart'; -import 'package:fsek_mobile/util/nollning/week_tracker.dart'; +import 'package:cached_network_image/cached_network_image.dart'; -import 'package:fsek_mobile/services/preload_asset.service.dart'; +import 'package:fsek_mobile/models/documents/election_document.dart'; +import 'package:fsek_mobile/screens/songbook/songbook.dart'; +import 'package:fsek_mobile/services/theme.service.dart'; + +import 'package:fsek_mobile/services/service_locator.dart'; +import 'package:fsek_mobile/services/document.service.dart'; class HomePage extends StatefulWidget { static const routeName = '/homepage'; @@ -20,281 +27,81 @@ class HomePage extends StatefulWidget { _HomePageState createState() => _HomePageState(); } +// During introduciton, please don't modify this file. +// Instead, create a new file in the home folder, for example nollningHome25.dart +// And change the destination in main.dart + class _HomePageState extends State { - String? background; + List? backgroundDocuments; + String? backgroundUrl; + bool? election; void initState() { - background = "assets/img/default_background.png"; - - // locator().getOthers("Bakgrund").then((value) => setState(() { - // // Value is null if getothers parameter doesnt exist, empty list if it exists but no documents in it. - // if (!listEquals(value, []) && value != null) { - // this.backgroundDocuments = value; - // // title cant be empty so it is always a string - // if (value.last.document_name!.toLowerCase().startsWith("ht") || value.last.document_name!.toLowerCase().startsWith("vt")) { - // // if the pictured background is named ht or vt means we are in ht or vt and should use that button layout - // this.election = true; - // } else { - // this.election = false; - // } - // this.backgroundUrl = value.last.url; - // } - // })); + locator().getOthers("Bakgrund").then((value) => setState(() { + // Value is null if getothers parameter doesnt exist, empty list if it exists but no documents in it. + if (!listEquals(value, []) && value != null) { + this.backgroundDocuments = value; + // title cant be empty so it is always a string + if (value.last.document_name!.toLowerCase().startsWith("ht") || value.last.document_name!.toLowerCase().startsWith("vt")) { + // if the pictured background is named ht or vt means we are in ht or vt and should use that button layout + this.election = true; + } else { + this.election = false; + } + this.backgroundUrl = value.last.url; + } + })); super.initState(); } @override Widget build(BuildContext context) { - // var t = AppLocalizations.of(context)!; - double circleSize = MediaQuery.of(context).size.height / 8; - - // double edgePadding = MediaQuery.of(context).size.width / 25; - // String defaultBackground = "assets/img/default_background.png"; - - String locale = Localizations.localeOf(context).toString(); - - // if it for some reason is something different dont break everything - if (locale != "sv" && locale != "en") { - locale = "sv"; - } - - int week = WeekTracker.determineWeek(); - // String backgroundPath = "assets/img/nollning-24/homescreen/background-v$week.png"; - // String nolleguidePath = "assets/img/nollning-24/homescreen/button-nolleguide.png"; - // String uppdragPath = "assets/img/nollning-24/homescreen/button-adventure-missions.png"; - // String schedulePath = "assets/img/nollning-24/homescreen/button-schedule.png"; - // String mapPath = "assets/img/nollning-24/homescreen/button-map.png"; - // String emergencyPath = "assets/img/nollning-24/homescreen/button-emergency.png"; - // String messagesPath = "assets/img/nollning-24/homescreen/button-messages.png"; - String backgroundPath = "assets/img/underConstruction.png"; - String nolleguidePath = "assets/img/underConstruction.png"; - String uppdragPath = "assets/img/underConstruction.png"; - String schedulePath = "assets/img/underConstruction.png"; - String mapPath = "assets/img/underConstruction.png"; - String emergencyPath = "assets/img/underConstruction.png"; - String messagesPath = "assets/img/underConstruction.png"; + var t = AppLocalizations.of(context)!; + double edgePadding = MediaQuery.of(context).size.width / 25; + String defaultBackground = "assets/img/default_background.png"; return Stack(children: [ - Image.asset( - backgroundPath, + // If we couldnt get a background image for whatever reason make it the default + backgroundUrl != null + ? CachedNetworkImage( + fit: BoxFit.cover, + alignment: Alignment.topCenter, + height: MediaQuery.of(context).size.height, + width: MediaQuery.of(context).size.width, + placeholder: (context, url) => Center(child: CircularProgressIndicator(color: locator().theme.primaryColor)), + imageUrl: backgroundUrl!, + ) + : Image.asset( + defaultBackground, height: MediaQuery.of(context).size.height, width: MediaQuery.of(context).size.width, fit: BoxFit.cover, - alignment: Alignment.center, + alignment: Alignment.topCenter, ), Scaffold( backgroundColor: Colors.transparent, - body: Center( - child: Column(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - //testtext - InkWell( - customBorder: RoundedRectangleBorder(borderRadius: BorderRadius.circular(circleSize * 1.6)), - onTap: () { - Navigator.push(context, MaterialPageRoute(builder: (context) => MapView())); - }, - child: Padding( - padding: EdgeInsets.only(top: MediaQuery.of(context).size.height / 25), - child: Image.asset(mapPath, height: circleSize * 1.5), - ), - ), - Column( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Row( - crossAxisAlignment: CrossAxisAlignment.end, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - InkWell( - customBorder: RoundedRectangleBorder(borderRadius: BorderRadius.circular(circleSize)), - onTap: () { - Navigator.push(context, MaterialPageRoute(builder: (context) => QuestHomeScreen())); - }, - child: Padding( - padding: EdgeInsets.zero, - child: Image.asset(uppdragPath, height: circleSize), - ), - ), - Column(children: [ - InkWell( - customBorder: RoundedRectangleBorder(borderRadius: BorderRadius.circular(circleSize)), - onTap: () async { - showDialog( - context: context, - barrierDismissible: false, - builder: (BuildContext context) { - return Center( - child: CircularProgressIndicator(), - ); - }, - ); - await preloadAssets(context, "nolleGuideScreenPaths"); - Navigator.pop(context); - Navigator.push(context, MaterialPageRoute(builder: (context) => NolleGuideHomePage())); - }, - child: Padding( - padding: EdgeInsets.zero, - child: Image.asset(nolleguidePath, height: circleSize), - ), - ), - SizedBox(height: MediaQuery.of(context).size.height / 28) // Box to make middle button float higher than right and left - ]), - InkWell( - customBorder: RoundedRectangleBorder(borderRadius: BorderRadius.circular(circleSize)), - onTap: () { - Navigator.pushNamed(context, "/messages"); - }, - child: Padding( - padding: EdgeInsets.zero, - child: Image.asset(messagesPath, height: circleSize), - ), - ), - ], - ), - Row( - crossAxisAlignment: CrossAxisAlignment.start, + body: Padding( + padding: EdgeInsets.fromLTRB( + edgePadding, MediaQuery.of(context).size.height / 2.69420 /* lemao */, edgePadding, 0), + child: Center( + child: Column( mainAxisAlignment: MainAxisAlignment.center, - children: [ - Padding(padding: EdgeInsets.only(left: 10, right: 10)), - InkWell( - customBorder: CircleBorder(), - onTap: () async { - showDialog( - context: context, - barrierDismissible: false, - builder: (BuildContext context) { - return Center( - child: CircularProgressIndicator(), - ); - }, - ); - await preloadAssets(context, "schedulePaths"); - Navigator.pop(context); - Navigator.push(context, MaterialPageRoute(builder: (context) => ScheduleScreenPage())); - }, - child: Column( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Image.asset( - schedulePath, - height: circleSize / 1.5, - ), - ], - ), - ), - Padding(padding: EdgeInsets.only(left: 5, right: 5)), - InkWell( - customBorder: CircleBorder(), - onTap: () { - Navigator.pushNamed(context, "/emergency_contacts"); - }, - child: Column( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Image.asset( - emergencyPath, - height: circleSize / 1.5, - ), - ], - ), - ), - Padding(padding: EdgeInsets.only(left: 10, right: 10)), - ], - ), - SizedBox(height: MediaQuery.of(context).size.height / 60), - ], - ), - ]), + // check thar election bool isnt null and if it is true make the home design according to electionbuttons. + // if null or false just use standard buttons, null means that there wasnt any picture on website + children: this.election != null + ? (this.election! ? _getElectionButtons() : _getStandardButtons()) + : _getStandardButtons(), + ) + ) ), ), ]); } - // Old code maybe needed on a rainy day - // class _HomePageState extends State { - // List? backgroundDocuments; - // String? backgroundUrl; - // bool? election; - - // void initState() { - // locator().getOthers("Bakgrund").then((value) => setState(() { - // // Value is null if getothers parameter doesnt exist, empty list if it exists but no documents in it. - // if (!listEquals(value, []) && value != null) { - // this.backgroundDocuments = value; - // // title cant be empty so it is always a string - // if (value.last.document_name!.toLowerCase().startsWith("ht") || value.last.document_name!.toLowerCase().startsWith("vt")) { - // // if the pictured background is named ht or vt means we are in ht or vt and should use that button layout - // this.election = true; - // } else { - // this.election = false; - // } - // this.backgroundUrl = value.last.url; - // } - // })); - // super.initState(); - // } - - // @override - // Widget build(BuildContext context) { - // var t = AppLocalizations.of(context)!; - // double edgePadding = MediaQuery.of(context).size.width / 25; - // String defaultBackground = "assets/img/default_background.png"; - - // return Stack(children: [ - // // If we couldnt get a background image for whatever reason make it the default - // backgroundUrl != null - // ? CachedNetworkImage( - // fit: BoxFit.cover, - // alignment: Alignment.topCenter, - // height: MediaQuery.of(context).size.height, - // width: MediaQuery.of(context).size.width, - // placeholder: (context, url) => Center(child: CircularProgressIndicator(color: locator().theme.primaryColor)), - // imageUrl: backgroundUrl!, - // ) - // : Image.asset( - // defaultBackground, - // height: MediaQuery.of(context).size.height, - // width: MediaQuery.of(context).size.width, - // fit: BoxFit.cover, - // alignment: Alignment.topCenter, - // ), - // Scaffold( - // backgroundColor: Colors.transparent, - // body: Padding( - // padding: EdgeInsets.fromLTRB( - // edgePadding, MediaQuery.of(context).size.height / 2.69420 /* lemao */, edgePadding, 0), - // child: Center( - // child: Column( - // mainAxisAlignment: MainAxisAlignment.center, - // // check thar election bool isnt null and if it is true make the home design according to electionbuttons. - // // if null or false just use standard buttons, null means that there wasnt any picture on website - // children: this.election != null - // ? (this.election! ? _getElectionButtons() : _getStandardButtons()) - // : _getStandardButtons(), - // ) - // ) - // ), - // ), - // ]); - // } - - - // Currently unused, used in nollning 2023 - // Widget _pageFlipButton(Widget destination, String assetPath, int week, double circleSize, double inkwellCurvature, double padding) { - // return InkWell( - // customBorder: RoundedRectangleBorder(borderRadius: BorderRadius.circular(inkwellCurvature)), - // onTap: () => Navigator.push(context, TurnPageRoute(builder: (context) => destination, overleafColor: WeekTracker.weekColors[week])), - // child: Padding( - // padding: EdgeInsets.only(left: padding, right: padding), - // child: Image.asset(assetPath, height: circleSize), - // ), - // ); - // } - Widget button(String text, Widget destination) { return TextButton( onPressed: () { - Navigator.push( - context, MaterialPageRoute(builder: (context) => destination)); + Navigator.push(context, MaterialPageRoute(builder: (context) => destination)); }, child: Text( text, @@ -306,7 +113,7 @@ class _HomePageState extends State { shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(12), ), - shadowColor: Theme.of(context).colorScheme.onSurface, + shadowColor: Theme.of(context).colorScheme.onBackground, elevation: 10, minimumSize: Size(MediaQuery.of(context).size.width / 2.4, 80)), ); @@ -320,8 +127,7 @@ class _HomePageState extends State { Row( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ - // button(t.songbookSongbook, SongbookPage()), - button("Map test", MapView()), + button(t.songbookSongbook, SongbookPage()), button(t.otherGallery, GalleryPage()), ], ), @@ -330,43 +136,42 @@ class _HomePageState extends State { mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ button(t.otherCafe, CafePage()), - button(t.game, PlaceholderPage(title: t.game, disc: t.gameDescription)), + button(t.game, MooseGamePage()), ], ), Spacer(flex: 4) ]; } -// List _getElectionButtons() { -// var t = AppLocalizations.of(context)!; + List _getElectionButtons() { + var t = AppLocalizations.of(context)!; -// return [ -// Spacer(flex: 6), -// Row( -// mainAxisAlignment: MainAxisAlignment.spaceAround, -// children: [ -// button(t.guildMeetingButtonAbout, AboutGuildMeetingPage()), -// button(t.guildMeetingButtonPoster, CandidacyPosterPage()), -// ], -// ), -// Spacer(), -// Row( -// mainAxisAlignment: MainAxisAlignment.spaceAround, -// children: [ -// button(t.guildMeetingButtonMotions, MotionsPage()), -// button(t.guildMeetingButtonProposition, PropositionsPage()), -// ], -// ), -// Spacer(), -// Row( -// mainAxisAlignment: MainAxisAlignment.start, -// children: [ -// SizedBox(width: MediaQuery.of(context).size.width / 48), // space so that the fifth button matches up with the grid above -// button(t.guildMeetingButtonOther, OtherDocumentsPage()), -// ], -// ), -// Spacer(flex: 2), -// ]; -// } -// } -} + return [ + Spacer(flex: 6), + Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + button(t.guildMeetingButtonAbout, AboutGuildMeetingPage()), + button(t.guildMeetingButtonPoster, CandidacyPosterPage()), + ], + ), + Spacer(), + Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + button(t.guildMeetingButtonMotions, MotionsPage()), + button(t.guildMeetingButtonProposition, PropositionsPage()), + ], + ), + Spacer(), + Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + SizedBox(width: MediaQuery.of(context).size.width / 48), // space so that the fifth button matches up with the grid above + button(t.guildMeetingButtonOther, OtherDocumentsPage()), + ], + ), + Spacer(flex: 2), + ]; + } +} \ No newline at end of file diff --git a/lib/screens/home/nollningHome25.dart b/lib/screens/home/nollningHome25.dart deleted file mode 100644 index f3272d09..00000000 --- a/lib/screens/home/nollningHome25.dart +++ /dev/null @@ -1,146 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:fsek_mobile/l10n/app_localizations.dart'; - -import 'package:fsek_mobile/screens/cafe/cafe.dart'; -import 'package:fsek_mobile/screens/gallery/gallery.dart'; -import 'package:fsek_mobile/screens/nollning/emergency_contacts.dart'; -import 'package:fsek_mobile/screens/nollning/map_page.dart'; -import 'package:fsek_mobile/screens/nollning/mission.dart'; -import 'package:fsek_mobile/screens/nollning/new_questscreen/quest_home.dart'; -import 'package:fsek_mobile/screens/nollning/nolleguide25/nolleguide_home.dart'; -import 'package:fsek_mobile/screens/nollning/schedule.dart'; -import 'package:fsek_mobile/screens/placeholder/placeholder.dart'; -import 'package:fsek_mobile/screens/songbook/songbook.dart'; - -import 'package:fsek_mobile/util/nollning/week_tracker.dart'; - -import 'package:fsek_mobile/services/preload_asset.service.dart'; - -class NollningHomePage extends StatefulWidget { - static const routeName = '/homepage'; - - @override - _NollningHomePageState createState() => _NollningHomePageState(); -} - -class _NollningHomePageState extends State { - @override - void initState() { - super.initState(); - } - - Widget build(BuildContext context) { - var t = AppLocalizations.of(context)!; - - double screenWidth = MediaQuery.of(context).size.width; - double screenHeight = MediaQuery.of(context).size.height; - String background = "assets/data/nollning_25/homescreen/bakgrund.png"; - String sos = "assets/data/nollning_25/homescreen/sos.png"; - String karta = "assets/data/nollning_25/homescreen/karta.png"; - String nolleguiden = "assets/data/nollning_25/homescreen/nolleguiden.png"; - String sangbok = "assets/data/nollning_25/homescreen/sangbok.png"; - String schema = "assets/data/nollning_25/homescreen/schema.png"; - String uppdrag = "assets/data/nollning_25/homescreen/uppdrag.png"; - - return Container( - child: Stack(children: [ - Positioned.fill( - child: Image.asset( - background, - fit: BoxFit.fill, - )), - Align( - alignment: Alignment.bottomCenter, - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - crossAxisAlignment: CrossAxisAlignment.end, - children: [ - Padding( - padding: EdgeInsets.only(bottom: screenHeight / 12), - child: Container( - width: screenWidth / 6, - child: InkWell( - onTap: () => (Navigator.push( - context, - MaterialPageRoute( - builder: (context) => EmergencyContactsPage()))), - child: Image.asset(sos), - )), - ), - Padding( - padding: EdgeInsets.only(bottom: 10), - child: Column( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Container( - width: screenWidth / 4, - child: InkWell( - onTap: () => (Navigator.push( - context, - MaterialPageRoute( - builder: (context) => QuestHomeScreen()))), - child: Image.asset(uppdrag), - )), - SizedBox( - height: 10, - ), - Container( - width: screenWidth / 5, - child: InkWell( - onTap: () => (Navigator.push( - context, - MaterialPageRoute( - builder: (context) => MapView()))), - child: Image.asset(karta), - )), - ], - ), - ), - Padding( - padding: EdgeInsets.only(bottom: 10), - child: Column( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Container( - width: screenWidth / 4, - child: InkWell( - onTap: () => (Navigator.push( - context, - MaterialPageRoute( - builder: (context) => NolleGuideHomePage()))), - child: Image.asset(nolleguiden), - )), - SizedBox( - height: 10, - ), - Container( - width: screenWidth / 5, - child: InkWell( - onTap: () => (Navigator.push( - context, - MaterialPageRoute( - builder: (context) => ScheduleScreenPage()))), - child: Image.asset(schema), - )), - ], - ), - ), - Padding( - padding: EdgeInsets.only(bottom: screenHeight / 12), - child: Container( - width: screenWidth / 6, - child: InkWell( - onTap: () => (Navigator.push( - context, - MaterialPageRoute( - builder: (context) => SongbookPage()))), - child: Image.asset(sangbok), - )), - ), - ], - ), - ) - ]), - ); - } -} diff --git a/lib/screens/other/fap.dart b/lib/screens/other/fap.dart index b3a8a1b8..88b5a5a0 100644 --- a/lib/screens/other/fap.dart +++ b/lib/screens/other/fap.dart @@ -37,6 +37,7 @@ class _FapPageState extends State { "Moa Söderström, ${t.fapSpider} 2024", "Olle Settergren, ${t.fapSpider} 2024", "Manfred Malmros, ${t.fapSpider} 2024", + "Markus Pettersson, ${t.fapSpider} 2025" ]; List inspiration = ["https://www.youtube.com/watch?v=k238XpMMn38"]; TapGestureRecognizer fredmansTap = TapGestureRecognizer() diff --git a/lib/screens/other/other.dart b/lib/screens/other/other.dart index 434e19e8..7a820271 100644 --- a/lib/screens/other/other.dart +++ b/lib/screens/other/other.dart @@ -3,6 +3,8 @@ import 'package:fsek_mobile/screens/cafe/cafe.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:fsek_mobile/screens/contact/contact.dart'; import 'package:fsek_mobile/screens/gallery/gallery.dart'; +import 'package:fsek_mobile/screens/nollning/emergency_contacts.dart'; +import 'package:fsek_mobile/screens/nollning/nolleguide25/nolleguide_home.dart'; import 'package:fsek_mobile/screens/other/aboutGuild.dart'; import 'package:fsek_mobile/screens/settings/language_settings.dart'; import 'package:fsek_mobile/screens/settings/settings.dart'; @@ -31,8 +33,10 @@ class OtherContent extends StatelessWidget { categories = [ t.otherSongbook, t.otherGallery, - t.otherCafe - ]; // TODO: add this back when moosegame works: "Moose Game" + t.otherCafe, + t.nolleguide, + t.emergencyContacts + ]; about = [t.otherAboutGuild, t.otherFap]; settings = [t.otherAccount, t.otherLanguage, t.otherTheme]; support = [t.otherContact, t.otherAnon]; @@ -42,7 +46,10 @@ class OtherContent extends StatelessWidget { "Songbook": SongbookPage(), "Photo Gallery": GalleryPage(), "Hilbert Café": CafePage(), - // "Moose Game": MooseGamePage(), + "Nolleguiden": NolleGuideHomePage(), + "The Student Guide": NolleGuideHomePage(), + "Nödkontaktnummer": EmergencyContactsPage(), + "Emergency Contact Numbers": EmergencyContactsPage(), "The F guild": AboutGuildPage(), "The F-app": FapPage(), "Account": SettingsPage(),