buildAppDimensContext function

ViewAppDimensContext buildAppDimensContext(
  1. MediaQueryData? media,
  2. FlutterView? view
)

Builds a ViewAppDimensContext from the ambient MediaQueryData (or a FlutterView fallback), mirroring the KMP window-handle contract.

Implementation

ViewAppDimensContext buildAppDimensContext(
    MediaQueryData? media, FlutterView? view) {
  if (media != null) {
    final dpr = media.devicePixelRatio;
    final safeDpr = dpr.isFinite && dpr > 0 ? dpr : 1.0;
    final w = media.size.width;
    final h = media.size.height;
    final fsRaw = media.textScaler.scale(10) / 10;
    final fs = fsRaw.isFinite && fsRaw > 0 ? fsRaw : 1.0;
    return ViewAppDimensContext(
      configuration: ScreenConfiguration(
        screenWidthDp: w.round().clamp(1, 1 << 20),
        screenHeightDp: h.round().clamp(1, 1 << 20),
        densityDpi: (safeDpr * 160).round(),
        fontScale: fs,
        orientation: h >= w
            ? ScreenConfiguration.orientationPortrait
            : ScreenConfiguration.orientationLandscape,
      ),
      density: safeDpr,
      xdpi: safeDpr * 160,
      fontScale: fs,
      isInMultiWindowMode: false,
    );
  }
  if (view != null) return ViewAppDimensContext.fromView(view);
  return ViewAppDimensContext(configuration: ScreenConfiguration.baseline);
}