init method
Future<void>
init({
- Future<
void> onReinitializeDio()?, - List<
Environment> ? environments, - @Deprecated('Use environments parameter instead') List<
Environment> ? customEnvironments,
Initialize configuration from stored preferences
onReinitializeDio - Optional callback to reinitialize Dio when environment changes
environments - Optional list of custom environments to use instead of defaults
customEnvironments - Deprecated: Use environments instead
Implementation
Future<void> init({
Future<void> Function()? onReinitializeDio,
List<Environment>? environments,
@Deprecated('Use environments parameter instead')
List<Environment>? customEnvironments,
}) async {
// Support both parameters for backward compatibility
final envList = environments ?? customEnvironments;
if (envList != null && envList.isNotEmpty) {
_environments = envList;
}
if (onReinitializeDio != null) {
this.onReinitializeDio = onReinitializeDio;
}
final savedBaseUrl = DevToolsPreferences.getData(key: _baseUrlKey);
final savedEnvName = DevToolsPreferences.getData(key: _environmentNameKey);
// Use saved values if available, otherwise use build-mode defaults
if (savedBaseUrl != null && savedEnvName != null) {
_currentBaseUrl = savedBaseUrl;
_currentEnvironmentName = savedEnvName;
} else {
// First run - set defaults based on build mode
_currentBaseUrl = defaultEnvironment.baseUrl;
_currentEnvironmentName = defaultEnvironment.name;
}
// In release mode, disable logging by default
if (isRelease) {
_dioLoggerEnabled =
DevToolsPreferences.getData(key: _dioLoggerEnabledKey) ?? false;
_networkAnalysisEnabled = false; // Always disabled in release
} else {
_dioLoggerEnabled =
DevToolsPreferences.getData(key: _dioLoggerEnabledKey) ?? true;
_networkAnalysisEnabled =
DevToolsPreferences.getData(key: _networkAnalysisEnabledKey) ?? false;
}
_isInitialized = true;
}