ResponsivityHelper constructor

ResponsivityHelper({
  1. required MediaQueryData mediaQueryData,
  2. bool useDesignSizeAsReference = false,
  3. FontSizeMode fontSizeModeParam = FontSizeMode.devicePixelRatio,
  4. Size screenReferenceSizeParam = const Size(0, 0),
})

Implementation

ResponsivityHelper({
  required MediaQueryData mediaQueryData,
  bool useDesignSizeAsReference = false,
  FontSizeMode fontSizeModeParam = FontSizeMode.devicePixelRatio,
  Size screenReferenceSizeParam = const Size(0, 0),
})  : assert(
          (fontSizeModeParam != FontSizeMode.referenceScreenValue ||
              (fontSizeModeParam == FontSizeMode.referenceScreenValue &&
                  screenReferenceSizeParam.height > 10)),
          'if useSPForFontSize is false you must specify the screen height of the designs you are following.'),
      assert(
          !(useDesignSizeAsReference == true &&
              (screenReferenceSizeParam.height < 10 ||
                  screenReferenceSizeParam.width < 10)),
          'If useDesignSizeAsReference is true, then you need to specify the screen size that you will take as reference') {
  fontSizeMode = fontSizeModeParam;
  screenHeightPxReference = screenReferenceSizeParam.height;
  screenWidthPxReference = screenReferenceSizeParam.width;
  screenData = mediaQueryData;
  screenWidth = mediaQueryData.size.width;
  screenHeight = mediaQueryData.size.height;
  horizontalUnit = useDesignSizeAsReference
      ? screenWidth / screenWidthPxReference
      : screenWidth / 100;
  verticalUnit = useDesignSizeAsReference
      ? screenHeight / screenHeightPxReference
      : screenHeight / 100;

  _safeAreaHorizontal =
      mediaQueryData.padding.left + mediaQueryData.padding.right;
  _safeAreaVertical =
      mediaQueryData.padding.top + mediaQueryData.padding.bottom;

  safeBlockHorizontal = useDesignSizeAsReference
      ? (screenWidth - _safeAreaHorizontal) / screenWidthPxReference
      : (screenWidth - _safeAreaHorizontal) / 100;
  safeBlockVertical = useDesignSizeAsReference
      ? (screenHeight - _safeAreaVertical) / screenHeightPxReference
      : (screenHeight - _safeAreaVertical) / 100;

  orientation = mediaQueryData.orientation;
  deviceScreenType = getDeviceType(mediaQueryData);
  safeAreaPadding = mediaQueryData.padding;
}