package com.ihateflyingbugs.kidsm.schedule;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.Calendar;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.DatePicker;
import android.widget.EditText;
import com.ihateflyingbugs.kidsm.NetworkActivity;
import com.ihateflyingbugs.kidsm.R;
import com.ihateflyingbugs.kidsm.friend.FriendFragment;
import com.ihateflyingbugs.kidsm.login.RegisterOrgItem;
import com.ihateflyingbugs.kidsm.menu.Profile;
import com.ihateflyingbugs.kidsm.menu.SlidingMenuMaker;
import com.ihateflyingbugs.kidsm.uploadphoto.InputTag;
import com.localytics.android.LocalyticsSession;
public class AddScheduleActivity extends NetworkActivity {
int year, month, day;
ArrayList<String> tagList;
int getClassStudentCounter;
int setTimelineMessageCounter;
String cal_srl;
int alarmingCounter;
boolean isSetTimelineMessageFinished;
private LocalyticsSession localyticsSession;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_addschedule);
getActionBar().setHomeButtonEnabled(true);
getActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.general_actionbar_function_bg));
getActionBar().setIcon(R.drawable.general_actionbar_back_btnset);
Calendar calendar = Calendar.getInstance();
year = calendar.get(Calendar.YEAR);
month = calendar.get(Calendar.MONTH);
day = calendar.get(Calendar.DAY_OF_MONTH);
((EditText)findViewById(R.id.addschedule_date)).setText(""+year+"�� "+(month+1)+"�� "+day+"��");
alarmingCounter = 0;
isSetTimelineMessageFinished = false;
tagList = new ArrayList<String>();
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();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.finish, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case android.R.id.home:
if(((EditText)findViewById(R.id.addschedule_message)).isFocused()) {
InputMethodManager imm = (InputMethodManager) getSystemService( Context.INPUT_METHOD_SERVICE );
imm.hideSoftInputFromWindow( findViewById(R.id.addschedule_message).getWindowToken(), 0 );
}
finish();
case R.id.finish:
Profile profile = SlidingMenuMaker.getProfile();
String message = ((EditText)findViewById(R.id.addschedule_message)).getText().toString();
this.request_Calender_setCalender(message, profile.getCurrentClass().getClass_org_srl(), profile.member_srl, profile.getCurrentClass().getClass_srl(), ""+year, ""+(month+1), ""+day, "0:00", "0", "N");
return true;
}
return false;
}
public void OnSelectDate(View v) {
final EditText date = (EditText)v;
new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int iYear, int iMonth, int iDay) {
year = iYear;
month = iMonth;
day = iDay;
date.setText(""+year+"�� "+(month+1)+"�� "+day+"��");
}
}, year, month, day)
.show();
}
private void makeTagList() {
getClassStudentCounter = 0;
setTimelineMessageCounter = 0;
Profile profile = SlidingMenuMaker.getProfile();
tagList.clear();
//tagList.add(profile.member_srl);
switch(profile.member_type.charAt(0)) {
case 'T':
this.request_Organization_getOrganization(profile.member_org_srl);
break;
case 'M':
for(int i = 0; i < profile.classList.size()-1; i++)
for(int j = 0; j < profile.classList.get(i).getTeacherList().size(); j++)
tagList.add(profile.classList.get(i).getTeacherList().get(j).teacher_member_srl);
for(int i = 0; i < profile.classList.size()-1; i++)
this.request_Class_getClassStudent(profile.member_org_srl, profile.classList.get(i).getClass_srl());
break;
}
}
public void isFinished() {
if( alarmingCounter == 0 && isSetTimelineMessageFinished ) {
setResult(Activity.RESULT_OK, new Intent());
finish();
}
}
@Override
public void response(String uri, String response) {
try {
if( response.isEmpty() )
return;
JSONObject jsonObj = new JSONObject(response);
String result = jsonObj.getString("result");
if( result.equals("OK") ) {
if(uri.equals("Calender/setCalender")) {
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");
makeTagList();
this.cal_srl = cal_srl;
}
else if(uri.equals("Class/getClassStudent")) {
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");
tagList.add(member_srl);
}
String targetList = "";
Profile profile = SlidingMenuMaker.getProfile();
switch(profile.member_type.charAt(0)) {
case 'T':
alarmingCounter = tagList.size();
for(int i = 0; i < tagList.size(); i++) {
targetList += tagList.get(i) + ",";
this.request_Member_getMember(tagList.get(i));
}
this.request_Timeline_setTimelineMessage(SlidingMenuMaker.getProfile().member_srl, "S", cal_srl, targetList);
// for(int i = 0 ; i < tagList.size(); i++)
// this.request_Timeline_setTimelineMessage(SlidingMenuMaker.getProfile().member_srl, "S", cal_srl, tagList.get(i));
break;
case 'M':
if( ++getClassStudentCounter == profile.classList.size()-1 ) {
alarmingCounter = tagList.size();
for(int i = 0 ; i < tagList.size(); i++) {
targetList += tagList.get(i) + ",";
this.request_Member_getMember(tagList.get(i));
}
// ������ �˸������
// for( int i = 0; i < SlidingMenuMaker.getProfile().getCurrentClass().getTeacherList().size(); i++)
// this.request_Service_notify_sendNotify(SlidingMenuMaker.getProfile().member_srl, SlidingMenuMaker.getProfile().getCurrentClass().getTeacherList().get(i).teacher_member_srl, "������ ��� �ȳ�", SlidingMenuMaker.getProfile().member_name+"���弱������ �� �������� ����߽��ϴ�.", "N");
this.request_Timeline_setTimelineMessage(SlidingMenuMaker.getProfile().member_srl, "S", cal_srl, targetList);
// for(int i = 0 ; i < tagList.size(); i++)
// this.request_Timeline_setTimelineMessage(SlidingMenuMaker.getProfile().member_srl, "S", cal_srl, tagList.get(i));
}
break;
}
}
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");
switch(member_type.charAt(0)) {
case 'S':
JSONObject studentObj = jsonObj.getJSONObject("student");
String student_parent_srl = studentObj.getString("student_parent_srl");
if( student_parent_srl.equals("0") ) {
new Thread(new Runnable() {
@Override
public void run() {
runOnUiThread(new Runnable(){
@Override
public void run() {
alarmingCounter--;
isFinished();
}
});
}
}).start();
}
else
this.request_Member_getParent(student_parent_srl);
break;
case 'T':
case 'M':
switch(SlidingMenuMaker.getProfile().member_type.charAt(0)) {
case 'T':
this.request_Service_notify_sendNotify(SlidingMenuMaker.getProfile().member_srl, member_srl, "������ ��� �ȳ�", SlidingMenuMaker.getProfile().member_name+"�������� �� �������� ����߽��ϴ�.", "N");
break;
case 'M':
this.request_Service_notify_sendNotify(SlidingMenuMaker.getProfile().member_srl, member_srl, "������ ��� �ȳ�", SlidingMenuMaker.getProfile().member_name+"���弱������ �� �������� ����߽��ϴ�.", "N");
break;
}
new Thread(new Runnable() {
@Override
public void run() {
runOnUiThread(new Runnable(){
@Override
public void run() {
alarmingCounter--;
isFinished();
}
});
}
}).start();
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 'T':
this.request_Service_notify_sendNotify(SlidingMenuMaker.getProfile().member_srl, member_srl, "������ ��� �ȳ�", SlidingMenuMaker.getProfile().member_name+"�������� �� �������� ����߽��ϴ�.", "N");
break;
case 'M':
this.request_Service_notify_sendNotify(SlidingMenuMaker.getProfile().member_srl, member_srl, "������ ��� �ȳ�", SlidingMenuMaker.getProfile().member_name+"���弱������ �� �������� ����߽��ϴ�.", "N");
break;
}
new Thread(new Runnable() {
@Override
public void run() {
runOnUiThread(new Runnable(){
@Override
public void run() {
alarmingCounter--;
isFinished();
}
});
}
}).start();
}
else if(uri.equals("Timeline/setTimelineMessage")) {
new Thread(new Runnable() {
@Override
public void run() {
runOnUiThread(new Runnable(){
@Override
public void run() {
isSetTimelineMessageFinished = true;
isFinished();
}
});
}
}).start();
}
else if(uri.equals("Organization/getOrganization")) {
String nativeData = jsonObj.getString("data");
jsonObj = new JSONObject(nativeData);
String org_srl = jsonObj.getString("org_srl");
String org_name = jsonObj.getString("org_name");
String org_manager_member_srl = jsonObj.getString("org_manager_member_srl");
String org_phone = jsonObj.getString("org_phone");
String org_address = jsonObj.getString("org_address");
String org_teacher_key = jsonObj.getString("org_teacher_key");
String org_created = jsonObj.getString("org_created");
String org_updated = jsonObj.getString("org_updated");
tagList.add(org_manager_member_srl);
this.request_Class_getClassStudent(SlidingMenuMaker.getProfile().member_org_srl, SlidingMenuMaker.getProfile().getCurrentClass().getClass_srl());
}
}
else {
}
}
catch(JSONException e) {
StringWriter errors = new StringWriter();
e.printStackTrace(new PrintWriter(errors));
String s = errors.toString();
System.out.println(s);
}
}
}