create static method

Implementation

static Future<AuthDeviceInfoModel> create() async {
  final deviceInfo = DeviceInfoPlugin();
  String id;
  String name;

  if (kIsWeb) {
    final _info = await deviceInfo.webBrowserInfo;
    name = _info.userAgent ?? "unknown";
    id = AuthenticationBasicUtils.generateUuid();
  } else if (Platform.isAndroid) {
    final _info = (await deviceInfo.androidInfo);
    id = _info.id;
    if (id == "unknown") {
      id = AuthenticationBasicUtils.generateUuid();
    }
    name = "${_info.manufacturer} ${_info.model} ${_info.product} - ${_info.version}";
  } else if (Platform.isIOS) {
    final _info = (await deviceInfo.iosInfo);
    id = _info.identifierForVendor ?? AuthenticationBasicUtils.generateUuid();
    name = "${_info.model} ${_info.name} - ${_info.utsname.sysname} ${_info.utsname.release}";
  } else {
    id = AuthenticationBasicUtils.generateUuid();
    name = "unknown";
  }

  return AuthDeviceInfoModel(
    id: id,
    name: name,
  );
}