content: package com.alium.orin.views;
  
  import android.annotation.TargetApi;
  import android.content.Context;
  import android.os.Build;
  import android.util.AttributeSet;
  import android.widget.FrameLayout;
  import android.widget.RelativeLayout;
  
  /**
   * @author Karim Abou Zeid (kabouzeid)
   */
  public class WidthFitSquareLayout extends RelativeLayout {
  
      private boolean forceSquare = true;
  
      public WidthFitSquareLayout(Context context) {
          super(context);
      }
  
      public WidthFitSquareLayout(Context context, AttributeSet attrs) {
          super(context, attrs);
      }
  
      public WidthFitSquareLayout(Context context, AttributeSet attrs, int defStyleAttr) {
          super(context, attrs, defStyleAttr);
      }
  
      @TargetApi(Build.VERSION_CODES.LOLLIPOP)
      public WidthFitSquareLayout(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
          super(context, attrs, defStyleAttr, defStyleRes);
      }
  
      @Override
      protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
          //noinspection SuspiciousNameCombination
          super.onMeasure(widthMeasureSpec, forceSquare ? widthMeasureSpec : heightMeasureSpec);
      }
  
      public void forceSquare(boolean forceSquare) {
          this.forceSquare = forceSquare;
          requestLayout();
      }
  }
  