Java tutorial
// // _/_/_/ _/ _/_/_/_/_/ // _/ _/_/ _/_/ _/ _/ _/ _/_/ _/_/ // _/ _/_/ _/_/_/_/ _/_/_/_/ _/_/ _/ _/ _/ _/ _/ // _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ // _/_/_/ _/_/_/ _/_/_/ _/ _/ _/_/_/_/_/ _/_/ _/_/ // // // Copyright (c) 2015-2016, Geek Zoo Studio // http://www.geek-zoo.com // // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS // IN THE SOFTWARE. // package com.insthub.O2OMobile.Activity; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; import android.os.Message; import android.view.View; import android.widget.AdapterView; import android.widget.ImageView; import android.widget.TextView; import com.BeeFramework.activity.BaseActivity; 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.Adapter.H0_MessageAdapter; import com.insthub.O2OMobile.Fragment.A2_MenuFragment; 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 MessageActivity extends BaseActivity implements IXListViewListener, BusinessResponse { 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; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.h0_message_list); mMenu = (ImageView) findViewById(R.id.message_menu); mMenu.setImageResource(R.drawable.a2_back_button); mMenu.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); mUnreadMessageNum = (TextView) findViewById(R.id.unread_message_num); mMessagePerson = (TextView) findViewById(R.id.message_person); mMessageSystem = (TextView) findViewById(R.id.message_system); mListViewPerson = (XListView) findViewById(R.id.message_listview); mListViewPerson.setXListViewListener(this, 1); mListViewPerson.setPullLoadEnable(true); mListViewPerson.setRefreshTime(); mListViewSystem = (XListView) findViewById(R.id.message_system_listview); mListViewSystem.setXListViewListener(this, 2); mListViewSystem.setPullLoadEnable(true); mListViewSystem.setRefreshTime(); mMessageUnreadCountModel = new MessageUnreadCountModel(this); mMessageUnreadCountModel.addResponseListener(this); mMessageListModel = new MessageListModel(this); mMessageListModel.addResponseListener(this); mMessageListModel.loadCacheMsg(); if (mMessageListModel.publicMessageList != null && mMessageListModel.publicMessageList.size() > 0) { mH0MessageAdapter = new H0_MessageAdapter(this, mMessageListModel.publicMessageList, true); mListViewPerson.setAdapter(mH0MessageAdapter); mListViewPerson.loadMoreHide(); } mListViewPerson.setOnItemClickListener(new AdapterView.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(MessageActivity.this, D1_OrderActivity.class); intent.putExtra(D1_OrderActivity.ORDER_ID, message.order_id); startActivity(intent); MessageActivity.this.overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out); } else if (!"".equals(message.url)) { Intent intent = new Intent(MessageActivity.this, WebViewActivity.class); intent.putExtra(WebViewActivity.WEBURL, message.url); startActivity(intent); MessageActivity.this.overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out); } } } }); mListViewSystem.setOnItemClickListener(new AdapterView.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(MessageActivity.this, WebViewActivity.class); intent.putExtra(WebViewActivity.WEBURL, message.url); startActivity(intent); MessageActivity.this.overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out); } else { Intent intent = new Intent(MessageActivity.this, MessageDetailActivity.class); intent.putExtra("message_content", message.content); startActivity(intent); MessageActivity.this.overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out); } } }); mMessagePerson.setOnClickListener(new View.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(MessageActivity.this, mMessageListModel.publicMessageList, true); mListViewPerson.setAdapter(mH0MessageAdapter); mListViewPerson.loadMoreHide(); } mMessageListModel.getList(); } } }); mMessageSystem.setOnClickListener(new View.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(MessageActivity.this, mMessageListModel.publicMessageSysList, false); mListViewSystem.setAdapter(mMessageSystemAdapter); mListViewSystem.loadMoreHide(); } mMessageListModel.getSysList(); } } }); if (!EventBus.getDefault().isregister(this)) { EventBus.getDefault().register(this); } } @Override public void onResume() { mMessageUnreadCountModel.getMessageUnreadCount(); if (mCurrentState == MSG) { mMessageListModel.getList(); } else { mMessageListModel.getSysList(); } super.onResume(); } protected void onDestroy() { if (EventBus.getDefault().isregister(this)) { EventBus.getDefault().unregister(this); } super.onDestroy(); } @Override public void onRefresh(int id) { if (id == 1) { mMessageListModel.getList(); } else { mMessageListModel.getSysList(); } } @Override public void onLoadMore(int id) { 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(MessageActivity.this, 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(MessageActivity.this, 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(); } } } }