deviceStatus static method

Future<Map<String, String>> deviceStatus()

Implementation

static Future<Map<String, String>> deviceStatus() async {
  final connectivityResults = await Connectivity().checkConnectivity();

  var battery = Battery();

  var returnVal = <String, String>{
    'device_status[network_cell_connected]':
        connectivityResults.contains(ConnectivityResult.mobile).toString(),
    'device_status[network_wifi_connected]':
        connectivityResults.contains(ConnectivityResult.wifi).toString(),
  };

  try {
    returnVal.addAll(<String, String>{
      'device_status[battery_charging]':
          ((await battery.onBatteryStateChanged.first) !=
                  BatteryState.discharging)
              .toString(),
      'device_status[battery_level]': (await battery.batteryLevel).toString(),
    });
  } catch (err) {
    print(err);
  }

  try {
    final diskSpacePlus = DiskSpacePlus();
    final freeMb = await diskSpacePlus.getFreeDiskSpace;
    final totalMb = await diskSpacePlus.getTotalDiskSpace;
    if (freeMb != null) {
      final freeBytes = (freeMb * 1024 * 1024).round();
      returnVal['device_status[disk_free]'] = freeBytes.toString();
      returnVal['device_status[disk_usable]'] = freeBytes.toString();
    }
    if (totalMb != null) {
      returnVal['device_status[disk_total]'] =
          (totalMb * 1024 * 1024).round().toString();
    }
  } catch (err) {
    print(err);
  }

  try {
    returnVal['device_status[memory_free]'] =
        SysInfo.getFreePhysicalMemory().toString();
    returnVal['device_status[memory_total]'] =
        SysInfo.getTotalPhysicalMemory().toString();
  } catch (err) {
    print(err);
  }

  return returnVal;
}