package com.insthub.O2OMobile.Fragment; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; import android.os.Message; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ImageView; import android.widget.TextView; import com.BeeFramework.activity.WebViewActivity; import com.BeeFramework.model.BusinessResponse; import com.external.androidquery.callback.AjaxStatus; import com.external.eventbus.EventBus; import com.external.maxwin.view.IXListViewListener; import com.external.maxwin.view.XListView; import com.insthub.O2OMobile.Activity.D1_OrderActivity; import com.insthub.O2OMobile.Activity.MessageDetailActivity; import com.insthub.O2OMobile.Activity.SlidingActivity; import com.insthub.O2OMobile.Adapter.H0_MessageAdapter; import com.insthub.O2OMobile.MessageConstant; import com.insthub.O2OMobile.Model.MessageListModel; import com.insthub.O2OMobile.Model.MessageUnreadCountModel; import com.insthub.O2OMobile.Protocol.ApiInterface; import com.insthub.O2OMobile.Protocol.ENUM_MESSAGE_TYPE; import com.insthub.O2OMobile.Protocol.MESSAGE; import com.insthub.O2OMobile.R; import org.json.JSONException; import org.json.JSONObject; public class H0_MessageFragment extends Fragment implements IXListViewListener, BusinessResponse { private View view; private ImageView mMenu; private TextView mMessagePerson; private TextView mMessageSystem; private XListView mListViewPerson; private XListView mListViewSystem; private int mMessageId = -1; private MessageListModel mMessageListModel; private H0_MessageAdapter mH0MessageAdapter; private H0_MessageAdapter mMessageSystemAdapter; private TextView mUnreadMessageNum; private int mUnreadMessageCount; public static int msg = 0; public static int sys_msg = 1; private int mCurrentState = 0; private MessageUnreadCountModel mMessageUnreadCountModel; public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { view = inflater.inflate(R.layout.h0_message_list, null); mMenu = (ImageView) view.findViewById(R.id.message_menu); mUnreadMessageNum = (TextView) view.findViewById(R.id.unread_message_num); mMessagePerson = (TextView) view.findViewById(R.id.message_person); mMessageSystem = (TextView) view.findViewById(R.id.message_system); mListViewPerson = (XListView) view.findViewById(R.id.message_listview); mListViewPerson.setXListViewListener(this, 1); mListViewPerson.setPullLoadEnable(true); mListViewPerson.setRefreshTime(); mListViewSystem = (XListView) view.findViewById(R.id.message_system_listview); mListViewSystem.setXListViewListener(this, 2); mListViewSystem.setPullLoadEnable(true); mListViewSystem.setRefreshTime(); mMessageUnreadCountModel = new MessageUnreadCountModel(getActivity()); mMessageUnreadCountModel.addResponseListener(this); mMessageListModel = new MessageListModel(getActivity()); mMessageListModel.addResponseListener(this); mMessageListModel.loadCacheMsg(); if(mMessageListModel.publicMessageList!=null&& mMessageListModel.publicMessageList.size()>0){ mH0MessageAdapter = new H0_MessageAdapter(getActivity(), mMessageListModel.publicMessageList, true); mListViewPerson.setAdapter(mH0MessageAdapter); mListViewPerson.loadMoreHide(); } // messageListModel.getMessageList(); mListViewPerson.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub MESSAGE message = mMessageListModel.publicMessageList.get(position - 1); mMessageId = message.id; if (message.is_readed == 0) { mMessageListModel.read(mMessageId); } if (message.type == ENUM_MESSAGE_TYPE.ORDER.value()) { if (message.order_id != 0) { Intent intent = new Intent(getActivity(), D1_OrderActivity.class); intent.putExtra(D1_OrderActivity.ORDER_ID, message.order_id); startActivity(intent); getActivity().overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out); } else if (!"".equals(message.url)) { Intent intent = new Intent(getActivity(), WebViewActivity.class); intent.putExtra(WebViewActivity.WEBURL, message.url); startActivity(intent); getActivity().overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out); } } } }); mListViewSystem.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub MESSAGE message = mMessageListModel.publicMessageSysList.get(position - 1); if (!"".equals(message.url)) { Intent intent = new Intent(getActivity(), WebViewActivity.class); intent.putExtra(WebViewActivity.WEBURL, message.url); startActivity(intent); getActivity().overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out); } else { Intent intent = new Intent(getActivity(), MessageDetailActivity.class); intent.putExtra("message_content", message.content); startActivity(intent); getActivity().overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out); } } }); mMessagePerson.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub mCurrentState = msg; mListViewPerson.setVisibility(View.VISIBLE); mListViewSystem.setVisibility(View.GONE); mMessagePerson.setTextColor(Color.WHITE); mMessagePerson.setBackgroundResource(R.drawable.e0_nav_left_selected); mMessageSystem.setTextColor(getResources().getColor(R.color.select_item)); mMessageSystem.setBackgroundResource(R.drawable.e0_nav_right_normal); if (mH0MessageAdapter == null) { mMessageListModel.loadCacheMsg(); if (mMessageListModel.publicMessageList != null && mMessageListModel.publicMessageList.size() > 0) { mH0MessageAdapter = new H0_MessageAdapter(getActivity(), mMessageListModel.publicMessageList, true); mListViewPerson.setAdapter(mH0MessageAdapter); mListViewPerson.loadMoreHide(); } mMessageListModel.getList(); } } }); mMessageSystem.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub mCurrentState = sys_msg; mListViewSystem.setVisibility(View.VISIBLE); mListViewPerson.setVisibility(View.GONE); mMessagePerson.setTextColor(getResources().getColor(R.color.select_item)); mMessagePerson.setBackgroundResource(R.drawable.e0_nav_left_normal); mMessageSystem.setTextColor(Color.WHITE); mMessageSystem.setBackgroundResource(R.drawable.e0_nav_right_selected); if (mMessageSystemAdapter == null) { mMessageListModel.loadCacheSysMsg(); if (mMessageListModel.publicMessageSysList != null && mMessageListModel.publicMessageSysList.size() > 0) { mMessageSystemAdapter = new H0_MessageAdapter(getActivity(), mMessageListModel.publicMessageSysList, false); mListViewSystem.setAdapter(mMessageSystemAdapter); mListViewSystem.loadMoreHide(); } mMessageListModel.getSysList(); } } }); if (!EventBus.getDefault().isregister(this)) { EventBus.getDefault().register(this); } return view; } @Override public void onResume() { mMessageUnreadCountModel.getMessageUnreadCount(); if (mCurrentState == msg) { mMessageListModel.getList(); } else { mMessageListModel.getSysList(); } super.onResume(); } public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); view.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub } }); mMenu.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub ((SlidingActivity) getActivity()).showLeft(); } }); } @Override public void onDestroyView() { // TODO Auto-generated method stub if (EventBus.getDefault().isregister(this)) { EventBus.getDefault().unregister(this); } super.onDestroyView(); } @Override public void onRefresh(int id) { // TODO Auto-generated method stub if(id == 1) { mMessageListModel.getList(); } else { mMessageListModel.getSysList(); } } @Override public void onLoadMore(int id) { // TODO Auto-generated method stub if(id == 1) { mMessageListModel.getListMore(); } else { mMessageListModel.getMessageSysListMore(); } } @Override public void OnMessageResponse(String url, JSONObject jo, AjaxStatus status) throws JSONException { // TODO Auto-generated method stub mListViewPerson.stopRefresh(); mListViewPerson.stopLoadMore(); mListViewSystem.stopRefresh(); mListViewSystem.stopLoadMore(); if(url.endsWith(ApiInterface.MESSAGE_LIST)) { setAdapterCont(); if(mMessageListModel.publicMore == 0) { mListViewPerson.setPullLoadEnable(false); } else { mListViewPerson.setPullLoadEnable(true); } } else if(url.endsWith(ApiInterface.MESSAGE_READ)) { Message msg = new Message(); msg.what = MessageConstant.MESSAGE_READ; EventBus.getDefault().post(msg); for(int i = 0; i < mMessageListModel.publicMessageList.size(); i++) { if(mMessageListModel.publicMessageList.get(i).id == mMessageId) { mMessageListModel.publicMessageList.get(i).is_readed = 1; break; } } mH0MessageAdapter.publicList = mMessageListModel.publicMessageList; mH0MessageAdapter.notifyDataSetChanged(); setMessageUnreadCount(); } else if(url.endsWith(ApiInterface.MESSAGE_SYSLIST)) { setSysAdapterCont(); if(mMessageListModel.publicMoreSys == 0) { mListViewSystem.setPullLoadEnable(false); } else { mListViewSystem.setPullLoadEnable(true); } }else if(url.endsWith(ApiInterface.MESSAGE_UNREAD_COUNT)) { mUnreadMessageCount = mMessageUnreadCountModel.publicUnreadCount; setMessageUnreadCount(); } } private void setAdapterCont() { mListViewPerson.loadMoreShow(); if(mH0MessageAdapter == null) { mH0MessageAdapter = new H0_MessageAdapter(getActivity(), mMessageListModel.publicMessageList, true); mListViewPerson.setAdapter(mH0MessageAdapter); } else { mH0MessageAdapter.publicList = mMessageListModel.publicMessageList; mH0MessageAdapter.notifyDataSetChanged(); } } private void setSysAdapterCont() { mListViewSystem.loadMoreShow(); if(mMessageSystemAdapter == null) { mMessageSystemAdapter = new H0_MessageAdapter(getActivity(), mMessageListModel.publicMessageSysList, false); mListViewSystem.setAdapter(mMessageSystemAdapter); } else { mMessageSystemAdapter.publicList = mMessageListModel.publicMessageSysList; mMessageSystemAdapter.notifyDataSetChanged(); } } private void setMessageUnreadCount() { if(mUnreadMessageCount <= 0) { mUnreadMessageNum.setVisibility(View.GONE); } else { mUnreadMessageNum.setVisibility(View.VISIBLE); if(mUnreadMessageCount < 100) { mUnreadMessageNum.setText(A2_MenuFragment.publicMessageUnreadCount + ""); } else { mUnreadMessageNum.setText("99+"); } } } public void onEvent(Object event) { Message message = (Message) event; if (message.what == MessageConstant.SIGN_IN_SUCCESS) { if (mCurrentState == msg) { mMessageListModel.getList(); } else { mMessageListModel.getSysList(); } } } }