package com.ywwxhz.fragments;
import android.content.Intent;
import android.os.Bundle;
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.ListView;
import android.widget.Toast;
import com.nolanlawson.supersaiyan.SectionedListAdapter;
import com.nolanlawson.supersaiyan.Sectionizer;
import com.nolanlawson.supersaiyan.widget.SuperSaiyanScrollView;
import com.ywwxhz.MyApplication;
import com.ywwxhz.activitys.TopicNewsListActivity;
import com.ywwxhz.adapters.TopicListAdapter;
import com.ywwxhz.cnbetareader.R;
import com.ywwxhz.data.TopicsHelper;
import com.ywwxhz.entitys.TopicItem;
import com.ywwxhz.lib.database.exception.DbException;
import com.ywwxhz.lib.kits.Toolkit;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
/**
* cnBetaReader
* <p/>
* Created by 远望の无限(ywwxhz) on 2015/4/3 17:08.
*/
public class AllSubscribeFragment extends Fragment {
private android.widget.ListView list;
private com.nolanlawson.supersaiyan.widget.SuperSaiyanScrollView scroll;
private SectionedListAdapter<TopicListAdapter> sectionedAdapter;
private SubscribeHostFragment hostFragment;
private TopicListAdapter adapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_all_subscribe, container, false);
this.scroll = (SuperSaiyanScrollView) view.findViewById(R.id.scroll);
this.list = (ListView) view.findViewById(android.R.id.list);
return view;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
adapter = new TopicListAdapter(getActivity(), new ArrayList<TopicItem>());
adapter.setCallBack(new TopicListAdapter.onClickCallBack() {
@Override
public void onClick(TopicListAdapter adapter, TopicItem item) {
item.setSaved(!item.isSaved());
sectionedAdapter.notifyDataSetChanged();
scroll.refresh();
try {
MyApplication.getInstance().getDbUtils().saveOrUpdate(item);
Toast.makeText(getActivity(), "操作成功", Toast.LENGTH_SHORT).show();
} catch (DbException e) {
Toast.makeText(getActivity(), "操作失败", Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
if (hostFragment != null) {
hostFragment.notifySubscribed();
}
}
});
sectionedAdapter = SectionedListAdapter.Builder.create(getActivity(), adapter)
.setSectionizer(new Sectionizer<TopicItem>() {
@Override
public CharSequence toSection(TopicItem input) {
return input.getLatter();
}
})
.sortKeys()
.sortValues(new Comparator<TopicItem>() {
public int compare(TopicItem left, TopicItem right) {
int result = left.getLatter().compareToIgnoreCase(right.getLatter());
if (result == 0) {
return left.getTopicName().compareToIgnoreCase(right.getTopicName());
}
return result;
}
})
.build();
list.setAdapter(sectionedAdapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(getActivity(), TopicNewsListActivity.class);
intent.putExtra(TopicNewsListActivity.TPOIC_KEY, (TopicItem) sectionedAdapter.getItem(position));
getActivity().startActivity(intent);
}
});
Toolkit.runInUIThread(new Runnable() {
@Override
public void run() {
loadData();
}
},200);
}
private void loadData() {
List<TopicItem> countries = TopicsHelper.readLocalTopicList();
adapter.setDataSet(countries);
sectionedAdapter.notifyDataSetChanged();
}
private void getHostFragment() {
if (getParentFragment() != null && getParentFragment() instanceof SubscribeHostFragment) {
hostFragment = (SubscribeHostFragment) getParentFragment();
}
}
}