collectDeviceSpecs method

  1. @override
Future<DeviceSpecs> collectDeviceSpecs()
override

Implementation

@override
Future<DeviceSpecs> collectDeviceSpecs() async {
  final Map<dynamic, dynamic> deviceSpecs = await methodChannel.invokeMethod(
    'collect',
  );

  final platform = Platform.isIOS
      ? DevicePlatform.ios
      : DevicePlatform.android;
  final dynamic osVersionValue = deviceSpecs['osVersion'];
  final int? osVersion = osVersionValue is int
      ? osVersionValue
      : osVersionValue is String
      ? int.tryParse(osVersionValue)
      : null;

  return DeviceSpecs(
    platform: platform,
    cpuCores: deviceSpecs['cpuCores'],
    ramMb: deviceSpecs['ramMb'],
    osVersion: osVersion,
    isEmulator: deviceSpecs['isEmulator'] ?? false,
    performanceClass: deviceSpecs['performanceClass'],
  );
}