forked from firka/student-legacy
Block empty fullscreen timetable
This commit is contained in:
parent
c474512088
commit
ded7c51f44
@ -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(
|
||||
|
@ -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!",
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -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);
|
||||
});
|
||||
},
|
||||
|
Loading…
x
Reference in New Issue
Block a user