private void setupRecyclerView() { mRecyclerView.setLayoutManager(mLayoutManager); mRecyclerView.setHasFixedSize(true); String tag = getArguments().getString(K.KEY_TAG.name()); Cursor cursor = mActivity .getContentResolver() .query( SchemaPosts.CONTENT_URI, null, SchemaPosts.COLUMN_SRC_SEARCH + "=?", new String[] {tag}, BaseColumns._ID + " DESC"); if (cursor.moveToFirst()) { mViewAdapter = new PostCursorRecyclerViewAdapter(mActivity, cursor); } else { if (cursor != null && !cursor.isClosed()) { cursor.close(); } mViewAdapter = new PostCursorRecyclerViewAdapter(mActivity, null); } mViewAdapter.setHasStableIds(Boolean.TRUE); mRecyclerView.setAdapter(mViewAdapter); // scroll listerer on recycle view mRecyclerViewScrollListener = new EndlessRecyclerOnScrollListener( mLayoutManager, AppConstants.KV.LOAD_MORE.getIntValue()) { @Override public void onLoadMore(RecyclerView rv, int current_page) { mHandler.post( new Runnable() { @Override public void run() { callForRemotePosts(Boolean.TRUE); } }); } }; reInitializeScrollListener(mRecyclerView); // STYLE :: DIVIDER mRecyclerView.addItemDecoration(new SimpleDividerItemDecoration(mActivity)); }
private void reInitializeScrollListener(RecyclerView rv) { try { // buggy code rv.removeOnScrollListener(mRecyclerViewScrollListener); mRecyclerViewScrollListener = new EndlessRecyclerOnScrollListener( mLayoutManager, AppConstants.KV.LOAD_MORE.getIntValue()) { @Override public void onLoadMore(RecyclerView rv, int current_page) { mHandler.post( new Runnable() { @Override public void run() { callForRemotePosts(Boolean.TRUE); } }); } }; rv.addOnScrollListener(mRecyclerViewScrollListener); } catch (Exception e) { // muted // e.printStackTrace(); } }