private void updateModel(Image imageToUpdate){
  Log.v(TAG,"updateModel, imageToUpdate " + imageToUpdate);
  for (  Image image : mImagesList) {
    if (image.equals(imageToUpdate)) {
      Log.v(TAG,"updateModel, found imageToUpdate " + imageToUpdate);
      image.setVisibility(imageToUpdate.isVisible());
      break;
    }
  }
  int index=mImagesList.indexOf(imageToUpdate);
  Log.v(TAG,"updateModel, index " + index);
  mAdapter.notifyItemChanged(index);
  Rect dirty=new Rect();
  View viewAtPosition=mLayoutManager.findViewByPosition(index);
  viewAtPosition.getDrawingRect(dirty);
  mRecyclerView.invalidate(dirty);
}

private void updateModel ( Image imageToUpdate ) { Log . v ( TAG , "updateModel, imageToUpdate " + imageToUpdate ) ; for ( Image image : mImagesList ) { if ( image . equals ( imageToUpdate ) ) { Log . v ( TAG , "updateModel, found imageToUpdate " + imageToUpdate ) ; image . setVisibility ( imageToUpdate . isVisible ( ) ) ; break ; } } int index = mImagesList . indexOf ( imageToUpdate ) ; Log . v ( TAG , "updateModel, index " + index ) ; mAdapter . notifyItemChanged ( index ) ; Rect dirty = new Rect ( ) ; View viewAtPosition = mLayoutManager . findViewByPosition ( index ) ; viewAtPosition . getDrawingRect ( dirty ) ; mRecyclerView . invalidate ( dirty ) ; }
this method basically changes visibility of concrete item
