package com.sogouchat.ui; import com.sogouchat.R; import com.sogouchat.SogouChatApp; import com.sogouchat.bean.TelNode; import com.sogouchat.conversation.ConversationActivity; import com.sogouchat.os.ChatAppConstant; import com.sogouchat.util.LayoutUtil; import com.sogouchat.widget.BadgeView; import com.sogouchat.widget.SwitchButton; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.text.format.Time; import android.util.Log; import android.view.KeyEvent; import android.view.View; import android.view.Window; import android.view.View.OnClickListener; import android.view.animation.BounceInterpolator; import android.view.animation.TranslateAnimation; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.Button; import android.widget.CompoundButton; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; public class NewsListActivity extends Activity implements OnItemClickListener { private static final String TAG = "NewsListActivity"; private NewsListAdapter mAdapter; private ListView mListView; private SogouChatApp mApp; private Button mNewMsgBtn; private Button mContactListBtn; private BadgeView mNewBadge; private int mNewNum = 0; private TextView mTitleText; private boolean mIsNew; public void onCreate(Bundle savedInstanceState) { Log.i(TAG, "onCreate"); super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_news_list); mListView = (ListView) findViewById(R.id.news_list); mApp = (SogouChatApp) getApplication(); mApp.mNewsList = this; View titleV = (View) findViewById(R.id.news_page_title); mNewBadge = new BadgeView(this, titleV); mNewBadge.setBackgroundResource(R.drawable.badge_small); mNewBadge.setTextSize(10); mNewBadge.setBadgePosition(BadgeView.POSITION_TOP_LEFT); mNewBadge.setBadgeMargin(LayoutUtil.dip2px(this, 45), 2); // mNewBadge.setOnClickListener(new OnClickListener(){ // @Override // public void onClick(View v) { // // TODO Auto-generated method stub // switchToNew(mBadgetState); // // } // }); mAdapter = new NewsListAdapter(this, mApp); mAdapter.setupList(); mTitleText = (TextView) findViewById(R.id.page_name); mListView.setOnItemClickListener(this); mListView.setAdapter(mAdapter); mNewMsgBtn = (Button) findViewById(R.id.contact_btn_new); mNewMsgBtn.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub if (!mApp.isPinyinOk()){ mApp.doSetupPinyin(); } Intent intent = new Intent(); intent.setClass(NewsListActivity.this, CreateActivity.class); // Bundle bd = new Bundle(); // bd.putString("content", "asdfasdfasdfasdf"); // intent.putExtras(bd); startActivity(intent); } }); mContactListBtn = (Button) findViewById(R.id.contact_btn_contacts); mContactListBtn.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub if (!mApp.isPinyinOk()){ mApp.doSetupPinyin(); } Intent intent = new Intent(); intent.setClass(NewsListActivity.this, ContactListActivity2.class); startActivity(intent); } }); SwitchButton switchButton = (SwitchButton) findViewById(R.id.btn_switch); switchButton .setOnCheckedChangeListener(new OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { // TODO Auto-generated method stub switchToAll(!isChecked); } }); Log.i(TAG, "onCreate Ok"); } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub // Insert desired behavior here. Log.i("FragmentComplexList", "Item clicked: " + id); Intent intent = new Intent(); TelNode item = mAdapter.getData().get(position); String tel = item.mTel; if (tel == null) return; String name = item.mName; if (item.mUnMsgCnt > 0) { // mApp.mTabMain.setTotalNewMsgCntDelta(tel, item.mNewMsgCnt); item.mUnMsgCnt = 0; mAdapter.notifyDataSetChanged(); mApp.sendSrvForeMsg(ChatAppConstant.SRV_ForeMsg_Read_Sms, item.mTel, null); } intent.setClass(this, ChatListActivity.class); Bundle bundle = new Bundle(); bundle.putString("tel", tel); bundle.putString("name", name); bundle.putInt("threadID", item.mThreadId); intent.putExtras(bundle); // intent.setClass(this, ConversationActivity.class); // intent.putExtra(ConversationActivity.STR_THREADID, item.mThreadId); // intent.putExtra(ConversationActivity.STR_TYPE, ConversationActivity.TYPE_FROM_LIST); this.startActivity(intent); } public void switchToNew(boolean toNew){ if(toNew){ mAdapter.switchToNew(true); mTitleText.setText("未读消息"); mIsNew = true; mAdapter.notifyDataSetChanged(); } else{ if(mIsNew){ mAdapter.switchToNew(false); mAdapter.notifyDataSetChanged(); } mTitleText.setText("消息"); } } public void switchToAll(boolean toAll) { mAdapter.switchToAll(toAll); mTitleText.setText("消息"); mAdapter.notifyDataSetChanged(); mIsNew = false; mApp.mSliding.switchItem(0); } public void setTotalNewMsgCnt(int totalNew) { Log.i(TAG, "setTotalNewMsgCnt"); if (mNewNum!= totalNew && totalNew>0){ mNewNum = totalNew; mNewBadge.setText(String.valueOf(totalNew)); TranslateAnimation anim = new TranslateAnimation(LayoutUtil.dip2px(this, 50), 0, 0, 0); anim.setInterpolator(new BounceInterpolator()); anim.setDuration(1000); mNewBadge.show(anim); mApp.mSliding.setNewMsgNum(totalNew); } else if (totalNew==0){ mNewNum = totalNew; mNewBadge.hide(); } Log.i(TAG, "setTotalNewMsgCnt Ok"); } public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) { //监控/拦截/屏蔽返回键 long nowT = System.currentTimeMillis(); long sub = nowT -mApp.mBackRecord; if (mApp.mBackRecord == 0 || sub > 3*1000) { mApp.mBackRecord = nowT; Toast.makeText(this, "再按一次推出信息!", Toast.LENGTH_SHORT).show(); return true; } else if (sub < 3*1000) { mApp.mBackRecord = 0; return super.onKeyDown(keyCode, event); } } return super.onKeyDown(keyCode, event); } }