reworked developer tools with diagnostics, storage viewers and release-capable debug overlays
This commit is contained in:
+36
-15
@@ -7,6 +7,7 @@ import 'package:firebase_core/firebase_core.dart';
|
||||
import 'package:firebase_messaging/firebase_messaging.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/scheduler.dart' show timeDilation;
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:flutter_localizations/flutter_localizations.dart';
|
||||
@@ -55,6 +56,7 @@ import 'view/login/login.dart';
|
||||
import 'view/login/post_login_splash.dart';
|
||||
import 'widget/avatar_disk_cache.dart';
|
||||
import 'widget/breaker/breaker.dart';
|
||||
import 'widget/debug/debug_stats_overlay.dart';
|
||||
import 'widget/downloads/download_tray.dart';
|
||||
import 'widget/emergency/emergency_notice_gate.dart';
|
||||
import 'widget_data/widget_sync.dart';
|
||||
@@ -384,10 +386,11 @@ class _MainState extends State<Main> {
|
||||
notificationsEnabled: settings.notificationSettings.enabled,
|
||||
showPerformanceOverlay:
|
||||
settings.devToolsSettings.showPerformanceOverlay,
|
||||
checkerboardOffscreenLayers:
|
||||
settings.devToolsSettings.checkerboardOffscreenLayers,
|
||||
checkerboardRasterCacheImages:
|
||||
settings.devToolsSettings.checkerboardRasterCacheImages,
|
||||
showSemanticsDebugger: settings.devToolsSettings.showSemanticsDebugger,
|
||||
showFrameStats: settings.devToolsSettings.showFrameStats,
|
||||
showMemoryStats: settings.devToolsSettings.showMemoryStats,
|
||||
slowAnimations: settings.devToolsSettings.slowAnimations,
|
||||
textScaleOverride: settings.devToolsSettings.textScaleOverride,
|
||||
),
|
||||
builder: (context, root) {
|
||||
// Keep the MC dio singleton aligned with the currently selected
|
||||
@@ -403,10 +406,10 @@ class _MainState extends State<Main> {
|
||||
root.notificationsEnabled,
|
||||
),
|
||||
);
|
||||
timeDilation = root.slowAnimations ? 5.0 : 1.0;
|
||||
return MaterialApp(
|
||||
showPerformanceOverlay: root.showPerformanceOverlay,
|
||||
checkerboardOffscreenLayers: root.checkerboardOffscreenLayers,
|
||||
checkerboardRasterCacheImages: root.checkerboardRasterCacheImages,
|
||||
showSemanticsDebugger: root.showSemanticsDebugger,
|
||||
debugShowCheckedModeBanner: false,
|
||||
navigatorKey: AppRoutes.rootNavigatorKey,
|
||||
// Used by ChatView.didPopNext to reclaim the global ChatBloc.
|
||||
@@ -428,13 +431,28 @@ class _MainState extends State<Main> {
|
||||
// expose the layer below the topmost Scaffold; without this
|
||||
// the dark Material default shows through and the user sees a
|
||||
// black flash.
|
||||
builder: (context, child) => ColoredBox(
|
||||
color: LightAppTheme.marianumRed,
|
||||
// Downloads tray mounted ABOVE the navigator so its chip floats over
|
||||
// every route (folder views, chat, viewer are full-page pushes that
|
||||
// would otherwise cover it).
|
||||
child: DownloadTrayHost(child: child ?? const SizedBox.shrink()),
|
||||
),
|
||||
builder: (context, child) {
|
||||
Widget app = ColoredBox(
|
||||
color: LightAppTheme.marianumRed,
|
||||
// Downloads tray mounted ABOVE the navigator so its chip floats
|
||||
// over every route (folder views, chat, viewer are full-page
|
||||
// pushes that would otherwise cover it).
|
||||
child: DownloadTrayHost(child: child ?? const SizedBox.shrink()),
|
||||
);
|
||||
final scale = root.textScaleOverride;
|
||||
if (scale > 0) {
|
||||
app = MediaQuery.withClampedTextScaling(
|
||||
minScaleFactor: scale,
|
||||
maxScaleFactor: scale,
|
||||
child: app,
|
||||
);
|
||||
}
|
||||
return DebugStatsOverlay(
|
||||
showFrameStats: root.showFrameStats,
|
||||
showMemoryStats: root.showMemoryStats,
|
||||
child: app,
|
||||
);
|
||||
},
|
||||
home: EmergencyNoticeGate(
|
||||
child: LoaderOverlay(
|
||||
child: Breaker(
|
||||
@@ -549,6 +567,9 @@ typedef _RootSettings = ({
|
||||
String mcBaseUrl,
|
||||
bool notificationsEnabled,
|
||||
bool showPerformanceOverlay,
|
||||
bool checkerboardOffscreenLayers,
|
||||
bool checkerboardRasterCacheImages,
|
||||
bool showSemanticsDebugger,
|
||||
bool showFrameStats,
|
||||
bool showMemoryStats,
|
||||
bool slowAnimations,
|
||||
double textScaleOverride,
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user