package com.ihateflyingbugs.kidsm.newsfeed; import java.net.URLDecoder; import java.util.ArrayList; import org.apache.http.protocol.HTTP; import org.json.JSONArray; import org.json.JSONObject; import android.app.AlertDialog; import android.content.Intent; import android.os.Bundle; import android.os.Environment; import android.os.Handler; import android.util.DisplayMetrics; import android.util.Log; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.widget.AbsListView; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; import com.ihateflyingbugs.kidsm.MainActivity; import com.ihateflyingbugs.kidsm.NetworkFragment; import com.ihateflyingbugs.kidsm.R; import com.ihateflyingbugs.kidsm.WrappingSlidingDrawer; import com.ihateflyingbugs.kidsm.mentory.MentoryArticle; import com.ihateflyingbugs.kidsm.mentory.SeeMentoryActivity; import com.ihateflyingbugs.kidsm.menu.SlidingMenuMaker; import com.ihateflyingbugs.kidsm.newsfeed.News.NEWSTYPE; import com.ihateflyingbugs.kidsm.showimage.ShowImageActivity; public class NewsfeedFragment extends NetworkFragment { LayoutInflater inflater; View layout; ArrayList<News> newsList; NewsAdapter newsAdapter; ListView newsListView; ArrayList<News> newNewsList; int timelineIndex; int Counter; int requestGetParentForProfileImageCounter; boolean currentlyRequestNews; WrappingSlidingDrawer drawer; float prevTouchY; String filePath; boolean isFirstScrollDone; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if(layout != null) { refreshTimeline(); return layout; } this.inflater = inflater; layout = inflater.inflate(R.layout.activity_newsfeed, container, false); auth_key = MainActivity.auth_key; currentlyRequestNews = false; newNewsList = new ArrayList<News>(); //newsList = new HashMap<String, News>(); newsList = new ArrayList<News>(); newsAdapter = new NewsAdapter(getActivity(), newsList); timelineIndex = 0; isFirstScrollDone = false; getTimeLineMessages(); newsListView = (ListView)layout.findViewById(R.id.newsfeed); newsListView.setOnScrollListener(new AbsListView.OnScrollListener() { @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { // Make your calculation stuff here. You have all your // needed info from the parameters of this function. // Sample calculation to determine if the last // item is fully visible. final int lastItem = firstVisibleItem + visibleItemCount; if(lastItem == totalItemCount) { // Last item is fully visible. if( isFirstScrollDone ) getTimeLineMessages(); } } @Override public void onScrollStateChanged(AbsListView view, int scrollState) { // TODO Auto-generated method stub } }); newsListView.setDivider(null); newsListView.setDividerHeight(20); newsListView.setAdapter(newsAdapter); filePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/attachimage.jpg"; drawer = (WrappingSlidingDrawer)layout.findViewById(R.id.newsfeed_drawer); drawer.animateOpen(); return layout; } public boolean dispatchTouchEvent(MotionEvent event) { if( event.getAction() == MotionEvent.ACTION_DOWN ) { prevTouchY = event.getY(); } else if( event.getAction() == MotionEvent.ACTION_MOVE ) { DisplayMetrics displaymetrics = new DisplayMetrics(); getActivity().getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); int height = displaymetrics.heightPixels; float gap = Math.abs(event.getY() - prevTouchY); if( gap > height/20 ) { if( event.getY() - prevTouchY < 0 ) { if( drawer.isOpened() == false ) { drawer.animateOpen(); } } else { if( drawer.isOpened() == true ) { drawer.animateClose(); } } prevTouchY = event.getY(); } } else if( event.getAction() == MotionEvent.ACTION_UP ) { } return false; } public void OnUploadPhoto(View v) { ArrayAdapter<CharSequence> arrayAdapter = ArrayAdapter.createFromResource(getActivity(), R.array.gallery_uploadmode, android.R.layout.simple_list_item_1); ListView listView = new ListView(getActivity()); listView.setAdapter(arrayAdapter); listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); final AlertDialog alert = new AlertDialog.Builder(getActivity()) .setTitle(getString(R.string.upload_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: MainActivity.changeFragment(1); MainActivity.getMainActivity().getGallery().setRequestFromNewsfeed(1); break; case 1: MainActivity.changeFragment(1); MainActivity.getMainActivity().getGallery().setRequestFromNewsfeed(2); break; } alert.dismiss(); } }); alert.show(); } // public static News getNews(String key) { // //deprecate // return newsList.get(key); // } // public static void setNews(String key, News news) { // newsList.put(key, news); // } private void refreshTimeline() { newsList.clear(); newNewsList.clear(); timelineIndex = 0; Counter = 0; requestGetParentForProfileImageCounter = 0; getTimeLineMessages(); } private void getTimeLineMessages() { if( currentlyRequestNews ) return; currentlyRequestNews = true; newNewsList.clear(); //newsMap.put(makeIdentifier("B", "0"), new BusinfoNews("0", "", "")); //newsMap.put(makeIdentifier("M", "0"), new MentoryNews("1", "", "")); switch(SlidingMenuMaker.getProfile().member_type.charAt(0)) { case 'P': if( SlidingMenuMaker.getProfile().childrenList.size() > 1 ) this.request_Timeline_getTimelineMessages(SlidingMenuMaker.getProfile().getCurrentChildren().student_member_srl, ++timelineIndex, 10); else Toast.makeText(getActivity(), "Ű� �Ҽ� ��ġ�� �Ҽ�ȸ���� �ҽ��� �޾ƺ� �� �ֽ��ϴ�.", Toast.LENGTH_SHORT).show(); break; case 'T': case 'M': this.request_Timeline_getTimelineMessages(SlidingMenuMaker.getProfile().member_srl, ++timelineIndex, 10); break; } // List<NameValuePair> params = new ArrayList<NameValuePair>(); // params.add(new BasicNameValuePair("member_srl", "4")); // params.add(new BasicNameValuePair("index", "1")); // params.add(new BasicNameValuePair("count", "5")); // GET("Timeline/getTimelineMessages", params); // addNewsFeed_TextWithPhoto("1", 1, 1, "1", "�������� ������~", "IMAGE"); // addNewsFeed_TextWithPhoto("1", 1, 1, "1", "�������� ������~", "IMAGE"); // addNewsFeed_TextWithPhoto("1", 1, 1, "1", "�������� ������~", "IMAGE"); } private void addNewsFeed_TextOnly(String srl, int member_srl, int target_srl, String created, String message) { // LinearLayout linear = (LinearLayout)inflater.inflate(R.layout.news_textonly, null); // ArrayList<Reply> replyList = new ArrayList<Reply>(); // replyList.add(new Reply("������", "image", "�� ������ �⺻����.")); // ArrayList<LikeMember> likeList = new ArrayList<LikeMember>(); // likeList.add(new LikeMember("�θӸ�")); // likeList.add(new LikeMember("��������")); // News news = new News(srl, member_srl, target_srl, created, message, false, false, 2, linear, replyList, likeList); // //newsList.put(srl, news); // // LinearLayout svw = (LinearLayout)layout.findViewById(R.id.newsfeed); // svw.addView(linear); } private void addNewsfeed(News news) { // LinearLayout linear = (LinearLayout)inflater.inflate(R.layout.news_textwithphoto, null); // ArrayList<Reply> replyList = new ArrayList<Reply>(); // replyList.add(new Reply("������", "image", "�η����� �̤̤�")); // ArrayList<LikeMember> likeList = new ArrayList<LikeMember>(); // likeList.add(new LikeMember("�θӸ�")); // likeList.add(new LikeMember("��������")); // News news = new News(""+newsList.size()+""+newsList.size(), member_srl, target_srl, created, "IMAGE", message, false, false, 2, linear, replyList, likeList); // newsList.put(""+newsList.size()+""+newsList.size(), news); //newsList.put(srl, news); // LinearLayout svw = (LinearLayout)layout.findViewById(R.id.newsfeed); // svw.addView(linear); } public void OnLikeClick(View v) { int position = Integer.parseInt(v.getTag().toString()); String member_srl = ""; switch(SlidingMenuMaker.getProfile().member_type.charAt(0)) { case 'P': member_srl = SlidingMenuMaker.getProfile().getCurrentChildren().student_member_srl; break; case 'T': case 'M': member_srl = SlidingMenuMaker.getProfile().member_srl; break; } switch( newsList.get(position).type ) { case PHOTO: PhotoNews photoNews = (PhotoNews) newsList.get(position); if( photoNews.likeMemberList.contains(member_srl) == false ) this.request_Album_setPhotoLike(photoNews.photo_srl, member_srl); else this.request_Album_delPhotoLike(photoNews.photo_srl, member_srl); break; case MENTORY: MentoryNews mentoryNews = (MentoryNews) newsList.get(position); if( mentoryNews.likeMemberList.contains(member_srl) == false ) this.request_Mentor_setMentoringArticleLikes(mentoryNews.getMentoring_srl(), member_srl); else this.request_Mentor_delMentoringArticleLikes(mentoryNews.getMentoring_srl(), member_srl); break; } } public void OnReplyClick(View v) { int position = Integer.parseInt(v.getTag().toString()); Intent intent = new Intent(getActivity(), ReplyActivity.class); switch( newsList.get(position).type ) { case PHOTO: intent.putExtra("type", "T"); intent.putExtra("timeline_srl", newsList.get(position).timeline_srl); intent.putExtra("timeline_member_srl", newsList.get(position).timeline_member_srl); startActivity(intent); break; case MENTORY: MentoryNews mentoryNews = (MentoryNews) newsList.get(position); intent = new Intent(getActivity(), ReplyActivity.class); intent.putExtra("type", "M"); intent.putExtra("mentoring_srl", mentoryNews.getMentoring_srl()); startActivity(intent); break; } } public void OnScrapClick(View v) { int position = Integer.parseInt(v.getTag().toString()); String member_srl = ""; switch(SlidingMenuMaker.getProfile().member_type.charAt(0)) { case 'P': member_srl = SlidingMenuMaker.getProfile().getCurrentChildren().student_member_srl; break; case 'T': case 'M': member_srl = SlidingMenuMaker.getProfile().member_srl; break; } switch( newsList.get(position).type ) { case PHOTO: PhotoNews photoNews = (PhotoNews) newsList.get(position); if( photoNews.member_scrap_srl.isEmpty() ) this.request_Scrap_setScrap(member_srl, "P", photoNews.photo_srl); else this.request_Scrap_delScrap(member_srl, newsList.get(position).member_scrap_srl, photoNews.photo_srl); break; case MENTORY: MentoryNews mentoryNews = (MentoryNews) newsList.get(position); if( mentoryNews.member_scrap_srl.isEmpty() ) this.request_Scrap_setScrap(member_srl, "M", mentoryNews.getMentoring_srl()); else this.request_Scrap_delScrap(member_srl, mentoryNews.member_scrap_srl, mentoryNews.getMentoring_srl()); break; } } public void OnImageClick(View v) { int position = Integer.parseInt(v.getTag().toString()); PhotoNews photoNews = (PhotoNews) newsList.get(position); Intent intent = new Intent(getActivity(), ShowImageActivity.class); intent.putExtra("photo_url", photoNews.photo_path); intent.putExtra("photo_srl", photoNews.photo_srl); startActivity(intent); } public void OnSeeMentory(View v) { int position = Integer.parseInt(v.getTag().toString()); MentoryNews mentoryNews = (MentoryNews) newsList.get(position); Intent intent = new Intent(getActivity(), SeeMentoryActivity.class); intent.putExtra("mentoring_text", mentoryNews.getMentoring_text()); intent.putExtra("mentoring_subject", mentoryNews.getMentoring_subject()); intent.putExtra("mentoring_srl", mentoryNews.getMentoring_srl()); startActivity(intent); } private void notifyDataSetChanged() { if( --Counter == 0 ) { new Thread(new Runnable() { @Override public void run() { NewsfeedFragment.this.getActivity().runOnUiThread(new Runnable(){ @Override public void run() { newsList.addAll(newNewsList); newNewsList.clear(); if( isFirstScrollDone == false ) isFirstScrollDone = true; newsAdapter.notifyDataSetChanged(); currentlyRequestNews = false; } }); } }).start(); } } public void refreshList() { new Thread(new Runnable() { @Override public void run() { NewsfeedFragment.this.getActivity().runOnUiThread(new Runnable(){ @Override public void run() { newsAdapter.notifyDataSetChanged(); } }); } }).start(); } private String makeIdentifier(String type, String srl) { return type+srl; } @Override public void response(String uri, String response) { try { Log.d("NewsfeedFragment", uri); Log.d("NewsfeedFragment", response); if(response.startsWith("<!DOCTYPE html>")) { if(uri.equals("Calender/getCalender")) { notifyDataSetChanged(); } else if(uri.equals("Album/getPhoto")) { notifyDataSetChanged(); } else if(uri.equals("Mentor/getMentoringArticle")) { notifyDataSetChanged(); } else if(uri.equals("Shuttlebus/getShuttlebus")) { notifyDataSetChanged(); } return; } JSONObject jsonObj = new JSONObject(response); String result = jsonObj.getString("result"); if( result.equals("OK") == false ) { if( uri.equals("Calender/getCalender")) { notifyDataSetChanged(); } return; } if( uri.equals("Timeline/getTimelineMessages") ) { String nativeData = jsonObj.getString("data"); JSONArray dataArray = new JSONArray(nativeData); Counter = dataArray.length(); if( Counter == 0 ) { Counter++; notifyDataSetChanged(); } for(int i = 0; i < dataArray.length(); i++ ) { JSONObject dataObj = dataArray.getJSONObject(i); final String timeline_type = dataObj.getString("timeline_type"); final String timeline_srl = dataObj.getJSONObject("_id").getString("$oid"); final String timeline_member_srl = dataObj.getString("timeline_member_srl"); final String timeline_target_member_srl = dataObj.getString("timeline_target_member_srl"); final String timeline_target_srl = dataObj.getString("timeline_target_srl"); final String timeline_like = dataObj.getString("timeline_like"); final String timeline_comment = dataObj.getString("timeline_comment"); final String timeline_created = dataObj.getString("timeline_created"); switch(timeline_type.charAt(0)) { case 'S': boolean isScheduleAlreadyIn = false; for(int j = 0; j < newNewsList.size(); j++) { if( newNewsList.get(j).identifier != null && newNewsList.get(j).identifier.equals(makeIdentifier(""+timeline_type.charAt(0), timeline_target_srl))) { isScheduleAlreadyIn = true; break; } } if(isScheduleAlreadyIn) { notifyDataSetChanged(); } else { newNewsList.add(new ScheduleNews(makeIdentifier(timeline_type, timeline_target_srl), timeline_srl, timeline_member_srl, timeline_like, timeline_created)); this.request_Calender_getCalender(timeline_target_srl); } break; case 'P': boolean isPhotoAlreadyIn = false; for(int j = 0; j < newNewsList.size(); j++) { if( newNewsList.get(j).identifier != null && newNewsList.get(j).identifier.equals(makeIdentifier(""+timeline_type.charAt(0), timeline_target_srl))) { isPhotoAlreadyIn = true; break; } } if(isPhotoAlreadyIn) { notifyDataSetChanged(); } else { newNewsList.add(new PhotoNews(makeIdentifier(timeline_type, timeline_target_srl), timeline_srl, timeline_member_srl, timeline_like, timeline_created)); this.request_Album_getPhoto(timeline_target_srl); this.request_Timeline_getTimelineComments(timeline_srl, 1, 100000); this.request_Scrap_getScrapCount(timeline_target_srl, "P"); } break; case 'B': newNewsList.add(new BusinfoNews(makeIdentifier(timeline_type, timeline_target_srl), timeline_srl, timeline_member_srl, timeline_like, timeline_created)); String org_srl = ""; switch(SlidingMenuMaker.getProfile().member_type.charAt(0)) { case 'P': org_srl = SlidingMenuMaker.getProfile().getCurrentChildren().student_org_srl; break; case 'T': case 'M': org_srl = SlidingMenuMaker.getProfile().member_org_srl; break; } this.request_Shuttlebus_getShuttlebus(timeline_target_srl, org_srl); break; case 'M': // switch(timeline_type.charAt(1)) { // case 'P': // break; // case 'T': // break; // case 'M': // break; // } boolean isMentoryAlreadyIn = false; for(int j = 0; j < newNewsList.size(); j++) { if( newNewsList.get(j).identifier != null && newNewsList.get(j).identifier.equals(makeIdentifier(""+timeline_type.charAt(0), timeline_target_srl.split("/")[1]))) { isMentoryAlreadyIn = true; break; } } if(isMentoryAlreadyIn) { notifyDataSetChanged(); } else { MentoryNews mentoryNews = new MentoryNews(makeIdentifier(""+timeline_type.charAt(0), timeline_target_srl.split("/")[1]), timeline_srl, timeline_member_srl, timeline_like, timeline_created); mentoryNews.setTimeline_type(timeline_type); newNewsList.add(mentoryNews); this.request_Mentor_getMentoringArticle(timeline_target_srl.split("/")[1]); } break; case 'D': switch(timeline_type.charAt(1)) { case 'P': newNewsList.add(new PhotoNews(makeIdentifier("P", timeline_target_srl), timeline_srl, timeline_member_srl, timeline_like, timeline_created)); this.request_Album_getPhoto(timeline_target_srl); this.request_Timeline_getTimelineComments(timeline_srl, 1, 100000); this.request_Scrap_getScrapCount(timeline_target_srl, "P"); break; case 'M': isMentoryAlreadyIn = false; for(int j = 0; j < newNewsList.size(); j++) { if( newNewsList.get(j).identifier != null && newNewsList.get(j).identifier.equals(makeIdentifier("D"+timeline_type.charAt(1), timeline_target_srl.split("/")[1]))) { isMentoryAlreadyIn = true; break; } } if(isMentoryAlreadyIn) { notifyDataSetChanged(); } else { RecommendedMentoryNews recommendedMentoryNews = new RecommendedMentoryNews(makeIdentifier("D"+timeline_type.charAt(1), timeline_target_srl.split("/")[1]), timeline_srl, timeline_member_srl, timeline_like, timeline_created); recommendedMentoryNews.setTimeline_type(timeline_type); newNewsList.add(recommendedMentoryNews); this.request_Mentor_getMentoringArticle(timeline_target_srl.split("/")[1]); } break; } break; case 'X': notifyDataSetChanged(); break; } } switch(SlidingMenuMaker.getProfile().member_type.charAt(0)) { case 'P': this.request_Scrap_getScraps(SlidingMenuMaker.getProfile().getCurrentChildren().student_member_srl, 1, 10000, "P"); this.request_Scrap_getScraps(SlidingMenuMaker.getProfile().getCurrentChildren().student_member_srl, 1, 10000, "M"); break; case 'T': case 'M': this.request_Scrap_getScraps(SlidingMenuMaker.getProfile().member_srl, 1, 10000, "P"); this.request_Scrap_getScraps(SlidingMenuMaker.getProfile().member_srl, 1, 10000, "M"); break; } } else if( uri.equals("Calender/getCalender")) { String nativeData = jsonObj.getString("data"); jsonObj = new JSONObject(nativeData); String cal_srl = jsonObj.getString("cal_srl"); String cal_org_srl = jsonObj.getString("cal_org_srl"); String cal_class_srl = jsonObj.getString("cal_class_srl"); String cal_member_srl = jsonObj.getString("cal_member_srl"); String cal_type = jsonObj.getString("cal_type"); String cal_year = jsonObj.getString("cal_year"); String cal_month = jsonObj.getString("cal_month"); String cal_day = jsonObj.getString("cal_day"); String cal_time = jsonObj.getString("cal_time"); String cal_timestamp = jsonObj.getString("cal_timestamp"); String cal_name = jsonObj.getString("cal_name"); String cal_created = jsonObj.getString("cal_created"); for(int i = 0; i < newNewsList.size(); i++) { if( newNewsList.get(i).identifier != null && newNewsList.get(i).identifier.equals(makeIdentifier("S", cal_srl))) { ((ScheduleNews)newNewsList.get(i)).setScheduleNews(cal_srl, cal_org_srl, cal_class_srl, cal_member_srl, cal_type, cal_year, cal_month, cal_day, cal_time, cal_timestamp, cal_name, cal_created); break; } } notifyDataSetChanged(); } else if( uri.equals("Album/getPhoto")) { String nativeData = jsonObj.getString("data"); jsonObj = new JSONObject(nativeData); String photo_srl = jsonObj.getString("photo_srl"); String photo_member_srl = jsonObj.getString("photo_member_srl"); String photo_album_srl = jsonObj.getString("photo_album_srl"); String photo_message = URLDecoder.decode(jsonObj.getString("photo_message"), HTTP.UTF_8); String photo_tag = jsonObj.getString("photo_tag"); String photo_path = jsonObj.getString("photo_path"); String photo_thumbnail = photo_path.substring(0, photo_path.length()-4 ) + "_96x96.png"; String photo_like = jsonObj.getString("photo_like"); String photo_private = jsonObj.getString("photo_private"); String photo_created = jsonObj.getString("photo_created"); String photo_updated = jsonObj.getString("photo_updated"); //newsList.add(new PhotoNews(photo_srl, photo_member_srl, photo_album_srl, photo_tag, photo_path, photo_thumbnail, photo_like, photo_private, photo_created, photo_updated)); //newsMap.put(Integer.parseInt(photo_created), new PhotoNews(photo_srl, photo_member_srl, photo_album_srl, photo_tag, photo_path, photo_thumbnail, photo_like, photo_private, photo_created, photo_updated)); for(int i = 0; i < newNewsList.size(); i++) { if( newNewsList.get(i).identifier != null && newNewsList.get(i).identifier.equals(makeIdentifier("P", photo_srl))) { ((PhotoNews)newNewsList.get(i)).setPhotoNews(photo_srl, photo_member_srl, photo_album_srl, photo_message, photo_tag, photo_path, photo_thumbnail, photo_like, photo_private, photo_created, photo_updated); this.request_Member_getMember(photo_member_srl); break; } } } if(uri.equals("Mentor/getMentoringArticle")) { String nativeData = jsonObj.getString("data"); jsonObj = new JSONObject(nativeData); String mentoring_srl = jsonObj.getString("mentoring_srl"); String mentoring_category_srl = jsonObj.getString("mentoring_category_srl"); String mentoring_type = jsonObj.getString("mentoring_type"); String mentoring_subject = jsonObj.getString("mentoring_subject"); String mentoring_text = jsonObj.getString("mentoring_text"); String mentoring_created = jsonObj.getString("mentoring_created"); String mentoring_updated = jsonObj.getString("mentoring_updated"); String mentoring_mentor_srl = jsonObj.getString("mentoring_mentor_srl"); String mentoring_like = jsonObj.getString("mentoring_like"); String mentoring_share = jsonObj.getString("mentoring_share"); for(int i = 0; i < newNewsList.size(); i++) { if( newNewsList.get(i).identifier != null ) { if( newNewsList.get(i).identifier.equals(makeIdentifier("M", mentoring_srl))) { ((MentoryNews)newNewsList.get(i)).setMentoryNews(mentoring_srl, mentoring_category_srl, mentoring_type, mentoring_subject, mentoring_text, mentoring_created, mentoring_updated, mentoring_mentor_srl, mentoring_like, mentoring_share); NewsfeedFragment.this.request_Mentor_getComments(mentoring_srl, 1, 100000); NewsfeedFragment.this.request_Scrap_getScrapCount(mentoring_srl, "M"); notifyDataSetChanged(); break; } else if( newNewsList.get(i).identifier.equals(makeIdentifier("DM", mentoring_srl))) { ((MentoryNews)newNewsList.get(i)).setMentoryNews(mentoring_srl, mentoring_category_srl, mentoring_type, mentoring_subject, mentoring_text, mentoring_created, mentoring_updated, mentoring_mentor_srl, mentoring_like, mentoring_share); NewsfeedFragment.this.request_Mentor_getComments(mentoring_srl, 1, 100000); NewsfeedFragment.this.request_Scrap_getScrapCount(mentoring_srl, "M"); NewsfeedFragment.this.request_Member_getMember(newNewsList.get(i).timeline_member_srl); break; } } } //notifyDataSetChanged(); } else if(uri.equals("Shuttlebus/getShuttlebus")) { String nativeData = jsonObj.getString("data"); JSONObject json = new JSONObject(nativeData); String shuttle_srl = json.getString("shuttle_srl"); String shuttle_org_srl = json.getString("shuttle_org_srl"); String shuttle_name = json.getString("shuttle_name"); String shuttle_route = json.getString("shuttle_route"); String shuttle_location = json.getString("sutttle_location"); for(int i = 0; i < newNewsList.size(); i++) { if( newNewsList.get(i).identifier != null && newNewsList.get(i).identifier.equals(makeIdentifier("B", shuttle_srl))) { ((BusinfoNews)newNewsList.get(i)).setBusinfoNews(shuttle_srl, shuttle_org_srl, shuttle_name, shuttle_route, shuttle_location); } } notifyDataSetChanged(); } 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_picture = jsonObj.getString("member_picture"); // for(int i = 0; i < newsList.size(); i++) { // if(newsList.get(i).type == NEWSTYPE.PHOTO) { // PhotoNews photoNews = (PhotoNews) newsList.get(i); // if(photoNews.photo_member_srl.equals(member_srl)); // photoNews.photo_member_name = member_name; // } // } if(Counter > 0) { for(int i = 0; i < newNewsList.size(); i++) { if(newNewsList.get(i).type == NEWSTYPE.PHOTO) { PhotoNews photoNews = (PhotoNews) newNewsList.get(i); if(photoNews.photo_member_srl.equals(member_srl)) { photoNews.photo_member_name = member_name; if( member_type.charAt(0) == 'S' ) { photoNews.photo_member_name += " �кθ�"; JSONObject studentObj = jsonObj.getJSONObject("student"); String student_parent_srl = studentObj.getString("student_parent_srl"); requestGetParentForProfileImageCounter++; photoNews.photo_member_picture_srl = "P"+student_parent_srl; this.request_Member_getParent(student_parent_srl); } else photoNews.photo_member_picture_srl = member_picture; } } else if(newNewsList.get(i).type == NEWSTYPE.RECOMMENDED_MENTORY) { RecommendedMentoryNews recommendedMentoryNews = (RecommendedMentoryNews) newNewsList.get(i); if(recommendedMentoryNews.timeline_member_srl.equals(member_srl)) { if( member_type.charAt(0) == 'T' ) { recommendedMentoryNews.setTimeline_member_name(member_name+" ������"); } else if( member_type.charAt(0) == 'M' ) { recommendedMentoryNews.setTimeline_member_name(member_name+" ���� ������"); } //notifyDataSetChanged(); } } } notifyDataSetChanged(); } else { switch(member_type.charAt(0)) { case 'S': JSONObject studentObj = jsonObj.getJSONObject("student"); String student_parent_srl = studentObj.getString("student_parent_srl"); this.request_Member_getParent(student_parent_srl); break; case 'T': case 'M': switch(SlidingMenuMaker.getProfile().member_type.charAt(0)) { case 'P': this.request_Service_notify_sendNotify(SlidingMenuMaker.getProfile().member_srl, member_srl, "���� ���ƿ� �˸�", SlidingMenuMaker.getProfile().member_name+" �кθ���� ������ �����մϴ�.", "P"); break; case 'T': this.request_Service_notify_sendNotify(SlidingMenuMaker.getProfile().member_srl, member_srl, "���� ���ƿ� �˸�", SlidingMenuMaker.getProfile().member_name+" �������� ������ �����մϴ�.", "P"); break; case 'M': this.request_Service_notify_sendNotify(SlidingMenuMaker.getProfile().member_srl, member_srl, "���� ���ƿ� �˸�", SlidingMenuMaker.getProfile().member_name+" ���弱������ ������ �����մϴ�.", "P"); break; } break; } } } else if( uri.equals("Member/getParent") ) { String nativeData = jsonObj.getString("data"); jsonObj = new JSONObject(nativeData); String member_srl = jsonObj.getString("member_srl"); final String member_picture = jsonObj.getString("member_picture"); JSONObject parentObj = jsonObj.getJSONObject("parent"); String parent_srl = parentObj.getString("parent_srl"); if( requestGetParentForProfileImageCounter > 0 ) { for(int i = 0; i < newNewsList.size(); i++) { if( newNewsList.get(i).type == NEWSTYPE.PHOTO ) { final PhotoNews photoNews = (PhotoNews) newNewsList.get(i); if( photoNews.photo_member_picture_srl != null && photoNews.photo_member_picture_srl.equals("P"+parent_srl) ) { new Thread(new Runnable() { @Override public void run() { NewsfeedFragment.this.getActivity().runOnUiThread(new Runnable(){ @Override public void run() { photoNews.photo_member_picture_srl = member_picture; requestGetParentForProfileImageCounter--; newsAdapter.notifyDataSetChanged(); } }); } }).start(); } } } } else { switch(SlidingMenuMaker.getProfile().member_type.charAt(0)) { case 'P': this.request_Service_notify_sendNotify(SlidingMenuMaker.getProfile().member_srl, member_srl, "���� ���ƿ� �˸�", SlidingMenuMaker.getProfile().member_name+" �кθ���� ������ �����մϴ�.", "P"); break; case 'T': this.request_Service_notify_sendNotify(SlidingMenuMaker.getProfile().member_srl, member_srl, "���� ���ƿ� �˸�", SlidingMenuMaker.getProfile().member_name+" �������� ������ �����մϴ�.", "P"); break; case 'M': this.request_Service_notify_sendNotify(SlidingMenuMaker.getProfile().member_srl, member_srl, "���� ���ƿ� �˸�", SlidingMenuMaker.getProfile().member_name+" ���弱������ ������ �����մϴ�.", "P"); break; } } } else if( uri.equals("Album/setPhotoLike") ) { String nativeData = jsonObj.getString("data"); jsonObj = new JSONObject(nativeData); String photo_srl = jsonObj.getString("photo_srl"); //String photo_like = jsonObj.getString("photo_like"); for(int i = 0; i < newsList.size(); i++) { if(newsList.get(i).type == NEWSTYPE.PHOTO ) { PhotoNews photo = (PhotoNews)newsList.get(i); if( photo.photo_srl.equals(photo_srl)) { String member_srl = ""; switch(SlidingMenuMaker.getProfile().member_type.charAt(0)) { case 'P': member_srl = SlidingMenuMaker.getProfile().getCurrentChildren().student_member_srl; break; case 'T': case 'M': member_srl = SlidingMenuMaker.getProfile().member_srl; break; } photo.likeMemberList.add(member_srl); refreshList(); this.request_Member_getMember(photo.photo_member_srl); break; } } } } else if( uri.equals("Album/delPhotoLike") ) { String nativeData = jsonObj.getString("data"); jsonObj = new JSONObject(nativeData); String photo_srl = jsonObj.getString("photo_srl"); for(int i = 0; i < newsList.size(); i++) { if(newsList.get(i).type == NEWSTYPE.PHOTO ) { PhotoNews photo = (PhotoNews)newsList.get(i); if( photo.photo_srl.equals(photo_srl)) { String member_srl = ""; switch(SlidingMenuMaker.getProfile().member_type.charAt(0)) { case 'P': member_srl = SlidingMenuMaker.getProfile().getCurrentChildren().student_member_srl; break; case 'T': case 'M': member_srl = SlidingMenuMaker.getProfile().member_srl; break; } photo.likeMemberList.remove(member_srl); refreshList(); break; } } } } else if( uri.equals("Timeline/getTimelineComments") ) { String nativeData = jsonObj.getString("data"); JSONArray dataArray = new JSONArray(nativeData); String timeline_srl = ""; ArrayList<Reply> replyList = new ArrayList<Reply>(); for(int i = 0; i < dataArray.length(); i++ ) { JSONObject dataObj = dataArray.getJSONObject(i); String tcomment_srl = dataObj.getJSONObject("_id").getString("$oid"); String tcomment_member_srl = dataObj.getString("tcomment_member_srl"); String tcomment_timeline_srl = dataObj.getString("tcomment_timeline_srl"); String tcomment_message = dataObj.getString("tcomment_message"); String tcomment_created = dataObj.getString("tcomment_created"); timeline_srl = tcomment_timeline_srl; replyList.add(new Reply(tcomment_srl, tcomment_member_srl, tcomment_timeline_srl, tcomment_message, tcomment_created)); } if( timeline_srl.isEmpty() == false ) { if( Counter > 0 ) { for(int i = 0; i < newNewsList.size(); i++) { if(newNewsList.get(i).timeline_srl.equals(timeline_srl)) { newNewsList.get(i).commentList.addAll(replyList); refreshList(); } } } else { for(int j = 0; j < newsList.size(); j++) { if( newsList.get(j).timeline_srl.equals(timeline_srl) ) { newsList.get(j).commentList.addAll(replyList); refreshList(); break; } } } } } else if(uri.equals("Scrap/getScraps")) { String nativeData = jsonObj.getString("data"); JSONArray dataArray = new JSONArray(nativeData); for(int i = 0; i < dataArray.length(); i++) { String scrap_srl = dataArray.getJSONObject(i).getString("scrap_srl"); final String scrap_member_srl = dataArray.getJSONObject(i).getString("scrap_member_srl"); String scrap_type = dataArray.getJSONObject(i).getString("scrap_type"); String scrap_target_srl = dataArray.getJSONObject(i).getString("scrap_target_srl"); String scrap_created = dataArray.getJSONObject(i).getString("scrap_created"); if( Counter > 0 ) { for(int j = 0; j < newNewsList.size(); j++) { if( newNewsList.get(j).identifier.equals(this.makeIdentifier(scrap_type, scrap_target_srl)) ) { newNewsList.get(j).member_scrap_srl = scrap_srl; refreshList(); break; } } } else { for(int j = 0; j < newsList.size(); j++) { if( newsList.get(j).identifier.equals(this.makeIdentifier(scrap_type, scrap_target_srl)) ) { newsList.get(j).member_scrap_srl = scrap_srl; refreshList(); break; } } } } } else if( uri.equals("Scrap/getScrapCount") ) { String type = jsonObj.getString("type"); String target_srl = jsonObj.getString("target_srl"); final String count = jsonObj.getString("count"); if( Counter > 0 ) { for(int i = 0; i < newNewsList.size(); i++) { if( newNewsList.get(i).identifier.equals(this.makeIdentifier(type, target_srl)) ) { newNewsList.get(i).scrapCount = Integer.parseInt(count); refreshList(); break; } } for(int i = 0; i < newsList.size(); i++) { if( newsList.get(i).identifier.equals(this.makeIdentifier(type, target_srl)) ) { newsList.get(i).scrapCount = Integer.parseInt(count); refreshList(); break; } } } else { for(int i = 0; i < newsList.size(); i++) { if( newsList.get(i).identifier.equals(this.makeIdentifier(type, target_srl)) ) { newsList.get(i).scrapCount = Integer.parseInt(count); refreshList(); break; } } for(int i = 0; i < newNewsList.size(); i++) { if( newNewsList.get(i).identifier.equals(this.makeIdentifier(type, target_srl)) ) { newNewsList.get(i).scrapCount = Integer.parseInt(count); refreshList(); break; } } } } else if( uri.equals("Scrap/setScrap") ) { String nativeData = jsonObj.getString("data"); jsonObj = new JSONObject(nativeData); String scrap_srl = jsonObj.getString("scrap_srl"); String scrap_member_srl = jsonObj.getString("scrap_member_srl"); String scrap_type = jsonObj.getString("scrap_type"); String scrap_target_srl = jsonObj.getString("scrap_target_srl"); String scrap_created = jsonObj.getString("scrap_created"); for(int i = 0; i < newsList.size(); i++) { if( newsList.get(i).identifier.equals(this.makeIdentifier(scrap_type, scrap_target_srl)) ) { newsList.get(i).member_scrap_srl = scrap_srl; newsList.get(i).scrapCount++; refreshList(); break; } } } else if( uri.equals("Scrap/delScrap") ) { String nativeData = jsonObj.getString("data"); jsonObj = new JSONObject(nativeData); String scrap_srl = jsonObj.getString("scrap_srl"); String scrap_member_srl = jsonObj.getString("scrap_member_srl"); String scrap_type = jsonObj.getString("scrap_type"); String scrap_target_srl = jsonObj.getString("scrap_target_srl"); String scrap_created = jsonObj.getString("scrap_created"); for(int i = 0; i < newsList.size(); i++) { if( newsList.get(i).identifier.equals(this.makeIdentifier(scrap_type, scrap_target_srl)) ) { newsList.get(i).member_scrap_srl = ""; newsList.get(i).scrapCount--; refreshList(); break; } } } else if( uri.equals("Mentor/getComments") ) { String nativeData = jsonObj.getString("data"); JSONArray dataArray = new JSONArray(nativeData); ArrayList<Reply> replyList = new ArrayList<Reply>(); String mentoring_srl = ""; for(int i = 0; i < dataArray.length(); i++ ) { JSONObject dataObj = dataArray.getJSONObject(i); String comment_srl = dataObj.getString("comment_srl"); String comment_mentoring_srl = dataObj.getString("comment_mentoring_srl"); String comment_member_srl = dataObj.getString("comment_member_srl"); String comment_text = dataObj.getString("comment_text"); String comment_created = dataObj.getString("comment_created"); String comment_updated = dataObj.getString("comment_updated"); replyList.add(new Reply(comment_srl, comment_member_srl, comment_mentoring_srl, comment_text, comment_created)); mentoring_srl = comment_mentoring_srl; } if( Counter > 0 ) { for(int i = 0; i < newNewsList.size(); i++) { if( newNewsList.get(i).identifier.equals(this.makeIdentifier("M", mentoring_srl)) ) { newNewsList.get(i).commentList.addAll(replyList); refreshList(); break; } } for(int i = 0; i < newsList.size(); i++) { if( newsList.get(i).identifier.equals(this.makeIdentifier("M", mentoring_srl)) ) { newsList.get(i).commentList.addAll(replyList); refreshList(); break; } } } else { for(int i = 0; i < newsList.size(); i++) { if( newsList.get(i).identifier.equals(this.makeIdentifier("M", mentoring_srl)) ) { newsList.get(i).commentList.addAll(replyList); refreshList(); break; } } for(int i = 0; i < newNewsList.size(); i++) { if( newNewsList.get(i).identifier.equals(this.makeIdentifier("M", mentoring_srl)) ) { newNewsList.get(i).commentList.addAll(replyList); refreshList(); break; } } } } else if(uri.equals("Mentor/setMentoringArticleLikes")) { String nativeData = jsonObj.getString("data"); jsonObj = new JSONObject(nativeData); String mentoring_srl = jsonObj.getString("mentoring_srl"); for(int i = 0; i < newsList.size(); i++) { if( newsList.get(i).type == NEWSTYPE.MENTORY ) { MentoryNews mentoryNews = (MentoryNews)newsList.get(i); if( mentoryNews.getMentoring_srl().equals(mentoring_srl)) { String member_srl = ""; switch(SlidingMenuMaker.getProfile().member_type.charAt(0)) { case 'P': member_srl = SlidingMenuMaker.getProfile().getCurrentChildren().student_member_srl; break; case 'T': case 'M': member_srl = SlidingMenuMaker.getProfile().member_srl; break; } newsList.get(i).likeMemberList.add(member_srl); refreshList(); break; } } } } else if(uri.equals("Mentor/delMentoringArticleLikes") ) { String nativeData = jsonObj.getString("data"); jsonObj = new JSONObject(nativeData); String mentoring_srl = jsonObj.getString("mentoring_srl"); for(int i = 0; i < newsList.size(); i++) { if( newsList.get(i).type == NEWSTYPE.MENTORY ) { MentoryNews mentoryNews = (MentoryNews)newsList.get(i); if( mentoryNews.getMentoring_srl().equals(mentoring_srl)) { String member_srl = ""; switch(SlidingMenuMaker.getProfile().member_type.charAt(0)) { case 'P': member_srl = SlidingMenuMaker.getProfile().getCurrentChildren().student_member_srl; break; case 'T': case 'M': member_srl = SlidingMenuMaker.getProfile().member_srl; break; } newsList.get(i).likeMemberList.remove(member_srl); refreshList(); break; } } } } } catch(Exception e) { e.printStackTrace(); } } }