import 'dart:io'; import 'package:device_info_plus/device_info_plus.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:get_it/get_it.dart'; import '../services/utils_services.dart'; class UtilsProvider with ChangeNotifier { UtilsServices get service => GetIt.I(); final DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin(); Map deviceInfo = {}; String ipAddress = "null"; Future initPlatformState() async { Map deviceData = {}; try { if (Platform.isAndroid) { deviceData = _readAndroidBuildData(await deviceInfoPlugin.androidInfo); //print("I was here 1"); //print(deviceData.values.toList()); } else if (Platform.isIOS) { //print("I was here 2"); deviceData = _readIosDeviceInfo(await deviceInfoPlugin.iosInfo); } deviceInfo = deviceData; //print(deviceData.entries); return true; } on PlatformException { //print("I was here 3"); deviceData = { 'Error:': 'Failed to get platform version.' }; return false; } } Map _readAndroidBuildData(AndroidDeviceInfo build) { return { 'version.securityPatch': build.version.securityPatch, 'version.sdkInt': build.version.sdkInt, 'version.release': build.version.release, 'version.previewSdkInt': build.version.previewSdkInt, 'version.incremental': build.version.incremental, 'version.codename': build.version.codename, 'version.baseOS': build.version.baseOS, 'board': build.board, 'bootloader': build.bootloader, 'brand': build.brand, 'device': build.device, 'display': build.display, 'fingerprint': build.fingerprint, 'hardware': build.hardware, 'host': build.host, 'id': build.id, 'manufacturer': build.manufacturer, 'model': build.model, 'product': build.product, 'supported32BitAbis': build.supported32BitAbis, 'supported64BitAbis': build.supported64BitAbis, 'supportedAbis': build.supportedAbis, 'tags': build.tags, 'type': build.type, 'isPhysicalDevice': build.isPhysicalDevice, // 'androidId': build.id., 'systemFeatures': build.systemFeatures, }; } Map _readIosDeviceInfo(IosDeviceInfo data) { return { 'name': data.name, 'systemName': data.systemName, 'systemVersion': data.systemVersion, 'model': data.model, 'localizedModel': data.localizedModel, 'identifierForVendor': data.identifierForVendor, 'isPhysicalDevice': data.isPhysicalDevice, 'utsname.release:': data.utsname.release, 'utsname.version:': data.utsname.version, 'utsname.machine:': data.utsname.machine, }; } Future getIpAddress() async { try { final authResult = await service.getIPAddress(); if ((authResult.statusCode == 200 || authResult.statusCode == 201) && authResult.data != null) { ipAddress = authResult.data!.ip.toString().toLowerCase() == "null" ? "null" : authResult.data!.ip; return true; } else { //popup(NavigatorService.navigatorKey.currentContext!,"Ok",title: "Error",description: "A problem has occurred Try again !"); //print("A problem has occurred Try again ! -- Error 1 --"); // log(authresult.data.toString()); // log(authresult.statusCode.toString()); return false; } } catch (e) { //popup(NavigatorService.navigatorKey.currentContext!,"Ok",title: "Error",description: "A problem has occurred Try again !"); //print("A problem has occurred Try again ! -- Error 2 --"); return false; } } }