package com.metis.meishuquan.fragment; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.metis.base.fragment.DockFragment; import com.metis.base.manager.CacheManager; import com.metis.base.manager.RequestCallback; import com.metis.base.widget.IconTextView; import com.metis.base.widget.TitleBar; import com.metis.base.widget.dock.DockBar; import com.metis.meishuquan.R; import com.metis.meishuquan.activity.DiscoveryExamActivity; import com.metis.meishuquan.activity.ExamJoinActivity; import com.metis.meishuquan.adapter.DiscoveryAdapter; import com.metis.meishuquan.adapter.DiscoveryItemDecoration; import com.metis.meishuquan.adapter.delegate.DiscoveryItemDelegate; import com.metis.meishuquan.manager.DiscoveryManager; import com.metis.meishuquan.module.DiscoveryItem; import com.metis.msnetworklib.contract.ReturnInfo; import java.util.ArrayList; import java.util.List; /** * Created by Beak on 2015/10/14. */ public class DiscoveryTabFragment extends DockFragment { private DockBar.Dock mDock = null; private TitleBar mTitleBar = null; private RecyclerView mDiscoveryRv = null; private DiscoveryAdapter mAdapter = null; private DiscoveryItem mExamJoinItem = null; private DiscoveryItemDelegate mExamJoinItemDelegate = null; @Override public DockBar.Dock getDock(Context context) { if (mDock == null) { mDock = new DockBar.Dock(context, R.id.dock_item_id_discovery, R.drawable.ic_discovery_sel, R.string.dock_item_discovery_title, this); } return mDock; } @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_discovery, null, true); } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); mTitleBar = (TitleBar)view.findViewById(R.id.discovery_title); mTitleBar.setTitleCenter(R.string.dock_item_discovery_title); mDiscoveryRv = (RecyclerView)view.findViewById(R.id.discovery_recycler_view); mDiscoveryRv.setLayoutManager(new LinearLayoutManager(getContext())); mDiscoveryRv.addItemDecoration(new DiscoveryItemDecoration()); mAdapter = new DiscoveryAdapter(getContext()); mDiscoveryRv.setAdapter(mAdapter); } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); mExamJoinItem = new DiscoveryItem(); mExamJoinItem.name = getString(R.string.text_join_exam); mExamJoinItemDelegate = new DiscoveryItemDelegate(mExamJoinItem); mExamJoinItemDelegate.setIsNative(true); mExamJoinItemDelegate.setIconRes(R.drawable.ic_discovery_join_exam); mExamJoinItemDelegate.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(getContext(), ExamJoinActivity.class)); } }); mAdapter.addDataItem(mExamJoinItemDelegate); List<DiscoveryItem> items = CacheManager.getInstance(getContext()).readUserDataAtDatabase(DiscoveryItem.class, "extends_discoveries.db"); if (items != null && !items.isEmpty()) { parseItems(items); } mAdapter.notifyDataSetChanged(); DiscoveryManager.getInstance(getContext()).getWebModule(0, new RequestCallback<List<DiscoveryItem>>() { @Override public void callback(ReturnInfo<List<DiscoveryItem>> returnInfo, String callbackId) { if (returnInfo.isSuccess()) { List<DiscoveryItem> items = returnInfo.getData(); if (items != null && !items.isEmpty()) { CacheManager.getInstance(getContext()).saveAllUserDataAtDatabase(items, "extends_discoveries.db", DiscoveryItem.class, true); parseItems(items); } } } }); } private void parseItems (List<DiscoveryItem> items) { if (items == null && items.isEmpty()) { return; } List<DiscoveryItemDelegate> delegates = new ArrayList<DiscoveryItemDelegate>(); final int length = items.size(); for (int i = 0; i < length; i++) { DiscoveryItem item = items.get(i); if (!item.isShow) { continue; } delegates.add(new DiscoveryItemDelegate(item)); } mAdapter.clearExtendItems(); mAdapter.addDataList(delegates); mAdapter.notifyDataSetChanged(); } }