package com.appassit.fragments; import java.io.IOException; import java.util.ArrayList; import android.app.Activity; import android.os.Bundle; import android.support.v4.app.Fragment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; import com.appassit.R; import com.appassit.adapter.RecommendAppAdapter; import com.appassit.common.Utils; import com.appassit.enums.QuickReturnType; import com.appassit.interfaces.QuickReturnInterface; import com.appassit.listener.QuickReturnListViewOnScrollListener; import com.appassit.model.ApkUrlParser; import com.appassit.model.DownloadInfo; import com.appassit.service.DownloadManager; import com.appassit.service.DownloadService; import com.appassit.tools.FileUtils; import com.appassit.widget.jazzylistview.JazzyListView; import com.lidroid.xutils.ViewUtils; import com.lidroid.xutils.exception.DbException; import com.lidroid.xutils.view.annotation.ViewInject; public class RecommendFragment extends Fragment { // region Member Variables QuickReturnInterface mCoordinator; View mPlaceHolderView; @ViewInject(R.id.recomend_list) JazzyListView mListView; @ViewInject(R.id.quick_return_footer_ll) LinearLayout mQuickReturnFooterLinearLayout; // DownloadManager downloadManager; ArrayList<DownloadInfo> infos; ApkUrlParser parser; FileUtils fileUtils; String target = null; RecommendAppAdapter adapter = null; // region Lifecycle Methods @Override public void onAttach(Activity activity) { super.onAttach(activity); if (activity instanceof QuickReturnInterface) { mCoordinator = (QuickReturnInterface) activity; } else throw new ClassCastException("Parent container must implement the QuickReturnInterface"); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); downloadManager = DownloadService.getDownloadManager(getActivity()); adapter = new RecommendAppAdapter(); infos = new ArrayList<DownloadInfo>(); initData(); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_app_recommend, container, false); ViewUtils.inject(this, view); return view; } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); // int headerHeight = getResources().getDimensionPixelSize(R.dimen.header_height); // int indicatorHeight = QuickReturnUtils.dp2px(getActivity(), 5); // int headerTranslation = -headerHeight + QuickReturnUtils.getActionBarHeight(getActivity()) + indicatorHeight; // int footerTranslation = -headerHeight + QuickReturnUtils.getActionBarHeight(getActivity()); int headerHeight = getResources().getDimensionPixelSize(R.dimen.twitter_header_height); int footerHeight = getResources().getDimensionPixelSize(R.dimen.twitter_footer_height); int indicatorHeight = Utils.dp2px(getActivity(), 4); int headerTranslation = -headerHeight + indicatorHeight; int footerTranslation = -footerHeight + indicatorHeight; QuickReturnListViewOnScrollListener scrollListener = new QuickReturnListViewOnScrollListener(QuickReturnType.TWITTER, mCoordinator.getTabs(), headerTranslation, mQuickReturnFooterLinearLayout, -footerTranslation); scrollListener.setCanSlideInIdleScrollState(true); mListView.setOnScrollListener(scrollListener); mPlaceHolderView = getActivity().getLayoutInflater().inflate(R.layout.view_header_placeholder, mListView, false); mListView.addHeaderView(mPlaceHolderView); mListView.setAdapter(adapter); } public void onResume() { super.onResume(); } private void initData() { // TODO Auto-generated method stub Log.e("YM", "initData"); parser = new ApkUrlParser(); try { infos = parser.parse(getActivity().getAssets().open("apkurl.xml")); Log.e("YM", "infos.size:" + infos.size()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } adapter.add(infos); } @Override public void onDestroyView() { super.onDestroyView(); try { if (adapter != null && downloadManager != null) { downloadManager.backupDownloadInfoList(); } } catch (DbException e) { } } public void onDestroy() { super.onDestroy(); } }