public void release() { mAdapterTags.clear(); mAdapters.clear(); int numUniqueAdapters = mUniqueAdapters.size(); for (int i = 0; i < numUniqueAdapters; i++) { ComposedChildAdapterDataObserver observer = mObservers.get(i); RecyclerView.Adapter adapter = mUniqueAdapters.get(i); adapter.unregisterAdapterDataObserver(observer); observer.release(); } mUniqueAdapters.clear(); mObservers.clear(); }
@Nullable public RecyclerView.Adapter removeAdapter(@NonNull ComposedChildAdapterTag tag) { final int segment = getAdapterSegment(tag); if (segment < 0) { return null; } final RecyclerView.Adapter adapter = mAdapters.remove(segment); mAdapterTags.remove(segment); final int uniqueAdapterIndex = mUniqueAdapters.indexOf(adapter); if (uniqueAdapterIndex < 0) { throw new IllegalStateException("Something wrong. Inconsistency detected."); } final ComposedChildAdapterDataObserver observer = mObservers.get(uniqueAdapterIndex); observer.unregisterChildAdapterTag(tag); if (!observer.hasChildAdapters()) { adapter.unregisterAdapterDataObserver(observer); } return adapter; }
@Override public void unregisterAdapterDataObserver(@NonNull AdapterDataObserver observer) { super.unregisterAdapterDataObserver(observer); adapter.unregisterAdapterDataObserver(observer); }
/** * Set the adapter which will add and remove views from this layout * * @param adapter the adapter */ public void setAdapter(@Nullable RecyclerView.Adapter adapter) { if (this.adapter != null) { try { this.adapter.unregisterAdapterDataObserver(observer); } catch (Exception ignored) { } } this.adapter = adapter; if (this.adapter != null) { this.adapter.registerAdapterDataObserver(observer); } recreateViews(); }
@Override public void setAdapter(final Adapter adapter) { if (getAdapter() != adapter) { try { if (getAdapter() != null) { getAdapter().unregisterAdapterDataObserver(mAdapterDataObserver); } } catch (final Exception e) { // ignore } super.setAdapter(adapter); if (adapter != null) { adapter.registerAdapterDataObserver(mAdapterDataObserver); } } updateEmptyView(); }
void stopObservingItems() { adapter.unregisterAdapterDataObserver(itemsObserver); }
@SuppressWarnings("unchecked") private void setAdapter(RecyclerView.Adapter adapter) { if (mAdapter != null) { mAdapter.unregisterAdapterDataObserver(mHeaderPositionsObserver); } if (adapter instanceof StickyHeaders) { mAdapter = (T) adapter; mAdapter.registerAdapterDataObserver(mHeaderPositionsObserver); mHeaderPositionsObserver.onChanged(); } else { mAdapter = null; mHeaderPositions.clear(); } }
@Override public void unregisterAdapterDataObserver(RecyclerView.AdapterDataObserver observer) { wrapped.unregisterAdapterDataObserver(observer); }
@Override public void unregisterAdapterDataObserver(@NonNull RecyclerView.AdapterDataObserver observer) { super.unregisterAdapterDataObserver(observer); if (!hasObservers()) { for (int i = 0, size = adapters.length; i < size; ++i) { adapters[i].unregisterAdapterDataObserver(adapterObservers[i]); } } }
@Override protected void onDetachedFromWindow() { if (mRecyclerView != null) { try { mRecyclerView.getAdapter().unregisterAdapterDataObserver(mDataObserver); } catch (IllegalStateException ise) { // Do nothing } } super.onDetachedFromWindow(); }
public <T extends MaterialListAdapter> void setAdapter(@NonNull final T adapter) { final RecyclerView.Adapter oldAdapter = getAdapter(); if (oldAdapter != null) { oldAdapter.unregisterAdapterDataObserver(mEmptyViewObserver); } super.setAdapter(adapter); adapter.registerAdapterDataObserver(mEmptyViewObserver); }
@Override public void onChanged() { RecyclerView.LayoutManager layoutManager = getListView().getLayoutManager(); if (layoutManager != null) { layoutManager.onRestoreInstanceState(recyclerViewLayoutManagerState); } recyclerViewLayoutManagerState = null; adapter.unregisterAdapterDataObserver(this); } });
public void setSuggestionsAdapter(RecyclerView.Adapter adapter) { if (mRecyclerView.getAdapter() != null) mRecyclerView.getAdapter().unregisterAdapterDataObserver(mDataObserver); mRecyclerView.setAdapter(adapter); adapter.registerAdapterDataObserver(mDataObserver); mDataObserver.onChanged(); }
@Override public void setAdapter(Adapter adapter) { Adapter oldAdapter = getAdapter(); if (oldAdapter != null) oldAdapter.unregisterAdapterDataObserver(observer); super.setAdapter(adapter); if (adapter != null) adapter.registerAdapterDataObserver(observer); checkEmpty(); }
/** * If there is a new adapter on the attached RecyclerView it will resister the data observer and * clear the current visibility states */ private void processNewAdapterIfNecessary() { if (attachedRecyclerView != null && attachedRecyclerView.getAdapter() != null) { if (lastAdapterSeen != attachedRecyclerView.getAdapter()) { if (lastAdapterSeen != null) { // Unregister the old adapter lastAdapterSeen.unregisterAdapterDataObserver(this.observer); } // Register the new adapter attachedRecyclerView.getAdapter().registerAdapterDataObserver(this.observer); lastAdapterSeen = attachedRecyclerView.getAdapter(); } } }
/** * overwrite the unregisterAdapterDataObserver to correctly forward all events to the FastAdapter * * @param observer */ @Override public void unregisterAdapterDataObserver(RecyclerView.AdapterDataObserver observer) { super.unregisterAdapterDataObserver(observer); if (mFastAdapter != null) { mFastAdapter.unregisterAdapterDataObserver(observer); } }
/** * overwrite the unregisterAdapterDataObserver to correctly forward all events to the FastAdapter * * @param observer */ @Override public void unregisterAdapterDataObserver(RecyclerView.AdapterDataObserver observer) { super.unregisterAdapterDataObserver(observer); if (mFastAdapter != null) { mFastAdapter.unregisterAdapterDataObserver(observer); } }
/** * overwrite the unregisterAdapterDataObserver to correctly forward all events to the FastAdapter * * @param observer */ @Override public void unregisterAdapterDataObserver(RecyclerView.AdapterDataObserver observer) { super.unregisterAdapterDataObserver(observer); if (mAdapter != null) { mAdapter.unregisterAdapterDataObserver(observer); } }
/** * {@inheritDoc} */ @Override public void release() { onRelease(); if (mWrappedAdapter != null && mBridgeObserver != null) { mWrappedAdapter.unregisterAdapterDataObserver(mBridgeObserver); } mWrappedAdapter = null; mBridgeObserver = null; }
@Override public void unregisterAdapterDataObserver(RecyclerView.AdapterDataObserver observer) { super.unregisterAdapterDataObserver(observer); mAdapter.unregisterAdapterDataObserver(observer); }