refreshDimensions method

Future<void> refreshDimensions()

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;
    }
  }
}