private void initGrid() {
    // Setting up images grid
    final int cols = getResources().getInteger(R.integer.images_grid_columns);

    mViews.grid.setLayoutManager(new GridLayoutManager(this, cols));
    mViews.grid.setItemAnimator(new DefaultItemAnimator());

    mGridAdapter = new FlickrPhotoListAdapter(this);
    mGridAdapter.setLoadingOffset(PAGE_SIZE / 2);
    mGridAdapter.setCallbacks(
        new EndlessRecyclerAdapter.LoaderCallbacks() {
          @Override
          public boolean canLoadNextItems() {
            return mGridAdapter.canLoadNext();
          }

          @Override
          public void loadNextItems() {
            // We should either load all items that were loaded before state save / restore,
            // or next page if we already loaded all previously shown items
            int count = Math.max(mPhotoCount, mGridAdapter.getCount() + PAGE_SIZE);
            Events.create(FlickrApi.LOAD_IMAGES_EVENT).param(count).post();
          }
        });
    mViews.grid.setAdapter(mGridAdapter);
  }