package com.mogujie.tt.ui.fragment;
import java.util.ArrayList;
import java.util.List;
import android.content.BroadcastReceiver;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.mogujie.tt.R;
import com.mogujie.tt.imlib.IMActions;
import com.mogujie.tt.imlib.IMSession;
import com.mogujie.tt.imlib.proto.ContactEntity;
import com.mogujie.tt.imlib.service.IMService;
import com.mogujie.tt.imlib.utils.IMUIHelper;
import com.mogujie.tt.ui.activity.SettingActivity;
import com.mogujie.tt.ui.activity.UserInfoActivity;
import com.mogujie.tt.ui.utils.IMServiceHelper;
import com.mogujie.tt.ui.utils.IMServiceHelper.OnIMServiceListner;
import com.mogujie.widget.imageview.MGWebImageView;
public class MyFragment extends MainFragment implements OnIMServiceListner {
private View curView = null;
private IMServiceHelper imServiceHelper = new IMServiceHelper();
private View contentView;
private View settingView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
List<String> actions = new ArrayList<String>();
actions.add(IMActions.ACTION_CONTACT_READY);
imServiceHelper.connect(getActivity(), actions, IMServiceHelper.INTENT_NO_PRIORITY, this);
if (null != curView) {
((ViewGroup) curView.getParent()).removeView(curView);
return curView;
}
curView = inflater.inflate(R.layout.tt_fragment_my, topContentView);
initRes();
return curView;
}
/**
* @Description 初始化资源
*/
private void initRes() {
super.init(curView);
contentView = curView.findViewById(R.id.content);
settingView = curView.findViewById(R.id.openSetttingPage);
settingView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MyFragment.this.getActivity(), SettingActivity.class));
}
});
hideContent();
// 设置顶部标题栏
setTopTitle(getActivity().getString(R.string.page_me));
// 设置页面其它控件
}
private void hideContent() {
if (contentView != null) {
contentView.setVisibility(View.GONE);
}
}
private void showContent() {
if (contentView != null) {
contentView.setVisibility(View.VISIBLE);
}
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
}
@Override
public void onDestroy() {
super.onDestroy();
}
@Override
protected void initHandler() {
}
@Override
public void onAction(String action, Intent intent,
BroadcastReceiver broadcastReceiver) {
logger.d("detail#onAction action:%s", action);
if (action.equals(IMActions.ACTION_CONTACT_READY)) {
init(imServiceHelper.getIMService());
}
}
@Override
public void onIMServiceConnected() {
// TODO Auto-generated method stub
if (curView == null) {
return;
}
IMService imService = imServiceHelper.getIMService();
if (imService == null) {
return;
}
if (!imService.getContactManager().ContactsDataReady()) {
logger.i("detail#contact data are not ready");
} else {
init(imService);
}
}
private void init(IMService imService) {
showContent();
hideProgressBar();
if (imService == null) {
return;
}
final ContactEntity loginContact = imService.getContactManager().getLoginContact();
if (loginContact == null) {
return;
}
TextView nickNameView = (TextView) curView.findViewById(R.id.nickName);
TextView userNameView = (TextView) curView.findViewById(R.id.userName);
MGWebImageView portraitImageView = (MGWebImageView) curView.findViewById(R.id.user_portrait);
nickNameView.setText(loginContact.nickName);
userNameView.setText(loginContact.name);
IMUIHelper.setWebImageViewAvatar(portraitImageView, loginContact.avatarUrl, IMSession.SESSION_P2P);
RelativeLayout userContainer = (RelativeLayout) curView.findViewById(R.id.user_container);
userContainer.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
IMUIHelper.openUserProfileActivity(getActivity(), loginContact.id);
}
});
}
}