package com.theostriches.amaretto.android.fragment;
import java.util.Calendar;
import java.util.Date;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.TimePicker;
import android.widget.Toast;
import com.actionbarsherlock.app.SherlockFragment;
import com.theostriches.amaretto.android.MainActivity;
import com.theostriches.amaretto.android.R;
import com.theostriches.amaretto.android.model.Event;
import com.theostriches.amaretto.android.server.NewEvent;
import com.theostriches.amaretto.android.server.PostLogIn;
import com.theostriches.amaretto.android.util.LocalDataManager;
public class NewEventFragment extends SherlockFragment {
private MainActivity mMain;
private Event event;
private EditText et;
private EditText et2;
private LocalDataManager mLocalData;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
mMain = (MainActivity) activity;
event = new Event();
mLocalData = new LocalDataManager(mMain);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_newevent, container, false);
Button b = (Button) v.findViewById(R.id.buttonDate);
et = (EditText) v.findViewById(R.id.editTextTitle);
et2 = (EditText) v.findViewById(R.id.editTextDesc);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
// Get the layout inflater
LayoutInflater inflater = getActivity().getLayoutInflater();
// Inflate and set the layout for the dialog
// Pass null as the parent view because its going in the dialog
// layout
final View dialogView = inflater.inflate(R.layout.dialog_date, null);
builder.setView(dialogView)
// Add action buttons
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
DatePicker d = (DatePicker) dialogView.findViewById(R.id.datePicker1);
int month = d.getMonth();
int dayOfMonth = d.getDayOfMonth();
int year = d.getYear();
int hour = 0;
int minute = 0;
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month);
cal.set(Calendar.DAY_OF_MONTH, dayOfMonth);
cal.set(Calendar.HOUR_OF_DAY, hour);
cal.set(Calendar.MINUTE, minute);
Date dateRepresentation = cal.getTime();
event.setTimestampLimit(dateRepresentation.getTime());
}
});
builder.create().show();
}
});
Button bs = (Button) v.findViewById(R.id.buttonSubmit);
bs.setOnClickListener( new OnClickListener() {
@Override
public void onClick(View v) {
event.setTitle(et.getText().toString());
event.setDescription(et2.getText().toString());
event.setLatitude(mMain.getLocation().getLatitude());
event.setLongitude(mMain.getLocation().getLongitude());
if (mLocalData.getLogin() == null) {
mMain.showLogin();
} else {
event.setGiver(mLocalData.getLogin());
sendEvent(event);
}
}
});
return v;
}
private void sendEvent(Event event) {
Handler updateHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
try {
switch (msg.what) {
case NewEvent.CODE_OK:
Toast.makeText(mMain, "Evento enviado correctamente",
Toast.LENGTH_LONG).show();
et.setText("");
et2.setText("");
mMain.updateEvents();
break;
case NewEvent.CODE_ERROR:
default:
Toast.makeText(mMain, "Fallo al enviar evento",
Toast.LENGTH_LONG).show();
break;
}
} catch (Exception e) {
// Fragment closed, do nothing
}
}
};
NewEvent up = new NewEvent(updateHandler, event);
up.start();
}
}