buildAppDimensContext function
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);
}