public int findFirstViewWithTag(String testTag, int actualPosition) {
   int itemPosInMap = 0;
   for (int i = 0; i < pictureMap.size(); i++) {
     EndlessPagerModel item = pictureMap.get(i);
     Log.i(
         TAG,
         "findFirstViewWithTag (pos= "
             + String.valueOf(itemPosInMap)
             + "): "
             + item.getTag()
             + "\nTrue? - "
             + String.valueOf(item.getTag().equals(testTag)));
     if (item.getTag().equals(testTag)) {
       Log.i(TAG, "If-Case - Return of p: " + String.valueOf(itemPosInMap));
       break;
     }
     itemPosInMap++;
   }
   // Because of FakeItems + 2
   itemPosInMap += 1;
   int newPosition = itemPosInMap + ((actualPosition / getRealSizeOfData()) * pictureMap.size());
   Log.i(
       TAG,
       "End of Method - Return of p: "
           + String.valueOf(itemPosInMap)
           + "\nSwitchToPos: "
           + String.valueOf(newPosition));
   return newPosition;
 }
  @TargetApi(Build.VERSION_CODES.LOLLIPOP)
  @Override
  public Object instantiateItem(ViewGroup container, int position) {

    //        int virtualPosition = position % getRealSizeOfData();
    //
    //        EndlessPagerModel pagerModel = pictureMap.get(virtualPosition);

    EndlessPagerModel pagerModel;
    Log.i(TAG, "Position:" + String.valueOf(position));
    if (position == 0) {
      pagerModel = pictureMap.get(pictureMap.size() - 1);
      //            Log.i(TAG, "FIRST ITEM (FAKE LAST ITEM): " +
      // String.valueOf(pagerModel.getId()));
      Log.i(TAG, "FIRST ITEM (FAKE LAST ITEM)");
    } else if (position == getCount() - 1) {
      pagerModel = pictureMap.get(0);
      //            Log.i(TAG, "LAST ITEM (FAKE FIRST ITEM): " +
      // String.valueOf(pagerModel.getId()));
      Log.i(TAG, "LAST ITEM (FAKE FIRST ITEM)");
    } else {
      pagerModel = pictureMap.get(position - 1);
      //            Log.i(TAG, "NORMAL ITEM: " + String.valueOf(pagerModel.getId()));
      Log.i(TAG, "NORMAL ITEM");
    }

    ImageView imageView = new ImageView(mContext);
    if (pagerModel == null) {
      Log.i(TAG, "Position: " + String.valueOf(position) + " - pageModel is null");
    }
    imageView.setImageDrawable(mContext.getDrawable(pagerModel.getResID()));
    switch (pagerModel.getTag()) {
      case "NOTHING":
        imageView.setColorFilter(Color.GRAY);
        break;
      case "ANYTHING":
        imageView.setColorFilter(Color.RED);
        break;
    }
    imageView.setTag(pagerModel.getTag());
    container.addView(imageView);
    return imageView;
  }