package com.kickstarter.ui.viewholders.discoverydrawer;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.View;
import android.widget.TextView;
import com.kickstarter.R;
import com.kickstarter.ui.adapters.data.NavigationDrawerData;
import com.kickstarter.ui.viewholders.KSViewHolder;
import com.kickstarter.ui.views.IconButton;
import butterknife.Bind;
import butterknife.ButterKnife;
import butterknife.OnClick;
import static com.kickstarter.libs.utils.ObjectUtils.requireNonNull;
public final class ParentFilterViewHolder extends KSViewHolder {
protected @Bind(R.id.filter_text_view) TextView filterTextView;
protected @Bind(R.id.expand_button) IconButton expandButton;
protected @Bind(R.id.collapse_button) IconButton collapseButton;
private NavigationDrawerData.Section.Row item;
private Delegate delegate;
public interface Delegate {
void parentFilterViewHolderRowClick(final @NonNull ParentFilterViewHolder viewHolder, final @NonNull NavigationDrawerData.Section.Row row);
}
public ParentFilterViewHolder(final @NonNull View view, final @NonNull Delegate delegate) {
super(view);
this.delegate = delegate;
ButterKnife.bind(this, view);
}
@Override
public void bindData(final @Nullable Object data) throws Exception {
item = requireNonNull((NavigationDrawerData.Section.Row) data, NavigationDrawerData.Section.Row.class);
}
@Override
public void onBind() {
final Context context = context();
filterTextView.setText(item.params().filterString(context, environment().ksString(), false, true));
if (item.rootIsExpanded()) {
expandButton.setVisibility(View.GONE);
collapseButton.setVisibility(View.VISIBLE);
} else {
expandButton.setVisibility(View.VISIBLE);
collapseButton.setVisibility(View.GONE);
}
}
@OnClick(R.id.filter_text_view)
protected void textViewClick() {
delegate.parentFilterViewHolderRowClick(this, item);
}
}