getInitialData method
Implementation
Future<void> getInitialData() async {
// Guard against multiple calls (e.g., when AppRootWidget rebuilds)
if (_hasInitialized) {
logv('getInitialData: Already initialized, skipping');
return;
}
_hasInitialized = true;
try {
emitSafe(state.copyWith(appStatus: AppStatus.loading));
// Initialize version update service
await _initializeVersionUpdateService();
// Initialize app lifecycle service
_initializeLifecycleService();
final isNetworkRequiredOrOverriden = (AppConfigBase.networkRequiredOverride == 'null')
? networkRequired
: (AppConfigBase.networkRequiredOverride == 'true');
if (!isNetworkRequiredOrOverriden) {
logd(
'Network connection not required during app start - setting networkStatus to connected');
emitSafe(state.copyWith(networkStatus: NetworkStatus.connected));
await _finalizeAppStartup();
} else {
logd('Checking network connection as required during app start');
await _initializeNetworkChecking();
}
} catch (e) {
loge(e, 'Error in getInitialData');
emitSafe(state.copyWith(
appStatus: AppStatus.error,
networkErrorMessage: 'Failed to initialize app: ${e.toString()}',
));
}
}