package com.sogouchat.popnewmsg;
import com.sogouchat.R;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.LinearInterpolator;
import android.view.animation.RotateAnimation;
import android.view.animation.ScaleAnimation;
import android.view.animation.Animation.AnimationListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
public class PopConversationView extends LinearLayout {
private TextView mTitleView;
private RelativeLayout titleLayout;
private LinearLayout expandLayout;
private LinearLayout layoutOrc;
private LinearLayout layoutExt;
private EditText inpuText;
private Button btnSend;
private Button btnOpen;
private Button btnExit;
private Button btnReply;
private boolean bInEditModel = false;
private boolean bInExpand = true;
private PopConversation conversation = null;
private ListView msgListView;
public PopConversationView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public PopConversationView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public void SetPopConversation(PopConversation conversation){
this.conversation = conversation;
if (conversation.bInEditModel) {
layoutOrc.setVisibility(View.GONE);
layoutExt.setVisibility(View.VISIBLE);
}
mTitleView.setText(conversation.strShow);
PopSubListAdapter listAdapter = new PopSubListAdapter(conversation.messages, getContext());
msgListView.setAdapter(listAdapter);
msgListView.setSelection(listAdapter.getCount()-1);
setListViewHeightBasedOnChildren(msgListView);
}
public void Update(){
((BaseAdapter)msgListView.getAdapter()).notifyDataSetChanged();
}
public void OnItemExit(){
PopConversationMgr.GetI().DeleteTab(conversation);
}
public void OnItemOpen(){
}
public void OnItemSend(){
String strNumber=null;
String strText=null;
strNumber = mTitleView.getText().toString();
strText = inpuText.getText().toString();
if (strNumber!=null && strText!=null && !strText.equals("")) {
PopConversationMgr.GetI().SendMessage(strNumber, strText);
}else {
Toast.makeText(getContext(), "error", Toast.LENGTH_SHORT).show();
}
PopConversationMgr.GetI().DeleteTab(conversation);
}
public void OnItemReply(){
final int nHeight= layoutOrc.getLayoutParams().height;
final int nWidth = layoutOrc.getLayoutParams().width;
ScaleAnimation scaleAnimation = new ScaleAnimation(1, 1, 1, 0.01f,
RotateAnimation.RELATIVE_TO_SELF, 0.5f,
RotateAnimation.RELATIVE_TO_SELF,0.0f);
scaleAnimation.setDuration(300);
LinearInterpolator interpolator = new LinearInterpolator();
scaleAnimation.setInterpolator(interpolator);
layoutOrc.startAnimation(scaleAnimation);
layoutExt.setVisibility(View.VISIBLE);
ScaleAnimation scaleAnimation2 = new ScaleAnimation(1, 1, 0.01f, 1f,
RotateAnimation.RELATIVE_TO_SELF, 0.5f,
RotateAnimation.RELATIVE_TO_SELF,1.0f);
scaleAnimation2.setDuration(300);
layoutExt.startAnimation(scaleAnimation2);
scaleAnimation.setAnimationListener(new AnimationListener() {
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub
}
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
public void onAnimationEnd(Animation animation) {
// TODO Auto-generated method stub
layoutOrc.setVisibility(View.GONE);
}
});
if (conversation!=null) {
conversation.bInEditModel = true;
}
}
public static void setListViewHeightBasedOnChildren(ListView listView) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
// pre-condition
return;
}
int totalHeight = 0;
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView);
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
listView.setLayoutParams(params);
}
@Override
protected void onFinishInflate() {
// TODO Auto-generated method stub
titleLayout = (RelativeLayout)this.findViewById(R.id.titlebar);
mTitleView = (TextView)this.findViewById(R.id.titletext);
expandLayout = (LinearLayout)this.findViewById(R.id.expand_layout);
layoutOrc = (LinearLayout)this.findViewById(R.id.popnewdlg_layout_orc);
layoutExt = (LinearLayout)this.findViewById(R.id.popnewdlg_layout_ext);
inpuText = (EditText)this.findViewById(R.id.popnewdlg_text);
msgListView = (ListView)this.findViewById(R.id.new_messageList);
//expandLayout.setVisibility(View.GONE);
titleLayout.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
bInExpand = !bInExpand;
// if (bInExpand) {
// expandLayout.setVisibility(View.VISIBLE);
// }else {
// expandLayout.setVisibility(View.GONE);
// }
}
});
btnSend = (Button)this.findViewById(R.id.popnewdlg_send);
btnSend.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
OnItemSend();
}
});
btnOpen=(Button)this.findViewById(R.id.popnewdlg_open);
btnOpen.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
OnItemOpen();
}
});
btnExit=(Button)this.findViewById(R.id.popnewdlg_exit);
btnExit.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
OnItemExit();
}
});
btnReply =(Button)this.findViewById(R.id.popnewdlg_reply);
btnReply.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
OnItemReply();
//conversation.bInEditModel = true;
}
});
super.onFinishInflate();
}
}