package com.ihateflyingbugs.kidsm.menu;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.Display;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import com.ihateflyingbugs.kidsm.ImageLoader;
import com.ihateflyingbugs.kidsm.ImageMaker;
import com.ihateflyingbugs.kidsm.MainActivity;
import com.ihateflyingbugs.kidsm.NetworkFragment;
import com.ihateflyingbugs.kidsm.OverlayFragment;
import com.ihateflyingbugs.kidsm.R;
import com.ihateflyingbugs.kidsm.WrappingSlidingDrawer;
import com.ihateflyingbugs.kidsm.notice.NoticeFragment;
import com.ihateflyingbugs.kidsm.photonotice.PhotoNoticeFragment;
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
public class SlidingMenuMaker {
private static Profile profile;
public SlidingMenu slidingMenu;
WrappingSlidingDrawer profileDrawer;
MainActivity activity;
int doListClickFocusState;
ArrayList<MenuDoButton> doListItem;
ArrayList<MenuDoButton> doListItem2;
View dolistlayout;
ImageLoader imageLoader;
public MenuChildrenAdapter menuChildrenAdapter;
public MenuClassAdapter menuClassAdapter;
public static Profile getProfile() {
return profile;
}
public static void setProfile(Profile _profile) {
profile = _profile;
}
public void Initiate(MainActivity activity) {
this.activity = activity;
slidingMenu = new SlidingMenu(activity);
slidingMenu.attachToActivity(activity, SlidingMenu.SLIDING_WINDOW);
switch(profile.member_type.charAt(0)) {
case 'P':
slidingMenu.setMenu(R.layout.activity_menu);
break;
case 'T':
slidingMenu.setMenu(R.layout.activity_menu_teacher);
break;
case 'M':
slidingMenu.setMenu(R.layout.activity_menu_manager);
break;
}
Display newDisplay = activity.getWindowManager().getDefaultDisplay();
@SuppressWarnings("deprecation")
int width = newDisplay.getWidth();
slidingMenu.setBehindOffset((int) (width*0.15));
dolistlayout = activity.findViewById(R.id.profile_dolistlayout);
doListClickFocusState = 1;
doListItem = new ArrayList<MenuDoButton>();
String[] dolist = activity.getResources().getStringArray(R.array.drawer_dolist);
String[] dolist_IconImage = activity.getResources().getStringArray(R.array.drawer_dolist_icon);
String[] dolist_SelectedImage = activity.getResources().getStringArray(R.array.drawer_dolist_selected);
for( int i = 0; i < dolist.length; i++ ) {
Drawable iconImage = activity.getResources().getDrawable(ImageMaker.getId(dolist_IconImage[i], R.drawable.class));
Drawable selectedImage = activity.getResources().getDrawable(ImageMaker.getId(dolist_SelectedImage[i], R.drawable.class));
if( i == dolist.length-1 )
doListItem.add(new MenuDoButton(null, null, null));
doListItem.add(new MenuDoButton(dolist[i], iconImage, selectedImage));
}
MenuDoAdapter menuDoAdapter = new MenuDoAdapter(activity, doListItem);
final ListView list = (ListView)activity.findViewById(R.id.profile_dolist1);
list.setAdapter(menuDoAdapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if( position == doListItem.size()-2 ) return;
if(doListClickFocusState == 1) {
for(int i = 0; i < doListItem.size(); i++) {
if( i != position ) {
doListItem.get(i).layout.setBackgroundColor(Color.TRANSPARENT);
}
}
}
doListItem.get(position).layout.setBackground(doListItem.get(position).selectedImage);
doListClickFocusState = 1;
changeFragment(id);
}
});
list.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
if( profileDrawer.isOpened() )
return true;
return false;
}
});
// profile = new Profile("", "�����", "P", "1", "1",
// "1", ImageMaker.getCroppedBitmap(BitmapFactory.decodeResource(activity.getResources(), R.drawable.mom)), "1", "1", "1");
// profile.addChildren(1, new Children("1", "1", "������", "1", "�����", "1",
// "1", "1", "1", "1", "1", "1"));
// profile.addChildren(2, new Children("2", "2", "������", "1", "�����", "1",
// "1", "1", "1", "1", "1", "1"));
// profile.addChildren(-1, new Children("", "", "�ڳ� �߰��ϱ�", "", "", "", "", "", "", "", "", ""));
imageLoader = new ImageLoader(activity, R.drawable.profile_default);
ImageView profile_image = (ImageView)activity.findViewById(R.id.mainpicture);
//profile_image.setImageBitmap(ImageMaker.getCroppedBitmap(BitmapFactory.decodeResource(activity.getResources(), R.drawable.mom)));
if(profile.member_picture_uri.startsWith("profile"))
imageLoader.DisplayCroppedImage(activity.getString(R.string.default_profile_url)+profile.member_picture_uri, profile_image);
else
imageLoader.DisplayCroppedImage(activity.getString(R.string.profile_url)+profile.member_picture_uri, profile_image);
TextView txt;
switch(profile.member_type.charAt(0)) {
case 'P':
txt = (TextView)activity.findViewById(R.id.profile_parentname);
txt.setText(profile.getMember_name());
txt = (TextView)activity.findViewById(R.id.profile_childname);
txt.setText(profile.childrenList.get(0).getStudent_name());
txt = (TextView)activity.findViewById(R.id.profile_organization);
txt.setText(profile.childrenList.get(0).getOrganizationName());
txt = (TextView)activity.findViewById(R.id.profile_class);
txt.setText(profile.childrenList.get(0).getClassName());
menuChildrenAdapter = new MenuChildrenAdapter(activity, profile.childrenList);
ListView list3 = (ListView)activity.findViewById(R.id.profile_childlist);
list3.setAdapter(menuChildrenAdapter);
break;
case 'T':
txt = (TextView)activity.findViewById(R.id.profile_teachername);
txt.setText(profile.getMember_name());
txt = (TextView)activity.findViewById(R.id.profile_organization);
txt.setText(profile.org_name);
break;
case 'M':
txt = (TextView)activity.findViewById(R.id.profile_managername);
txt.setText(profile.getMember_name());
txt = (TextView)activity.findViewById(R.id.profile_organization);
txt.setText(profile.org_name);
menuClassAdapter = new MenuClassAdapter(activity, profile.classList);
ListView list4 = (ListView)activity.findViewById(R.id.profile_childlist);
list4.setAdapter(menuClassAdapter);
break;
}
profileDrawer = (WrappingSlidingDrawer)activity.findViewById(R.id.profile_drawer);
profileDrawer.bringToFront();
}
public void changeFragment(long id) {
if(MainActivity.getCurrentFragmentIndex() != Integer.parseInt(""+id))
MainActivity.changeFragment(Integer.parseInt(""+id));
slidingMenu.showContent();
}
public void OnSeeChildren(View v) {
if( profileDrawer.isOpened() == false ) {
switch(profile.member_type.charAt(0)) {
case 'P':
menuChildrenAdapter.notifyDataSetChanged();
break;
case 'M':
menuClassAdapter.notifyDataSetChanged();
break;
}
((Button)v).setBackgroundResource(R.drawable.drawer_btnset2);
dolistlayout.setAlpha(0.2f);
profileDrawer.animateOpen();
((Button)v).setText(R.string.close);
}
else {
dolistlayout.setAlpha(1.0f);
profileDrawer.animateClose();
((Button)v).setBackgroundResource(R.drawable.drawer_btnset);
switch(profile.member_type.charAt(0)) {
case 'P':
((Button)v).setText(R.string.profile_seechildren);
break;
case 'M':
((Button)v).setText(R.string.profile_seeclass);
break;
}
}
}
public void OnSeeFriend(View v) {
activity.requestFriendList();
for(int i = 0; i < doListItem.size(); i++)
doListItem.get(i).layout.setBackgroundColor(Color.TRANSPARENT);
doListClickFocusState = 0;
dolistlayout.setAlpha(1.0f);
}
public void OnChildClick(View v) {
int position = (Integer) v.getTag();
TextView txt;
switch(profile.member_type.charAt(0)) {
case 'P':
txt= (TextView)activity.findViewById(R.id.profile_parentname);
txt.setText(profile.childrenList.get(position).getStudent_parent_name());
txt = (TextView)activity.findViewById(R.id.profile_childname);
txt.setText(profile.childrenList.get(position).getStudent_name());
txt = (TextView)activity.findViewById(R.id.profile_organization);
txt.setText(profile.childrenList.get(position).getOrganizationName());
txt = (TextView)activity.findViewById(R.id.profile_class);
txt.setText(profile.childrenList.get(position).getClassName());
((Button)activity.findViewById(R.id.profile_seechildren)).setText(R.string.profile_seechildren);
break;
case 'M':
((Button)activity.findViewById(R.id.profile_seechildren)).setText(R.string.profile_seeclass);
break;
}
profile.selected_index = position;
dolistlayout.setAlpha(1.0f);
profileDrawer.animateClose();
}
private boolean checkIsDate(String date) {
if(date.length() != 6)
return false;
try {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd");
dateFormat.setLenient(false);
dateFormat.parse(date);
} catch (ParseException e) {
e.printStackTrace();
return false;
}
return true;
}
public void OnAddChild(View v) {
// final View view = ((LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.register_parent_addchild, null);
// ((TextView)view.findViewById(R.id.register_parent_org)).setText(orgName);
// ((TextView)view.findViewById(R.id.register_parent_class)).setText(className);
// ((TextView)view.findViewById(R.id.register_parent_childname)).setText(childName);
// new AlertDialog.Builder(activity)
// .setTitle("�ڳ� �߰��ϱ�")
// .setView(view)
// .setPositiveButton("Ȯ��", new DialogInterface.OnClickListener() {
// @Override
// public void onClick(DialogInterface dialog, int which) {
// // TODO Auto-generated method stub
// if( ((TextView)view.findViewById(R.id.register_parent_birthday)).getText().toString().isEmpty() ) {
// new AlertDialog.Builder(activity)
// .setMessage("������ �Է����ּ���.")
// .setPositiveButton("Ȯ��", null)
// .show();
// }
// else if(checkIsDate(((TextView)view.findViewById(R.id.register_parent_birthday)).getText().toString()) == false) {
// new AlertDialog.Builder(activity)
// .setMessage("������ �ùٸ��� �ʽ��ϴ�.")
// .setPositiveButton("Ȯ��", null)
// .show();
// }
// else {
//
// }
// }
// })
// .
switch(profile.member_type.charAt(0)) {
case 'P':
((Button)activity.findViewById(R.id.profile_seechildren)).setText(R.string.profile_seechildren);
break;
case 'M':
((Button)activity.findViewById(R.id.profile_seechildren)).setText(R.string.profile_seeclass);
break;
}
dolistlayout.setAlpha(1.0f);
profileDrawer.animateClose();
Intent intent = new Intent(activity, AddComponentActivity.class);
activity.startActivity(intent);
}
}