package com.gathr.gathr;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.content.Intent;
import android.view.View;
import android.view.WindowManager;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.ToggleButton;
import com.google.android.gms.maps.model.LatLng;
public class CreateEvent extends ActionBarActivity {
MyGlobals global = new MyGlobals(this);
QueryDB DBconn = new QueryDB(this, AuthUser.fb_id, AuthUser.user_id);
String date = "CURDATE()"; //Default date if they do not select anything
@Override
protected void onCreate(Bundle savedInstanceState) {
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create_event);
new SidebarGenerator((DrawerLayout)findViewById(R.id.drawer_layout), (ListView)findViewById(R.id.left_drawer),android.R.layout.simple_list_item_1,this, global.titles, global.links );
}
public void viewGathring(View view){
//Error Checking
if(getElementText(R.id.gathring_name).length() < 5){
Toast.makeText(this, "Your Gathring Name must have at least 5 characters!", Toast.LENGTH_LONG).show();
return;
}
if(getElementText(R.id.gathring_description).length() < 10) {
Toast.makeText(this, "Your Gathring Description must have at least 10 characters!", Toast.LENGTH_LONG).show();
return;
}
//Get Address and Validate it (Get Lat/Lon)
GCoder getLatLong = new GCoder(this);
LatLng x = getLatLong.addressToCoor(getElementText(R.id.gathring_address) + " " + getElementText(R.id.gathring_city) + "," + getElementText(R.id.gathring_state));
if(x.latitude == 0 && x.longitude == 0){
Toast.makeText(this, "You must provide a valid address!", Toast.LENGTH_LONG).show();
return;
}
if(Integer.parseInt(getElementText(R.id.gathring_limit)) < 2){
Toast.makeText(this, "You must provide a Gathring Capacity greater than 3!", Toast.LENGTH_LONG).show();
return;
}
//Escape everything and create the event
String name = DBconn.escapeString(getElementText(R.id.gathring_name));
String desc = DBconn.escapeString(getElementText(R.id.gathring_description));
String address = DBconn.escapeString(getElementText(R.id.gathring_address));
String city = DBconn.escapeString(getElementText(R.id.gathring_city));
String state = DBconn.escapeString(getElementText(R.id.gathring_state));
String time = DBconn.escapeString(global.mTime(((TextView) findViewById(R.id.gathring_time)).getText().toString()));
String capacity = DBconn.escapeString(getElementText(R.id.gathring_limit));
//Run the Query to add the event
String results = "";
try {
DBconn.executeQuery("INSERT INTO EVENTS " +
"(`Name`, `Desc`, `Address`, `City`, `State`, `Time`, `Date`, `Capacity`, `Population`, `Status`, `Organizer`, `Latitude`, `Longitude`)" +
" VALUES " +
"('" + name + "', '" + desc + "', '" + address + "', '" + city + "','" + state + "', '" + time + "', " + date + ",'" + capacity + "', '1', 'OPEN', " + AuthUser.user_id + ", '" + x.latitude + "', '" + x.longitude + "');");
results = DBconn.getResults();
global.tip(results);
}catch(GathrException e){
global.errorHandler(e);
}
//Go to the event page that we just created
Intent i = new Intent(this, ViewGathring.class);
i.putExtra("eventId", results);
startActivity(i);
finish();
}
public void showTimePickerDialog(View v) {
TimePickerFragment newFragment = new TimePickerFragment((TextView)findViewById(R.id.gathring_time));
newFragment.show(getSupportFragmentManager(), "timePicker");
}
public String getElementText(int viewId){
return ((EditText)findViewById(viewId)).getText().toString().trim();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_create_event, menu);
return true;
}
public void onToggleClicked(View view) {
if (((ToggleButton) view).isChecked()) {
date = "CURDATE()";
} else {
date = "CURDATE() + INTERVAL 1 DAY";
}
}
}