package com.ihateflyingbugs.kidsm.newsfeed;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Set;
import org.json.JSONArray;
import org.json.JSONObject;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.view.animation.AnimationUtils;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.ViewFlipper;
import com.ihateflyingbugs.kidsm.NetworkActivity;
import com.ihateflyingbugs.kidsm.R;
import com.ihateflyingbugs.kidsm.menu.SlidingMenuMaker;
import com.ihateflyingbugs.kidsm.newsfeed.News.NEWSTYPE;
import com.ihateflyingbugs.kidsm.schedule.ScheduleFragment;
import com.localytics.android.LocalyticsSession;
public class ReplyActivity extends NetworkActivity{
String timeline_srl;
String timeline_member_srl;
String mentoring_srl;
String mentoring_member_srl;
News news;
ViewFlipper viewFlipper;
ArrayList<Reply> replyList;
ReplyAdapter replyAdapter;
ListView replyListView;
int replyCounter;
boolean isRequestCommentAlarm;
private LocalyticsSession localyticsSession;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_newsfeedreply);
getActionBar().setHomeButtonEnabled(true);
getActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.general_actionbar_bg));
getActionBar().setIcon(R.drawable.general_actionbar_back_btnset);
replyList = new ArrayList<Reply>();
replyAdapter = new ReplyAdapter(this, replyList);
replyListView = (ListView)findViewById(R.id.replylayout);
replyListView.setAdapter(replyAdapter);
replyListView.setDivider(null);
replyListView.setDividerHeight(0);
isRequestCommentAlarm = false;
switch(getIntent().getStringExtra("type").charAt(0)) {
case 'T':
timeline_srl = getIntent().getStringExtra("timeline_srl");
timeline_member_srl = getIntent().getStringExtra("timeline_member_srl");
this.request_Timeline_getTimelineComments(timeline_srl, 1, 100000);
break;
case 'M':
mentoring_srl = getIntent().getStringExtra("mentoring_srl");
mentoring_member_srl = getIntent().getStringExtra("mentoring_member_srl");
this.request_Mentor_getComments(mentoring_srl, 1, 100000);
break;
}
replyCounter = 0;
viewFlipper = (ViewFlipper)findViewById(R.id.replyflipper);
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();
}
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case android.R.id.home:
InputMethodManager imm = (InputMethodManager) getSystemService( Context.INPUT_METHOD_SERVICE );
imm.hideSoftInputFromWindow( findViewById(R.id.replytext).getWindowToken(), 0 );
finish();
return true;
}
return false;
}
public void mOnClick(View v) {
finish();
}
public void OnPostClick(View v) {
EditText txt = (EditText)findViewById(R.id.replytext);
switch(getIntent().getStringExtra("type").charAt(0)) {
case 'T':
this.request_Timeline_setTimelineComment(timeline_srl, SlidingMenuMaker.getProfile().member_srl, txt.getText().toString());
break;
case 'M':
this.request_Mentor_setComment(mentoring_srl, SlidingMenuMaker.getProfile().member_srl, txt.getText().toString());
break;
}
}
public void OnFlip(View v) {
// switch(v.getId()) {
// case R.id.newsreply_likeinfo:
// viewFlipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.viewin_left));
// viewFlipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.viewout_left));
// viewFlipper.showNext();
// break;
// case R.id.newsreply_likelisttitle:
// viewFlipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.viewin_right));
// viewFlipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.viewout_right));
// viewFlipper.showPrevious();
// break;
// }
}
private void notifyDataSetChanged() {
new Thread(new Runnable() {
@Override
public void run() {
ReplyActivity.this.runOnUiThread(new Runnable(){
@Override
public void run() {
replyAdapter.notifyDataSetChanged();
replyListView.setSelection(replyList.size()-1);
}
});
}
}).start();
}
@Override
public void response(String uri, String response) {
try {
JSONObject jsonObj = new JSONObject(response);
String result = jsonObj.getString("result");
if( result.equals("OK") == false )
return;
if( uri.equals("Timeline/getTimelineComments") ) {
String nativeData = jsonObj.getString("data");
JSONArray dataArray = new JSONArray(nativeData);
String timeline_srl = "";
replyList.clear();
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( replyList.size() != 0 ) {
replyCounter = replyList.size();
for(int i = 0; i < replyList.size(); i++) {
this.request_Member_getMember(replyList.get(i).tcomment_member_srl);
}
}
else {
notifyDataSetChanged();
}
}
else if( uri.equals("Timeline/setTimelineComment") ) {
replyCounter = 0;
isRequestCommentAlarm = true;
this.request_Timeline_getTimelineComments(timeline_srl, 1, 100000);
this.request_Member_getMember(timeline_member_srl);
new Thread(new Runnable() {
@Override
public void run() {
ReplyActivity.this.runOnUiThread(new Runnable(){
@Override
public void run() {
EditText txt = (EditText)findViewById(R.id.replytext);
txt.setText("");
}
});
}
}).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_picture = jsonObj.getString("member_picture");
if( isRequestCommentAlarm == false ) {
for(int i = 0; i < replyList.size(); i++) {
if(replyList.get(i).tcomment_member_srl.equals(member_srl)) {
switch(member_type.charAt(0)) {
case 'T':
replyList.get(i).setCommenterName(member_name+" ������");
break;
case 'M':
replyList.get(i).setCommenterName(member_name+" ���弱����");
break;
case 'P':
replyList.get(i).setCommenterName(member_name);
break;
}
replyList.get(i).setTcomment_member_picture_uri(member_picture);
}
}
if( --replyCounter == 0 ) {
notifyDataSetChanged();
}
}
else {
isRequestCommentAlarm = false;
switch(member_type.charAt(0)) {
case 'P':
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");
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("Mentor/getComments") ) {
String nativeData = jsonObj.getString("data");
JSONArray dataArray = new JSONArray(nativeData);
replyList.clear();
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));
}
if( replyList.size() != 0 ) {
replyCounter = replyList.size();
for(int i = 0; i < replyList.size(); i++) {
this.request_Member_getMember(replyList.get(i).tcomment_member_srl);
}
}
else {
notifyDataSetChanged();
}
}
else if( uri.equals("Mentor/setComment") ) {
replyCounter = 0;
//isRequestCommentAlarm = true;
this.request_Mentor_getComments(mentoring_srl, 1, 100000);
//this.request_Member_getMember(mentoring_member_srl);
new Thread(new Runnable() {
@Override
public void run() {
ReplyActivity.this.runOnUiThread(new Runnable(){
@Override
public void run() {
EditText txt = (EditText)findViewById(R.id.replytext);
txt.setText("");
}
});
}
}).start();
}
}
catch(Exception e) {
e.printStackTrace();
}
}
}