refactor: Update MainActivity for edge-to-edge display support
- Implemented modern edge-to-edge display handling for Android 15+ in MainActivity.kt. - Removed deprecated SystemUiMode.edgeToEdge configuration from main.dart, as edge-to-edge is now managed natively. - Ensured backward compatibility by maintaining the previous edge-to-edge display settings for lower Android versions.
This commit is contained in:
@@ -10,10 +10,15 @@ class MainActivity : FlutterActivity() {
|
|||||||
private lateinit var backgroundStreamingHandler: BackgroundStreamingHandler
|
private lateinit var backgroundStreamingHandler: BackgroundStreamingHandler
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
// Ensure content draws behind system bars (backwards compatible helper)
|
|
||||||
WindowCompat.setDecorFitsSystemWindows(window, false)
|
|
||||||
|
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
|
// Modern edge-to-edge implementation for Android 15+
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.VANILLA_ICE_CREAM) {
|
||||||
|
window.decorView.setOnApplyWindowInsetsListener(null)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Enable edge-to-edge display (backwards compatible)
|
||||||
|
WindowCompat.setDecorFitsSystemWindows(window, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
|
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'dart:developer' as developer;
|
import 'dart:developer' as developer;
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
|
||||||
import 'package:flutter/scheduler.dart';
|
import 'package:flutter/scheduler.dart';
|
||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||||
import 'core/widgets/error_boundary.dart';
|
import 'core/widgets/error_boundary.dart';
|
||||||
@@ -56,12 +55,9 @@ void main() {
|
|||||||
_startupTimeline!.start('app_startup');
|
_startupTimeline!.start('app_startup');
|
||||||
_startupTimeline!.instant('bindings_initialized');
|
_startupTimeline!.instant('bindings_initialized');
|
||||||
|
|
||||||
// Defer edge-to-edge mode to post-frame to avoid impacting first paint
|
// Edge-to-edge is now handled natively in MainActivity.kt for Android 15+
|
||||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
// No need for SystemUiMode.edgeToEdge which is deprecated
|
||||||
// ignore: discarded_futures
|
_startupTimeline?.instant('edge_to_edge_configured');
|
||||||
SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge);
|
|
||||||
_startupTimeline?.instant('edge_to_edge_enabled');
|
|
||||||
});
|
|
||||||
|
|
||||||
const secureStorage = FlutterSecureStorage(
|
const secureStorage = FlutterSecureStorage(
|
||||||
aOptions: AndroidOptions(
|
aOptions: AndroidOptions(
|
||||||
|
|||||||
Reference in New Issue
Block a user