safer config reader

This commit is contained in:
Stephan D
2026-03-17 13:52:23 +01:00
parent c2c5ad7b3b
commit d2f9d61640
4 changed files with 182 additions and 36 deletions

View File

@@ -0,0 +1,84 @@
import 'package:flutter/material.dart';
import 'package:pshared/config/reader.dart';
void applyCommonConfiguration(
Map<String, dynamic> configJson, {
required String currentApiProto,
required void Function(String) setApiProto,
required String currentApiHost,
required void Function(String) setApiHost,
required String currentApiEndpoint,
required void Function(String) setApiEndpoint,
required String currentAmplitudeSecret,
required void Function(String) setAmplitudeSecret,
required String currentAmplitudeServerZone,
required void Function(String) setAmplitudeServerZone,
required String currentPosthogApiKey,
required void Function(String) setPosthogApiKey,
required String currentPosthogHost,
required void Function(String) setPosthogHost,
required Locale currentDefaultLocale,
required void Function(Locale) setDefaultLocale,
required String currentDefaultCurrency,
required void Function(String) setDefaultCurrency,
required String currentWsProto,
required void Function(String) setWsProto,
required String currentWsEndpoint,
required void Function(String) setWsEndpoint,
required int currentDefaultDimensionLength,
required void Function(int) setDefaultDimensionLength,
required String currentClientId,
required void Function(String) setClientId,
required Color currentThemeColor,
required void Function(Color) setThemeColor,
}) {
setApiProto(readConfigString(configJson, 'apiProto', currentApiProto));
setApiHost(readConfigString(configJson, 'apiHost', currentApiHost));
setApiEndpoint(
readConfigString(configJson, 'apiEndpoint', currentApiEndpoint),
);
setAmplitudeSecret(
readConfigString(configJson, 'amplitudeSecret', currentAmplitudeSecret),
);
setAmplitudeServerZone(
readConfigString(
configJson,
'amplitudeServerZone',
currentAmplitudeServerZone,
),
);
setPosthogApiKey(
readConfigString(configJson, 'posthogApiKey', currentPosthogApiKey),
);
setPosthogHost(
readConfigString(configJson, 'posthogHost', currentPosthogHost),
);
setDefaultLocale(
Locale(
readConfigString(
configJson,
'defaultLocale',
currentDefaultLocale.languageCode,
),
),
);
setDefaultCurrency(
readConfigString(configJson, 'defaultCurrency', currentDefaultCurrency),
);
setWsProto(readConfigString(configJson, 'wsProto', currentWsProto));
setWsEndpoint(readConfigString(configJson, 'wsEndpoint', currentWsEndpoint));
setDefaultDimensionLength(
readConfigInt(
configJson,
'defaultDimensionLength',
currentDefaultDimensionLength,
),
);
setClientId(readConfigString(configJson, 'clientId', currentClientId));
setThemeColor(
Color(
readConfigInt(configJson, 'themeColor', currentThemeColor.toARGB32()),
),
);
}