refreshDimensions method
Refresh dimensions from native side
Implementation
Future<void> refreshDimensions() async {
try {
final result = await _methodChannel
.invokeMapMethod<String, dynamic>('getScreenDimensions');
if (result != null) {
_screenWidth = result['width'] as double;
_screenHeight = result['height'] as double;
_scaleFactor = result['scale'] as double;
_statusBarHeight = result['statusBarHeight'] as double;
_safeAreaTop = result['safeAreaTop'] as double? ?? 0.0;
_safeAreaBottom = result['safeAreaBottom'] as double? ?? 0.0;
_safeAreaLeft = result['safeAreaLeft'] as double? ?? 0.0;
_safeAreaRight = result['safeAreaRight'] as double? ?? 0.0;
developer.log(
'Screen dimensions updated: $_screenWidth x $_screenHeight',
name: 'ScreenUtilities');
_notifyDimensionChangeListeners();
}
} catch (e) {
developer.log('Error refreshing dimensions: $e', name: 'ScreenUtilities');
// Fallback to reasonable defaults if needed
if (_screenWidth == 0 || _screenHeight == 0) {
_screenWidth = 400;
_screenHeight = 800;
_scaleFactor = 2.0;
}
}
}