diff --git a/hashtag-view/src/main/java/com/greenfrvr/hashtagview/HashtagView.java b/hashtag-view/src/main/java/com/greenfrvr/hashtagview/HashtagView.java index 8de3a39..448cc37 100644 --- a/hashtag-view/src/main/java/com/greenfrvr/hashtagview/HashtagView.java +++ b/hashtag-view/src/main/java/com/greenfrvr/hashtagview/HashtagView.java @@ -271,8 +271,7 @@ public boolean removeItem(@NonNull T item) { } /** - * @param transformer Implementation of {@link com.greenfrvr.hashtagview.HashtagView.DataTransform} or - * {@link com.greenfrvr.hashtagview.HashtagView.DataStateTransform} + * @param transformer Implementation of {@link com.greenfrvr.hashtagview.HashtagView.DataTransform} * interface. Can be used for building label from several custom data model * fields or to prepare {@link android.text.Spannable} label representation. * @param Custom data model @@ -281,14 +280,26 @@ public void setTransformer(@NonNull DataTransform transformer) { this.transformer = transformer; } + /** + * @param selector Implementation of {@link com.greenfrvr.hashtagview.HashtagView.DataSelector} + * interface. Can be used to preselect some items. + * @param Custom data model + */ + public void setSelector(@NonNull DataSelector selector) { + this.selector = selector; + } + /** * @return List of selected items. Consists of objects corresponding to custom data model defined by setData() method */ - public List getSelectedItems() { - List selected = new ArrayList<>(); + public List getSelectedItems() { + List selected = new ArrayList<>(); + if (viewMap == null || viewMap.isEmpty()) + return selected; + for (ItemData item : viewMap.values()) { if (item.isSelected) - selected.add(item.data); + selected.add((T) item.data); } return selected; }