Block empty fullscreen timetable

This commit is contained in:
Tihanyi Marcell 2023-06-12 21:54:13 +02:00
parent c474512088
commit ded7c51f44
3 changed files with 26 additions and 6 deletions

View File

@ -199,7 +199,7 @@ class _TimetablePageState extends State<TimetablePage>
snap: false,
surfaceTintColor: Theme.of(context).scaffoldBackgroundColor,
actions: [
PremiumFSTimetableButton(controller: _controller),
PremiumFSTimetableButton(controller: _controller, tabcontroller: _tabController),
// Profile Icon
Padding(

View File

@ -8,18 +8,21 @@ extension Localization on String {
"empty": "No school this week!",
"week": "Week",
"error": "Failed to fetch timetable!",
"empty_timetable": "Timetable is empty!",
},
"hu_hu": {
"timetable": "Órarend",
"empty": "Ezen a héten nincs iskola.",
"week": "Hét",
"error": "Nem sikerült lekérni az órarendet!",
"empty_timetable": "Az órarend üres!",
},
"de_de": {
"timetable": "Zeitplan",
"empty": "Keine Schule diese Woche.",
"week": "Woche",
"error": "Der Fahrplan konnte nicht abgerufen werden!",
"empty_timetable": "Der Zeitplan ist blank!",
},
};

View File

@ -9,11 +9,15 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_feather_icons/flutter_feather_icons.dart';
import 'package:provider/provider.dart';
import 'package:filcnaplo_mobile_ui/pages/timetable/timetable_page.i18n.dart';
class PremiumFSTimetableButton extends StatelessWidget {
const PremiumFSTimetableButton({Key? key, required this.controller}) : super(key: key);
const PremiumFSTimetableButton(
{Key? key, required this.controller, required this.tabcontroller})
: super(key: key);
final TimetableController controller;
final TabController tabcontroller;
@override
Widget build(BuildContext context) {
@ -22,19 +26,32 @@ class PremiumFSTimetableButton extends StatelessWidget {
child: IconButton(
splashRadius: 24.0,
onPressed: () {
if (!Provider.of<PremiumProvider>(context, listen: false).hasScope(PremiumScopes.fsTimetable)) {
PremiumLockedFeatureUpsell.show(context: context, feature: PremiumFeature.weeklytimetable);
if (!Provider.of<PremiumProvider>(context, listen: false)
.hasScope(PremiumScopes.fsTimetable)) {
PremiumLockedFeatureUpsell.show(
context: context, feature: PremiumFeature.weeklytimetable);
return;
}
// If timetable empty, show empty
if (tabcontroller.length == 0) {
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text("empty_timetable".i18n),
duration: const Duration(seconds: 2),
));
return;
}
Navigator.of(context, rootNavigator: true)
.push(PageRouteBuilder(
pageBuilder: (context, animation, secondaryAnimation) => PremiumFSTimetable(
pageBuilder: (context, animation, secondaryAnimation) =>
PremiumFSTimetable(
controller: controller,
),
))
.then((_) {
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
SystemChrome.setPreferredOrientations(
[DeviceOrientation.portraitUp]);
setSystemChrome(context);
});
},