public void switchFriendsGroup(String groupId) { getLoaderManager().destroyLoader(NEW_MSG_LOADER_ID); getLoaderManager().destroyLoader(MIDDLE_MSG_LOADER_ID); getLoaderManager().destroyLoader(OLD_MSG_LOADER_ID); getPullToRefreshListView().onRefreshComplete(); dismissFooterView(); savedCurrentLoadingMsgViewPositon = -1; if (timeLineAdapter instanceof AbstractAppListAdapter) { ((AbstractAppListAdapter) timeLineAdapter) .setSavedMiddleLoadingViewPosition(savedCurrentLoadingMsgViewPositon); } positionCache.put(currentGroupId, Utility.getCurrentPositionFromListView(getListView())); saveNewMsgCountToPositionsCache(); setSelected(groupId); newMsgTipBar.clearAndReset(); if (groupDataCache.get(currentGroupId) == null || groupDataCache.get(currentGroupId).getSize() == 0) { getList().getItemList().clear(); getAdapter().notifyDataSetChanged(); getPullToRefreshListView().setRefreshing(); loadNewMsg(); } else { getList().replaceData(groupDataCache.get(currentGroupId)); getAdapter().notifyDataSetChanged(); setListViewPositionFromPositionsCache(); saveGroupIdToDB(); new RefreshReCmtCountTask(this, getList()) .executeOnExecutor(MyAsyncTask.THREAD_POOL_EXECUTOR); } }
private void savePositionToPositionsCache() { positionCache.put(currentGroupId, Utility.getCurrentPositionFromListView(getListView())); }