package com.roboo.like.google.fragments;
import java.util.LinkedList;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListAdapter;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.roboo.like.google.GoogleApplication;
import com.roboo.like.google.MainActivity;
import com.roboo.like.google.R;
import com.roboo.like.google.adapters.StartNewsTypeListAdapter;
import com.roboo.like.google.dao.impl.NewsTypeItemDaoImpl;
import com.roboo.like.google.databases.DBHelper;
import com.roboo.like.google.models.NewsTypeItem;
import com.roboo.like.google.swipelistview.SwipeListView;
import com.roboo.like.google.swipelistview.SwipeListViewListener;
import com.roboo.like.google.view.floatingbutton.FloatingImageButton;
import com.roboo.like.google.views.StickyListHeadersListView;
public class StartFragment extends BaseFragment
{
private LinkedList<NewsTypeItem> mData;
private ImageLoader mImageLoader;
private SwipeListView mSwipeListView;
private StickyListHeadersListView mListView;
private StartNewsTypeListAdapter mAdapter;
private FloatingImageButton mFIBtnImageButton;
public static StartFragment newInstance()
{
StartFragment fragment = new StartFragment();
Bundle bundle = new Bundle();
fragment.setArguments(bundle);
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View view = inflater.inflate(R.layout.fragment_start, null);// TODO
mListView = (StickyListHeadersListView) view.findViewById(R.id.slhlv_list);
mSwipeListView = (SwipeListView) view.findViewById(R.id.slv_listview);
mFIBtnImageButton = (FloatingImageButton) view.findViewById(R.id.fibtn_image);
mFIBtnImageButton.attachToListView(mSwipeListView);
mFIBtnImageButton.setVisibility(View.GONE);
return view;
}
public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
ImageLoaderConfiguration imageLoaderConfiguration = new ImageLoaderConfiguration.Builder(getActivity()).discCacheFileNameGenerator(new Md5FileNameGenerator()).build();
mImageLoader = ImageLoader.getInstance();
mImageLoader.init(imageLoaderConfiguration);
}
private ListAdapter getAdapter()
{
NewsTypeItemDaoImpl newsTypeItemDao = new NewsTypeItemDaoImpl(new DBHelper(getActivity()));
mData = newsTypeItemDao.getNewsTypeItems(true);
if (null != mData)
{
mAdapter = new StartNewsTypeListAdapter(mData, getActivity());
}
return mAdapter;
}
@Override
public void onResume()
{
super.onResume();
mListView.setAdapter(getAdapter());
mSwipeListView.setAdapter(mAdapter);
setListener();
}
private void setListener()
{
OnItemClickListenerImpl onItemClickListenerImpl = new OnItemClickListenerImpl();
mListView.setOnItemClickListener(onItemClickListenerImpl);
mSwipeListView.setSwipeListViewListener(new SwipeListViewListenerImpl());
}
private class OnItemClickListenerImpl implements OnItemClickListener
{
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
onListItemClick(position);
}
}
private void onListItemClick(int position)
{
NewsTypeItem item = mData.get(position);
GoogleApplication.mCurrentType = item.id;
MainActivity.actionMain(getActivity());
}
private class SwipeListViewListenerImpl implements SwipeListViewListener
{
public void onOpened(int position, boolean toRight)
{
}
@Override
public void onClosed(int position, boolean fromRight)
{
}
@Override
public void onListChanged()
{
}
@Override
public void onMove(int position, float x)
{
}
@Override
public void onStartOpen(int position, int action, boolean right)
{
}
@Override
public void onStartClose(int position, boolean right)
{
}
@Override
public void onClickFrontView(int position)
{
onListItemClick(position);
}
@Override
public void onClickBackView(int position)
{
mSwipeListView.closeAnimate(position);
}
@Override
public void onDismiss(int[] reverseSortedPositions)
{
}
public int onChangeSwipeMode(int position)
{
return SwipeListView.SWIPE_MODE_DEFAULT;
}
@Override
public void onChoiceChanged(int position, boolean selected)
{
}
@Override
public void onChoiceStarted()
{
}
@Override
public void onChoiceEnded()
{
}
@Override
public void onFirstListItem()
{
}
@Override
public void onLastListItem()
{
}
}
}