@Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { super.onCreate(savedInstanceState); View view = inflater.inflate(R.layout.soft_tags_wall_view, container, false); ButterKnife.bind(this, view); ((AppCompatActivity) mActivity).setSupportActionBar(mToolbar); ((AppCompatActivity) mActivity).getSupportActionBar().setDisplayHomeAsUpEnabled(true); ((AppCompatActivity) mActivity) .getSupportActionBar() .setHomeAsUpIndicator(R.drawable.back_arrow); mToolbar.setNavigationOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { // hack to get click working mActivity.onBackPressed(); } }); // tag name String tag = getArguments().getString(K.KEY_TAG.name()); mToolbar.setTitle(tag); // recyclers mLayoutManager = new LinearLayoutManager(mActivity); setupRecyclerView(); return view; }
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 reQueryLocal() { try { 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.getCount() > 0) { int beforeIdx = mLayoutManager.findFirstVisibleItemPosition(); mViewAdapter.changeCursor(cursor); mViewAdapter.notifyDataSetChanged(); } else { cursor.close(); } } catch (Exception e) { // muted; } }
private void callForRemotePosts(boolean isPaginating) { String tag = getArguments().getString(K.KEY_TAG.name()); // construct context from preferences if any? Bundle iArgs = new Bundle(); if (isPaginating) { Object _state = mRecyclerView.getTag(); // prevent unnecessary traffic if (_state != null && (_state instanceof Utils.State)) { if (((Utils.State) _state).isPendingLoadMore()) { return; } } Utils.State state = new Utils.State(); state.setPendingLoadMore(true); mRecyclerView.setTag(state); // Utils.PreferencesManager pref = Utils.PreferencesManager.getInstance(); // Map<String, String> entries = // pref.getValueAsMap(AppConstants.API.PREF_POSTS_LIST_USER.getValue()); // for (Map.Entry<String, String> e : entries.entrySet()) { // iArgs.putString(e.getKey(), e.getValue()); // } } // context iArgs.putString(KEY_BY.getValue(), KEY_POSTS_SEARCH.getValue()); iArgs.putString(KEY_KEY.getValue(), tag); // call for intent Intent mServiceIntent = new Intent(mActivity, PostsPullService.class); mServiceIntent.putExtras(iArgs); mActivity.startService(mServiceIntent); }