package com.moupress.app.friendshost.ui;
import com.moupress.app.friendshost.PubSub;
import com.moupress.app.friendshost.R;
import com.moupress.app.friendshost.ui.listeners.ContentViewListener;
import com.moupress.app.friendshost.ui.listeners.TitleBarListener;
import com.moupress.app.friendshost.util.Mail;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.widget.BaseExpandableListAdapter;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.ExpandableListView;
import android.widget.ImageButton;
import android.widget.RadioButton;
import android.widget.TextView;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ExpandableListView.OnGroupExpandListener;
public class FeedBackView extends DialogView{
private Activity zActivity;
private Intent intentBack;
private ExpandableListView feedBksExpLstV;
private ExpandableListAdapter feedBksExpAdapter;
private String[] feedBackList;
private String[] feedBackCntList;
public FeedBackView(Activity zActivity, Intent intentBack)
{
this.zActivity = zActivity;
this.intentBack = intentBack;
}
private void ExpandGroup(int index, boolean Expand)
{
for (int i=0; i< this.feedBackList.length;i++)
{
if(index == i)
{
// if(Expand)
// {
// this.feedBksExpLstV.expandGroup(i);
// }
// else
// {
// this.feedBksExpLstV.collapseGroup(i);
// }
}
else
{
this.feedBksExpLstV.collapseGroup(i);
}
}
}
@Override
public void InitTitle(final Activity activity, TitleBarListener titleBarListener) {
// TODO Auto-generated method stub
//super.InitTitle(activity, titleBarListener);
Button btnClose = (Button) activity.findViewById(R.id.CancelBtn);
btnClose.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
activity.finish();
}});
ImageButton btnSend = (ImageButton) activity.findViewById(R.id.thirdbtn);
btnSend.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Mail.sendFeedbackEmail(activity, makeEmailContent());
activity.finish();
}
}
);
}
private String makeEmailContent() {
String emailCnt = null;
EditText edtTxtBoxEmailAdrr = (EditText) zActivity.findViewById(R.id.edtTxtEmlAddr);
if(edtTxtBoxEmailAdrr.getText().toString() != null)
{
emailCnt += "Email: "+edtTxtBoxEmailAdrr.getText().toString()+"\n";
}
for(int i=0 ; i< this.feedBackList.length;i++)
{
if(this.feedBackCntList.length > i && this.feedBackCntList[i] != null)
{
emailCnt += this.feedBackList[i]+" "+this.feedBackCntList[i]+"\n";
}
}
return emailCnt;
}
@Override
public void InitContent(Activity activity,
ContentViewListener contentViewListener) {
// TODO Auto-generated method stub
//super.InitContent(activity, contentViewListener);
this.feedBksExpLstV = (ExpandableListView) activity.findViewById(R.id.feedBackExpList);
this.feedBackList = activity.getResources().getStringArray(R.array.fh_feedback_items);
this.feedBksExpAdapter = new ExpandableListAdapter();
this.feedBksExpLstV.setOnGroupExpandListener(new OnGroupExpandListener(){
@Override
public void onGroupExpand(int indx) {
// TODO Auto-generated method stub
ExpandGroup(indx,true);
}});
this.feedBackCntList = new String[this.feedBackList.length];
}
@Override
public void LoadView(Bundle loadData) {
// TODO Auto-generated method stub
this.feedBksExpLstV.setAdapter(feedBksExpAdapter);
//this.feedBksExpLstV.expandGroup(0);
}
@Override
protected void RefreshView() {
// TODO Auto-generated method stub
}
@Override
public int GetSetBtnTxId() {
// TODO Auto-generated method stub
return 0;
}
@Override
public OnClickListener GetSetOnClickListener() {
// TODO Auto-generated method stub
return null;
}
@Override
public int GetTitleId() {
// TODO Auto-generated method stub
return 0;
}
private class ExpandableListAdapter extends BaseExpandableListAdapter
{
private LayoutInflater viewInflator;
public ExpandableListAdapter()
{
this.viewInflator = (LayoutInflater)zActivity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public Object getChild(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return childPosition;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return childPosition;
}
@Override
public View getChildView(final int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
if(convertView == null)
{
convertView= viewInflator.inflate(R.layout.fh_feedback_edttx, null);
}
EditText edtTx = (EditText) convertView.findViewById(R.id.edtTxFeedbacks);
//EditText edtTx = new EditText(zActivity);
edtTx.setText(feedBackCntList[groupPosition]);
edtTx.setOnFocusChangeListener(new OnFocusChangeListener(){
@Override
public void onFocusChange(View view, boolean hasFocus) {
if(hasFocus)
{
}
else
{
feedBackCntList[groupPosition] = ((EditText)view).getText().toString();
}
if(!hasFocus && feedBksExpLstV.isGroupExpanded(groupPosition))
{
view.requestFocus();
}
}});
return convertView;
}
@Override
public int getChildrenCount(int groupPosition) {
// TODO Auto-generated method stub
return 1;
}
@Override
public Object getGroup(int groupPosition) {
// TODO Auto-generated method stub
return feedBackList[groupPosition];
}
@Override
public int getGroupCount() {
// TODO Auto-generated method stub
return feedBackList.length;
}
@Override
public long getGroupId(int groupPosition) {
// TODO Auto-generated method stub
return groupPosition;
}
@Override
public View getGroupView(final int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
if(convertView == null)
{
convertView= viewInflator.inflate(R.layout.fh_feedback_item_layout, null);
}
TextView tvFbItem = (TextView) convertView.findViewById(R.id.tvGroup);
tvFbItem.setText(feedBackList[groupPosition]);
// RadioButton rdBtnYS = (RadioButton) convertView.findViewById(R.id.rdBtnYs);
// rdBtnYS.setOnCheckedChangeListener(new OnCheckedChangeListener(){
//
// @Override
// public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// if(isChecked)
// {
// ExpandGroup(groupPosition, true);
// }
// }});
//
// RadioButton rdBtnNO = (RadioButton) convertView.findViewById(R.id.rdBtnNo);
// rdBtnNO.setOnCheckedChangeListener(new OnCheckedChangeListener(){
//
// @Override
// public void onCheckedChanged(CompoundButton buttonView,
// boolean isChecked) {
// if(isChecked)
// {
// ExpandGroup(groupPosition, false);
// }
// }});
return convertView;
}
@Override
public boolean hasStableIds() {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return false;
}}
}