From 3dd13ee9209112a84399bfd0dd68fe67634abc2e Mon Sep 17 00:00:00 2001 From: primozratej Date: Mon, 15 Jul 2024 21:32:38 +0200 Subject: [PATCH] Set orientation for each screen on every redirect. --- lib/flavored/util/router.f.dart | 12 ++++++++++-- lib/main.dart | 5 +---- lib/util/router.dart | 26 ++++++++++++++++++++++---- 3 files changed, 33 insertions(+), 10 deletions(-) diff --git a/lib/flavored/util/router.f.dart b/lib/flavored/util/router.f.dart index ca1eeb1..61b1927 100644 --- a/lib/flavored/util/router.f.dart +++ b/lib/flavored/util/router.f.dart @@ -1,4 +1,5 @@ import 'package:flutter/cupertino.dart'; +import 'package:flutter/services.dart'; import 'package:humhub/flavored/web_view.f.dart'; final GlobalKey navigatorKeyF = GlobalKey(); @@ -9,7 +10,14 @@ class RouterF { static String? initRoute = WebViewF.path; static dynamic initParams; - static var routes = { - WebViewF.path: (context) => const WebViewF(), + static Map routes = { + WebViewF.path: (context) { + SystemChrome.setPreferredOrientations([ + DeviceOrientation.portraitUp, + DeviceOrientation.landscapeLeft, + DeviceOrientation.landscapeRight, + ]); + return const WebViewF(); + }, }; } diff --git a/lib/main.dart b/lib/main.dart index 2ad0a1c..60a1ca4 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,5 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:humhub/models/hum_hub.dart'; import 'package:humhub/util/log.dart'; @@ -15,7 +14,5 @@ main() async { await SecureStorageService.clearSecureStorageOnReinstall(); PackageInfo packageInfo = await PackageInfo.fromPlatform(); final app = await HumHub.app(packageInfo.packageName); - SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]).then((_) async { - runApp(ProviderScope(child: app)); - }); + runApp(ProviderScope(child: app)); } diff --git a/lib/util/router.dart b/lib/util/router.dart index 0be820c..ea73300 100644 --- a/lib/util/router.dart +++ b/lib/util/router.dart @@ -1,6 +1,7 @@ import 'dart:io'; import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:flutter/cupertino.dart'; +import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:humhub/models/hum_hub.dart'; import 'package:humhub/models/manifest.dart'; @@ -32,10 +33,27 @@ class MyRouter { static String? initRoute; static dynamic initParams; - static var routes = { - Opener.path: (context) => const Opener(), - WebView.path: (context) => const WebView(), - '/help': (context) => Platform.isAndroid ? const HelpAndroid() : const HelpIos(), + static Map routes = { + Opener.path: (context) { + SystemChrome.setPreferredOrientations([ + DeviceOrientation.portraitUp, + ]); + return const Opener(); + }, + WebView.path: (context) { + SystemChrome.setPreferredOrientations([ + DeviceOrientation.portraitUp, + DeviceOrientation.landscapeLeft, + DeviceOrientation.landscapeRight, + ]); + return const WebView(); + }, + '/help': (context) { + SystemChrome.setPreferredOrientations([ + DeviceOrientation.portraitUp, + ]); + return Platform.isAndroid ? const HelpAndroid() : const HelpIos(); + }, }; static Future getInitialRoute(WidgetRef ref) async {