diff --git a/android/app/src/main/java/com/tokilabs/mattermost/MainActivity.kt b/android/app/src/main/java/com/tokilabs/mattermost/MainActivity.kt index 2b59531..4270311 100644 --- a/android/app/src/main/java/com/tokilabs/mattermost/MainActivity.kt +++ b/android/app/src/main/java/com/tokilabs/mattermost/MainActivity.kt @@ -1,6 +1,7 @@ package com.tokilabs.mattermost import android.os.Bundle +import androidx.core.view.WindowCompat import com.tokilabs.mattermost.helpers.DatabaseHelper import com.tokilabs.mattermost.helpers.Network import io.flutter.embedding.android.FlutterActivity @@ -100,6 +101,8 @@ class MainActivity : FlutterActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + WindowCompat.setDecorFitsSystemWindows(window, false) + // 알림 탭으로 앱 진입 시 Intent 데이터를 Flutter로 전달 intent?.extras?.let { extras -> val data = mutableMapOf() diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml index 06952be..1922e52 100644 --- a/android/app/src/main/res/values-night/styles.xml +++ b/android/app/src/main/res/values-night/styles.xml @@ -5,6 +5,8 @@ @drawable/launch_background + @android:color/transparent + @android:color/transparent diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml index cb1ef88..7252bfb 100644 --- a/android/app/src/main/res/values/styles.xml +++ b/android/app/src/main/res/values/styles.xml @@ -5,6 +5,8 @@ @drawable/launch_background + @android:color/transparent + @android:color/transparent diff --git a/lib/main.dart b/lib/main.dart index 90c7528..283acbb 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,6 +1,7 @@ import 'dart:async'; import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_messaging/firebase_messaging.dart'; +import 'package:flutter/services.dart'; import 'package:flutter/material.dart'; import 'services/mattermost_auth_service.dart'; import 'services/push_notification_background.dart'; @@ -9,9 +10,20 @@ import 'services/push_notification_service.dart'; final _navigatorKey = GlobalKey(); final _pushService = PushNotificationService(); +Future _applyFullscreenMode() async { + await SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky); + SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle( + statusBarColor: Colors.transparent, + systemNavigationBarColor: Colors.transparent, + systemNavigationBarDividerColor: Colors.transparent, + )); +} + void main() async { WidgetsFlutterBinding.ensureInitialized(); + await _applyFullscreenMode(); + await Firebase.initializeApp(); FirebaseMessaging.onBackgroundMessage(firebaseMessagingBackgroundHandler); @@ -68,6 +80,9 @@ class _MyHomePageState extends State { @override void initState() { super.initState(); + WidgetsBinding.instance.addPostFrameCallback((_) { + _applyFullscreenMode(); + }); _notifSub = _pushService.onNotification.listen((data) { if (data['type'] != 'message') return; final message = data['message'] as String? ?? ''; @@ -97,10 +112,6 @@ class _MyHomePageState extends State { @override Widget build(BuildContext context) { return Scaffold( - appBar: AppBar( - backgroundColor: Theme.of(context).colorScheme.inversePrimary, - title: Text(widget.title), - ), body: const Center( child: Text('NomadCode'), ),