From 625bc280f091281539d95dd1da0bfe26b0510e43 Mon Sep 17 00:00:00 2001 From: lollipopkit Date: Wed, 21 Jun 2023 16:57:06 +0800 Subject: [PATCH] opt.: auto switch status bar --- lib/core/utils/ui.dart | 14 ++++++++------ lib/view/page/full_screen.dart | 2 +- lib/view/page/home.dart | 1 + lib/view/widget/card_dialog.dart | 26 -------------------------- 4 files changed, 10 insertions(+), 33 deletions(-) delete mode 100644 lib/view/widget/card_dialog.dart diff --git a/lib/core/utils/ui.dart b/lib/core/utils/ui.dart index 864a7f6d..8a888e01 100644 --- a/lib/core/utils/ui.dart +++ b/lib/core/utils/ui.dart @@ -11,7 +11,6 @@ import '../../data/model/server/snippet.dart'; import '../../data/provider/snippet.dart'; import '../../locator.dart'; import '../../view/page/snippet/edit.dart'; -import '../../view/widget/card_dialog.dart'; import '../../view/widget/picker.dart'; import '../persistant_store.dart'; import '../route.dart'; @@ -54,18 +53,16 @@ Future showRoundDialog({ Widget? child, List? actions, Widget? title, - EdgeInsets? padding, bool barrierDismiss = true, }) async { return await showDialog( context: context, barrierDismissible: barrierDismiss, builder: (_) { - return CardDialog( + return AlertDialog( title: title, content: child, actions: actions, - padding: padding, ); }, ); @@ -168,7 +165,12 @@ void showSnippetDialog( ); } -void hideStatusBar() { - SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky, +void switchStatusBar({required bool hide}) { + if (hide) { + SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky, overlays: []); + } else { + SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge, + overlays: [SystemUiOverlay.top, SystemUiOverlay.bottom]); + } } diff --git a/lib/view/page/full_screen.dart b/lib/view/page/full_screen.dart index 2df10093..3cc75025 100644 --- a/lib/view/page/full_screen.dart +++ b/lib/view/page/full_screen.dart @@ -42,7 +42,7 @@ class _FullScreenPageState extends State with AfterLayoutMixin { @override void initState() { super.initState(); - hideStatusBar(); + switchStatusBar(hide: true); _timer = Timer.periodic(const Duration(minutes: 1), (_) { if (mounted) { setState(() {}); diff --git a/lib/view/page/home.dart b/lib/view/page/home.dart index e89426e0..7c6c19aa 100644 --- a/lib/view/page/home.dart +++ b/lib/view/page/home.dart @@ -50,6 +50,7 @@ class _HomePageState extends State @override void initState() { super.initState(); + switchStatusBar(hide: false); WidgetsBinding.instance.addObserver(this); _selectIndex.value = _setting.launchPage.fetch()!; // avoid index out of range diff --git a/lib/view/widget/card_dialog.dart b/lib/view/widget/card_dialog.dart deleted file mode 100644 index 35255c6a..00000000 --- a/lib/view/widget/card_dialog.dart +++ /dev/null @@ -1,26 +0,0 @@ -import 'package:flutter/material.dart'; - -class CardDialog extends StatelessWidget { - const CardDialog( - {Key? key, this.title, this.content, this.actions, this.padding}) - : super(key: key); - - final Widget? content; - final List? actions; - final Widget? title; - final EdgeInsets? padding; - - @override - Widget build(BuildContext context) { - return AlertDialog( - contentPadding: padding, - actionsPadding: const EdgeInsets.all(7), - shape: const RoundedRectangleBorder( - borderRadius: BorderRadius.all(Radius.circular(20.0)), - ), - title: title, - content: content, - actions: actions, - ); - } -}