handleInitEvent method
Implementation
Stream<FastAppInfoBlocState> handleInitEvent(
FastAppInfoDocument appInfoDocument,
) async* {
if (canInitialize) {
_logger.debug('Initializing...');
isInitializing = true;
yield currentState.copyWith(isInitializing: true);
// Determine the user language and country code from the device locale.
final (deviceLanguageCode, deviceCountryCode) =
await getPreferredLocale();
final persistedDocument = await _retrievePersistedAppInfo();
final packageInfo = await PackageInfo.fromPlatform();
final osVersion = await _getOsVersion();
final osName = await getOsName();
final appVersion = packageInfo.version;
final appBuildNumber = packageInfo.buildNumber;
var document = appInfoDocument;
_logger
..info('OS name', osName)
..info('OS version', osVersion)
..info('App build', appBuildNumber)
..info('App version', appVersion)
..info('Device language code', deviceLanguageCode)
..info('Device country code', deviceCountryCode);
document = document.copyWith(
// Values controlled by the persisted document.
previousDatabaseVersion: persistedDocument.databaseVersion,
appLaunchCounter: persistedDocument.appLaunchCounter,
// Values controlled by the device.
deviceLanguageCode: deviceLanguageCode,
deviceCountryCode: deviceCountryCode,
appBuildNumber: appBuildNumber,
appVersion: appVersion,
osVersion: osVersion,
);
addEvent(FastAppInfoBlocEvent.initialized(document));
}
}