@@ -51,13 +51,16 @@ class AbkRuntimeStatus {
5151
5252 factory AbkRuntimeStatus .fromJson (Map <String , dynamic > json) {
5353 final managerRaw = _readMap (json['manager' ]);
54- final backendRaw = _readMap (json['runtimeBackend' ]);
54+ final backendRaw = _readMapAlias (json, < String > [
55+ 'runtimeBackend' ,
56+ 'runtime_backend' ,
57+ ]);
5558 final buildRaw = _readMap (json['build' ]);
5659 return AbkRuntimeStatus (
5760 schema: _readInt (json['schema' ], fallback: 1 ),
58- abkVersion: _readString (json['abkVersion' ]),
59- abkCommit: _readString (json['abkCommit' ]),
60- workMode: _readString (json['workMode' ]),
61+ abkVersion: _readStringAlias (json, < String > ['abkVersion' , 'abk_version ' ]),
62+ abkCommit: _readStringAlias (json, < String > ['abkCommit' , 'abk_commit ' ]),
63+ workMode: _readStringAlias (json, < String > ['workMode' , 'work_mode ' ]),
6164 manager: managerRaw.isEmpty
6265 ? null
6366 : AbkRuntimeManagerInfo .fromJson (managerRaw),
@@ -68,9 +71,10 @@ class AbkRuntimeStatus {
6871 modules: _readMapList (
6972 json['modules' ],
7073 ).map (AbkRuntimeModule .fromJson).toList (growable: false ),
71- extensionModules: _readMapList (
72- json['extensionModules' ],
73- ).map (AbkRuntimeModule .fromJson).toList (growable: false ),
74+ extensionModules: _readMapListAlias (json, < String > [
75+ 'extensionModules' ,
76+ 'extension_modules' ,
77+ ]).map (AbkRuntimeModule .fromJson).toList (growable: false ),
7478 );
7579 }
7680}
@@ -96,7 +100,10 @@ class AbkRuntimeManagerInfo {
96100
97101 factory AbkRuntimeManagerInfo .fromJson (Map <String , dynamic > json) {
98102 return AbkRuntimeManagerInfo (
99- displayName: _readString (json['displayName' ]),
103+ displayName: _readStringAlias (json, < String > [
104+ 'displayName' ,
105+ 'display_name' ,
106+ ]),
100107 variant: _readString (json['variant' ]),
101108 backend: _readString (json['backend' ]),
102109 version: _readString (json['version' ]),
@@ -138,17 +145,38 @@ class AbkRuntimeBuildInfo {
138145
139146 factory AbkRuntimeBuildInfo .fromJson (Map <String , dynamic > json) {
140147 return AbkRuntimeBuildInfo (
141- androidVersion: _readString (json['androidVersion' ]),
142- kernelVersion: _readString (json['kernelVersion' ]),
143- subLevel: _readString (json['subLevel' ]),
144- osPatchLevel: _readString (json['osPatchLevel' ]),
148+ androidVersion: _readStringAlias (json, < String > [
149+ 'androidVersion' ,
150+ 'android_version' ,
151+ ]),
152+ kernelVersion: _readStringAlias (json, < String > [
153+ 'kernelVersion' ,
154+ 'kernel_version' ,
155+ ]),
156+ subLevel: _readStringAlias (json, < String > ['subLevel' , 'sub_level' ]),
157+ osPatchLevel: _readStringAlias (json, < String > [
158+ 'osPatchLevel' ,
159+ 'os_patch_level' ,
160+ ]),
145161 revision: _readString (json['revision' ]),
146- kernelsuVariant: _readString (json['kernelsuVariant' ]),
147- kernelsuBranch: _readString (json['kernelsuBranch' ]),
162+ kernelsuVariant: _readStringAlias (json, < String > [
163+ 'kernelsuVariant' ,
164+ 'kernelsu_variant' ,
165+ ]),
166+ kernelsuBranch: _readStringAlias (json, < String > [
167+ 'kernelsuBranch' ,
168+ 'kernelsu_branch' ,
169+ ]),
148170 version: _readString (json['version' ]),
149- buildTime: _readString (json['buildTime' ]),
150- virtualizationSupport: _readString (json['virtualizationSupport' ]),
151- zramExtraAlgos: _readString (json['zramExtraAlgos' ]),
171+ buildTime: _readStringAlias (json, < String > ['buildTime' , 'build_time' ]),
172+ virtualizationSupport: _readStringAlias (json, < String > [
173+ 'virtualizationSupport' ,
174+ 'virtualization_support' ,
175+ ]),
176+ zramExtraAlgos: _readStringAlias (json, < String > [
177+ 'zramExtraAlgos' ,
178+ 'zram_extra_algos' ,
179+ ]),
152180 features: _readBoolMap (json['features' ]),
153181 );
154182 }
@@ -326,38 +354,80 @@ class AbkRuntimeModule {
326354 author: _readString (json['author' ]),
327355 type: _readString (json['type' ]),
328356 version: _readString (json['version' ]),
329- versionCode: _readInt (json['versionCode' ]),
357+ versionCode: _readIntAlias (json, < String > ['versionCode' , 'version_code ' ]),
330358 description: _readString (json['description' ]),
331- repoUrl: _readString (json['repoUrl' ]),
359+ repoUrl: _readStringAlias (json, < String > ['repoUrl' , 'repo_url ' ]),
332360 stage: _readString (json['stage' ]),
333- entryKind: _readString (json['entryKind' ]),
361+ entryKind: _readStringAlias (json, < String > ['entryKind' , 'entry_kind ' ]),
334362 source: _readString (json['source' ]),
335- extensionId: _readString (json['extensionId' ]),
336- companionPackage: _readString (json['companionPackage' ]),
337- companionDisplayName: _readString (json['companionDisplayName' ]),
338- companionAssetName: _readString (json['companionAssetName' ]),
339- companionDownloadUrl: _readString (json['companionDownloadUrl' ]),
340- serviceActivity: _readString (json['serviceActivity' ]),
341- moduleDir: _readString (json['moduleDir' ]),
342- webRoot: _readString (json['webRoot' ]),
363+ extensionId: _readStringAlias (json, < String > [
364+ 'extensionId' ,
365+ 'extension_id' ,
366+ ]),
367+ companionPackage: _readStringAlias (json, < String > [
368+ 'companionPackage' ,
369+ 'companion_package' ,
370+ ]),
371+ companionDisplayName: _readStringAlias (json, < String > [
372+ 'companionDisplayName' ,
373+ 'companion_display_name' ,
374+ ]),
375+ companionAssetName: _readStringAlias (json, < String > [
376+ 'companionAssetName' ,
377+ 'companion_asset_name' ,
378+ ]),
379+ companionDownloadUrl: _readStringAlias (json, < String > [
380+ 'companionDownloadUrl' ,
381+ 'companion_download_url' ,
382+ ]),
383+ serviceActivity: _readStringAlias (json, < String > [
384+ 'serviceActivity' ,
385+ 'service_activity' ,
386+ ]),
387+ moduleDir: _readStringAlias (json, < String > ['moduleDir' , 'module_dir' ]),
388+ webRoot: _readStringAlias (json, < String > ['webRoot' , 'web_root' ]),
343389 readonly: json['readonly' ] == true ,
344390 controllable: json['controllable' ] == true ,
345391 enabled: json['enabled' ] != false ,
346392 update: json['update' ] == true ,
347393 remove: json['remove' ] == true ,
348- hasWebUi: json['hasWebUi' ] == true ,
349- hasActionScript: json['hasActionScript' ] == true ,
350- actionSupported: json['actionSupported' ] == true ,
351- requiresCompanionApp: json['requiresCompanionApp' ] == true ,
352- settingsSupported: json['settingsSupported' ] == true ,
353- perAppSupported: json['perAppSupported' ] == true ,
354- oobePriority: _readInt (json['oobePriority' ]),
355- kpmArgs: _readString (json['kpmArgs' ]),
356- groupId: _readString (json['groupId' ]),
357- groupName: _readString (json['groupName' ]),
358- groupRole: _readString (json['groupRole' ]),
359- groupDescription: _readString (json['groupDescription' ]),
360- groupRepoUrl: _readString (json['groupRepoUrl' ]),
394+ hasWebUi: _readBoolAlias (json, < String > ['hasWebUi' , 'has_web_ui' ]),
395+ hasActionScript: _readBoolAlias (json, < String > [
396+ 'hasActionScript' ,
397+ 'has_action_script' ,
398+ ]),
399+ actionSupported: _readBoolAlias (json, < String > [
400+ 'actionSupported' ,
401+ 'action_supported' ,
402+ ]),
403+ requiresCompanionApp: _readBoolAlias (json, < String > [
404+ 'requiresCompanionApp' ,
405+ 'requires_companion_app' ,
406+ ]),
407+ settingsSupported: _readBoolAlias (json, < String > [
408+ 'settingsSupported' ,
409+ 'settings_supported' ,
410+ ]),
411+ perAppSupported: _readBoolAlias (json, < String > [
412+ 'perAppSupported' ,
413+ 'per_app_supported' ,
414+ ]),
415+ oobePriority: _readIntAlias (json, < String > [
416+ 'oobePriority' ,
417+ 'oobe_priority' ,
418+ ]),
419+ kpmArgs: _readStringAlias (json, < String > ['kpmArgs' , 'kpm_args' ]),
420+ groupId: _readStringAlias (json, < String > ['groupId' , 'group_id' ]),
421+ groupName: _readStringAlias (json, < String > ['groupName' , 'group_name' ]),
422+ groupRole: _readStringAlias (json, < String > ['groupRole' , 'group_role' ]),
423+ groupDescription: _readStringAlias (json, < String > [
424+ 'groupDescription' ,
425+ 'group_description' ,
426+ ]),
427+ groupRepoUrl: _readStringAlias (json, < String > [
428+ 'groupRepoUrl' ,
429+ 'group_repo_url' ,
430+ ]),
361431 );
362432 }
363433}
@@ -750,6 +820,53 @@ String readPrettyJson(Map<String, dynamic> json) {
750820 return const JsonEncoder .withIndent (' ' ).convert (json);
751821}
752822
823+ dynamic _readAliasValue (Map <String , dynamic > json, List <String > keys) {
824+ for (final key in keys) {
825+ if (json.containsKey (key)) return json[key];
826+ }
827+ return null ;
828+ }
829+
830+ String _readStringAlias (
831+ Map <String , dynamic > json,
832+ List <String > keys, {
833+ String fallback = '' ,
834+ }) {
835+ return _readString (_readAliasValue (json, keys), fallback: fallback);
836+ }
837+
838+ int _readIntAlias (
839+ Map <String , dynamic > json,
840+ List <String > keys, {
841+ int fallback = 0 ,
842+ }) {
843+ return _readInt (_readAliasValue (json, keys), fallback: fallback);
844+ }
845+
846+ bool _readBoolAlias (
847+ Map <String , dynamic > json,
848+ List <String > keys, {
849+ bool fallback = false ,
850+ }) {
851+ final value = _readAliasValue (json, keys);
852+ if (value is bool ) return value;
853+ return fallback;
854+ }
855+
856+ Map <String , dynamic > _readMapAlias (
857+ Map <String , dynamic > json,
858+ List <String > keys,
859+ ) {
860+ return _readMap (_readAliasValue (json, keys));
861+ }
862+
863+ List <Map <String , dynamic >> _readMapListAlias (
864+ Map <String , dynamic > json,
865+ List <String > keys,
866+ ) {
867+ return _readMapList (_readAliasValue (json, keys));
868+ }
869+
753870String _readString (dynamic value, {String fallback = '' }) {
754871 if (value is String ) return value;
755872 return fallback;
0 commit comments