package com.kickstarter.ui.adapters;
import android.support.annotation.LayoutRes;
import android.support.annotation.NonNull;
import android.view.View;
import com.kickstarter.R;
import com.kickstarter.models.Empty;
import com.kickstarter.models.Project;
import com.kickstarter.ui.viewholders.EmptyProfileViewHolder;
import com.kickstarter.ui.viewholders.EmptyViewHolder;
import com.kickstarter.ui.viewholders.KSViewHolder;
import com.kickstarter.ui.viewholders.ProfileCardViewHolder;
import java.util.Collections;
import java.util.List;
public final class ProfileAdapter extends KSAdapter {
private static final int SECTION_EMPTY_VIEW = 0;
private static final int SECTION_PROJECTS_VIEW = 1;
private final Delegate delegate;
public interface Delegate extends ProfileCardViewHolder.Delegate, EmptyProfileViewHolder.Delegate {}
public ProfileAdapter(final @NonNull Delegate delegate) {
this.delegate = delegate;
insertSection(SECTION_EMPTY_VIEW, Collections.emptyList());
insertSection(SECTION_PROJECTS_VIEW, Collections.emptyList());
}
public void takeProjects(final @NonNull List<Project> projects) {
if (projects.size() == 0) {
setSection(SECTION_EMPTY_VIEW, Collections.singletonList(Empty.get()));
} else {
setSection(SECTION_PROJECTS_VIEW, projects);
}
notifyDataSetChanged();
}
protected @LayoutRes int layout(final @NonNull SectionRow sectionRow) {
if (sectionRow.section() == SECTION_EMPTY_VIEW) {
return R.layout.profile_empty_state_view;
} else {
return R.layout.profile_card_view;
}
}
protected @NonNull KSViewHolder viewHolder(final @LayoutRes int layout, final @NonNull View view) {
switch(layout) {
case R.layout.profile_empty_state_view:
return new EmptyProfileViewHolder(view, delegate);
case R.layout.profile_card_view:
return new ProfileCardViewHolder(view, delegate);
default:
return new EmptyViewHolder(view);
}
}
}