package com.moupress.app.friendshost.ui; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.ViewGroup; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.BaseExpandableListAdapter; import android.widget.ExpandableListView; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import android.widget.AdapterView.OnItemClickListener; import com.moupress.app.friendshost.Const; import com.moupress.app.friendshost.PubSub; import com.moupress.app.friendshost.R; import com.moupress.app.friendshost.activity.FHDialogActivity; import com.moupress.app.friendshost.sns.Listener.SnsEventListener; import com.moupress.app.friendshost.ui.listeners.ContentViewListener; import com.moupress.app.friendshost.ui.listeners.TitleBarListener; import com.moupress.app.friendshost.util.FlurryUtil; import com.moupress.app.friendshost.util.Pref; public class LeftPanelView extends View{ private static final String TAG = "LeftPanelView"; //private ExpandableListView settingExpLstV; //private ExpandableListView feedBksExpLstV; private Activity zActivity; private ListView acntLstV; private ListView settingLstV; private ListView feedBksLstV; private SnsEventListener snsEventListener; private LstAdapter snsAccntLstAdapter; private LstAdapter settingLstAdapter; private LstAdapter feedBksLstAdapter; //private ExpandableListAdapter settingExpandableListAdapter; //private ExpandableListAdapter feedBksExpandableListAdapter; public LeftPanelView(SnsEventListener snsEventListener) { this.snsEventListener = snsEventListener; } @Override public void RefreshView() { if(this.snsAccntLstAdapter != null) { this.snsAccntLstAdapter.notifyDataSetChanged(); } } @Override public void InitContent(Activity activity, ContentViewListener detailViewListener) { // TODO Auto-generated method stub super.InitContent(activity, detailViewListener); this.zActivity = activity; this.snsAccntLstAdapter = new LstAdapter(activity,Const.SNSGROUPS, Const.SETTING_ACNT); this.settingLstAdapter = new LstAdapter(activity,Const.SETTING_BASIC_GROUPS, Const.SETTING_BASIC); this.feedBksLstAdapter = new LstAdapter(activity,Const.SETTING_FEEDBACKS_GROUPS, Const.SETTING_FEEDBACKS); int index = Pref.getMyIntPref(zActivity.getApplicationContext(), Const.SETTING_BASIC+"_UPT_FREQ"); if(index <0) index = 1; if(index >= 0 && index < Const.SETTING_UPT_FREQ_BTN_TEXT.length) { this.settingLstAdapter.SetDtlText(new String[]{Const.SETTING_UPT_FREQ_BTN_TEXT[index]}); } this.acntLstV = (ListView) activity.findViewById(R.id.signOnLst); this.acntLstV.setOnItemClickListener(new OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> parent, android.view.View view, int position, long id) { PubSub.zSnsOrg.GetSnsInstance(Const.SNSGROUPS[position]).ToggleSelectSNS(snsEventListener); }}); this.settingLstV = (ListView) activity.findViewById(R.id.settingLst); this.settingLstV.setOnItemClickListener(new OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> parent, android.view.View view, int position, long id) { LaunchDialog(Const.SETTING_BASIC,Const.SETTING_BASIC_GROUPS[position]); }}); this.feedBksLstV = (ListView) activity.findViewById(R.id.feedBksLst); this.feedBksLstV.setOnItemClickListener(new OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> parent, android.view.View view, int position, long id) { LaunchDialog(Const.SETTING_FEEDBACKS,Const.SETTING_FEEDBACKS_GROUPS[position]); }}); //Setting Expander List View //settingLstV = (ListView) activity.findViewById(R.id.settingExpandLst); //settingListAdapter = new ExpandableListAdapter(activity, Const.SETTING_BASIC); //settingExpLstV.setAdapter(settingExpandableListAdapter); //Feedbacks Expander List View //feedBksExpLstV = (ExpandableListView) activity.findViewById(R.id.feedbksExpandLst); //feedBksExpandableListAdapter = new ExpandableListAdapter(activity, Const.SETTING_FEEDBACKS); //feedBksExpLstV.setAdapter(feedBksExpandableListAdapter); } @Override public void InitTitle(Activity activity, TitleBarListener titleBarListener) { // TODO Auto-generated method stub super.InitTitle(activity, titleBarListener); } @Override public void LoadView(Bundle loadData) { // TODO Auto-generated method stub //super.LoadView(loadData); this.acntLstV.setAdapter(snsAccntLstAdapter); this.settingLstV.setAdapter(settingLstAdapter); this.feedBksLstV.setAdapter(feedBksLstAdapter); } private class LstAdapter extends BaseAdapter { private LayoutInflater viewInflator; private String[] displayArray; private String grpName; private String[] dtlText; public LstAdapter(Activity activity, String[] displayArray, String grpName) { viewInflator = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); this.displayArray = displayArray; this.grpName = grpName; } @Override public int getCount() { // TODO Auto-generated method stub //return Const.SNSGROUPS.length; return this.displayArray.length; } @Override public Object getItem(int position) { // TODO Auto-generated method stub //return Const.SNSGROUPS[position]; return displayArray[position]; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public android.view.View getView(final int position, android.view.View convertView, ViewGroup parent) { if(convertView == null) { convertView= viewInflator.inflate(R.layout.fh_login_account_item, null); } TextView textView = (TextView) convertView.findViewById(R.id.snsLogin); //textView.setText(Const.SNSGROUPS[position]); textView.setText(displayArray[position]); //ListView listView = (ListView) convertView.findViewById(R.id.snsAccountsLst); final ImageView imgView = (ImageView) convertView.findViewById(R.id.snsStatusInd); final TextView dtlView = (TextView) convertView.findViewById(R.id.txtDetail); if(this.grpName.equals(Const.SETTING_ACNT)) { //setSnsStatus(imgView, PubSub.zSnsOrg.GetSnsInstance(Const.SNSGROUPS[position]).isSelected()); setSnsStatus(imgView, PubSub.zSnsOrg.GetSnsInstance(displayArray[position]).isSelected()); } final ImageView logView = (ImageView) convertView.findViewById(R.id.snsLogo); if(this.grpName.equals(Const.SETTING_ACNT)) { logView.setImageResource(PubSub.zSnsOrg.GetSnsInstance(displayArray[position]).GetLogImg()); } else if(this.grpName.equals(Const.SETTING_BASIC) && ((String)this.getItem(position)).contains(Const.SETTING_BASIC_GROUPS[0])) { logView.setImageResource(R.drawable.fh_update_time); imgView.setVisibility(android.view.View.GONE); dtlView.setVisibility(android.view.View.VISIBLE); if(this.dtlText != null && dtlText.length > position && dtlText[position].length() > 0) dtlView.setText(dtlText[position]); } else if(this.grpName.equals(Const.SETTING_FEEDBACKS) && ((String)this.getItem(position)).equals(Const.SETTING_FEEDBACKS_GROUPS[1])) { logView.setImageResource(R.drawable.fh_rate); } else if(this.grpName.equals(Const.SETTING_FEEDBACKS) && ((String)this.getItem(position)).equals(Const.SETTING_FEEDBACKS_GROUPS[2])) { logView.setImageResource(R.drawable.fh_help_icon); } else if(this.grpName.equals(Const.SETTING_FEEDBACKS) && ((String)this.getItem(position)).equals(Const.SETTING_FEEDBACKS_GROUPS[0])) { logView.setImageResource(R.drawable.fh_feedback_icon); } // convertView.setOnClickListener(new OnClickListener(){ // // @Override // public void onClick(android.view.View view) { // // //PubSub.zSnsOrg.GetSnsInstance(Const.SNSGROUPS[position]).ToggleSelectSNS(snsEventListener); // if(grpName.equals(Const.SETTING_ACNT)) // { // PubSub.zSnsOrg.GetSnsInstance(displayArray[position]).ToggleSelectSNS(snsEventListener); // } // else if(grpName.equals(Const.SETTING_BASIC) || grpName.equals(Const.SETTING_FEEDBACKS)) // { // LaunchDialog(grpName,(String)getItem(position)); // } // // }}); return convertView; } private void setSnsStatus(ImageView imgView, boolean selected) { if(selected) { imgView.setImageResource(R.drawable.fh_remove); } else { imgView.setImageResource(R.drawable.fh_add); } } private void LaunchDialog(String grpName, String optionName) { int displayView = -1; int themeId = -1; if(grpName.equals(Const.SETTING_BASIC) && optionName.contains(Const.SETTING_BASIC_GROUPS[0])) { displayView = R.layout.fh_upt_req_layout; themeId = android.R.style.Theme_Dialog; } else if (grpName.equals(Const.SETTING_FEEDBACKS) && optionName.equals(Const.SETTING_FEEDBACKS_GROUPS[1])) { displayView = R.layout.fh_rate_layout; themeId = android.R.style.Theme_Dialog; } else if(grpName.equals(Const.SETTING_FEEDBACKS) && optionName.equals(Const.SETTING_FEEDBACKS_GROUPS[0])) { displayView = R.layout.fh_feedback_layout; } else if (grpName.equals(Const.SETTING_FEEDBACKS) && optionName.equals(Const.SETTING_FEEDBACKS_GROUPS[2])) { displayView = R.layout.fh_help_layout; } FlurryUtil.logEvent(TAG + ":LaunchDialog", grpName); popUpDialogActivity(displayView,optionName,themeId); } private void popUpDialogActivity(int displayView, String optionName, int themeId) { if(displayView > 0) { Intent intent = new Intent(zActivity,FHDialogActivity.class); intent.putExtra(Const.DIALOG_VIEW_ID, displayView); intent.putExtra(Const.SETTING_REQ_KEY, optionName); intent.putExtra(Const.DIALOG_THEME_ID, themeId); zActivity.startActivityForResult(intent, Const.CD_REQ_DIALOG); } else { Toast.makeText(zActivity, "Invalid View", 1000); } } // private void LaunchDialog(String grpName, String optionName) // { // int displayView = -1; // int themeId = -1; // if(grpName.equals(Const.SETTING_BASIC) && optionName.contains(Const.SETTING_BASIC_GROUPS[0])) // { // displayView = R.layout.fh_upt_req_layout; // themeId = android.R.style.Theme_Dialog; // } // else if (grpName.equals(Const.SETTING_FEEDBACKS) && optionName.equals(Const.SETTING_FEEDBACKS_GROUPS[1])) // { // displayView = R.layout.fh_rate_layout; // themeId = android.R.style.Theme_Dialog; // } // else if(grpName.equals(Const.SETTING_FEEDBACKS) && optionName.equals(Const.SETTING_FEEDBACKS_GROUPS[0])) // { // displayView = R.layout.fh_feedback_layout; // } // else if (grpName.equals(Const.SETTING_FEEDBACKS) && optionName.equals(Const.SETTING_FEEDBACKS_GROUPS[2])) // { // displayView = R.layout.fh_help_layout; // } // // popUpDialogActivity(displayView,optionName,themeId); // } // // // private void popUpDialogActivity(int displayView, String optionName, int themeId) { // // if(displayView > 0) // { // Intent intent = new Intent(zActivity,FHDialogActivity.class); // intent.putExtra(Const.DIALOG_VIEW_ID, displayView); // intent.putExtra(Const.SETTING_REQ_KEY, optionName); // intent.putExtra(Const.DIALOG_THEME_ID, themeId); // zActivity.startActivityForResult(intent, Const.CD_REQ_DIALOG); // } // else // { // Toast.makeText(zActivity, "Invalid View", 1000); // } // } // public void SetDtlText(String[] dtlText) { this.dtlText = dtlText; } } private void LaunchDialog(String grpName, String optionName) { int displayView = -1; int themeId = -1; if(grpName.equals(Const.SETTING_BASIC) && optionName.contains(Const.SETTING_BASIC_GROUPS[0])) { displayView = R.layout.fh_upt_req_layout; themeId = android.R.style.Theme_Dialog; } else if (grpName.equals(Const.SETTING_FEEDBACKS) && optionName.equals(Const.SETTING_FEEDBACKS_GROUPS[1])) { displayView = R.layout.fh_rate_layout; themeId = android.R.style.Theme_Dialog; } else if(grpName.equals(Const.SETTING_FEEDBACKS) && optionName.equals(Const.SETTING_FEEDBACKS_GROUPS[0])) { displayView = R.layout.fh_feedback_layout; } else if (grpName.equals(Const.SETTING_FEEDBACKS) && optionName.equals(Const.SETTING_FEEDBACKS_GROUPS[2])) { displayView = R.layout.fh_help_layout; } popUpDialogActivity(displayView,optionName,themeId); } private void popUpDialogActivity(int displayView, String optionName, int themeId) { if(displayView > 0) { Intent intent = new Intent(zActivity,FHDialogActivity.class); intent.putExtra(Const.DIALOG_VIEW_ID, displayView); intent.putExtra(Const.SETTING_REQ_KEY, optionName); intent.putExtra(Const.DIALOG_THEME_ID, themeId); zActivity.startActivityForResult(intent, Const.CD_REQ_DIALOG); } else { Toast.makeText(zActivity, "Invalid View", 1000); } } public void DialogCallBack(Intent data) { if(data.getIntExtra(Const.DIALOG_VIEW_ID, -1) == R.layout.fh_upt_req_layout) { int index = data.getIntExtra(Const.SETTING_BASIC_GROUPS[0]+"_SET", -1); if(index >=0) { this.settingLstAdapter.SetDtlText(new String[]{Const.SETTING_UPT_FREQ_BTN_TEXT[index]}); this.settingLstAdapter.notifyDataSetChanged(); } } }; // private class ExpandableListAdapter extends BaseExpandableListAdapter // { // private Activity activity; // private LayoutInflater viewInflator; // private String section; // // public ExpandableListAdapter(Activity activity, String section) // { // this.activity = activity; // this.section = section; // // viewInflator = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); // } // // @Override // public Object getChild(int groupPosition, int childPosition) { // // if(this.section.equals(Const.SETTING_BASIC)) // { // if(groupPosition == 0) // { // //return Const.SNSGROUPS[childPosition]; // return Const.SNSGROUPS; // } // else // { // return null; // } // } // return null; // } // // @Override // public long getChildId(int groupPosition, int childPosition) { // // if(this.section.equals(Const.SETTING_BASIC)) // { // if(groupPosition == 0) // { // return childPosition; // } // else // { // return 0; // } // } // // return 0; // } // // @Override // public android.view.View getChildView(int groupPosition, // int childPosition, boolean isLastChild, // android.view.View convertView, ViewGroup parent) { // // if(this.section.equals(Const.SETTING_BASIC)) // { // if(groupPosition == 0) // { // if(convertView == null) // convertView = viewInflator.inflate(R.layout.fh_login_account_list, null); // // //TextView tv = (TextView) convertView.findViewById(R.id.snsLogin); // //tv.setText(Const.SNSGROUPS[childPosition]); // ListView listView = (ListView) convertView.findViewById(R.id.snsAccountsLst); // listView.setAdapter(snsAccntLstAdapter); // // return convertView; // } // else // { // return null; // } // // } // return null; // } // // @Override // public int getChildrenCount(int groupPosition) { // // if(this.section.equals(Const.SETTING_BASIC)) // { // if(groupPosition == 0) // { // //return Const.SNSGROUPS.length; // return 1; // } // else // { // return 0; // } // } // return 0; // } // // @Override // public Object getGroup(int groupPosition) { // // if(this.section.equals(Const.SETTING_BASIC)) // { // return Const.SETTING_BASIC_GROUPS[groupPosition]; // } // else if(this.section.equals(Const.SETTING_FEEDBACKS)) // { // return Const.SETTING_FEEDBACKS_GROUPS[groupPosition]; // } // // return null; // // } // // @Override // public int getGroupCount() { // // if(this.section.equals(Const.SETTING_BASIC)) // { // return Const.SETTING_BASIC_GROUPS.length; // } // else if(this.section.equals(Const.SETTING_FEEDBACKS)) // { // return Const.SETTING_FEEDBACKS_GROUPS.length; // } // // return 0; // } // // @Override // public long getGroupId(int groupPosition) { // // TODO Auto-generated method stub // return groupPosition; // } // // @Override // public android.view.View getGroupView(int groupPosition, // boolean isExpanded, android.view.View convertView, // ViewGroup parent) { // // if(convertView == null) // { // convertView= viewInflator.inflate(R.layout.fh_setting_groups, null); // } // // TextView textView = (TextView) convertView.findViewById(R.id.groupTv); // textView.setText(getGroup(groupPosition).toString()); // //ListView listView = (ListView) convertView.findViewById(R.id.snsAccountsLst); // // 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; // } // // } // }