/** * @throws java.lang.IllegalStateException if the adapter does not have stable ids. * @throws java.lang.IllegalArgumentException if the adapter does not implement {@link com.nhaarman.listviewanimations.util.Swappable}. */ private void setAdapterInternal(@NonNull final ListAdapter adapter) { ListAdapter actualAdapter = adapter; if (actualAdapter instanceof WrapperListAdapter) { actualAdapter = ((WrapperListAdapter) actualAdapter).getWrappedAdapter(); } if (!actualAdapter.hasStableIds()) { throw new IllegalStateException("Adapter doesn't have stable ids! Make sure your adapter has stable ids, and override hasStableIds() to return true."); } if (!(actualAdapter instanceof Swappable)) { throw new IllegalArgumentException("Adapter should implement Swappable!"); } mAdapter = actualAdapter; }
@Override @SuppressWarnings("unchecked") public void setAdapter(final ListAdapter adapter) { ListAdapter innerAdapter = adapter; if (innerAdapter instanceof WrapperListAdapter) { WrapperListAdapter wrapperAdapter = (WrapperListAdapter) innerAdapter; innerAdapter = wrapperAdapter.getWrappedAdapter(); if (!(innerAdapter instanceof AsymmetricGridViewAdapterContract)) throw new UnsupportedOperationException("Wrapped adapter must implement AsymmetricGridViewAdapterContract"); } else { if (!(innerAdapter instanceof AsymmetricGridViewAdapterContract)) throw new UnsupportedOperationException("Adapter must implement AsymmetricGridViewAdapterContract"); } gridAdapter = (AsymmetricGridViewAdapterContract) innerAdapter; super.setAdapter(innerAdapter); gridAdapter.recalculateItemsPerRow(); }
public void onItemClick(AdapterView<?> parent, View v, int position, long id) { /* Get the HighScoreListAdapter back from parent view. * The Adapter is wrapped, so we need to cast it back. * Use the id to get the corresponding data base entry from the * adapter. */ DSDBGameEntry entry = (DSDBGameEntry) ((HighScoreListAdapter) ((WrapperListAdapter) ((ListView) parent) .getAdapter()).getWrappedAdapter()).getItem((int) id); Intent intent = getIntent(); // TODO: Use a constant! intent.putExtra("GAMEID", entry.GAMEID); setResult(INTENTRESULT_PLAY_REPLAY, intent); finish(); }
@Test @UiThreadTest public void listViewHeaderAdapter() { List<String> items = Arrays.asList("one", "two", "three"); TestHelpers.ViewModel viewModel = new TestHelpers.ViewModel.Builder(items, ItemBinding.<String>of(me.tatarka.bindingcollectionadapter2.BR.item, R.layout.item)).build(); ViewDataBinding binding = DataBindingUtil.inflate(inflater, R.layout.list_view, null, false); binding.setVariable(me.tatarka.bindingcollectionadapter2.BR.viewModel, viewModel); binding.executePendingBindings(); // addHeaderView must be called after the adapter is set. ((ListView) binding.getRoot()).addHeaderView(new View(binding.getRoot().getContext())); // Trigger rebind to exercise the case when the adapter it wrapped in a HeaderListViewAdapter binding.setVariable(me.tatarka.bindingcollectionadapter2.BR.viewModel, viewModel); binding.executePendingBindings(); ListView listView = (ListView) binding.getRoot(); @SuppressWarnings("unchecked") BindingListViewAdapter<String> adapter = (BindingListViewAdapter<String>) ((WrapperListAdapter) listView.getAdapter()).getWrappedAdapter(); assertThat(TestHelpers.iterable(adapter)).containsExactlyElementsOf(items); }
@Override protected void onPostExecute(String[][] result) { // Set the titles & counts arrays in this file and notify the adapter. ListView navigationList = (ListView) m_activity.findViewById(R.id.fragment_navigation_drawer); WrapperListAdapter wrapperAdapter = (WrapperListAdapter) navigationList.getAdapter(); ArrayAdapter<String[]> adapter = (ArrayAdapter<String[]>) wrapperAdapter.getWrappedAdapter(); // Update the data in the adapter. adapter.clear(); adapter.addAll(result); // Update the subtitle. if(Constants.s_fragmentFeeds.isVisible()) { Utilities.setTitlesAndDrawerAndPage(null, -10); } }
@Override public void onScrollStateChanged(AbsListView view, int scrollState) { if (AppConfig.INSTANCE.getBoolean(view.getContext(), AppConfig.Key.SCROLLING_PAUSE_LOAD) && view.getAdapter() != null) { ListAdapter listAdapter = view.getAdapter(); if (listAdapter instanceof WrapperListAdapter) { listAdapter = ((WrapperListAdapter) listAdapter).getWrappedAdapter(); } if (listAdapter instanceof BaseAdapter) { if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL) { if (!sketch.getConfiguration().isPauseLoadEnabled()) { sketch.getConfiguration().setPauseLoadEnabled(true); } } else if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) { if (sketch.getConfiguration().isPauseLoadEnabled()) { sketch.getConfiguration().setPauseLoadEnabled(false); ((BaseAdapter) listAdapter).notifyDataSetChanged(); } } } } if (absListScrollListener != null) { absListScrollListener.onScrollStateChanged(view, scrollState); } }
/** * Saves the current state of the specified <var>adapter</var>. * * @param adapter The adapter of which state to save. Should be instance of {@link StatefulAdapter} * or one of wrapper adapter ({@link android.widget.WrapperListAdapter}) implementations. * @return Adapter's saved state or {@code null} or empty state if the adapter does not save its * state or it is not a stateful adapter. */ private Parcelable saveAdapterState(Adapter adapter) { if (adapter instanceof StatefulAdapter) { return ((StatefulAdapter) adapter).saveInstanceState(); } else if (adapter instanceof WrapperListAdapter) { return saveAdapterState(((WrapperListAdapter) adapter).getWrappedAdapter()); } return null; }
/** * Restores the saved state of the specified <var>adapter</var>. * * @param adapter The adapter of which state to restore. Should be instance of {@link StatefulAdapter} * or one of wrapper adapter ({@link android.widget.WrapperListAdapter}) implementations. * @param adapterState The previously saved adapter state via {@link #saveAdapterState(Adapter)}. */ private void restoreAdapterState(Adapter adapter, Parcelable adapterState) { if (adapter instanceof StatefulAdapter) { ((StatefulAdapter) adapter).restoreInstanceState(adapterState); } else if (adapter instanceof WrapperListAdapter) { restoreAdapterState(((WrapperListAdapter) adapter).getWrappedAdapter(), adapterState); } }
public static SubjectFactory<WrapperListAdapterSubject, WrapperListAdapter> type() { return new SubjectFactory<WrapperListAdapterSubject, WrapperListAdapter>() { @Override public WrapperListAdapterSubject getSubject(FailureStrategy fs, WrapperListAdapter that) { return new WrapperListAdapterSubject(fs, that); } }; }
private PinnedSectionGridAdapter getPinnedAdapter() { PinnedSectionGridAdapter adapter; if (getAdapter() instanceof WrapperListAdapter) adapter= (PinnedSectionGridAdapter) ((WrapperListAdapter)getAdapter()).getWrappedAdapter(); else adapter = (PinnedSectionGridAdapter) getAdapter(); return adapter; }
private PinnedSectionListAdapter getPinnedAdapter() { PinnedSectionListAdapter adapter; if (getAdapter() instanceof WrapperListAdapter) adapter= (PinnedSectionListAdapter) ((WrapperListAdapter)getAdapter()).getWrappedAdapter(); else adapter = (PinnedSectionListAdapter) getAdapter(); return adapter; }
@SuppressWarnings({ "rawtypes", "unchecked" }) private static void setAdapterProxy(final AdapterView adapterView) { Adapter adapter = adapterView.getAdapter(); if (adapter == null || Proxy.isProxyClass(adapter.getClass())) { // Thou shalt not Proxy a Proxy! return; } if (adapterView instanceof ExpandableListView) { // FIXME - Right now, skip the support for ExpandableListView. // This class throws exceptions on setAdapter(Adapter), and requires // a special adapter that only works with it.... Lame API break! return; } // Collect the Adapter sub-interfaces that we // would like to proxy. List<Class<?>> interfaces = new ArrayList<Class<?>>(4); interfaces.add(Adapter.class); if (adapter instanceof ListAdapter) { interfaces.add(ListAdapter.class); } if (adapter instanceof WrapperListAdapter) { interfaces.add(WrapperListAdapter.class); } if (adapter instanceof SpinnerAdapter) { interfaces.add(SpinnerAdapter.class); } // Create a proxy for the adapter to intercept // the 'getView' Adapter newAdapter = (Adapter) PXAdapterInvocationHandler.newInstance(adapterView, interfaces.toArray(new Class<?>[interfaces.size()])); // Set the proxy as the adapter adapterView.setAdapter(newAdapter); }
ListAdapter getAdapter() { final ListAdapter adapter = mAbsListView.getAdapter(); if (adapter instanceof WrapperListAdapter) { WrapperListAdapter wrapperAdapter = (WrapperListAdapter) adapter; return wrapperAdapter.getWrappedAdapter(); } return adapter; }
private QuickReturnAdapter getAdapter() { ListAdapter adapter = listView.getAdapter(); if (adapter instanceof WrapperListAdapter) { adapter = ((WrapperListAdapter) adapter).getWrappedAdapter(); } if (!(adapter instanceof QuickReturnAdapter)) { throw new UnsupportedOperationException( "Your QuickReturn ListView adapter must be an instance of QuickReturnAdapter."); } return (QuickReturnAdapter) adapter; }
public BaseAdapter getBaseAdapter() { Adapter adapter = getAdapter(); if (adapter != null) { if (adapter instanceof WrapperListAdapter) { adapter = ((WrapperListAdapter) adapter).getWrappedAdapter(); } if (adapter instanceof BaseAdapter) { return (BaseAdapter) adapter; } } return null; }
protected WrapperListAdapterSubject(FailureStrategy failureStrategy, WrapperListAdapter subject) { super(failureStrategy, subject); }
/** * Unwraps any {@link android.widget.WrapperListAdapter}, commonly {@link * android.widget.HeaderViewListAdapter}. */ private static Adapter unwrapAdapter(Adapter adapter) { return adapter instanceof WrapperListAdapter ? unwrapAdapter(((WrapperListAdapter) adapter).getWrappedAdapter()) : adapter; }
public WrapperListAdapterAssert(WrapperListAdapter actual) { super(actual, WrapperListAdapterAssert.class); }