initPlatform method

Future initPlatform()

Implementation

Future<dynamic> initPlatform() async {
  WidgetsFlutterBinding.ensureInitialized();
  if (!_hasInit) {
    _country = ui.window.locale.countryCode ?? '';
    _language = ui.window.locale.languageCode;
    _direction = Bidi.isRtlLanguage(ui.window.locale.languageCode) ? 1 : 0;
    var deviceInfoPlugin = DeviceInfoPlugin();
    var deviceData = <String, dynamic>{};
    final info = await PackageInfo.fromPlatform();
    try {
      if (Platform.isAndroid) {
        deviceData = _readAndroidBuildData(await deviceInfoPlugin.androidInfo);
        _os = 'android';
        _apiLevel = deviceData['version.sdkInt'] ?? 0;
        _osVersion = deviceData['version.release'] ?? '0';
        _device = deviceData['device'] ?? '';
        _model = deviceData['model'] ?? '';
        _appName = info.appName;
        _appVersion = info.version;
        _packageName = info.packageName;
      } else if (Platform.isIOS) {
        deviceData = _readIosDeviceInfo(await deviceInfoPlugin.iosInfo);
        _os = 'ios';
        _osVersion = deviceData['systemVersion'] ?? '1.0';
        _device = deviceData['utsname.machine'] ?? '';
        _model = deviceData['model'] ?? '';
        _deviceId = deviceData['id'] ?? '';
        _codeName = deviceData['codename'] ?? '';
        _appName = info.appName;
        _appVersion = info.version;
        _packageName = info.packageName;
      } else if (Platform.isMacOS) {
        deviceData = _readMacOsDeviceInfo(await deviceInfoPlugin.macOsInfo);
        _os = 'macos';
        _osVersion = deviceData['osRelease'] ?? '1.0';
        _model = deviceData['model'] ?? '';
      } else if (Platform.isWindows) {
        deviceData = _readWindowsDeviceInfo(await deviceInfoPlugin.windowsInfo);
      }
      _hasInit = true;
    } on PlatformException {
      LogUtils.e(_kTag, 'Failed to get platform version.');
      _hasInit = false;
    }
  }
}