package com.ihateflyingbugs.kidsm; import java.io.File; import java.io.PrintWriter; import java.io.StringWriter; import java.util.ArrayList; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import com.ihateflyingbugs.kidsm.businfo.BusInfoFragment; import com.ihateflyingbugs.kidsm.friend.FriendFragment; import com.ihateflyingbugs.kidsm.friend.FriendListItem; import com.ihateflyingbugs.kidsm.friend.FriendListItem.FriendInfo; import com.ihateflyingbugs.kidsm.friend.FriendListItem.FriendListItemType; import com.ihateflyingbugs.kidsm.gallery.GalleryFragment; import com.ihateflyingbugs.kidsm.login.LoginActivity; import com.ihateflyingbugs.kidsm.login.RegisterInfoTakerActivity; import com.ihateflyingbugs.kidsm.mentory.MentoryFragment; import com.ihateflyingbugs.kidsm.menu.Children; import com.ihateflyingbugs.kidsm.menu.Profile; import com.ihateflyingbugs.kidsm.menu.SlidingMenuMaker; import com.ihateflyingbugs.kidsm.newsfeed.NewsfeedFragment; import com.ihateflyingbugs.kidsm.notice.NoticeFragment; import com.ihateflyingbugs.kidsm.notice.NoticeLog; import com.ihateflyingbugs.kidsm.notice.NoticeLog.NOTICE_TYPE; import com.ihateflyingbugs.kidsm.notice.NoticeLogAdapter; import com.ihateflyingbugs.kidsm.photonotice.PhotoNoticeFragment; import com.ihateflyingbugs.kidsm.schedule.AddScheduleActivity; import com.ihateflyingbugs.kidsm.schedule.ScheduleFragment; import com.ihateflyingbugs.kidsm.settings.SettingsFragment; import com.ihateflyingbugs.kidsm.uploadphoto.GetAlbumFromLocalActivity; import com.ihateflyingbugs.kidsm.uploadphoto.SimpleCamera; import com.localytics.android.LocalyticsSession; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; import android.view.animation.AnimationUtils; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import android.widget.ViewFlipper; import android.app.AlertDialog; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Bitmap; public class MainActivity extends NetworkActivity { SlidingMenuMaker maker; static FragmentManager fragmentManager; static NewsfeedFragment newsfeed; private static GalleryFragment gallery; static ScheduleFragment schedule; static BusInfoFragment businfo; private static MentoryFragment mentory; static SettingsFragment settings; static FriendFragment friend; private static int currentFragmentIndex; private static MainActivity main; ArrayList<FriendListItem> friendList; int requestGetParentCounter; ArrayList<String> teacher_parent_srl_list; ArrayList<FriendListItem> requestList; ArrayList<FriendListItem> friendInClassList; ArrayList<FriendListItem> recommendedFriendList; int requestGetClassStudentCounter; ArrayList<FriendListItem> studentList; Menu menu; ViewFlipper noticeViewFlipper; SharedPreferences prefs; ArrayList<NoticeLog> noticeList; ArrayList<NoticeLog> photoNoticeList; NoticeLogAdapter noticeAdapter; NoticeLogAdapter photoNoticeAdapter; ListView noticeListView; ListView photoNoticeListView; static boolean[] isAdded; private static final int PICK_FROM_CAMERA = 5; private static final int PICK_FROM_ALBUM = 6; private static final int CROP_FROM_CAMERA = 7; private Uri profileImageCaptureUri; Bitmap profilePhoto; int requestLogDataCounter; int modifyMemberPictureTarget; private LocalyticsSession localyticsSession; public static MainActivity getMainActivity() { return main; } public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); main = this; setContentView(R.layout.activity_main); getActionBar().setHomeButtonEnabled(true); getActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.general_actionbar_bg)); getActionBar().setIcon(R.drawable.general_actionbar_drawer_btnset); maker = new SlidingMenuMaker(); //auth_key = getIntent().getStringExtra("auth_key"); Profile profile = getIntent().getParcelableExtra("profile"); SlidingMenuMaker.setProfile(profile); maker.Initiate(this); //Toast.makeText(this, ""+profile.getCurrentClass().getNumOfStudentHavingParent(), Toast.LENGTH_SHORT).show(); fragmentManager = getFragmentManager(); FragmentTransaction transaction = fragmentManager.beginTransaction(); newsfeed = new NewsfeedFragment(); // 0 setGallery(new GalleryFragment()); // 1 schedule = new ScheduleFragment(); // 2 businfo = new BusInfoFragment(); // 3 setMentory(new MentoryFragment()); // 4 settings = new SettingsFragment(); // 5 friend = new FriendFragment(); // 6 isAdded = new boolean[7]; for( int i = 0; i < isAdded.length; i++) isAdded[i] = false; transaction.add(R.id.main_fragment, newsfeed); isAdded[0] = true; // transaction.add(R.id.main_fragment, getGallery()); // transaction.add(R.id.main_fragment, schedule); // transaction.add(R.id.main_fragment, businfo); // transaction.add(R.id.main_fragment, getMentory()); // transaction.add(R.id.main_fragment, settings); // transaction.add(R.id.main_fragment, friend); // transaction.hide(getGallery()); // transaction.hide(schedule); // transaction.hide(businfo); // transaction.hide(getMentory()); // transaction.hide(settings); // transaction.hide(friend); setTitle(R.string.newsfeedactivity); transaction.commit(); setCurrentFragmentIndex(0); noticeViewFlipper = (ViewFlipper)findViewById(R.id.main_flipper); noticeList = new ArrayList<NoticeLog>(); photoNoticeList = new ArrayList<NoticeLog>(); noticeAdapter = new NoticeLogAdapter(this, noticeList); photoNoticeAdapter = new NoticeLogAdapter(this, photoNoticeList); noticeListView = (ListView) findViewById(R.id.main_normal_notice); photoNoticeListView = (ListView) findViewById(R.id.main_photo_notice); noticeListView.setAdapter(noticeAdapter); photoNoticeListView.setAdapter(photoNoticeAdapter); refreshNoticeLogs(); this.localyticsSession = new LocalyticsSession(this.getApplicationContext()); // Context used to access device resources this.localyticsSession.open(); // open the session this.localyticsSession.upload(); // upload any data } public void onResume() { super.onResume(); this.localyticsSession.open(); } public void onPause() { this.localyticsSession.close(); this.localyticsSession.upload(); super.onPause(); } private void refreshNoticeLogs() { noticeList.clear(); photoNoticeList.clear(); int msgCount = 0; if( prefs == null ) { prefs = getSharedPreferences("notice", MODE_PRIVATE); } msgCount = Integer.parseInt(prefs.getString(""+maker.getProfile().member_srl+"_msgCount", "0")); if(msgCount == 0) return; requestLogDataCounter = msgCount; for(int i = msgCount-1; i >= 0; i--) { String title = prefs.getString(maker.getProfile().member_srl+"title"+i, ""); String msg = prefs.getString(maker.getProfile().member_srl+"msg"+i, ""); String from_srl = prefs.getString(maker.getProfile().member_srl+"from_srl"+i, ""); String type = prefs.getString(maker.getProfile().member_srl+"type"+i, ""); String ticker = prefs.getString(maker.getProfile().member_srl+"ticker"+i, ""); if( type.isEmpty() == false ) { switch( type.charAt(0) ) { case 'N': noticeList.add(new NoticeLog(NOTICE_TYPE.NORMAL, title, msg, ticker, from_srl)); this.request_Member_getMember(from_srl); break; case 'P': photoNoticeList.add(new NoticeLog(NOTICE_TYPE.PHOTO, title, msg, ticker, from_srl)); this.request_Member_getMember(from_srl); break; } } } noticeAdapter.notifyDataSetChanged(); photoNoticeAdapter.notifyDataSetChanged(); } public void OnChildClick(View v) { maker.OnChildClick(v); } public void OnAddChild(View v) { maker.OnAddChild(v); } public void OnSeeChildren(View v) { maker.OnSeeChildren(v); } public void OnSeeFriend(View v) { maker.OnSeeFriend(v); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); this.menu = menu; return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { Intent intent; switch(item.getItemId()) { case android.R.id.home: if(maker.slidingMenu.isMenuShowing()) maker.slidingMenu.showContent(); else maker.slidingMenu.showMenu(); return true; case R.id.notice: refreshNoticeLogs(); switch( noticeViewFlipper.getDisplayedChild() ) { case 0: setNextAnimation(); noticeViewFlipper.setDisplayedChild(1); break; case 2: setPrevAnimation(); noticeViewFlipper.setDisplayedChild(1); break; } return true; case R.id.photo: refreshNoticeLogs(); switch( noticeViewFlipper.getDisplayedChild() ) { case 0: case 1: setNextAnimation(); noticeViewFlipper.setDisplayedChild(2); break; } return true; } return false; } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if( resultCode == RESULT_OK ) { Intent intent; switch(requestCode) { case 0: String orgName = data.getStringExtra("org"); String className = data.getStringExtra("class"); String childName = data.getStringExtra("childname"); // maker.OnAddChildDialog(orgName, className, childName); break; case 3: ArrayList<String> phoneList = data.getStringArrayListExtra("phoneList"); String phoneListString = ""; for(int i = 0; i < phoneList.size(); i++) { phoneListString += phoneList.get(i); if( i != phoneList.size()-1) phoneListString += ";"; } intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:"+ phoneListString)); intent.putExtra("sms_body", "[KIDSM]" + SlidingMenuMaker.getProfile().member_name +" �����Բ��� �кθ���� Ű� ������ �ʴ��ϼ̽��ϴ�. \n\n�ȵ���̵� �� �ٿ�ε� :\nhttps://db.tt/09P0dxrz"); startActivity(intent); break; case CROP_FROM_CAMERA: final Bundle extras = data.getExtras(); if(extras != null) { profilePhoto = extras.getParcelable("data"); //((ImageView)findViewById(R.id.mainpicture)).setImageBitmap(ImageMaker.getCroppedBitmap(profilePhoto)); switch( modifyMemberPictureTarget ) { case 0: this.request_Member_modMemberPicture(maker.getProfile().member_srl, profilePhoto); break; default: this.request_Member_modMemberPicture(maker.getProfile().getChildren(modifyMemberPictureTarget-1).student_member_srl, profilePhoto); break; } } // �ӽ� ���� ���� File f = new File(profileImageCaptureUri.getPath()); if(f.exists()) { f.delete(); } break; case PICK_FROM_ALBUM: profileImageCaptureUri = data.getData(); case PICK_FROM_CAMERA: intent = new Intent("com.android.camera.action.CROP"); intent.setDataAndType(profileImageCaptureUri, "image/*"); intent.putExtra("outputX", 90); intent.putExtra("outputY", 90); intent.putExtra("aspectX", 1); intent.putExtra("aspectY", 1); intent.putExtra("scale", true); intent.putExtra("return-data", true); startActivityForResult(intent, CROP_FROM_CAMERA); break; } } } public static void changeFragment(int id) { FragmentTransaction transaction = fragmentManager.beginTransaction(); if(currentFragmentIndex == 7) { main.getActionBar().setIcon(R.drawable.general_actionbar_drawer_btnset); } switch(currentFragmentIndex) { case 0: transaction.detach(newsfeed); //newsfeed = new NewsfeedFragment(); break; case 1: transaction.detach(gallery); //setGallery(new GalleryFragment()); // 1 break; case 2: transaction.detach(schedule); //schedule = new ScheduleFragment(); // 2 break; case 3: transaction.detach(businfo); //businfo = new BusInfoFragment(); // 3 break; case 4: transaction.hide(getMentory()); //setMentory(new MentoryFragment()); // 4 break; case 6: transaction.detach(settings); //settings = new SettingsFragment(); // 5 break; case 7: transaction.detach(friend); //friend = new FriendFragment(); // 6 break; } switch(id) { case 0: //newsfeed = new NewsfeedFragment(); transaction.attach(newsfeed); //transaction.add(R.id.main_fragment, newsfeed); main.setTitle(R.string.newsfeedactivity); break; case 1: //setGallery(new GalleryFragment()); if( isAdded[1] ) transaction.attach(getGallery()); else { transaction.add(R.id.main_fragment, getGallery()); isAdded[1] = true; } //transaction.add(R.id.main_fragment, getGallery()); main.setTitle(R.string.galleryactivity); break; case 2: //schedule = new ScheduleFragment(); if( isAdded[2] ) transaction.attach(schedule); else { transaction.add(R.id.main_fragment, schedule); isAdded[2] = true; } //transaction.add(R.id.main_fragment, schedule); main.setTitle(R.string.scheduleactivity); break; case 3: //businfo = new BusInfoFragment(); if( isAdded[3] ) transaction.attach(businfo); else { transaction.add(R.id.main_fragment, businfo); isAdded[3] = true; } //transaction.add(R.id.main_fragment, businfo); main.setTitle(R.string.busInfoactivity); break; case 4: //setMentory(new MentoryFragment()); if( isAdded[4] ) transaction.show(getMentory()); else { transaction.add(R.id.main_fragment, getMentory()); isAdded[4] = true; } //transaction.add(R.id.main_fragment, getMentory()); main.setTitle(R.string.mentoryactivity); break; case 6: //settings = new SettingsFragment(); if( isAdded[5] ) transaction.attach(settings); else { transaction.add(R.id.main_fragment, settings); isAdded[5] = true; } //transaction.add(R.id.main_fragment, settings); main.setTitle(R.string.settingsactivity); break; case 7: //friend = new FriendFragment(); if( isAdded[6] ) transaction.attach(friend); else { transaction.add(R.id.main_fragment, friend); isAdded[6] = true; } //transaction.add(R.id.main_fragment, friend); main.setTitle(R.string.friendactivity); main.getActionBar().setIcon(R.drawable.general_actionbar_back_btnset); } transaction.commit(); currentFragmentIndex = id; } public static int getCurrentFragmentIndex() { return currentFragmentIndex; } public static void setCurrentFragmentIndex(int currentFragmentIndex) { MainActivity.currentFragmentIndex = currentFragmentIndex; } @Override public boolean dispatchTouchEvent(MotionEvent event) { switch(currentFragmentIndex) { case 0: newsfeed.dispatchTouchEvent(event); break; case 1: getGallery().dispatchTouchEvent(event); break; case 2: schedule.dispatchTouchEvent(event); break; } return super.dispatchTouchEvent(event); } public void OnLikeClick(View v) { switch(currentFragmentIndex) { case 0: newsfeed.OnLikeClick(v); break; case 4: mentory.OnLikeClick(v); break; } } public void OnReplyClick(View v) { switch(currentFragmentIndex) { case 0: newsfeed.OnReplyClick(v); break; case 4: mentory.OnReplyClick(v); break; } } public void OnScrapClick(View v) { switch(currentFragmentIndex) { case 0: newsfeed.OnScrapClick(v); break; case 4: mentory.OnScrapClick(v); break; } } public void OnImageClick(View v) { newsfeed.OnImageClick(v); } public void OnUploadPhoto(View v) { switch(currentFragmentIndex) { case 0: newsfeed.OnUploadPhoto(v); break; case 1: getGallery().OnUploadPhoto(v); break; } } public void OnNewAlbum(View v) { getGallery().OnNewAlbum(v); } public void OnSeeAllPhoto(View v) { getGallery().OnSeeAllPhoto(v); } public void OnSeeAlbum(View v) { getGallery().OnSeeAlbum(v); } public void OnSeeScrapAlbum(View v) { getGallery().OnSeeScrapAlbum(v); } public void OnSeeTaggedPhoto(View v) { getGallery().OnSeeTaggedPhoto(v); } public void OnSettingClick(View v) { getGallery().OnSettingClick(v); } public void OnMonthMode(View v) { schedule.OnMonthMode(v); } public void OnWeekMode(View v) { schedule.OnWeekMode(v); } public void OnPrevMonth(View v) { schedule.OnPrevMonth(v); } public void OnNextMonth(View v) { schedule.OnNextMonth(v); } public void OnShowConfirmedList(View v) { schedule.OnShowConfirmedList(v); } public void OnCheckSchedule(View v) { schedule.OnCheckSchedule(v); } public void OnUploadSchedule(View v) { schedule.OnUploadSchedule(v); } public void OnButtonClick(View v) { friend.OnButtonClick(v); } public void OnNameClick(View v) { friend.OnNameClick(v); } public void OnInviteFriend(View v) { friend.OnInviteFriend(v); } public void OnBusClick(View v) { businfo.OnBusClick(v); } public void OnChangeBus(View v) { businfo.OnChangeBus(v); } public void OnSeeMentory(View v) { switch(currentFragmentIndex) { case 0: newsfeed.OnSeeMentory(v); break; case 4: mentory.OnSeeMentory(v); break; } } public void OnSetProfileImage(View v) { switch(v.getId()) { case R.id.profile_picture: this.modifyMemberPictureTarget = 0; break; case R.id.child_mainpicture: this.modifyMemberPictureTarget = Integer.parseInt(v.getTag().toString())+1; break; } ArrayAdapter<CharSequence> arrayAdapter = ArrayAdapter.createFromResource(this, R.array.profile_image_mode, android.R.layout.simple_list_item_1); ListView listView = new ListView(this); listView.setAdapter(arrayAdapter); listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); final AlertDialog alert = new AlertDialog.Builder(this) .setTitle(getString(R.string.profile_select_photo)) .setView(listView).create(); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View v, int position, long id) { Intent intent; switch(position) { case 0: intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); String url = "tmp_" + String.valueOf(System.currentTimeMillis()) + ".jpg"; profileImageCaptureUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), url)); intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, profileImageCaptureUri); intent.putExtra("return-data", true); startActivityForResult(intent, PICK_FROM_CAMERA); break; case 1: intent = new Intent(Intent.ACTION_PICK); intent.setType(android.provider.MediaStore.Images.Media.CONTENT_TYPE); startActivityForResult(intent, PICK_FROM_ALBUM); break; case 2: break; case 3: break; } alert.dismiss(); } }); alert.show(); } @Override public boolean onKeyDown(int keyCode, KeyEvent event){ if( keyCode == KeyEvent.KEYCODE_BACK) { switch( noticeViewFlipper.getDisplayedChild() ) { case 0: new AlertDialog.Builder(this) .setMessage(getString(R.string.app_name)+"�� �����Ͻðڽ��ϱ�?") .setPositiveButton("Ȯ��", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { finish(); } }) .setNegativeButton("���", null) .show(); break; case 1: case 2: setPrevAnimation(); noticeViewFlipper.setDisplayedChild(0); break; } return true; } else return super.onKeyDown(keyCode, event); } public void initiateRequestFriendStatus() { requestGetParentCounter = 0; teacher_parent_srl_list = new ArrayList<String>(); if( friendList == null ) friendList = new ArrayList<FriendListItem>(); else friendList.clear(); requestList = new ArrayList<FriendListItem>(); friendInClassList = new ArrayList<FriendListItem>(); recommendedFriendList = new ArrayList<FriendListItem>(); requestGetClassStudentCounter = 0; studentList = new ArrayList<FriendListItem>(); } public void requestFriendList() { initiateRequestFriendStatus(); Profile profile = maker.getProfile(); switch(profile.member_type.charAt(0)) { case 'P': if( profile.childrenList.size() > 1 ) this.request_Member_getFriends(profile.getCurrentChildren().student_member_srl); else Toast.makeText(this, "ģ������� ������ ��ġ���� �θ�Ը� �̿밡���մϴ�.", Toast.LENGTH_SHORT).show(); break; case 'T': for( int i = 0; i < profile.classList.size(); i++) { for( int j = 0; j < profile.classList.get(i).getTeacherList().size(); j++ ) { if( profile.member_srl.equals(profile.classList.get(i).getTeacherList().get(j).teacher_member_srl) ) { this.request_Class_getClassStudent(profile.member_org_srl, profile.classList.get(i).getClass_srl()); return; } } } break; case 'M': if( profile.classList.size() != 0 ) { friendList.add(new FriendListItem(FriendListItemType.NAMETAG, "������", "")); for( int i = 0; i < profile.classList.size(); i++ ) { for(int j = 0; j < profile.classList.get(i).getTeacherList().size(); j++) { friendList.add(new FriendListItem(FriendListItemType.GRANTED_TEACHER, profile.classList.get(i).getTeacherList().get(j).teacher_name, "")); } this.request_Class_getClassStudent(profile.classList.get(i).getClass_org_srl(), profile.classList.get(i).getClass_srl()); } } break; } } @Override public void response(String uri, String response) { try { if( response.isEmpty() ) return; if(response.startsWith("<!DOCTYPE html>")) { return; } JSONObject jsonObj = new JSONObject(response); String result = jsonObj.getString("result"); if( result.equals("OK") ) { if(uri.equals("Class/getClassStudent")) { boolean addClassTitle = false; String nativeData = jsonObj.getString("data"); JSONArray dataArray = new JSONArray(nativeData); for(int i = 0; i < dataArray.length(); i++) { String member_srl = dataArray.getJSONObject(i).getString("member_srl"); String member_name = dataArray.getJSONObject(i).getString("member_name"); String member_type = dataArray.getJSONObject(i).getString("member_type"); String member_org_srl = dataArray.getJSONObject(i).getString("member_org_srl"); String member_picture = dataArray.getJSONObject(i).getString("member_picture"); JSONObject studentObj = dataArray.getJSONObject(i).getJSONObject("student"); String student_srl = studentObj.getString("student_srl"); String student_member_srl = studentObj.getString("student_member_srl"); String student_class_srl = studentObj.getString("student_class_srl"); String student_parent_srl = studentObj.getString("student_parent_srl"); String student_teacher_srl = studentObj.getString("student_teacher_srl"); String student_shuttle_srl = studentObj.getString("student_shuttle_srl"); String student_birthday = studentObj.getString("student_birthday"); String student_parent_key = studentObj.getString("student_parent_key"); switch(maker.getProfile().member_type.charAt(0)) { case 'T': if( addClassTitle == false ) { friendList.add(new FriendListItem(FriendListItemType.NAMETAG, maker.getProfile().classes.get(student_class_srl).getClass_name(), "")); addClassTitle = true; } FriendListItem student; if( student_parent_srl.equals("0") ) { student = new FriendListItem(FriendListItemType.CURRENT_STUDENT, "�θ�̰���", member_name); student.setStudentsParentInfo(student.new StudentsParentInfo(student_parent_srl, student_srl, student_member_srl)); friendList.add(student); } else { student = new FriendListItem(FriendListItemType.CURRENT_STUDENT, student_parent_srl, member_name); student.setStudentsParentInfo(student.new StudentsParentInfo(student_parent_srl, student_srl, student_member_srl)); friendList.add(student); teacher_parent_srl_list.add(student_parent_srl); } break; case 'M': if(student_parent_srl.equals("0")) friendList.add(new FriendListItem(FriendListItemType.CURRENT_STUDENT_FOR_MANAGER, "�θ�̰���", member_name)); else { if(studentList.size() == 0) { friendList.add(new FriendListItem(FriendListItemType.NAMETAG, "�л� ���", "")); } friendList.add(new FriendListItem(FriendListItemType.CURRENT_STUDENT_FOR_MANAGER, student_parent_srl, member_name)); studentList.add(new FriendListItem(FriendListItemType.CURRENT_STUDENT_FOR_MANAGER, student_parent_srl, member_name)); } break; } } switch(maker.getProfile().member_type.charAt(0)) { case 'T': for( int i = 0; i < teacher_parent_srl_list.size(); i++ ) { this.request_Member_getParent(teacher_parent_srl_list.get(i)); } break; case 'M': for( int i = 0; i < studentList.size(); i++ ) { this.request_Member_getParent(studentList.get(i).getName()); } requestGetClassStudentCounter++; break; } } else if(uri.equals("Member/getParent")) { String nativeData = jsonObj.getString("data"); jsonObj = new JSONObject(nativeData); String member_srl = jsonObj.getString("member_srl"); String member_name = jsonObj.getString("member_name"); String member_type = jsonObj.getString("member_type"); String member_org_srl = jsonObj.getString("member_org_srl"); String member_picture = jsonObj.getString("member_picture"); JSONObject parentObj = jsonObj.getJSONObject("parent"); String parent_srl = parentObj.getString("parent_srl"); String parent_member_srl = parentObj.getString("parent_member_srl"); String parent_viewer_key = parentObj.getString("parent_viewer_key"); switch(maker.getProfile().member_type.charAt(0)) { case 'P': for( int i = 0; i < friendList.size(); i++ ) { if( parent_srl.equals(friendList.get(i).getName()) ) { friendList.get(i).setName(member_name); if( ++requestGetParentCounter == this.friendInClassList.size() + this.requestList.size() + this.recommendedFriendList.size()) { new Thread(new Runnable() { @Override public void run() { runOnUiThread(new Runnable(){ @Override public void run() { maker.changeFragment(7); friend.setFriendList(friendList); } }); } }).start(); } break; } } break; case 'T': for(int i = 0; i < friendList.size(); i++) { if( friendList.get(i).getName().equals(parent_srl) ) { friendList.get(i).setName(member_name); //TODO : �θ��� ���� �����ϱ� break; } } if( ++requestGetParentCounter == teacher_parent_srl_list.size() ) { new Thread(new Runnable() { @Override public void run() { runOnUiThread(new Runnable(){ @Override public void run() { maker.changeFragment(7); friend.setFriendList(friendList); } }); } }).start(); } break; case 'M': for( int i = 0; i < friendList.size(); i++ ) { if( parent_srl.equals(friendList.get(i).getName()) ) { friendList.get(i).setName(member_name); break; } } if( ++requestGetParentCounter == studentList.size() && requestGetClassStudentCounter == maker.getProfile().classList.size()-1 ) { new Thread(new Runnable() { @Override public void run() { runOnUiThread(new Runnable(){ @Override public void run() { maker.changeFragment(7); friend.setFriendList(friendList); } }); } }).start(); } break; } } else if(uri.equals("Member/getFriends")) { String nativeData = jsonObj.getString("data"); JSONArray dataArray = new JSONArray(nativeData); for(int i = 0; i < dataArray.length(); i++) { String friend_srl = dataArray.getJSONObject(i).getString("friend_srl"); String friend_origin_srl = dataArray.getJSONObject(i).getString("friend_origin_srl"); String friend_target_srl = dataArray.getJSONObject(i).getString("friend_target_srl"); String friend_status = dataArray.getJSONObject(i).getString("friend_status"); String friend_created = dataArray.getJSONObject(i).getString("friend_created"); FriendListItem friend; switch(friend_status.charAt(0)) { case 'S': if(friend_origin_srl.equals(maker.getProfile().getCurrentChildren().student_member_srl)) { friend = new FriendListItem(FriendListItemType.WAITING_FRIEND, friend_target_srl, friend_target_srl); friend.setFriendInfo(friend.new FriendInfo(friend_srl, friend_origin_srl, friend_target_srl, friend_status.charAt(0))); friendInClassList.add(friend); } else { friend = new FriendListItem(FriendListItemType.REQUESTED_FRIEND, friend_origin_srl, friend_origin_srl); friend.setFriendInfo(friend.new FriendInfo(friend_srl, friend_origin_srl, friend_target_srl, friend_status.charAt(0))); requestList.add(friend); } break; case 'W': break; case 'A': if(friend_origin_srl.equals(maker.getProfile().getCurrentChildren().student_member_srl)) friend = new FriendListItem(FriendListItemType.CURRENT_FRIEND, friend_target_srl, friend_target_srl); else friend = new FriendListItem(FriendListItemType.CURRENT_FRIEND, friend_origin_srl, friend_origin_srl); friend.setFriendInfo(friend.new FriendInfo(friend_srl, friend_origin_srl, friend_target_srl, friend_status.charAt(0))); friendInClassList.add(friend); break; case 'R': break; } } this.request_Member_getRecommendFriends(maker.getProfile().getCurrentChildren().student_member_srl, maker.getProfile().getCurrentChildren().getStudent_org_srl(), 1, 100); } else if(uri.equals("Member/getRecommendFriends")) { String nativeData = jsonObj.getString("data"); JSONArray dataArray = new JSONArray(nativeData); for(int i = 0; i < dataArray.length(); i++) { String member_srl = dataArray.getJSONObject(i).getString("member_srl"); String member_name = dataArray.getJSONObject(i).getString("member_name"); String member_nickname = dataArray.getJSONObject(i).getString("member_nickname"); String member_type = dataArray.getJSONObject(i).getString("member_type"); String member_org_srl = dataArray.getJSONObject(i).getString("member_org_srl"); String member_point = dataArray.getJSONObject(i).getString("member_point"); String member_email = dataArray.getJSONObject(i).getString("member_email"); String member_picture = dataArray.getJSONObject(i).getString("member_picture"); JSONObject studentObj = dataArray.getJSONObject(i).getJSONObject("student"); String student_srl =studentObj.getString("student_srl"); String student_member_srl =studentObj.getString("student_member_srl"); String student_class_srl =studentObj.getString("student_class_srl"); String student_parent_srl =studentObj.getString("student_parent_srl"); String student_teacher_srl =studentObj.getString("student_teacher_srl"); String student_shuttle_srl =studentObj.getString("student_shuttle_srl"); String student_birthday =studentObj.getString("student_birthday"); String student_parent_key =studentObj.getString("student_parent_key"); if(student_class_srl.equals(SlidingMenuMaker.getProfile().getCurrentChildren().teacherList.get(0).teacher_class_srl) == false) continue; boolean isDataApproved = true; for(int j = 0; j < requestList.size(); j++) { if(requestList.get(j).getName().equals(member_srl)) { isDataApproved = false; break; } } for(int j = 0; j < friendInClassList.size(); j++) { if(friendInClassList.get(j).getName().equals(member_srl)) { isDataApproved = false; break; } } for(int j = 0; j < recommendedFriendList.size(); j++) { if(recommendedFriendList.get(j).getFriendInfo().target_srl.equals(member_srl)) { isDataApproved = false; break; } } if( isDataApproved ) { FriendListItem friend = new FriendListItem(FriendListItemType.RECOMMENDED_FRIEND, student_parent_srl, member_name); friend.setFriendInfo(friend.new FriendInfo("", maker.getProfile().getCurrentChildren().student_member_srl, member_srl, ' ')); recommendedFriendList.add(friend); } } if( requestList.size() != 0 ) { friendList.add(new FriendListItem(FriendListItemType.NAMETAG, "���� ģ�� ��û", "")); friendList.addAll(requestList); for(int i = 0; i < requestList.size(); i++) this.request_Member_getMember(requestList.get(i).getName()); } if( friendInClassList.size() != 0 ) { friendList.add(new FriendListItem(FriendListItemType.NAMETAG, maker.getProfile().getCurrentChildren().className, "")); friendList.addAll(friendInClassList); for(int i = 0; i < friendInClassList.size(); i++) this.request_Member_getMember(friendInClassList.get(i).getName()); } if( recommendedFriendList.size() != 0 ) { friendList.add(new FriendListItem(FriendListItemType.NAMETAG, "���� �� ��õ ģ��", "")); for(int i = 0; i < recommendedFriendList.size(); i++) { if(recommendedFriendList.get(i).getName().equals("0")) { recommendedFriendList.get(i).setName("�θ�̰���"); requestGetParentCounter++; } else { this.request_Member_getParent(recommendedFriendList.get(i).getName()); } } friendList.addAll(recommendedFriendList); } if( friendList.size() == 0 ) { new Thread(new Runnable() { @Override public void run() { runOnUiThread(new Runnable(){ @Override public void run() { maker.changeFragment(7); friend.setFriendList(friendList); } }); } }).start(); } } else if(uri.equals("Member/getMember")) { String nativeData = jsonObj.getString("data"); jsonObj = new JSONObject(nativeData); String member_srl = jsonObj.getString("member_srl"); String member_name = jsonObj.getString("member_name"); String member_type = jsonObj.getString("member_type"); String member_org_srl = jsonObj.getString("member_org_srl"); String member_point = jsonObj.getString("member_point"); String member_email = jsonObj.getString("member_email"); String member_picture = jsonObj.getString("member_picture"); String student_srl = ""; String student_member_srl = ""; String student_class_srl = ""; String student_parent_srl = ""; String student_teacher_srl = ""; String student_shuttle_srl = ""; String student_birthday = ""; String student_parent_key = ""; String parent_srl = ""; String parent_member_srl = ""; String parent_viewer_key = ""; switch(member_type.charAt(0)) { case 'P': JSONObject parentObj = jsonObj.getJSONObject("parent"); parent_srl = parentObj.getString("parent_srl"); parent_member_srl = parentObj.getString("parent_member_srl"); parent_viewer_key = parentObj.getString("parent_viewer_key"); break; case 'S': JSONObject studentObj = jsonObj.getJSONObject("student"); student_srl = studentObj.getString("student_srl"); student_member_srl = studentObj.getString("student_member_srl"); student_class_srl = studentObj.getString("student_class_srl"); student_parent_srl = studentObj.getString("student_parent_srl"); student_teacher_srl = studentObj.getString("student_teacher_srl"); student_shuttle_srl = studentObj.getString("student_shuttle_srl"); student_birthday = studentObj.getString("student_birthday"); student_parent_key = studentObj.getString("student_parent_key"); break; case 'T': break; case 'M': break; } if(requestLogDataCounter > 0) { for(int i = 0; i < noticeList.size(); i++) { if( noticeList.get(i).getMember_srl().equals(member_srl) ) { noticeList.get(i).setMember_picture(member_picture); } } for(int i = 0; i < photoNoticeList.size(); i++) { if( photoNoticeList.get(i).getMember_srl().equals(member_srl) ) { photoNoticeList.get(i).setMember_picture(member_picture); } } } else { switch(maker.getProfile().member_type.charAt(0)) { case 'P': switch(member_type.charAt(0)) { case 'P': for(int i = 0; i < friendList.size(); i++) { if( member_srl.equals(friendList.get(i).getName()) ) { friendList.get(i).setChildname(member_name); if(student_parent_srl.equals("0")) { friendList.get(i).setName("�θ�̰���"); if( ++requestGetParentCounter == this.friendInClassList.size() + this.requestList.size() + this.recommendedFriendList.size()) { new Thread(new Runnable() { @Override public void run() { runOnUiThread(new Runnable(){ @Override public void run() { maker.changeFragment(7); friend.setFriendList(friendList); } }); } }).start(); } } else { friendList.get(i).setName(parent_srl); this.request_Member_getParent(parent_srl); } } } break; case 'S': for(int i = 0; i < friendList.size(); i++) { if( member_srl.equals(friendList.get(i).getName()) ) { friendList.get(i).setChildname(member_name); if(student_parent_srl.equals("0")) { friendList.get(i).setName("�θ�̰���"); if( ++requestGetParentCounter == this.friendInClassList.size() + this.requestList.size() + this.recommendedFriendList.size()) { new Thread(new Runnable() { @Override public void run() { runOnUiThread(new Runnable(){ @Override public void run() { maker.changeFragment(7); friend.setFriendList(friendList); } }); } }).start(); } } else { friendList.get(i).setName(student_parent_srl); this.request_Member_getParent(student_parent_srl); } } } break; case 'T': break; case 'M': break; } break; } } } else if(uri.equals("Member/modMemberPicture") ) { String nativeData = jsonObj.getString("data"); jsonObj = new JSONObject(nativeData); final String member_picture = jsonObj.getString("member_picture"); new Thread(new Runnable() { @Override public void run() { runOnUiThread(new Runnable(){ @Override public void run() { switch(modifyMemberPictureTarget) { case 0: ((ImageView)findViewById(R.id.mainpicture)).setImageBitmap(ImageMaker.getCroppedBitmap(profilePhoto)); break; default: new Thread(new Runnable() { @Override public void run() { runOnUiThread(new Runnable(){ @Override public void run() { SlidingMenuMaker.getProfile().getChildren(modifyMemberPictureTarget-1).student_picture = member_picture; SlidingMenuMaker.getProfile().getChildren(modifyMemberPictureTarget-1).layout = null; maker.menuChildrenAdapter.notifyDataSetChanged(); } }); } }).start(); break; } } }); } }).start(); } } else { return; } } catch(JSONException e) { StringWriter errors = new StringWriter(); e.printStackTrace(new PrintWriter(errors)); String s = errors.toString(); System.out.println(s); } } public static GalleryFragment getGallery() { return gallery; } public static void setGallery(GalleryFragment gallery) { MainActivity.gallery = gallery; } private void setPrevAnimation() { noticeViewFlipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.viewin_right)); noticeViewFlipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.viewout_right)); } private void setNextAnimation() { noticeViewFlipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.viewin_left)); noticeViewFlipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.viewout_left)); } public static MentoryFragment getMentory() { return mentory; } public static void setMentory(MentoryFragment mentory) { MainActivity.mentory = mentory; } }