reworked developer tools with diagnostics, storage viewers and release-capable debug overlays
This commit is contained in:
@@ -8,8 +8,22 @@ enum MarianumConnectEndpoint { live, beta, custom }
|
||||
@JsonSerializable()
|
||||
class DevToolsSettings {
|
||||
bool showPerformanceOverlay;
|
||||
bool checkerboardOffscreenLayers;
|
||||
bool checkerboardRasterCacheImages;
|
||||
|
||||
@JsonKey(defaultValue: false)
|
||||
bool showFrameStats;
|
||||
|
||||
@JsonKey(defaultValue: false)
|
||||
bool showMemoryStats;
|
||||
|
||||
@JsonKey(defaultValue: false)
|
||||
bool showSemanticsDebugger;
|
||||
|
||||
@JsonKey(defaultValue: false)
|
||||
bool slowAnimations;
|
||||
|
||||
/// Forced text scale factor; `0` follows the system setting.
|
||||
@JsonKey(defaultValue: 0)
|
||||
double textScaleOverride;
|
||||
|
||||
@JsonKey(defaultValue: MarianumConnectEndpoint.live)
|
||||
MarianumConnectEndpoint marianumConnectEndpoint;
|
||||
@@ -24,8 +38,11 @@ class DevToolsSettings {
|
||||
|
||||
DevToolsSettings({
|
||||
required this.showPerformanceOverlay,
|
||||
required this.checkerboardOffscreenLayers,
|
||||
required this.checkerboardRasterCacheImages,
|
||||
this.showFrameStats = false,
|
||||
this.showMemoryStats = false,
|
||||
this.showSemanticsDebugger = false,
|
||||
this.slowAnimations = false,
|
||||
this.textScaleOverride = 0,
|
||||
this.marianumConnectEndpoint = MarianumConnectEndpoint.live,
|
||||
this.marianumConnectCustomUrl = '',
|
||||
this.emergencyNoticeUrl = '',
|
||||
@@ -51,7 +68,8 @@ class DevToolsSettings {
|
||||
|
||||
/// Compiled-in source for the backend-independent emergency notice. Must live
|
||||
/// on infrastructure that is reachable even when MarianumConnect is down.
|
||||
static const String emergencyNoticeDefaultUrl = 'https://www.marianum-fulda.de/~aushang/marMobile.override';
|
||||
static const String emergencyNoticeDefaultUrl =
|
||||
'https://www.marianum-fulda.de/~aushang/marMobile.override';
|
||||
|
||||
String? resolveEmergencyNoticeUrl() =>
|
||||
sanitizeCustomUrl(emergencyNoticeUrl) ??
|
||||
|
||||
@@ -6,27 +6,33 @@ part of 'dev_tools_settings.dart';
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
DevToolsSettings _$DevToolsSettingsFromJson(
|
||||
Map<String, dynamic> json,
|
||||
) => DevToolsSettings(
|
||||
showPerformanceOverlay: json['showPerformanceOverlay'] as bool,
|
||||
checkerboardOffscreenLayers: json['checkerboardOffscreenLayers'] as bool,
|
||||
checkerboardRasterCacheImages: json['checkerboardRasterCacheImages'] as bool,
|
||||
marianumConnectEndpoint:
|
||||
$enumDecodeNullable(
|
||||
_$MarianumConnectEndpointEnumMap,
|
||||
json['marianumConnectEndpoint'],
|
||||
) ??
|
||||
MarianumConnectEndpoint.live,
|
||||
marianumConnectCustomUrl: json['marianumConnectCustomUrl'] as String? ?? '',
|
||||
emergencyNoticeUrl: json['emergencyNoticeUrl'] as String? ?? '',
|
||||
);
|
||||
DevToolsSettings _$DevToolsSettingsFromJson(Map<String, dynamic> json) =>
|
||||
DevToolsSettings(
|
||||
showPerformanceOverlay: json['showPerformanceOverlay'] as bool,
|
||||
showFrameStats: json['showFrameStats'] as bool? ?? false,
|
||||
showMemoryStats: json['showMemoryStats'] as bool? ?? false,
|
||||
showSemanticsDebugger: json['showSemanticsDebugger'] as bool? ?? false,
|
||||
slowAnimations: json['slowAnimations'] as bool? ?? false,
|
||||
textScaleOverride: (json['textScaleOverride'] as num?)?.toDouble() ?? 0,
|
||||
marianumConnectEndpoint:
|
||||
$enumDecodeNullable(
|
||||
_$MarianumConnectEndpointEnumMap,
|
||||
json['marianumConnectEndpoint'],
|
||||
) ??
|
||||
MarianumConnectEndpoint.live,
|
||||
marianumConnectCustomUrl:
|
||||
json['marianumConnectCustomUrl'] as String? ?? '',
|
||||
emergencyNoticeUrl: json['emergencyNoticeUrl'] as String? ?? '',
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$DevToolsSettingsToJson(DevToolsSettings instance) =>
|
||||
<String, dynamic>{
|
||||
'showPerformanceOverlay': instance.showPerformanceOverlay,
|
||||
'checkerboardOffscreenLayers': instance.checkerboardOffscreenLayers,
|
||||
'checkerboardRasterCacheImages': instance.checkerboardRasterCacheImages,
|
||||
'showFrameStats': instance.showFrameStats,
|
||||
'showMemoryStats': instance.showMemoryStats,
|
||||
'showSemanticsDebugger': instance.showSemanticsDebugger,
|
||||
'slowAnimations': instance.slowAnimations,
|
||||
'textScaleOverride': instance.textScaleOverride,
|
||||
'marianumConnectEndpoint':
|
||||
_$MarianumConnectEndpointEnumMap[instance.marianumConnectEndpoint]!,
|
||||
'marianumConnectCustomUrl': instance.marianumConnectCustomUrl,
|
||||
|
||||
@@ -37,6 +37,8 @@ Future<void> _deleteHydratedBox(String directoryPath) async {
|
||||
class InMemoryStorage implements Storage {
|
||||
final Map<String, dynamic> _values = {};
|
||||
|
||||
Iterable<String> get keys => _values.keys;
|
||||
|
||||
@override
|
||||
dynamic read(String key) => _values[key];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user