package im.actor.sdk.controllers.search; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.ViewGroup; import android.widget.TextView; import im.actor.core.entity.SearchEntity; import im.actor.runtime.generic.mvvm.BindedDisplayList; import im.actor.sdk.ActorSDK; import im.actor.sdk.R; import im.actor.sdk.util.Screen; import im.actor.sdk.view.adapters.OnItemClickedListener; import im.actor.runtime.android.view.BindedListAdapter; public class SearchAdapter extends BindedListAdapter<SearchEntity, SearchHolder> { private Context context; private String query; private OnItemClickedListener<SearchEntity> onItemClickedListener; public SearchAdapter(Context context, BindedDisplayList<SearchEntity> displayList, OnItemClickedListener<SearchEntity> onItemClickedListener) { super(displayList); this.context = context; this.onItemClickedListener = onItemClickedListener; } public void setQuery(String query) { this.query = query; } @Override public int getItemViewType(int position) { SearchEntity e = getItem(position); if (e instanceof GlobalSearchBaseFragment.SearchEntityHeader) { return 1; } else { return super.getItemViewType(position); } } @Override public SearchHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) { switch (viewType) { case 1: return new SearchHolderEx(context, onItemClickedListener); default: case 0: return new SearchHolder(context, onItemClickedListener); } } @Override public void onBindViewHolder(SearchHolder dialogHolder, int index, SearchEntity item) { dialogHolder.bind(item, query, index == getItemCount() - 1); } public class SearchHolderEx extends SearchHolder { public SearchHolderEx(Context context, OnItemClickedListener<SearchEntity> clickedListener) { super(context, clickedListener); } @Override protected void init(Context context, OnItemClickedListener<SearchEntity> clickedListener) { itemView.setLayoutParams(new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); itemView.setBackgroundColor(ActorSDK.sharedActor().style.getBackyardBackgroundColor()); TextView globalSearchTitle = new TextView(context); globalSearchTitle.setText(R.string.main_search_global_header); globalSearchTitle.setTextSize(16); globalSearchTitle.setPadding(Screen.dp(12), Screen.dp(8), 0, Screen.dp(8)); globalSearchTitle.setBackgroundColor(ActorSDK.sharedActor().style.getBackyardBackgroundColor()); globalSearchTitle.setTextColor(ActorSDK.sharedActor().style.getTextSecondaryColor()); ((ViewGroup) itemView).addView(globalSearchTitle); } @Override public void bind(SearchEntity entity, String query, boolean isLast) { } } }