public void setScaleType(boolean setToFitIfFirstPhotoIsPortrait) {
   if (mMediaViewCollection != null) {
     if (setToFitIfFirstPhotoIsPortrait && mMediaViewCollection.isFirstViewPortrait())
       mMediaViewCollection.setScaleType(ScaleType.FIT_CENTER);
     else mMediaViewCollection.setScaleType(ScaleType.CENTER_CROP);
   }
 }
 private void createSingleImageView() {
   View view = mMediaViewCollection.getView(0);
   if (view.getParent() != null) ((ViewGroup) view.getParent()).removeView(view);
   if (mAllowFullScreenMediaViewing) {
     view.setOnClickListener(
         new OnMediaItemClickedListener(mMediaViewCollection.getContentForView(view)));
   } else {
     view.setOnClickListener(null);
     view.setClickable(false);
   }
   this.addView(view);
 }
 public void updateView() {
   this.removeAllViews();
   if (mMediaViewCollection == null || mMediaViewCollection.getCount() == 0) {
     if (mShowPlaceholder) createPlaceholderView();
   } else if (!mMediaViewCollection.containsLoadedMedia()) {
     if (mShowDLButtonForBitWise) {
       if (mMediaViewCollection.isLoadingMedia()) createDownloadingView(false);
       else createDownloadView();
     } else if (mShowPlaceholderWhileLoading) createDownloadingView(true);
   } else if (mMediaViewCollection.getCount() > 1) {
     createMultiImageView();
   } else if (mMediaViewCollection.getCount() == 1) {
     createSingleImageView();
   }
 }
 @Override
 public void onClick(View v) {
   if (v == mDownloadView) {
     mMediaViewCollection.refreshViews(true, false);
     updateView();
   }
 }
  @Override
  protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    if (!mShowPlaceholder
        && (mMediaViewCollection == null || mMediaViewCollection.getCount() == 0)) {
      setMeasuredDimension(0, 0);
      return;
    }

    if (mMediaViewCollection != null
        && !mMediaViewCollection.containsLoadedMedia()
        && !mShowPlaceholderWhileLoading) {
      if (this.mShowDLButtonForBitWise) {
        Log.v("MediaView", "No cached image, but show DL button");
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
      } else {
        Log.v("MediaView", "No cached image, set height to 0");
        setMeasuredDimension(0, 0);
      }
    } else if (mHeightInhibitor == 0) {
      super.onMeasure(widthMeasureSpec, heightMeasureSpec);
      Log.v(
          "MediaView",
          "Contains cached image, no constraints, set height to " + this.getMeasuredHeight());
    } else if (MeasureSpec.getMode(widthMeasureSpec) != MeasureSpec.UNSPECIFIED) {
      int inhibitedHeightSpec =
          MeasureSpec.makeMeasureSpec(
              (int) (MeasureSpec.getSize(widthMeasureSpec) / mHeightInhibitor),
              MeasureSpec.getMode(widthMeasureSpec));
      super.onMeasure(widthMeasureSpec, inhibitedHeightSpec);
      Log.v("MediaView", "Cached image, set height to " + this.getMeasuredHeight());
    } else {
      super.onMeasure(widthMeasureSpec, heightMeasureSpec);
      int width = this.getMeasuredWidth();
      if (mHeightInhibitor != 0) {
        int height = (int) (width / mHeightInhibitor);
        super.onMeasure(
            MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY),
            MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY));
      }
      Log.v("MediaView", "Contains cached image, set height to " + this.getMeasuredHeight());
    }
  }
 private void createDownloadView() {
   if (mDownloadView == null) {
     mDownloadView =
         LayoutInflater.from(getContext())
             .inflate(R.layout.story_media_bitwise_placeholder, this, false);
   }
   mDownloadView.setOnClickListener(this);
   ImageView iv = ((ImageView) mDownloadView.findViewById(R.id.ivDownloadIcon));
   iv.setImageResource(
       mMediaViewCollection.isFirstViewVideo()
           ? R.drawable.ic_load_video
           : R.drawable.ic_load_photo);
   this.addView(mDownloadView);
   iv.clearAnimation();
 }
  private void createDownloadingView(boolean useFinalSize) {
    if (mDownloadView == null) {
      mDownloadView =
          LayoutInflater.from(getContext())
              .inflate(R.layout.story_media_bitwise_placeholder, this, false);
    }
    if (useFinalSize) mDownloadView.getLayoutParams().height = LayoutParams.MATCH_PARENT;
    else mDownloadView.getLayoutParams().height = UIHelpers.dpToPx(50, getContext());

    mDownloadView.setOnClickListener(null);
    ImageView iv = ((ImageView) mDownloadView.findViewById(R.id.ivDownloadIcon));
    iv.setImageResource(
        mMediaViewCollection.isFirstViewVideo()
            ? R.drawable.ic_load_video
            : R.drawable.ic_context_load);
    this.addView(mDownloadView);
    iv.startAnimation(AnimationUtils.loadAnimation(getContext(), R.anim.rotate));
  }
 public boolean isMediaLoaded() {
   return mMediaViewCollection != null && mMediaViewCollection.containsLoadedMedia();
 }
 public int getCount() {
   if (mMediaViewCollection == null) return 0;
   return mMediaViewCollection.getCount();
 }