package com.juns.wechat.view.fragment; import net.tsz.afinal.FinalDb; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.graphics.PixelFormat; import android.os.Bundle; 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.view.WindowManager; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.LinearLayout.LayoutParams; import android.widget.ListView; import android.widget.TextView; import com.juns.wechat.Constants; import com.juns.wechat.GloableParams; import com.juns.wechat.R; import com.juns.wechat.adpter.ContactAdapter; import com.juns.wechat.bean.User; import com.juns.wechat.chat.ChatActivity; import com.juns.wechat.common.Utils; import com.juns.wechat.view.activity.FriendMsgActivity; import com.juns.wechat.view.activity.GroupListActivity; import com.juns.wechat.view.activity.NewFriendsListActivity; import com.juns.wechat.view.activity.PublishUserListActivity; import com.juns.wechat.view.activity.SearchActivity; import com.juns.wechat.widght.SideBar; //通讯录 public class Fragment_Friends extends Fragment implements OnClickListener, OnItemClickListener { private Activity ctx; private View layout, layout_head; private ListView lvContact; private SideBar indexBar; private TextView mDialogText; private WindowManager mWindowManager; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (layout == null) { ctx = this.getActivity(); layout = ctx.getLayoutInflater().inflate(R.layout.fragment_friends, null); mWindowManager = (WindowManager) ctx .getSystemService(Context.WINDOW_SERVICE); initViews(); initData(); setOnListener(); } else { ViewGroup parent = (ViewGroup) layout.getParent(); if (parent != null) { parent.removeView(layout); } } return layout; } private void initViews() { lvContact = (ListView) layout.findViewById(R.id.lvContact); mDialogText = (TextView) LayoutInflater.from(getActivity()).inflate( R.layout.list_position, null); mDialogText.setVisibility(View.INVISIBLE); indexBar = (SideBar) layout.findViewById(R.id.sideBar); indexBar.setListView(lvContact); WindowManager.LayoutParams lp = new WindowManager.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.TYPE_APPLICATION, WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, PixelFormat.TRANSLUCENT); mWindowManager.addView(mDialogText, lp); indexBar.setTextView(mDialogText); layout_head = ctx.getLayoutInflater().inflate( R.layout.layout_head_friend, null); lvContact.addHeaderView(layout_head); } @Override public void onDestroy() { mWindowManager.removeView(mDialogText); super.onDestroy(); } /** * 刷新页面 */ public void refresh() { initData(); } private void initData() { if (GloableParams.UserInfos != null) { lvContact.setAdapter(new ContactAdapter(getActivity(), GloableParams.UserInfos)); } else { FinalDb db = FinalDb .create(getActivity(), Constants.DB_NAME, false); GloableParams.UserInfos = db.findAllByWhere(User.class, "type='N'"); lvContact.setAdapter(new ContactAdapter(getActivity(), GloableParams.UserInfos)); for (User user : GloableParams.UserInfos) { GloableParams.Users.put(user.getTelephone(), user); } // Intent intent = new Intent(getActivity(), UpdateService.class); // getActivity().startService(intent); } } private void setOnListener() { lvContact.setOnItemClickListener(this); layout_head.findViewById(R.id.layout_addfriend) .setOnClickListener(this); layout_head.findViewById(R.id.layout_search).setOnClickListener(this); layout_head.findViewById(R.id.layout_group).setOnClickListener(this); layout_head.findViewById(R.id.layout_public).setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.layout_search:// 搜索好友及公众号 Utils.start_Activity(getActivity(), SearchActivity.class); break; case R.id.layout_addfriend:// 添加好友 Utils.start_Activity(getActivity(), NewFriendsListActivity.class); break; case R.id.layout_group:// 群聊 Utils.start_Activity(getActivity(), GroupListActivity.class); break; case R.id.layout_public:// 公众号 Utils.start_Activity(getActivity(), PublishUserListActivity.class); break; default: break; } } @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { User user = GloableParams.UserInfos.get(arg2 - 1); if (user != null) { Intent intent = new Intent(getActivity(), FriendMsgActivity.class); intent.putExtra(Constants.NAME, user.getUserName()); intent.putExtra(Constants.TYPE, ChatActivity.CHATTYPE_SINGLE); intent.putExtra(Constants.User_ID, user.getTelephone()); getActivity().startActivity(intent); getActivity().overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out); } } }