@Override public boolean onEditorAction(@NonNull RecyclerView recyclerView, @NonNull ScrambleAdapter<?> adapter, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull TextView v, int actionId, KeyEvent event) { MergeRecyclerAdapter.LocalAdapter la = mMergeRecyclerAdapter.getAdapterOffsetForItem(viewHolder.getAdapterPosition()); if (la.mAdapter == mItemAdapter) { if (viewHolder instanceof TextInfoViewHolderFactory.ViewHolder) { mSnackbarLogic.make(v, "Action button pressed : " + v.getText(), Snackbar.LENGTH_SHORT).show(); return true; } } return false; }
@Override public void onClick(@NonNull RecyclerView recyclerView, @NonNull ScrambleAdapter<?> adapter, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull View view) { MergeRecyclerAdapter.LocalAdapter la = mMergeRecyclerAdapter.getAdapterOffsetForItem(viewHolder.getAdapterPosition()); if (la.mAdapter == mItemAdapter) { if (viewHolder instanceof TextInfoViewHolderFactory.ViewHolder) { TextInfoViewHolderFactory.ViewHolder vh = (TextInfoViewHolderFactory.ViewHolder) viewHolder; mSnackbarLogic.make(view, "Action button pressed : " + vh.editText.getText(), Snackbar.LENGTH_SHORT).show(); } } } };
@Override public boolean onLongClick(@NonNull RecyclerView recyclerView, @NonNull ScrambleAdapter<?> adapter, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull View view) { if (recyclerView.getId() == R.id.recycler) { String item = (String) adapter.getItemAt(viewHolder.getAdapterPosition()); mSnackbarLogic.make(view, item + " is long clicked.", Snackbar.LENGTH_SHORT).show(); return true; } return false; } };
@Override public void onClick(@NonNull RecyclerView recyclerView, @NonNull SingleViewAdapter2 adapter, @NonNull SingleViewAdapter2.ViewHolder viewHolder, @NonNull View view) { if (recyclerView.getId() == R.id.recycler) { MergeRecyclerAdapter.LocalAdapter la = mMergeRecyclerAdapter.getAdapterOffsetForItem(viewHolder.getAdapterPosition()); if (la.mAdapter == mStringsHeaderAdapter) { mSnackbarLogic.make(view, "Strings Header is clicked.", Snackbar.LENGTH_SHORT).show(); } else if (la.mAdapter == mNumbersHeaderAdapter) { mSnackbarLogic.make(view, "Numbers Header is clicked.", Snackbar.LENGTH_SHORT).show(); } } }
@Override public void onClick(@NonNull RecyclerView recyclerView, @NonNull ScrambleAdapter<?> adapter, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull View view) { if (recyclerView.getId() == R.id.recycler) { String item = (String) adapter.getItemAt(viewHolder.getAdapterPosition()); mSnackbarLogic.make(view, item + " is clicked.", Snackbar.LENGTH_SHORT).show(); } }
@Override public boolean onLongClick(@NonNull RecyclerView recyclerView, @NonNull SingleViewAdapter2 adapter, @NonNull SingleViewAdapter2.ViewHolder viewHolder, @NonNull View view) { if (recyclerView.getId() == R.id.recycler) { MergeRecyclerAdapter.LocalAdapter la = mMergeRecyclerAdapter.getAdapterOffsetForItem(viewHolder.getAdapterPosition()); if (la.mAdapter == mStringsHeaderAdapter) { mSnackbarLogic.make(view, "Strings Header is long clicked.", Snackbar.LENGTH_SHORT).show(); } else if (la.mAdapter == mNumbersHeaderAdapter) { mSnackbarLogic.make(view, "Numbers Header is long clicked.", Snackbar.LENGTH_SHORT).show(); } return true; } return false; } };
@Override public void onClick(@NonNull RecyclerView recyclerView, @NonNull SingleViewAdapter2 adapter, @NonNull SingleViewAdapter2.ViewHolder viewHolder, @NonNull View view) { if (recyclerView.getId() == R.id.recycler) { MergeRecyclerAdapter.LocalAdapter la = mMergeRecyclerAdapter.getAdapterOffsetForItem(viewHolder.getAdapterPosition()); if (la.mAdapter == mHeaderAdapter) { mSnackbarLogic.make(view, "Header is clicked.", Snackbar.LENGTH_SHORT).show(); } else if (la.mAdapter == mFooterAdapter) { mSnackbarLogic.make(view, "Footer is clicked.", Snackbar.LENGTH_SHORT).show(); } } }
@Override public void onClick(@NonNull RecyclerView recyclerView, @NonNull ScrambleAdapter<?> adapter, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull View view) { if (recyclerView.getId() == R.id.recycler) { MergeRecyclerAdapter.LocalAdapter la = mMergeRecyclerAdapter.getAdapterOffsetForItem(viewHolder.getAdapterPosition()); if (la.mAdapter == mItemsAdapter) { String item = mItemsAdapter.getItemAt(la.mLocalPosition); mSnackbarLogic.make(view, item + " is clicked.", Snackbar.LENGTH_SHORT).show(); } } }
@Override public boolean onLongClick(@NonNull RecyclerView recyclerView, @NonNull ScrambleAdapter<?> adapter, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull View view) { if (recyclerView.getId() == R.id.recycler) { MergeRecyclerAdapter.LocalAdapter la = mMergeRecyclerAdapter.getAdapterOffsetForItem(viewHolder.getAdapterPosition()); if (la.mAdapter == mItemsAdapter) { String item = mItemsAdapter.getItemAt(la.mLocalPosition); mSnackbarLogic.make(view, item + " is long clicked.", Snackbar.LENGTH_SHORT).show(); } return true; } return false; } };
@Override public void onClick(@NonNull RecyclerView recyclerView, @NonNull MyTreeItemAdapter adapter, @NonNull MyTreeItemAdapter.ViewHolder viewHolder, @NonNull View view) { if (recyclerView.getId() == R.id.recycler) { MyTreeItem item = adapter.getItemAt(viewHolder.getAdapterPosition()).getItem(); mSnackbarLogic.make(view, "Clicked: " + item.getText(), Snackbar.LENGTH_SHORT).show(); } }
@Override public boolean onLongClick(@NonNull RecyclerView recyclerView, @NonNull MyTreeItemAdapter adapter, @NonNull MyTreeItemAdapter.ViewHolder viewHolder, @NonNull View view) { if (recyclerView.getId() == R.id.recycler) { MyTreeItem item = adapter.getItemAt(viewHolder.getAdapterPosition()).getItem(); mSnackbarLogic.make(view, "Long clicked: " + item.getText(), Snackbar.LENGTH_SHORT).show(); return true; } return false; } };
@Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { if (parent.getId() == R.id.spinner) { Object item = parent.getSelectedItem(); mSnackbarLogic.make(parent, item + " is selected.", Snackbar.LENGTH_SHORT).show(); } }
@Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { if (parent.getId() == R.id.spinner) { SpinnerMyTreeItemAdapter.WrappedItem wrappedItem = (SpinnerMyTreeItemAdapter.WrappedItem) parent.getItemAtPosition(position); MyTreeItem item = wrappedItem.getItem(); String text = (item != null) ? item.getText() : "null"; mSnackbarLogic.make(parent, text + " is selected.", Snackbar.LENGTH_SHORT).show(); } }
@Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { if (parent.getId() == R.id.spinner) { OrdinalLabel item = (OrdinalLabel) parent.getItemAtPosition(position); String text = (item != null) ? item.getLabel(getResources()) : "null"; mSnackbarLogic.make(view, text + " is selected.", Snackbar.LENGTH_SHORT).show(); } }
@Test public void clickItem_numberItem() { TestUtils.Entry<Number> entry = find(mAdapter.getItems(), Number.class, 0); onView(withId(R.id.recycler)).perform(scrollToPosition(entry.index)); onView(withIdInRecyclerView(R.id.text, R.id.recycler, entry.index)).perform(click()); verify(mActivity.mSnackbarLogic).make( any(View.class), argThat(allOf(containsString("Number"), containsString(String.valueOf(entry.object)))), anyInt() ); }
@Test public void clickItem_stringItem() { TestUtils.Entry<String> entry = find(mAdapter.getItems(), String.class, 0); onView(withId(R.id.recycler)).perform(scrollToPosition(entry.index)); onView(withIdInRecyclerView(R.id.text, R.id.recycler, entry.index)).perform(click()); verify(mActivity.mSnackbarLogic).make( any(View.class), argThat(allOf(containsString("String"), containsString(String.valueOf(entry.object)))), anyInt() ); }
@Test public void clickItem_stringItem() { for (int i = 0; i < 10; i++) { TestUtils.Entry<String> entry = find(mAdapter.getItems(), String.class, i); onView(withId(R.id.recycler)).perform(scrollToPosition(entry.index)); onView(withIdInRecyclerView(R.id.text, R.id.recycler, entry.index)).perform(click()); verify(mActivity.mSnackbarLogic).make( any(View.class), argThat(containsString(String.valueOf(entry.object))), anyInt() ); } } }
@Test public void clickSpinner() { CodeLabelExampleActivity activity = mActivityTestRule.launchActivity(null); activity.mSnackbarLogic = spy(new MockSnackbarLogic()); for (OrdinalLabel item : OrdinalLabel.values()) { onView(withId(R.id.spinner)).perform(click()); onData(is(item)).perform(click()); Resources res = activity.getResources(); verify(activity.mSnackbarLogic).make(any(View.class), contains(item.getLabel(res)), anyInt()); } } }
@Test public void run() { Entry<String> entry = find(mAdapter.getOrig().getItems(), String.class, 4); onView(withId(R.id.spinner)).perform(click()); onData(is(entry.object)).perform(click()); onView(withId(R.id.spinner)).check(hasSelectedItem(is(entry.object))); verify(mActivity.mSnackbarLogic).make(any(View.class), contains(entry.object), anyInt()); } }
@Test public void clickSome() { Entry<WrappedItem> entry = find(mAdapter.getItems(), WrappedItem.class, 4); onView(withId(R.id.spinner)).perform(click()); onData(is(entry.object)).perform(click()); onView(withId(R.id.spinner)).check(hasSelectedItem(is(entry.object))); verify(mActivity.mSnackbarLogic).make(any(View.class), contains(entry.object.getItem().getText()), anyInt()); } }