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

@@ -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);
});
},