package com.way.chat.activity;
import java.util.List;
import android.app.ActivityGroup;
import android.app.AlertDialog;
import android.app.NotificationManager;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.way.Constants;
import com.way.chat.common.bean.User;
import com.way.chat.common.tran.bean.TranObject;
import com.way.util.SharePreferenceUtil;
import com.way.util.UserDB;
/**
* 好友列表的Activity
*
* @author way
*
*/
public class FriendListActivity extends ActivityGroup implements
OnClickListener {
private LinearLayout layout_body_activity;
private ImageView img_recent_chat;
private ImageView img_friend_list;
private ImageView img_group_friend;
private ImageView myHeadImage;
private TextView myName;
private ImageView bg_recent_chat;
private ImageView bg_friend_list;
private ImageView bg_group_friend;
private int current = 1; // 默认选中第2个,可以动态的改变此参数值
private TranObject msg;
private List<User> list;
private MenuInflater mi;// 菜单
private int[] imgs = { R.drawable.icon, R.drawable.f1, R.drawable.f2,
R.drawable.f3, R.drawable.f4, R.drawable.f5, R.drawable.f6,
R.drawable.f7, R.drawable.f8, R.drawable.f9 };
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉标题栏
setContentView(R.layout.friend_list);
mi = new MenuInflater(this);
UserDB userDB = new UserDB(FriendListActivity.this);
msg = (TranObject) getIntent().getSerializableExtra(Constants.MSGKEY);
if (msg == null) {// 如果为空,说明是从后台切换过来的,需要从数据库中读取好友列表信息
msg = new TranObject<List<User>>(null);
list = userDB.getUser();
msg.setObject(list);
} else {// 把好友列表信息保存到数据库
list = (List<User>) msg.getObject();
userDB.updateUser(list);
}
initUI();
showView(current);
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
if (!GetMsgService.isStart) {
Intent service = new Intent(this, GetMsgService.class);
startService(service);
}
new SharePreferenceUtil(this, Constants.SAVE_USER).setIsStart(false);
NotificationManager manager = GetMsgService.mNotificationManager;
if (manager != null) {
manager.cancel(Constants.NOTIFY_ID);
GetMsgService.newMsgNum = 0;
}
super.onResume();
}
private void initUI() {
layout_body_activity = (LinearLayout) findViewById(R.id.bodylayout);
img_recent_chat = (ImageView) findViewById(R.id.tab1);
img_recent_chat.setOnClickListener(this);
img_friend_list = (ImageView) findViewById(R.id.tab2);
img_friend_list.setOnClickListener(this);
img_group_friend = (ImageView) findViewById(R.id.tab3);
img_group_friend.setOnClickListener(this);
myHeadImage = (ImageView) findViewById(R.id.friend_list_myImg);
myName = (TextView) findViewById(R.id.friend_list_myName);
bg_recent_chat = (ImageView) findViewById(R.id.tab1_bg);
bg_friend_list = (ImageView) findViewById(R.id.tab2_bg);
bg_group_friend = (ImageView) findViewById(R.id.tab3_bg);
myHeadImage.setImageResource(imgs[list.get(0).getImg()]);
myName.setText(list.get(0).getName());
layout_body_activity.setFocusable(true);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.tab1:
current = 0;
showView(current);
break;
case R.id.tab2:
current = 1;
showView(current);
break;
case R.id.tab3:
current = 2;
showView(current);
break;
default:
break;
}
}
// 在主界面中显示其他界面
public void showView(int current) {
switch (current) {
case 0:
layout_body_activity.removeAllViews();
View v = getLocalActivityManager().startActivity("one",
new Intent(FriendListActivity.this, Tab1.class))
.getDecorView();
bg_recent_chat.setVisibility(View.VISIBLE);
bg_friend_list.setVisibility(View.INVISIBLE);
bg_group_friend.setVisibility(View.INVISIBLE);
layout_body_activity.addView(v);
break;
case 1:
layout_body_activity.removeAllViews();
Intent i = new Intent(FriendListActivity.this, Tab2.class);
i.putExtra(Constants.MSGKEY, msg);
layout_body_activity.addView(getLocalActivityManager()
.startActivity("two", i).getDecorView());
bg_recent_chat.setVisibility(View.INVISIBLE);
bg_friend_list.setVisibility(View.VISIBLE);
bg_group_friend.setVisibility(View.INVISIBLE);
break;
case 2:
layout_body_activity.removeAllViews();
layout_body_activity.addView(getLocalActivityManager()
.startActivity("three",
new Intent(FriendListActivity.this, Tab3.class))
.getDecorView());
bg_recent_chat.setVisibility(View.INVISIBLE);
bg_friend_list.setVisibility(View.INVISIBLE);
bg_group_friend.setVisibility(View.VISIBLE);
break;
default:
break;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
mi.inflate(R.menu.friend_list, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
// 菜单选项添加事件处理
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.friend_menu_add:
Toast.makeText(getApplicationContext(), "添加好友", 0).show();
break;
case R.id.friend_menu_exit:
exitDialog(FriendListActivity.this, "QQ提示", "您真的要退出吗?");
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
// 完全退出提示窗
private void exitDialog(Context context, String title, String msg) {
new AlertDialog.Builder(context).setTitle(title).setMessage(msg)
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 关闭服务
Intent service = new Intent(FriendListActivity.this,
GetMsgService.class);
stopService(service);
// 发送广播关闭所有activity
Intent i = new Intent();
i.setAction(Constants.ACTION);
sendBroadcast(i);
finish();// 关闭自己,因为自己没有继承MyActivity
}
}).setNegativeButton("取消", null).create().show();
}
}