package com.aptoide.amethyst.adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.aptoide.amethyst.R;
import com.aptoide.amethyst.adapters.SpannableRecyclerAdapter;
import com.aptoide.amethyst.models.EnumStoreTheme;
import com.aptoide.models.displayables.SearchApk;
import com.aptoide.models.displayables.Displayable;
import com.aptoide.models.displayables.HeaderRow;
import com.aptoide.models.displayables.ProgressBarRow;
import com.aptoide.models.displayables.SuggestedAppDisplayable;
import java.util.List;
import com.aptoide.amethyst.viewholders.BaseViewHolder;
import com.aptoide.amethyst.viewholders.ProgressBarRowViewHolder;
import com.aptoide.amethyst.viewholders.SearchAppViewHolder;
import com.aptoide.amethyst.viewholders.SuggestedAppViewHolder;
import com.aptoide.amethyst.viewholders.main.HeaderViewHolder;
/**
* Created by fabio on 20-11-2015.
*/
public class MoreSearchAdapter extends BaseAdapter implements SpannableRecyclerAdapter {
public MoreSearchAdapter(List<Displayable> displayableList) {
super(displayableList);
}
@Override
public BaseViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(viewType, parent, false);
if (viewType == R.layout.search_app_row) {
return new SearchAppViewHolder(view, viewType);
} else if (viewType == R.layout.layout_header) {
return new HeaderViewHolder(view, viewType, EnumStoreTheme.APTOIDE_STORE_THEME_DEFAULT);
} else if (viewType == R.layout.suggested_app_search) {
return new SuggestedAppViewHolder(view, viewType);
} else if (viewType == R.layout.row_progress_bar) {
return new ProgressBarRowViewHolder(view, viewType);
} else {
throw new IllegalStateException(("This adapter doesn't know how to show viewtype " + viewType));
}
}
@Override
public int getItemViewType(int position) {
if (displayableList.get(position) instanceof HeaderRow) {
return R.layout.layout_header;
} else if (displayableList.get(position) instanceof SearchApk) {
return R.layout.search_app_row;
} else if (displayableList.get(position) instanceof SuggestedAppDisplayable) {
return R.layout.suggested_app_search;
} else if (displayableList.get(position) instanceof ProgressBarRow) {
return R.layout.row_progress_bar;
} else {
throw new IllegalStateException("This adapter doesn't know how to show " + displayableList.get(position).getClass().getName());
}
}
@Override
public int getSpanSize(int position) {
return displayableList.get(position).getSpanSize();
}
@Override
public int getItemCount() {
return displayableList.size();
}
}