mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00

* Add usage event to track when a iOS network device is used * update usage event to track percentage of iOS network vs usb devices, update and fix tests * refactor tracking to happen in usageValues with a custom dimension
408 lines
26 KiB
Dart
408 lines
26 KiB
Dart
// Copyright 2014 The Flutter Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
part of 'reporting.dart';
|
|
|
|
/// The collection of custom dimensions understood by the analytics backend.
|
|
/// When adding to this list, first ensure that the custom dimension is
|
|
/// defined in the backend, or will be defined shortly after the relevant PR
|
|
/// lands.
|
|
@immutable
|
|
class CustomDimensions {
|
|
const CustomDimensions({
|
|
this.sessionHostOsDetails,
|
|
this.sessionChannelName,
|
|
this.commandRunIsEmulator,
|
|
this.commandRunTargetName,
|
|
this.hotEventReason,
|
|
this.hotEventFinalLibraryCount,
|
|
this.hotEventSyncedLibraryCount,
|
|
this.hotEventSyncedClassesCount,
|
|
this.hotEventSyncedProceduresCount,
|
|
this.hotEventSyncedBytes,
|
|
this.hotEventInvalidatedSourcesCount,
|
|
this.hotEventTransferTimeInMs,
|
|
this.hotEventOverallTimeInMs,
|
|
this.commandRunProjectType,
|
|
this.commandRunProjectHostLanguage,
|
|
this.commandCreateAndroidLanguage,
|
|
this.commandCreateIosLanguage,
|
|
this.commandRunProjectModule,
|
|
this.commandCreateProjectType,
|
|
this.commandPackagesNumberPlugins,
|
|
this.commandPackagesProjectModule,
|
|
this.commandRunTargetOsVersion,
|
|
this.commandRunModeName,
|
|
this.commandBuildBundleTargetPlatform,
|
|
this.commandBuildBundleIsModule,
|
|
this.commandResult,
|
|
this.hotEventTargetPlatform,
|
|
this.hotEventSdkName,
|
|
this.hotEventEmulator,
|
|
this.hotEventFullRestart,
|
|
this.commandHasTerminal,
|
|
this.enabledFlutterFeatures,
|
|
this.localTime,
|
|
this.commandBuildAarTargetPlatform,
|
|
this.commandBuildAarProjectType,
|
|
this.buildEventCommand,
|
|
this.buildEventSettings,
|
|
this.commandBuildApkTargetPlatform,
|
|
this.commandBuildApkBuildMode,
|
|
this.commandBuildApkSplitPerAbi,
|
|
this.commandBuildAppBundleTargetPlatform,
|
|
this.commandBuildAppBundleBuildMode,
|
|
this.buildEventError,
|
|
this.commandResultEventMaxRss,
|
|
this.commandRunAndroidEmbeddingVersion,
|
|
this.commandPackagesAndroidEmbeddingVersion,
|
|
this.nullSafety,
|
|
this.fastReassemble,
|
|
this.nullSafeMigratedLibraries,
|
|
this.nullSafeTotalLibraries,
|
|
this.hotEventCompileTimeInMs,
|
|
this.hotEventFindInvalidatedTimeInMs,
|
|
this.hotEventScannedSourcesCount,
|
|
this.hotEventReassembleTimeInMs,
|
|
this.hotEventReloadVMTimeInMs,
|
|
this.commandRunEnableImpeller,
|
|
this.commandRunIOSInterfaceType,
|
|
});
|
|
|
|
final String? sessionHostOsDetails; // cd1
|
|
final String? sessionChannelName; // cd2
|
|
final bool? commandRunIsEmulator; // cd3
|
|
final String? commandRunTargetName; // cd4
|
|
final String? hotEventReason; // cd5
|
|
final int? hotEventFinalLibraryCount; // cd6
|
|
final int? hotEventSyncedLibraryCount; // cd7
|
|
final int? hotEventSyncedClassesCount; // cd8
|
|
final int? hotEventSyncedProceduresCount; // cd9
|
|
final int? hotEventSyncedBytes; // cd10
|
|
final int? hotEventInvalidatedSourcesCount; // cd11
|
|
final int? hotEventTransferTimeInMs; // cd12
|
|
final int? hotEventOverallTimeInMs; // cd13
|
|
final String? commandRunProjectType; // cd14
|
|
final String? commandRunProjectHostLanguage; // cd15
|
|
final String? commandCreateAndroidLanguage; // cd16
|
|
final String? commandCreateIosLanguage; // cd17
|
|
final bool? commandRunProjectModule; // cd18
|
|
final String? commandCreateProjectType; // cd19
|
|
final int? commandPackagesNumberPlugins; // cd20
|
|
final bool? commandPackagesProjectModule; // cd21
|
|
final String? commandRunTargetOsVersion; // cd22
|
|
final String? commandRunModeName; // cd23
|
|
final String? commandBuildBundleTargetPlatform; // cd24
|
|
final bool? commandBuildBundleIsModule; // cd25
|
|
final String? commandResult; // cd26
|
|
final String? hotEventTargetPlatform; // cd27
|
|
final String? hotEventSdkName; // cd28
|
|
final bool? hotEventEmulator; // cd29
|
|
final bool? hotEventFullRestart; // cd30
|
|
final bool? commandHasTerminal; // cd31
|
|
final String? enabledFlutterFeatures; // cd32
|
|
final String? localTime; // cd33
|
|
final String? commandBuildAarTargetPlatform; // cd34
|
|
final String? commandBuildAarProjectType; // cd35
|
|
final String? buildEventCommand; // cd36
|
|
final String? buildEventSettings; // cd37
|
|
final String? commandBuildApkTargetPlatform; // cd38
|
|
final String? commandBuildApkBuildMode; // cd39
|
|
final bool? commandBuildApkSplitPerAbi; // cd40
|
|
final String? commandBuildAppBundleTargetPlatform; // cd41
|
|
final String? commandBuildAppBundleBuildMode; // cd42
|
|
final String? buildEventError; // cd43
|
|
final int? commandResultEventMaxRss; // cd44
|
|
final String? commandRunAndroidEmbeddingVersion; // cd45
|
|
final String? commandPackagesAndroidEmbeddingVersion; // cd46
|
|
final bool? nullSafety; // cd47
|
|
final bool? fastReassemble; // cd48
|
|
final int? nullSafeMigratedLibraries; // cd49
|
|
final int? nullSafeTotalLibraries; // cd50
|
|
final int? hotEventCompileTimeInMs; // cd 51
|
|
final int? hotEventFindInvalidatedTimeInMs; // cd 52
|
|
final int? hotEventScannedSourcesCount; // cd 53
|
|
final int? hotEventReassembleTimeInMs; // cd 54
|
|
final int? hotEventReloadVMTimeInMs; // cd 55
|
|
final bool? commandRunEnableImpeller; // cd 56
|
|
final String? commandRunIOSInterfaceType; // cd 57
|
|
|
|
/// Convert to a map that will be used to upload to the analytics backend.
|
|
Map<String, String> toMap() => <String, String>{
|
|
if (sessionHostOsDetails != null) cdKey(CustomDimensionsEnum.sessionHostOsDetails): sessionHostOsDetails.toString(),
|
|
if (sessionChannelName != null) cdKey(CustomDimensionsEnum.sessionChannelName): sessionChannelName.toString(),
|
|
if (commandRunIsEmulator != null) cdKey(CustomDimensionsEnum.commandRunIsEmulator): commandRunIsEmulator.toString(),
|
|
if (commandRunTargetName != null) cdKey(CustomDimensionsEnum.commandRunTargetName): commandRunTargetName.toString(),
|
|
if (hotEventReason != null) cdKey(CustomDimensionsEnum.hotEventReason): hotEventReason.toString(),
|
|
if (hotEventFinalLibraryCount != null) cdKey(CustomDimensionsEnum.hotEventFinalLibraryCount): hotEventFinalLibraryCount.toString(),
|
|
if (hotEventSyncedLibraryCount != null) cdKey(CustomDimensionsEnum.hotEventSyncedLibraryCount): hotEventSyncedLibraryCount.toString(),
|
|
if (hotEventSyncedClassesCount != null) cdKey(CustomDimensionsEnum.hotEventSyncedClassesCount): hotEventSyncedClassesCount.toString(),
|
|
if (hotEventSyncedProceduresCount != null) cdKey(CustomDimensionsEnum.hotEventSyncedProceduresCount): hotEventSyncedProceduresCount.toString(),
|
|
if (hotEventSyncedBytes != null) cdKey(CustomDimensionsEnum.hotEventSyncedBytes): hotEventSyncedBytes.toString(),
|
|
if (hotEventInvalidatedSourcesCount != null) cdKey(CustomDimensionsEnum.hotEventInvalidatedSourcesCount): hotEventInvalidatedSourcesCount.toString(),
|
|
if (hotEventTransferTimeInMs != null) cdKey(CustomDimensionsEnum.hotEventTransferTimeInMs): hotEventTransferTimeInMs.toString(),
|
|
if (hotEventOverallTimeInMs != null) cdKey(CustomDimensionsEnum.hotEventOverallTimeInMs): hotEventOverallTimeInMs.toString(),
|
|
if (commandRunProjectType != null) cdKey(CustomDimensionsEnum.commandRunProjectType): commandRunProjectType.toString(),
|
|
if (commandRunProjectHostLanguage != null) cdKey(CustomDimensionsEnum.commandRunProjectHostLanguage): commandRunProjectHostLanguage.toString(),
|
|
if (commandCreateAndroidLanguage != null) cdKey(CustomDimensionsEnum.commandCreateAndroidLanguage): commandCreateAndroidLanguage.toString(),
|
|
if (commandCreateIosLanguage != null) cdKey(CustomDimensionsEnum.commandCreateIosLanguage): commandCreateIosLanguage.toString(),
|
|
if (commandRunProjectModule != null) cdKey(CustomDimensionsEnum.commandRunProjectModule): commandRunProjectModule.toString(),
|
|
if (commandCreateProjectType != null) cdKey(CustomDimensionsEnum.commandCreateProjectType): commandCreateProjectType.toString(),
|
|
if (commandPackagesNumberPlugins != null) cdKey(CustomDimensionsEnum.commandPackagesNumberPlugins): commandPackagesNumberPlugins.toString(),
|
|
if (commandPackagesProjectModule != null) cdKey(CustomDimensionsEnum.commandPackagesProjectModule): commandPackagesProjectModule.toString(),
|
|
if (commandRunTargetOsVersion != null) cdKey(CustomDimensionsEnum.commandRunTargetOsVersion): commandRunTargetOsVersion.toString(),
|
|
if (commandRunModeName != null) cdKey(CustomDimensionsEnum.commandRunModeName): commandRunModeName.toString(),
|
|
if (commandBuildBundleTargetPlatform != null) cdKey(CustomDimensionsEnum.commandBuildBundleTargetPlatform): commandBuildBundleTargetPlatform.toString(),
|
|
if (commandBuildBundleIsModule != null) cdKey(CustomDimensionsEnum.commandBuildBundleIsModule): commandBuildBundleIsModule.toString(),
|
|
if (commandResult != null) cdKey(CustomDimensionsEnum.commandResult): commandResult.toString(),
|
|
if (hotEventTargetPlatform != null) cdKey(CustomDimensionsEnum.hotEventTargetPlatform): hotEventTargetPlatform.toString(),
|
|
if (hotEventSdkName != null) cdKey(CustomDimensionsEnum.hotEventSdkName): hotEventSdkName.toString(),
|
|
if (hotEventEmulator != null) cdKey(CustomDimensionsEnum.hotEventEmulator): hotEventEmulator.toString(),
|
|
if (hotEventFullRestart != null) cdKey(CustomDimensionsEnum.hotEventFullRestart): hotEventFullRestart.toString(),
|
|
if (commandHasTerminal != null) cdKey(CustomDimensionsEnum.commandHasTerminal): commandHasTerminal.toString(),
|
|
if (enabledFlutterFeatures != null) cdKey(CustomDimensionsEnum.enabledFlutterFeatures): enabledFlutterFeatures.toString(),
|
|
if (localTime != null) cdKey(CustomDimensionsEnum.localTime): localTime.toString(),
|
|
if (commandBuildAarTargetPlatform != null) cdKey(CustomDimensionsEnum.commandBuildAarTargetPlatform): commandBuildAarTargetPlatform.toString(),
|
|
if (commandBuildAarProjectType != null) cdKey(CustomDimensionsEnum.commandBuildAarProjectType): commandBuildAarProjectType.toString(),
|
|
if (buildEventCommand != null) cdKey(CustomDimensionsEnum.buildEventCommand): buildEventCommand.toString(),
|
|
if (buildEventSettings != null) cdKey(CustomDimensionsEnum.buildEventSettings): buildEventSettings.toString(),
|
|
if (commandBuildApkTargetPlatform != null) cdKey(CustomDimensionsEnum.commandBuildApkTargetPlatform): commandBuildApkTargetPlatform.toString(),
|
|
if (commandBuildApkBuildMode != null) cdKey(CustomDimensionsEnum.commandBuildApkBuildMode): commandBuildApkBuildMode.toString(),
|
|
if (commandBuildApkSplitPerAbi != null) cdKey(CustomDimensionsEnum.commandBuildApkSplitPerAbi): commandBuildApkSplitPerAbi.toString(),
|
|
if (commandBuildAppBundleTargetPlatform != null) cdKey(CustomDimensionsEnum.commandBuildAppBundleTargetPlatform): commandBuildAppBundleTargetPlatform.toString(),
|
|
if (commandBuildAppBundleBuildMode != null) cdKey(CustomDimensionsEnum.commandBuildAppBundleBuildMode): commandBuildAppBundleBuildMode.toString(),
|
|
if (buildEventError != null) cdKey(CustomDimensionsEnum.buildEventError): buildEventError.toString(),
|
|
if (commandResultEventMaxRss != null) cdKey(CustomDimensionsEnum.commandResultEventMaxRss): commandResultEventMaxRss.toString(),
|
|
if (commandRunAndroidEmbeddingVersion != null) cdKey(CustomDimensionsEnum.commandRunAndroidEmbeddingVersion): commandRunAndroidEmbeddingVersion.toString(),
|
|
if (commandPackagesAndroidEmbeddingVersion != null) cdKey(CustomDimensionsEnum.commandPackagesAndroidEmbeddingVersion): commandPackagesAndroidEmbeddingVersion.toString(),
|
|
if (nullSafety != null) cdKey(CustomDimensionsEnum.nullSafety): nullSafety.toString(),
|
|
if (fastReassemble != null) cdKey(CustomDimensionsEnum.fastReassemble): fastReassemble.toString(),
|
|
if (nullSafeMigratedLibraries != null) cdKey(CustomDimensionsEnum.nullSafeMigratedLibraries): nullSafeMigratedLibraries.toString(),
|
|
if (nullSafeTotalLibraries != null) cdKey(CustomDimensionsEnum.nullSafeTotalLibraries): nullSafeTotalLibraries.toString(),
|
|
if (hotEventCompileTimeInMs != null) cdKey(CustomDimensionsEnum.hotEventCompileTimeInMs): hotEventCompileTimeInMs.toString(),
|
|
if (hotEventFindInvalidatedTimeInMs != null) cdKey(CustomDimensionsEnum.hotEventFindInvalidatedTimeInMs): hotEventFindInvalidatedTimeInMs.toString(),
|
|
if (hotEventScannedSourcesCount != null) cdKey(CustomDimensionsEnum.hotEventScannedSourcesCount): hotEventScannedSourcesCount.toString(),
|
|
if (hotEventReassembleTimeInMs != null) cdKey(CustomDimensionsEnum.hotEventReassembleTimeInMs): hotEventReassembleTimeInMs.toString(),
|
|
if (hotEventReloadVMTimeInMs != null) cdKey(CustomDimensionsEnum.hotEventReloadVMTimeInMs): hotEventReloadVMTimeInMs.toString(),
|
|
if (commandRunEnableImpeller != null) cdKey(CustomDimensionsEnum.commandRunEnableImpeller): commandRunEnableImpeller.toString(),
|
|
if (commandRunIOSInterfaceType != null) cdKey(CustomDimensionsEnum.commandRunIOSInterfaceType): commandRunIOSInterfaceType.toString(),
|
|
};
|
|
|
|
/// Merge the values of two [CustomDimensions] into one. If a value is defined
|
|
/// in both instances, the value in [other] will override the value in this.
|
|
CustomDimensions merge(CustomDimensions? other) {
|
|
if (other == null) {
|
|
return this;
|
|
}
|
|
|
|
return CustomDimensions(
|
|
sessionHostOsDetails: other.sessionHostOsDetails ?? sessionHostOsDetails,
|
|
sessionChannelName: other.sessionChannelName ?? sessionChannelName,
|
|
commandRunIsEmulator: other.commandRunIsEmulator ?? commandRunIsEmulator,
|
|
commandRunTargetName: other.commandRunTargetName ?? commandRunTargetName,
|
|
hotEventReason: other.hotEventReason ?? hotEventReason,
|
|
hotEventFinalLibraryCount: other.hotEventFinalLibraryCount ?? hotEventFinalLibraryCount,
|
|
hotEventSyncedLibraryCount: other.hotEventSyncedLibraryCount ?? hotEventSyncedLibraryCount,
|
|
hotEventSyncedClassesCount: other.hotEventSyncedClassesCount ?? hotEventSyncedClassesCount,
|
|
hotEventSyncedProceduresCount: other.hotEventSyncedProceduresCount ?? hotEventSyncedProceduresCount,
|
|
hotEventSyncedBytes: other.hotEventSyncedBytes ?? hotEventSyncedBytes,
|
|
hotEventInvalidatedSourcesCount: other.hotEventInvalidatedSourcesCount ?? hotEventInvalidatedSourcesCount,
|
|
hotEventTransferTimeInMs: other.hotEventTransferTimeInMs ?? hotEventTransferTimeInMs,
|
|
hotEventOverallTimeInMs: other.hotEventOverallTimeInMs ?? hotEventOverallTimeInMs,
|
|
commandRunProjectType: other.commandRunProjectType ?? commandRunProjectType,
|
|
commandRunProjectHostLanguage: other.commandRunProjectHostLanguage ?? commandRunProjectHostLanguage,
|
|
commandCreateAndroidLanguage: other.commandCreateAndroidLanguage ?? commandCreateAndroidLanguage,
|
|
commandCreateIosLanguage: other.commandCreateIosLanguage ?? commandCreateIosLanguage,
|
|
commandRunProjectModule: other.commandRunProjectModule ?? commandRunProjectModule,
|
|
commandCreateProjectType: other.commandCreateProjectType ?? commandCreateProjectType,
|
|
commandPackagesNumberPlugins: other.commandPackagesNumberPlugins ?? commandPackagesNumberPlugins,
|
|
commandPackagesProjectModule: other.commandPackagesProjectModule ?? commandPackagesProjectModule,
|
|
commandRunTargetOsVersion: other.commandRunTargetOsVersion ?? commandRunTargetOsVersion,
|
|
commandRunModeName: other.commandRunModeName ?? commandRunModeName,
|
|
commandBuildBundleTargetPlatform: other.commandBuildBundleTargetPlatform ?? commandBuildBundleTargetPlatform,
|
|
commandBuildBundleIsModule: other.commandBuildBundleIsModule ?? commandBuildBundleIsModule,
|
|
commandResult: other.commandResult ?? commandResult,
|
|
hotEventTargetPlatform: other.hotEventTargetPlatform ?? hotEventTargetPlatform,
|
|
hotEventSdkName: other.hotEventSdkName ?? hotEventSdkName,
|
|
hotEventEmulator: other.hotEventEmulator ?? hotEventEmulator,
|
|
hotEventFullRestart: other.hotEventFullRestart ?? hotEventFullRestart,
|
|
commandHasTerminal: other.commandHasTerminal ?? commandHasTerminal,
|
|
enabledFlutterFeatures: other.enabledFlutterFeatures ?? enabledFlutterFeatures,
|
|
localTime: other.localTime ?? localTime,
|
|
commandBuildAarTargetPlatform: other.commandBuildAarTargetPlatform ?? commandBuildAarTargetPlatform,
|
|
commandBuildAarProjectType: other.commandBuildAarProjectType ?? commandBuildAarProjectType,
|
|
buildEventCommand: other.buildEventCommand ?? buildEventCommand,
|
|
buildEventSettings: other.buildEventSettings ?? buildEventSettings,
|
|
commandBuildApkTargetPlatform: other.commandBuildApkTargetPlatform ?? commandBuildApkTargetPlatform,
|
|
commandBuildApkBuildMode: other.commandBuildApkBuildMode ?? commandBuildApkBuildMode,
|
|
commandBuildApkSplitPerAbi: other.commandBuildApkSplitPerAbi ?? commandBuildApkSplitPerAbi,
|
|
commandBuildAppBundleTargetPlatform: other.commandBuildAppBundleTargetPlatform ?? commandBuildAppBundleTargetPlatform,
|
|
commandBuildAppBundleBuildMode: other.commandBuildAppBundleBuildMode ?? commandBuildAppBundleBuildMode,
|
|
buildEventError: other.buildEventError ?? buildEventError,
|
|
commandResultEventMaxRss: other.commandResultEventMaxRss ?? commandResultEventMaxRss,
|
|
commandRunAndroidEmbeddingVersion: other.commandRunAndroidEmbeddingVersion ?? commandRunAndroidEmbeddingVersion,
|
|
commandPackagesAndroidEmbeddingVersion: other.commandPackagesAndroidEmbeddingVersion ?? commandPackagesAndroidEmbeddingVersion,
|
|
nullSafety: other.nullSafety ?? nullSafety,
|
|
fastReassemble: other.fastReassemble ?? fastReassemble,
|
|
nullSafeMigratedLibraries: other.nullSafeMigratedLibraries ?? nullSafeMigratedLibraries,
|
|
nullSafeTotalLibraries: other.nullSafeTotalLibraries ?? nullSafeTotalLibraries,
|
|
hotEventCompileTimeInMs: other.hotEventCompileTimeInMs ?? hotEventCompileTimeInMs,
|
|
hotEventFindInvalidatedTimeInMs: other.hotEventFindInvalidatedTimeInMs ?? hotEventFindInvalidatedTimeInMs,
|
|
hotEventScannedSourcesCount: other.hotEventScannedSourcesCount ?? hotEventScannedSourcesCount,
|
|
hotEventReassembleTimeInMs: other.hotEventReassembleTimeInMs ?? hotEventReassembleTimeInMs,
|
|
hotEventReloadVMTimeInMs: other.hotEventReloadVMTimeInMs ?? hotEventReloadVMTimeInMs,
|
|
commandRunEnableImpeller: other.commandRunEnableImpeller ?? commandRunEnableImpeller,
|
|
commandRunIOSInterfaceType: other.commandRunIOSInterfaceType ?? commandRunIOSInterfaceType,
|
|
);
|
|
}
|
|
|
|
static CustomDimensions fromMap(Map<String, String> map) => CustomDimensions(
|
|
sessionHostOsDetails: _extractString(map, CustomDimensionsEnum.sessionHostOsDetails),
|
|
sessionChannelName: _extractString(map, CustomDimensionsEnum.sessionChannelName),
|
|
commandRunIsEmulator: _extractBool(map, CustomDimensionsEnum.commandRunIsEmulator),
|
|
commandRunTargetName: _extractString(map, CustomDimensionsEnum.commandRunTargetName),
|
|
hotEventReason: _extractString(map, CustomDimensionsEnum.hotEventReason),
|
|
hotEventFinalLibraryCount: _extractInt(map, CustomDimensionsEnum.hotEventFinalLibraryCount),
|
|
hotEventSyncedLibraryCount: _extractInt(map, CustomDimensionsEnum.hotEventSyncedLibraryCount),
|
|
hotEventSyncedClassesCount: _extractInt(map, CustomDimensionsEnum.hotEventSyncedClassesCount),
|
|
hotEventSyncedProceduresCount: _extractInt(map, CustomDimensionsEnum.hotEventSyncedProceduresCount),
|
|
hotEventSyncedBytes: _extractInt(map, CustomDimensionsEnum.hotEventSyncedBytes),
|
|
hotEventInvalidatedSourcesCount: _extractInt(map, CustomDimensionsEnum.hotEventInvalidatedSourcesCount),
|
|
hotEventTransferTimeInMs: _extractInt(map, CustomDimensionsEnum.hotEventTransferTimeInMs),
|
|
hotEventOverallTimeInMs: _extractInt(map, CustomDimensionsEnum.hotEventOverallTimeInMs),
|
|
commandRunProjectType: _extractString(map, CustomDimensionsEnum.commandRunProjectType),
|
|
commandRunProjectHostLanguage: _extractString(map, CustomDimensionsEnum.commandRunProjectHostLanguage),
|
|
commandCreateAndroidLanguage: _extractString(map, CustomDimensionsEnum.commandCreateAndroidLanguage),
|
|
commandCreateIosLanguage: _extractString(map, CustomDimensionsEnum.commandCreateIosLanguage),
|
|
commandRunProjectModule: _extractBool(map, CustomDimensionsEnum.commandRunProjectModule),
|
|
commandCreateProjectType: _extractString(map, CustomDimensionsEnum.commandCreateProjectType),
|
|
commandPackagesNumberPlugins: _extractInt(map, CustomDimensionsEnum.commandPackagesNumberPlugins),
|
|
commandPackagesProjectModule: _extractBool(map, CustomDimensionsEnum.commandPackagesProjectModule),
|
|
commandRunTargetOsVersion: _extractString(map, CustomDimensionsEnum.commandRunTargetOsVersion),
|
|
commandRunModeName: _extractString(map, CustomDimensionsEnum.commandRunModeName),
|
|
commandBuildBundleTargetPlatform: _extractString(map, CustomDimensionsEnum.commandBuildBundleTargetPlatform),
|
|
commandBuildBundleIsModule: _extractBool(map, CustomDimensionsEnum.commandBuildBundleIsModule),
|
|
commandResult: _extractString(map, CustomDimensionsEnum.commandResult),
|
|
hotEventTargetPlatform: _extractString(map, CustomDimensionsEnum.hotEventTargetPlatform),
|
|
hotEventSdkName: _extractString(map, CustomDimensionsEnum.hotEventSdkName),
|
|
hotEventEmulator: _extractBool(map, CustomDimensionsEnum.hotEventEmulator),
|
|
hotEventFullRestart: _extractBool(map, CustomDimensionsEnum.hotEventFullRestart),
|
|
commandHasTerminal: _extractBool(map, CustomDimensionsEnum.commandHasTerminal),
|
|
enabledFlutterFeatures: _extractString(map, CustomDimensionsEnum.enabledFlutterFeatures),
|
|
localTime: _extractString(map, CustomDimensionsEnum.localTime),
|
|
commandBuildAarTargetPlatform: _extractString(map, CustomDimensionsEnum.commandBuildAarTargetPlatform),
|
|
commandBuildAarProjectType: _extractString(map, CustomDimensionsEnum.commandBuildAarProjectType),
|
|
buildEventCommand: _extractString(map, CustomDimensionsEnum.buildEventCommand),
|
|
buildEventSettings: _extractString(map, CustomDimensionsEnum.buildEventSettings),
|
|
commandBuildApkTargetPlatform: _extractString(map, CustomDimensionsEnum.commandBuildApkTargetPlatform),
|
|
commandBuildApkBuildMode: _extractString(map, CustomDimensionsEnum.commandBuildApkBuildMode),
|
|
commandBuildApkSplitPerAbi: _extractBool(map, CustomDimensionsEnum.commandBuildApkSplitPerAbi),
|
|
commandBuildAppBundleTargetPlatform: _extractString(map, CustomDimensionsEnum.commandBuildAppBundleTargetPlatform),
|
|
commandBuildAppBundleBuildMode: _extractString(map, CustomDimensionsEnum.commandBuildAppBundleBuildMode),
|
|
buildEventError: _extractString(map, CustomDimensionsEnum.buildEventError),
|
|
commandResultEventMaxRss: _extractInt(map, CustomDimensionsEnum.commandResultEventMaxRss),
|
|
commandRunAndroidEmbeddingVersion: _extractString(map, CustomDimensionsEnum.commandRunAndroidEmbeddingVersion),
|
|
commandPackagesAndroidEmbeddingVersion: _extractString(map, CustomDimensionsEnum.commandPackagesAndroidEmbeddingVersion),
|
|
nullSafety: _extractBool(map, CustomDimensionsEnum.nullSafety),
|
|
fastReassemble: _extractBool(map, CustomDimensionsEnum.fastReassemble),
|
|
nullSafeMigratedLibraries: _extractInt(map, CustomDimensionsEnum.nullSafeMigratedLibraries),
|
|
nullSafeTotalLibraries: _extractInt(map, CustomDimensionsEnum.nullSafeTotalLibraries),
|
|
hotEventCompileTimeInMs: _extractInt(map, CustomDimensionsEnum.hotEventCompileTimeInMs),
|
|
hotEventFindInvalidatedTimeInMs: _extractInt(map, CustomDimensionsEnum.hotEventFindInvalidatedTimeInMs),
|
|
hotEventScannedSourcesCount: _extractInt(map, CustomDimensionsEnum.hotEventScannedSourcesCount),
|
|
hotEventReassembleTimeInMs: _extractInt(map, CustomDimensionsEnum.hotEventReassembleTimeInMs),
|
|
hotEventReloadVMTimeInMs: _extractInt(map, CustomDimensionsEnum.hotEventReloadVMTimeInMs),
|
|
commandRunEnableImpeller: _extractBool(map, CustomDimensionsEnum.commandRunEnableImpeller),
|
|
commandRunIOSInterfaceType: _extractString(map, CustomDimensionsEnum.commandRunIOSInterfaceType),
|
|
);
|
|
|
|
static bool? _extractBool(Map<String, String> map, CustomDimensionsEnum field) =>
|
|
map.containsKey(cdKey(field))? map[cdKey(field)] == 'true' : null;
|
|
|
|
static String? _extractString(Map<String, String> map, CustomDimensionsEnum field) =>
|
|
map.containsKey(cdKey(field))? map[cdKey(field)] : null;
|
|
|
|
static int? _extractInt(Map<String, String> map, CustomDimensionsEnum field) =>
|
|
map.containsKey(cdKey(field))? int.parse(map[cdKey(field)]!) : null;
|
|
|
|
@override
|
|
String toString() => toMap().toString();
|
|
|
|
@override
|
|
bool operator ==(Object other) {
|
|
return other is CustomDimensions &&
|
|
_mapsEqual(other.toMap(), toMap());
|
|
}
|
|
|
|
@override
|
|
int get hashCode => Object.hashAll(toMap().values);
|
|
}
|
|
|
|
/// List of all fields used in CustomDimensions.
|
|
///
|
|
/// The index of this enum is used to calculate the key of the fields. Always
|
|
/// append to this list when adding new fields, and do not remove or reorder
|
|
/// any elements.
|
|
enum CustomDimensionsEnum {
|
|
sessionHostOsDetails, // cd1
|
|
sessionChannelName, // cd2
|
|
commandRunIsEmulator, // cd3
|
|
commandRunTargetName, // cd4
|
|
hotEventReason, // cd5
|
|
hotEventFinalLibraryCount, // cd6
|
|
hotEventSyncedLibraryCount, // cd7
|
|
hotEventSyncedClassesCount, // cd8
|
|
hotEventSyncedProceduresCount, // cd9
|
|
hotEventSyncedBytes, // cd10
|
|
hotEventInvalidatedSourcesCount, // cd11
|
|
hotEventTransferTimeInMs, // cd12
|
|
hotEventOverallTimeInMs, // cd13
|
|
commandRunProjectType, // cd14
|
|
commandRunProjectHostLanguage, // cd15
|
|
commandCreateAndroidLanguage, // cd16
|
|
commandCreateIosLanguage, // cd17
|
|
commandRunProjectModule, // cd18
|
|
commandCreateProjectType, // cd19
|
|
commandPackagesNumberPlugins, // cd20
|
|
commandPackagesProjectModule, // cd21
|
|
commandRunTargetOsVersion, // cd22
|
|
commandRunModeName, // cd23
|
|
commandBuildBundleTargetPlatform, // cd24
|
|
commandBuildBundleIsModule, // cd25
|
|
commandResult, // cd26
|
|
hotEventTargetPlatform, // cd27
|
|
hotEventSdkName, // cd28
|
|
hotEventEmulator, // cd29
|
|
hotEventFullRestart, // cd30
|
|
commandHasTerminal, // cd31
|
|
enabledFlutterFeatures, // cd32
|
|
localTime, // cd33
|
|
commandBuildAarTargetPlatform, // cd34
|
|
commandBuildAarProjectType, // cd35
|
|
buildEventCommand, // cd36
|
|
buildEventSettings, // cd37
|
|
commandBuildApkTargetPlatform, // cd38
|
|
commandBuildApkBuildMode, // cd39
|
|
commandBuildApkSplitPerAbi, // cd40
|
|
commandBuildAppBundleTargetPlatform, // cd41
|
|
commandBuildAppBundleBuildMode, // cd42
|
|
buildEventError, // cd43
|
|
commandResultEventMaxRss, // cd44
|
|
commandRunAndroidEmbeddingVersion, // cd45
|
|
commandPackagesAndroidEmbeddingVersion, // cd46
|
|
nullSafety, // cd47
|
|
fastReassemble, // cd48
|
|
nullSafeMigratedLibraries, // cd49
|
|
nullSafeTotalLibraries, // cd50
|
|
hotEventCompileTimeInMs, // cd51
|
|
hotEventFindInvalidatedTimeInMs, // cd52
|
|
hotEventScannedSourcesCount, // cd53
|
|
hotEventReassembleTimeInMs, // cd54
|
|
hotEventReloadVMTimeInMs, // cd55
|
|
commandRunEnableImpeller, // cd56
|
|
commandRunIOSInterfaceType, // cd57
|
|
}
|
|
|
|
String cdKey(CustomDimensionsEnum cd) => 'cd${cd.index + 1}';
|