package com.insthub.ecmobile.fragment;
//
// __
// /\ \ _
// ____ ____ ___\ \ \_/ \ _____ ___ ___
// / _ \ / __ \ / __ \ \ < __ /\__ \ / __ \ / __ \
// /\ \_\ \/\ __//\ __/\ \ \\ \ /\_\ \/_/ / /\ \_\ \/\ \_\ \
// \ \____ \ \____\ \____\\ \_\\_\ \/_/ /\____\\ \____/\ \____/
// \/____\ \/____/\/____/ \/_//_/ \/____/ \/___/ \/___/
// /\____/
// \/___/
//
// Powered by BeeFramework
//
import java.util.ArrayList;
import java.util.List;
import com.insthub.ecmobile.ECMobileAppConst;
import com.insthub.ecmobile.EcmobileApp;
import com.insthub.ecmobile.protocol.ApiInterface;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.ActivityManager;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.external.androidquery.callback.AjaxStatus;
import com.external.maxwin.view.XListView;
import com.external.viewpagerindicator.PageIndicator;
import com.insthub.BeeFramework.fragment.BaseFragment;
import com.insthub.BeeFramework.model.BusinessResponse;
import com.insthub.BeeFramework.view.MyListView;
import com.insthub.ecmobile.EcmobileManager;
import com.insthub.ecmobile.EcmobileManager.RegisterApp;
import com.insthub.ecmobile.R;
import com.insthub.ecmobile.activity.B1_ProductListActivity;
import com.insthub.ecmobile.activity.B2_ProductDetailActivity;
import com.insthub.ecmobile.activity.BannerWebActivity;
import com.insthub.ecmobile.adapter.B0_IndexAdapter;
import com.insthub.ecmobile.adapter.Bee_PageAdapter;
import com.insthub.ecmobile.model.ConfigModel;
import com.insthub.ecmobile.model.HomeModel;
import com.insthub.ecmobile.model.LoginModel;
import com.insthub.ecmobile.model.ShoppingCartModel;
import com.insthub.ecmobile.protocol.FILTER;
import com.insthub.ecmobile.protocol.PLAYER;
import com.umeng.analytics.MobclickAgent;
public class B0_IndexFragment extends BaseFragment implements BusinessResponse,XListView.IXListViewListener, RegisterApp
{
private ViewPager bannerViewPager;
private PageIndicator mIndicator;
private MyListView mListView;
private B0_IndexAdapter listAdapter;
private ArrayList<View> bannerListView;
private Bee_PageAdapter bannerPageAdapter;
FrameLayout bannerView;
private View mTouchTarget;
private ShoppingCartModel shoppingCartModel;
private HomeModel dataModel ;
private ImageView back;
private TextView title;
private LinearLayout title_right_button;
private TextView headUnreadTextView;
private SharedPreferences shared;
private SharedPreferences.Editor editor;
protected ImageLoader imageLoader = ImageLoader.getInstance();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
imageLoader.init(ImageLoaderConfiguration.createDefault(getActivity()));
View mainView = inflater.inflate(R.layout.b0_index,null);
back = (ImageView) mainView.findViewById(R.id.top_view_back);
back.setVisibility(View.GONE);
title = (TextView) mainView.findViewById(R.id.top_view_text);
Resources resource = this.getResources();
String ecmobileStr=resource.getString(R.string.ecmobile);
title.setText(ecmobileStr);
headUnreadTextView = (TextView)mainView.findViewById(R.id.head_unread_num);
if (null == dataModel)
{
dataModel = new HomeModel(getActivity());
dataModel.fetchHotSelling();
dataModel.fetchCategoryGoods();
}
if (null == ConfigModel.getInstance())
{
ConfigModel configModel = new ConfigModel(getActivity());
configModel.getConfig();
}
dataModel.addResponseListener(this);
bannerView = (FrameLayout)LayoutInflater.from(getActivity()).inflate(R.layout.b0_index_banner, null);
bannerViewPager = (ViewPager)bannerView.findViewById(R.id.banner_viewpager);
LayoutParams params1 = bannerViewPager.getLayoutParams();
params1.width = getDisplayMetricsWidth();
params1.height = (int) (params1.width*1.0/484*200);
bannerViewPager.setLayoutParams(params1);
bannerListView = new ArrayList<View>();
bannerPageAdapter = new Bee_PageAdapter(bannerListView);
bannerViewPager.setAdapter(bannerPageAdapter);
bannerViewPager.setCurrentItem(0);
bannerViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
private int mPreviousState = ViewPager.SCROLL_STATE_IDLE;
@Override
public void onPageScrolled(int i, float v, int i2) {
}
@Override
public void onPageSelected(int i) {
}
@Override
public void onPageScrollStateChanged(int state) {
// All of this is to inhibit any scrollable container from consuming our touch events as the user is changing pages
if (mPreviousState == ViewPager.SCROLL_STATE_IDLE) {
if (state == ViewPager.SCROLL_STATE_DRAGGING) {
mTouchTarget = bannerViewPager;
}
} else {
if (state == ViewPager.SCROLL_STATE_IDLE || state == ViewPager.SCROLL_STATE_SETTLING) {
mTouchTarget = null;
}
}
mPreviousState = state;
}
});
mIndicator = (PageIndicator)bannerView.findViewById(R.id.indicator);
mIndicator.setViewPager(bannerViewPager);
mListView = (MyListView)mainView.findViewById(R.id.home_listview);
mListView.addHeaderView(bannerView);
mListView.bannerView = bannerView;
mListView.setPullLoadEnable(false);
mListView.setPullRefreshEnable(true);
mListView.setXListViewListener(this,0);
mListView.setRefreshTime();
homeSetAdapter();
ShoppingCartModel shoppingCartModel = new ShoppingCartModel(getActivity());
shoppingCartModel.addResponseListener(this);
shoppingCartModel.homeCartList();
return mainView;
}
public boolean isActive = false;
@Override
public void onResume() {
super.onResume();
if (!isActive) {
isActive = true;
EcmobileManager.registerApp(this);
}
LoginModel loginModel = new LoginModel(getActivity());
ConfigModel configModel = new ConfigModel(getActivity());
configModel.getConfig();
MobclickAgent.onPageStart("Home");
}
public void homeSetAdapter() {
if(dataModel.homeDataCache() != null) {
if (null == listAdapter)
{
listAdapter = new B0_IndexAdapter(getActivity(), dataModel);
}
mListView.setAdapter(listAdapter);
addBannerView();
}
}
public void OnMessageResponse(String url, JSONObject jo, AjaxStatus status)
{
if (url.endsWith(ApiInterface.HOME_DATA))
{
mListView.stopRefresh();
mListView.setRefreshTime();
if (null == listAdapter)
{
listAdapter = new B0_IndexAdapter(getActivity(), dataModel);
}
mListView.setAdapter(listAdapter);
addBannerView();
}
else if (url.endsWith(ApiInterface.HOME_CATEGORY))
{
mListView.stopRefresh();
mListView.setRefreshTime();
if (null == listAdapter)
{
listAdapter = new B0_IndexAdapter(getActivity(), dataModel);
}
mListView.setAdapter(listAdapter);
addBannerView();
}
else if (url.endsWith(ApiInterface.CART_LIST))
{
TabsFragment.setShoppingcartNum();
}
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
@Override
public void onDestroy() {
super.onDestroy();
dataModel.removeResponseListener(this);
}
public void onRefresh(int id)
{
dataModel.fetchHotSelling();
dataModel.fetchCategoryGoods();
}
@Override
public void onLoadMore(int id) {
//To change body of implemented methods use File | Settings | File Templates.
}
public void addBannerView()
{
bannerListView.clear();
for (int i = 0; i < dataModel.playersList.size(); i++)
{
PLAYER player = dataModel.playersList.get(i);
ImageView viewOne = (ImageView)LayoutInflater.from(getActivity()).inflate(R.layout.b0_index_banner_cell,null);
shared = getActivity().getSharedPreferences("userInfo", 0);
editor = shared.edit();
String imageType = shared.getString("imageType", "mind");
if(imageType.equals("high")) {
imageLoader.displayImage(player.photo.thumb,viewOne, EcmobileApp.options);
} else if(imageType.equals("low")) {
imageLoader.displayImage(player.photo.small,viewOne, EcmobileApp.options);
} else {
String netType = shared.getString("netType", "wifi");
if(netType.equals("wifi")) {
imageLoader.displayImage(player.photo.thumb,viewOne, EcmobileApp.options);
} else {
imageLoader.displayImage(player.photo.small,viewOne, EcmobileApp.options);
}
}
try
{
viewOne.setTag(player.toJson().toString());
}
catch (JSONException e)
{
}
bannerListView.add(viewOne);
viewOne.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String playerJSONString = (String) v.getTag();
try {
JSONObject jsonObject = new JSONObject(playerJSONString);
PLAYER player1 = new PLAYER();
player1.fromJson(jsonObject);
if (null == player1.action)
{
if (null != player1.url) {
Intent intent = new Intent(getActivity(), BannerWebActivity.class);
intent.putExtra("url", player1.url);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.push_right_in,
R.anim.push_right_out);
}
}
else
{
if (player1.action.equals("goods"))
{
Intent intent = new Intent(getActivity(), B2_ProductDetailActivity.class);
intent.putExtra("good_id", player1.action_id+"");
getActivity().startActivity(intent);
getActivity().overridePendingTransition(R.anim.push_right_in,
R.anim.push_right_out);
}
else if (player1.action.equals("category"))
{
Intent intent = new Intent(getActivity(), B1_ProductListActivity.class);
FILTER filter = new FILTER();
filter.category_id = String.valueOf(player1.action_id);
intent.putExtra(B1_ProductListActivity.FILTER,filter.toJson().toString());
startActivity(intent);
getActivity().overridePendingTransition(R.anim.push_right_in,
R.anim.push_right_out);
}
else if (null != player1.url)
{
Intent intent = new Intent(getActivity(), BannerWebActivity.class);
intent.putExtra("url", player1.url);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.push_right_in,
R.anim.push_right_out);
}
}
} catch (JSONException e) {
}
}
});
}
mIndicator.notifyDataSetChanged();
mIndicator.setCurrentItem(0);
bannerPageAdapter.mListViews = bannerListView;
bannerViewPager.setAdapter(bannerPageAdapter);
}
//获取屏幕宽度
public int getDisplayMetricsWidth() {
int i = getActivity().getWindowManager().getDefaultDisplay().getWidth();
int j = getActivity().getWindowManager().getDefaultDisplay().getHeight();
return Math.min(i, j);
}
@Override
public void onRegisterResponse(boolean success) {
}
@Override
public void onPause() {
super.onPause();
MobclickAgent.onPageEnd("Home");
}
@Override
public void onStop() {
super.onStop();
if (!isAppOnForeground()) {
//app 进入后台
isActive = false;
}
}
/**
* 程序是否在前台运行
*
* @return
*/
public boolean isAppOnForeground() {
// Returns a list of application processes that are running on the
// device
ActivityManager activityManager = (ActivityManager) getActivity().getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);
String packageName = getActivity().getApplicationContext().getPackageName();
List<ActivityManager.RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
if (appProcesses == null) {
return false;
}
for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) {
// The name of the process that this object is associated with.
if (appProcess.processName.equals(packageName)
&& appProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
return true;
}
}
return false;
}
}