// Path: src/net/idlesoft/android/apps/github/ui/adapters/BaseListAdapter.java
// public abstract class BaseListAdapter<T> extends BaseAdapter {
// 
//     protected LayoutInflater mInflater;
// 
//     private ArrayList<T> mData;
// 
//     private boolean mNotifyOnChange;
// 
//     private BaseActivity mContext;
// 
//     public BaseListAdapter(BaseActivity context) {
//         super();
// 
//         mContext = context;
//         mInflater = LayoutInflater.from(mContext);
//         mData = new ArrayList<T>();
//     }
// 
//     public BaseActivity getContext() {
//         return mContext;
//     }
// 
//     public void clear() {
//         mData.clear();
//         if (mNotifyOnChange) {
//             notifyDataSetChanged();
//         }
//     }
// 
//     public ArrayList<T> getAll() {
//         return mData;
//     }
// 
//     public void addAll(Collection<? extends T> collection) {
//         mData.addAll(collection);
//         if (mNotifyOnChange) {
//             notifyDataSetChanged();
//         }
//     }
// 
//     @Override
//     public int getCount() {
//         return mData.size();
//     }
// 
//     public T getItem(int position) {
//         return mData.get(position);
//     }
// 
//     @Override
//     public long getItemId(int position) {
//         return position;
//     }
// 
//     @Override
//     public void unregisterDataSetObserver(DataSetObserver observer) {
//         if (observer != null) {
//             super.unregisterDataSetObserver(observer);
//         }
//     }
// 
//     protected void fillWithItems(List<T> data, boolean append) {
//         if (!append) {
//             clear();
//         }
//         addAll(data);
//     }
// 
//     public void fillWithItems(List<T> data) {
//         fillWithItems(data, false);
//     }
// 
//     public void appendWithItems(List<T> data) {
//         fillWithItems(data, true);
//     }
// 
//     public void setNotifyOnChange(boolean notifyOnChange) {
//         mNotifyOnChange = notifyOnChange;
//     }
// }
// 
// Path: src/net/idlesoft/android/apps/github/ui/adapters/HeaderFooterListAdapter.java
// public class HeaderFooterListAdapter<E extends BaseAdapter> extends
//         HeaderViewListAdapter {
// 
//     private final ListView list;
// 
//     private final ArrayList<FixedViewInfo> headers;
// 
//     private final ArrayList<FixedViewInfo> footers;
// 
//     private final E wrapped;
// 
//     /**
//      * Create header footer adapter
//      */
//     public HeaderFooterListAdapter(ListView view, E adapter) {
//         this(new ArrayList<FixedViewInfo>(), new ArrayList<FixedViewInfo>(),
//                 view, adapter);
//     }
// 
//     private HeaderFooterListAdapter(ArrayList<FixedViewInfo> headerViewInfos,
//             ArrayList<FixedViewInfo> footerViewInfos, ListView view, E adapter) {
//         super(headerViewInfos, footerViewInfos, adapter);
// 
//         headers = headerViewInfos;
//         footers = footerViewInfos;
//         list = view;
//         wrapped = adapter;
//     }
// 
//     /**
//      * Add header
//      *
//      * @return this adapter
//      */
//     public HeaderFooterListAdapter<E> addHeader(View view, Object data,
//             boolean isSelectable) {
//         FixedViewInfo info = list.new FixedViewInfo();
//         info.view = view;
//         info.data = data;
//         info.isSelectable = isSelectable;
// 
//         headers.add(info);
//         wrapped.notifyDataSetChanged();
//         return this;
//     }
// 
//     /**
//      * Add header
//      *
//      * @return this adapter
//      */
//     public HeaderFooterListAdapter<E> addFooter(View view, Object data,
//             boolean isSelectable) {
//         FixedViewInfo info = list.new FixedViewInfo();
//         info.view = view;
//         info.data = data;
//         info.isSelectable = isSelectable;
// 
//         footers.add(info);
//         wrapped.notifyDataSetChanged();
//         return this;
//     }
// 
//     @Override
//     public boolean removeHeader(View v) {
//         boolean removed = super.removeHeader(v);
//         if (removed) {
//             wrapped.notifyDataSetChanged();
//         }
//         return removed;
//     }
// 
//     @Override
//     public boolean removeFooter(View v) {
//         boolean removed = super.removeFooter(v);
//         if (removed) {
//             wrapped.notifyDataSetChanged();
//         }
//         return removed;
//     }
// 
//     @Override
//     public E getWrappedAdapter() {
//         return wrapped;
//     }
// 
//     @Override
//     public boolean isEmpty() {
//         return wrapped.isEmpty();
//     }
// }


import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ProgressBar;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
import net.idlesoft.android.apps.github.R;
import net.idlesoft.android.apps.github.ui.adapters.BaseListAdapter;
import net.idlesoft.android.apps.github.ui.adapters.HeaderFooterListAdapter;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
    }

    protected LinearLayout getContentView() {
        return mContent;
    }

    protected ListView getListView() {
        return mListView;
    }

    public void setListShown(boolean shown) {
        if (shown) {
            mProgress.setVisibility(GONE);
            mContent.setVisibility(VISIBLE);
            mListView.setVisibility(VISIBLE);
        } else {
            mContent.setVisibility(GONE);
            mListView.setVisibility(GONE);
            mProgress.setVisibility(VISIBLE);
        }
    }

    protected HeaderFooterListAdapter<BaseListAdapter<T>> getListAdapter() {
        if (getListView() != null) {
            return (HeaderFooterListAdapter<BaseListAdapter<T>>) getListView().getAdapter();
        } else {
            return null;
        }
    }

