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:
cogwheel0
2025-10-20 23:56:40 +05:30
parent e05a560966
commit a0a0d43116
2 changed files with 11 additions and 10 deletions

View File

@@ -10,10 +10,15 @@ class MainActivity : FlutterActivity() {
private lateinit var backgroundStreamingHandler: BackgroundStreamingHandler
override fun onCreate(savedInstanceState: Bundle?) {
// Ensure content draws behind system bars (backwards compatible helper)
WindowCompat.setDecorFitsSystemWindows(window, false)
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) {

View File

@@ -1,7 +1,6 @@
import 'dart:async';
import 'dart:developer' as developer;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter/scheduler.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'core/widgets/error_boundary.dart';
@@ -56,12 +55,9 @@ void main() {
_startupTimeline!.start('app_startup');
_startupTimeline!.instant('bindings_initialized');
// Defer edge-to-edge mode to post-frame to avoid impacting first paint
WidgetsBinding.instance.addPostFrameCallback((_) {
// ignore: discarded_futures
SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge);
_startupTimeline?.instant('edge_to_edge_enabled');
});
// Edge-to-edge is now handled natively in MainActivity.kt for Android 15+
// No need for SystemUiMode.edgeToEdge which is deprecated
_startupTimeline?.instant('edge_to_edge_configured');
const secureStorage = FlutterSecureStorage(
aOptions: AndroidOptions(