package com.kickstarter.ui.adapters.data; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import com.kickstarter.libs.utils.ListUtils; import com.kickstarter.models.Category; import com.kickstarter.models.User; import com.kickstarter.services.DiscoveryParams; import java.util.List; import auto.parcel.AutoParcel; @AutoParcel public abstract class NavigationDrawerData { public abstract @Nullable User user(); public abstract List<Section> sections(); public abstract @Nullable Category expandedCategory(); public abstract @Nullable DiscoveryParams selectedParams(); @AutoParcel.Builder public abstract static class Builder { public abstract Builder user(User __); public abstract Builder sections(List<Section> __); public abstract Builder expandedCategory(Category __); public abstract Builder selectedParams(DiscoveryParams __); public abstract NavigationDrawerData build(); } public static Builder builder() { return new AutoParcel_NavigationDrawerData.Builder() .user(null) .expandedCategory(null) .selectedParams(null) .sections(ListUtils.empty()); } public abstract Builder toBuilder(); @AutoParcel static public abstract class Section { public abstract boolean expandable(); public abstract boolean expanded(); public abstract List<Section.Row> rows(); @AutoParcel.Builder public abstract static class Builder { public abstract Section.Builder expandable(boolean __); public abstract Section.Builder expanded(boolean __); public abstract Section.Builder rows(List<Section.Row> __); public abstract Section build(); } public static Section.Builder builder() { return new AutoParcel_NavigationDrawerData_Section.Builder() .expandable(false) .expanded(false) .rows(ListUtils.empty()); } public abstract Section.Builder toBuilder(); public boolean isCategoryFilter() { return rows().size() >= 1 && rows().get(0).params().isCategorySet(); } public boolean isTopFilter() { return !isCategoryFilter(); } @AutoParcel static public abstract class Row { public abstract @NonNull DiscoveryParams params(); public abstract boolean selected(); public abstract boolean rootIsExpanded(); @AutoParcel.Builder public static abstract class Builder { public abstract Builder params(DiscoveryParams __); public abstract Builder selected(boolean __); public abstract Builder rootIsExpanded(boolean __); public abstract Section.Row build(); } public static Builder builder() { return new AutoParcel_NavigationDrawerData_Section_Row.Builder() .params(DiscoveryParams.builder().build()) .selected(false) .rootIsExpanded(false); } public abstract Section.Row.Builder toBuilder(); } } }