// Path: src/net/idlesoft/android/apps/github/ui/adapters/BaseListAdapter.java
// public abstract class BaseListAdapter<T> extends BaseAdapter {
// 
//     protected LayoutInflater mInflater;
// 
//     private ArrayList<T> mData;
// 
//     private boolean mNotifyOnChange;
// 
//     private BaseActivity mContext;
// 
//     public BaseListAdapter(BaseActivity context) {
//         super();
// 
//         mContext = context;
//         mInflater = LayoutInflater.from(mContext);
//         mData = new ArrayList<T>();
//     }
// 
//     public BaseActivity getContext() {
//         return mContext;
//     }
// 
//     public void clear() {
//         mData.clear();
//         if (mNotifyOnChange) {
//             notifyDataSetChanged();
//         }
//     }
// 
//     public ArrayList<T> getAll() {
//         return mData;
//     }
// 
//     public void addAll(Collection<? extends T> collection) {
//         mData.addAll(collection);
//         if (mNotifyOnChange) {
//             notifyDataSetChanged();
//         }
//     }
// 
//     @Override
//     public int getCount() {
//         return mData.size();
//     }
// 
//     public T getItem(int position) {
//         return mData.get(position);
//     }
// 
//     @Override
//     public long getItemId(int position) {
//         return position;
//     }
// 
//     @Override
//     public void unregisterDataSetObserver(DataSetObserver observer) {
//         if (observer != null) {
//             super.unregisterDataSetObserver(observer);
//         }
//     }
// 
//     protected void fillWithItems(List<T> data, boolean append) {
//         if (!append) {
//             clear();
//         }
//         addAll(data);
//     }
// 
//     public void fillWithItems(List<T> data) {
//         fillWithItems(data, false);
//     }
// 
//     public void appendWithItems(List<T> data) {
//         fillWithItems(data, true);
//     }
// 
//     public void setNotifyOnChange(boolean notifyOnChange) {
//         mNotifyOnChange = notifyOnChange;
//     }
// }
// 
// Path: src/net/idlesoft/android/apps/github/ui/adapters/HeaderFooterListAdapter.java
// public class HeaderFooterListAdapter<E extends BaseAdapter> extends
//         HeaderViewListAdapter {
// 
//     private final ListView list;
// 
//     private final ArrayList<FixedViewInfo> headers;
// 
//     private final ArrayList<FixedViewInfo> footers;
// 
//     private final E wrapped;
// 
//     /**
//      * Create header footer adapter
//      */
//     public HeaderFooterListAdapter(ListView view, E adapter) {
//         this(new ArrayList<FixedViewInfo>(), new ArrayList<FixedViewInfo>(),
//                 view, adapter);
//     }
// 
//     private HeaderFooterListAdapter(ArrayList<FixedViewInfo> headerViewInfos,
//             ArrayList<FixedViewInfo> footerViewInfos, ListView view, E adapter) {
//         super(headerViewInfos, footerViewInfos, adapter);
// 
//         headers = headerViewInfos;
//         footers = footerViewInfos;
//         list = view;
//         wrapped = adapter;
//     }
// 
//     /**
//      * Add header
//      *
//      * @return this adapter
//      */
//     public HeaderFooterListAdapter<E> addHeader(View view, Object data,
//             boolean isSelectable) {
//         FixedViewInfo info = list.new FixedViewInfo();
//         info.view = view;
//         info.data = data;
//         info.isSelectable = isSelectable;
// 
//         headers.add(info);
//         wrapped.notifyDataSetChanged();
//         return this;
//     }
// 
//     /**
//      * Add header
//      *
//      * @return this adapter
//      */
//     public HeaderFooterListAdapter<E> addFooter(View view, Object data,
//             boolean isSelectable) {
//         FixedViewInfo info = list.new FixedViewInfo();
//         info.view = view;
//         info.data = data;
//         info.isSelectable = isSelectable;
// 
//         footers.add(info);
//         wrapped.notifyDataSetChanged();
//         return this;
//     }
// 
//     @Override
//     public boolean removeHeader(View v) {
//         boolean removed = super.removeHeader(v);
//         if (removed) {
//             wrapped.notifyDataSetChanged();
//         }
//         return removed;
//     }
// 
//     @Override
//     public boolean removeFooter(View v) {
//         boolean removed = super.removeFooter(v);
//         if (removed) {
//             wrapped.notifyDataSetChanged();
//         }
//         return removed;
//     }
// 
//     @Override
//     public E getWrappedAdapter() {
//         return wrapped;
//     }
// 
//     @Override
//     public boolean isEmpty() {
//         return wrapped.isEmpty();
//     }
// }


// Path: src/net/idlesoft/android/apps/github/ui/fragments/BaseListFragment.java
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ProgressBar;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
import net.idlesoft.android.apps.github.R;
import net.idlesoft.android.apps.github.ui.adapters.BaseListAdapter;
import net.idlesoft.android.apps.github.ui.adapters.HeaderFooterListAdapter;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;

    }

    protected LinearLayout getContentView() {
        return mContent;
    }

    protected ListView getListView() {
        return mListView;
    }

    public void setListShown(boolean shown) {
        if (shown) {
            mProgress.setVisibility(GONE);
            mContent.setVisibility(VISIBLE);
            mListView.setVisibility(VISIBLE);
        } else {
            mContent.setVisibility(GONE);
            mListView.setVisibility(GONE);
            mProgress.setVisibility(VISIBLE);
        }
    }

    protected HeaderFooterListAdapter<BaseListAdapter<T>> getListAdapter() {
        if (getListView() != null) {
            return (HeaderFooterListAdapter<BaseListAdapter<T>>) getListView().getAdapter();
        } else {
            return null;
        }
    }

    protected BaseListAdapter<T> getWrappedListAdapter() {