Block empty fullscreen timetable
This commit is contained in:
parent
c474512088
commit
ded7c51f44
@ -199,7 +199,7 @@ class _TimetablePageState extends State<TimetablePage>
|
|||||||
snap: false,
|
snap: false,
|
||||||
surfaceTintColor: Theme.of(context).scaffoldBackgroundColor,
|
surfaceTintColor: Theme.of(context).scaffoldBackgroundColor,
|
||||||
actions: [
|
actions: [
|
||||||
PremiumFSTimetableButton(controller: _controller),
|
PremiumFSTimetableButton(controller: _controller, tabcontroller: _tabController),
|
||||||
|
|
||||||
// Profile Icon
|
// Profile Icon
|
||||||
Padding(
|
Padding(
|
||||||
|
@ -8,18 +8,21 @@ extension Localization on String {
|
|||||||
"empty": "No school this week!",
|
"empty": "No school this week!",
|
||||||
"week": "Week",
|
"week": "Week",
|
||||||
"error": "Failed to fetch timetable!",
|
"error": "Failed to fetch timetable!",
|
||||||
|
"empty_timetable": "Timetable is empty!",
|
||||||
},
|
},
|
||||||
"hu_hu": {
|
"hu_hu": {
|
||||||
"timetable": "Órarend",
|
"timetable": "Órarend",
|
||||||
"empty": "Ezen a héten nincs iskola.",
|
"empty": "Ezen a héten nincs iskola.",
|
||||||
"week": "Hét",
|
"week": "Hét",
|
||||||
"error": "Nem sikerült lekérni az órarendet!",
|
"error": "Nem sikerült lekérni az órarendet!",
|
||||||
|
"empty_timetable": "Az órarend üres!",
|
||||||
},
|
},
|
||||||
"de_de": {
|
"de_de": {
|
||||||
"timetable": "Zeitplan",
|
"timetable": "Zeitplan",
|
||||||
"empty": "Keine Schule diese Woche.",
|
"empty": "Keine Schule diese Woche.",
|
||||||
"week": "Woche",
|
"week": "Woche",
|
||||||
"error": "Der Fahrplan konnte nicht abgerufen werden!",
|
"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/services.dart';
|
||||||
import 'package:flutter_feather_icons/flutter_feather_icons.dart';
|
import 'package:flutter_feather_icons/flutter_feather_icons.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
import 'package:filcnaplo_mobile_ui/pages/timetable/timetable_page.i18n.dart';
|
||||||
|
|
||||||
class PremiumFSTimetableButton extends StatelessWidget {
|
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 TimetableController controller;
|
||||||
|
final TabController tabcontroller;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
@ -22,19 +26,32 @@ class PremiumFSTimetableButton extends StatelessWidget {
|
|||||||
child: IconButton(
|
child: IconButton(
|
||||||
splashRadius: 24.0,
|
splashRadius: 24.0,
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
if (!Provider.of<PremiumProvider>(context, listen: false).hasScope(PremiumScopes.fsTimetable)) {
|
if (!Provider.of<PremiumProvider>(context, listen: false)
|
||||||
PremiumLockedFeatureUpsell.show(context: context, feature: PremiumFeature.weeklytimetable);
|
.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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Navigator.of(context, rootNavigator: true)
|
Navigator.of(context, rootNavigator: true)
|
||||||
.push(PageRouteBuilder(
|
.push(PageRouteBuilder(
|
||||||
pageBuilder: (context, animation, secondaryAnimation) => PremiumFSTimetable(
|
pageBuilder: (context, animation, secondaryAnimation) =>
|
||||||
|
PremiumFSTimetable(
|
||||||
controller: controller,
|
controller: controller,
|
||||||
),
|
),
|
||||||
))
|
))
|
||||||
.then((_) {
|
.then((_) {
|
||||||
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
|
SystemChrome.setPreferredOrientations(
|
||||||
|
[DeviceOrientation.portraitUp]);
|
||||||
setSystemChrome(context);
|
setSystemChrome(context);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user