getScreenRadius function

Future<double> getScreenRadius()

Implementation

Future<double> getScreenRadius() async {
  if (kIsWeb || kIsWasm) {
    return 0.0;
  }

  if (Platform.isMacOS) {
    try {
      return await LiquidFlutterWindowUtils.instance.getScreenRadius();
    } catch (e) {
      // Fallback to 0.0 if API call fails
      return 0.0;
    }
  }

  if (Platform.isAndroid) {
    try {
      final devicePixelRatio = PlatformDispatcher.instance.views.first.devicePixelRatio;
      return await LiquidFlutterWindowUtils.instance.getScreenRadius() / devicePixelRatio;
    } catch (e) {
      // Fallback to 0.0 if API call fails
      return 0.0;
    }
  }

  if (Platform.isIOS) {
    // Switch device type
    DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin();
    final iosInfo = await deviceInfoPlugin.iosInfo;
    final deviceType = iosInfo.utsname.machine;

    if (iosRadiusMap.containsKey(deviceType)) {
      return iosRadiusMap[deviceType]!;
    }
  }

  return 0.0;
}