// Path: app/src/main/java/discovery/contentful/ui/AbsListContainer.java
// public abstract class AbsListContainer<T extends AbsListView> extends FrameLayout {
//   @Bind(R.id.empty) ViewGroup emptyView;
//   @Bind(R.id.extra_views_wrapper) ViewGroup extraViewsWrapper;
//   T list;
//   Listener listener;
// 
//   public interface Listener {
//     void retryLoad();
//   }
// 
//   public AbsListContainer(Context context) {
//     super(context);
//     init();
//   }
// 
//   public AbsListContainer(Context context, AttributeSet attrs) {
//     super(context, attrs);
//     init();
//   }
// 
//   public AbsListContainer(Context context, AttributeSet attrs, int defStyle) {
//     super(context, attrs, defStyle);
//     init();
//   }
// 
//   private void init() {
//     View.inflate(getContext(), R.layout.view_list_container, this);
//     ButterKnife.bind(this);
// 
//     addView(list = inflateList(), 0);
// 
//     // Empty view
//     list.setEmptyView(emptyView);
//   }
// 
//   @OnClick(R.id.network_error)
//   void onClickNetworkError() {
//     if (listener != null) {
//       hideExtraViews();
//       listener.retryLoad();
//     }
//   }
// 
//   protected abstract T inflateList();
// 
//   public T getList() {
//     return list;
//   }
// 
//   public void showExtraView(@IdRes int id) {
//     hideExtraViewsExcluding(id).setVisibility(View.VISIBLE);
//   }
// 
//   public void hideExtraViews() {
//     hideExtraViewsExcluding(null);
//   }
// 
//   private View hideExtraViewsExcluding(@Nullable @IdRes Integer id) {
//     View result = null;
// 
//     for (int i = 0; i < extraViewsWrapper.getChildCount(); i++) {
//       View child = extraViewsWrapper.getChildAt(i);
// 
//       if (id == null) {
//         child.setVisibility(View.GONE);
//       } else if (id.equals(child.getId())) {
//         result = child;
//       } else {
//         child.setVisibility(View.GONE);
//       }
//     }
// 
//     return result;
//   }
// 
//   public void setListener(Listener listener) {
//     this.listener = listener;
//   }
// }


import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.FrameLayout;
import android.widget.ListView;
import discovery.contentful.ui.AbsListContainer;
package discovery.contentful.fragments;


public class CFListFragment extends Fragment implements AdapterView.OnItemClickListener {
  protected ListView listView;
// Path: app/src/main/java/discovery/contentful/ui/AbsListContainer.java
// public abstract class AbsListContainer<T extends AbsListView> extends FrameLayout {
//   @Bind(R.id.empty) ViewGroup emptyView;
//   @Bind(R.id.extra_views_wrapper) ViewGroup extraViewsWrapper;
//   T list;
//   Listener listener;
// 
//   public interface Listener {
//     void retryLoad();
//   }
// 
//   public AbsListContainer(Context context) {
//     super(context);
//     init();
//   }
// 
//   public AbsListContainer(Context context, AttributeSet attrs) {
//     super(context, attrs);
//     init();
//   }
// 
//   public AbsListContainer(Context context, AttributeSet attrs, int defStyle) {
//     super(context, attrs, defStyle);
//     init();
//   }
// 
//   private void init() {
//     View.inflate(getContext(), R.layout.view_list_container, this);
//     ButterKnife.bind(this);
// 
//     addView(list = inflateList(), 0);
// 
//     // Empty view
//     list.setEmptyView(emptyView);
//   }
// 
//   @OnClick(R.id.network_error)
//   void onClickNetworkError() {
//     if (listener != null) {
//       hideExtraViews();
//       listener.retryLoad();
//     }
//   }
// 
//   protected abstract T inflateList();
// 
//   public T getList() {
//     return list;
//   }
// 
//   public void showExtraView(@IdRes int id) {
//     hideExtraViewsExcluding(id).setVisibility(View.VISIBLE);
//   }
// 
//   public void hideExtraViews() {
//     hideExtraViewsExcluding(null);
//   }
// 
//   private View hideExtraViewsExcluding(@Nullable @IdRes Integer id) {
//     View result = null;
// 
//     for (int i = 0; i < extraViewsWrapper.getChildCount(); i++) {
//       View child = extraViewsWrapper.getChildAt(i);
// 
//       if (id == null) {
//         child.setVisibility(View.GONE);
//       } else if (id.equals(child.getId())) {
//         result = child;
//       } else {
//         child.setVisibility(View.GONE);
//       }
//     }
// 
//     return result;
//   }
// 
//   public void setListener(Listener listener) {
//     this.listener = listener;
//   }
// }


// Path: app/src/main/java/discovery/contentful/fragments/CFListFragment.java
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.FrameLayout;
import android.widget.ListView;
import discovery.contentful.ui.AbsListContainer;

package discovery.contentful.fragments;


public class CFListFragment extends Fragment implements AdapterView.OnItemClickListener {
  protected ListView listView;
  AbsListContainer<ListView> listContainerView;