import 'package:flutter/cupertino.dart';
import 'package:hmg_flutter_template/classes/consts.dart';

class SizeConfig {
  static double _blockWidth = 0;
  static double _blockHeight = 0;

  static double? realScreenWidth;
  static double? realScreenHeight;
  static double? screenWidth;
  static double? screenHeight;
  static double? textMultiplier;
  static double? imageSizeMultiplier;
  static double? heightMultiplier;
  static bool isPortrait = true;
  static double? widthMultiplier;
  static bool isMobilePortrait = false;
  static bool isMobile = false;
  static bool isHeightShort = false;
  static bool isHeightVeryShort = false;
  static bool isHeightMiddle = false;
  static bool isHeightLarge = false;
  static bool isWidthLarge = false;

  void init(BoxConstraints constraints, Orientation orientation) {
    realScreenHeight = constraints.maxHeight;
    realScreenWidth = constraints.maxWidth;
    if (constraints.maxWidth <= ApiConsts.MAX_SMALL_SCREEN) {
      isMobile = true;
    }
    if (constraints.maxHeight < 600) {
      isHeightVeryShort = true;
    } else if (constraints.maxHeight < 800) {
      isHeightShort = true;
    } else if (constraints.maxHeight < 1000) {
      isHeightMiddle = true;
    } else {
      isHeightLarge = true;
    }

    if (constraints.maxWidth > 600) {
      isWidthLarge = true;
    }

    if (orientation == Orientation.portrait) {
      isPortrait = true;
      if (realScreenWidth! < 450) {
        isMobilePortrait = true;
      }
      // textMultiplier = _blockHeight;
      // imageSizeMultiplier = _blockWidth;
      screenHeight = realScreenHeight;
      screenWidth = realScreenWidth;
    } else {
      isPortrait = false;
      isMobilePortrait = false;
      // textMultiplier = _blockWidth;
      // imageSizeMultiplier = _blockHeight;
      screenHeight = realScreenWidth;
      screenWidth = realScreenHeight;
    }
    _blockWidth = screenWidth! / 100;
    _blockHeight = screenHeight! / 100;

    textMultiplier = _blockHeight;
    imageSizeMultiplier = _blockWidth;
    heightMultiplier = _blockHeight;
    widthMultiplier = _blockWidth;

    print('realScreenWidth $realScreenWidth');
    print('realScreenHeight $realScreenHeight');
    print('textMultiplier $textMultiplier');
    print('imageSizeMultiplier $imageSizeMultiplier');
    print('heightMultiplier$heightMultiplier');
    print('widthMultiplier $widthMultiplier');
    print('isPortrait $isPortrait');
    print('isMobilePortrait $isMobilePortrait');
  }

  static getTextMultiplierBasedOnWidth({double? width}) {
    // TODO handel LandScape case
    if (width != null) {
      return width / 100;
    }
    return widthMultiplier;
  }

  static getWidthMultiplier({double? width}) {
    // TODO handel LandScape case
    if (width != null) {
      return width / 100;
    }
    return widthMultiplier;
  }

  static getHeightMultiplier({double? height}) {
    // TODO handel LandScape case
    if (height != null) {
      return height / 100;
    }
    return heightMultiplier;
  }
}
