package nerdydog.domoHomeProd; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import nerdydog.domoHomeProd.db.ConfDatabase; import nerdydog.domoHomeProd.db.ToDoDBAdapter; import nerdydog.domoHomeProd.object.Action; import nerdydog.domoHomeProd.object.Actuator; import android.app.Activity; import android.app.DatePickerDialog; import android.app.TimePickerDialog; import android.app.DatePickerDialog.OnDateSetListener; import android.app.TimePickerDialog.OnTimeSetListener; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.DatePicker; import android.widget.EditText; import android.widget.TextView; import android.widget.TimePicker; public class AddTrigger extends Activity{ private final Context context= this; ToDoDBAdapter toDoDBAdapter; private final String LOG = "AddTrigger"; int actuator_id = -1; ArrayList<Actuator> actuators; CheckBox mon, tue, wed, thu, fri, sat, sun; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.addtrigger); Bundle extras = getIntent().getExtras(); if(extras != null){ actuator_id = extras.getInt("actuator_id"); Log.i(LOG, "actuator_id " + actuator_id ); } toDoDBAdapter = new ToDoDBAdapter(this); if (actuator_id != -1){ toDoDBAdapter.open(); actuators = toDoDBAdapter.getAllActuators( ConfDatabase.ACTUATOR_ID + "=" + "?", new String[]{String.valueOf(actuator_id)}, null); toDoDBAdapter.close(); } /* initialize checkbox days */ mon = (CheckBox)findViewById(R.id.mon); tue = (CheckBox)findViewById(R.id.tue); wed = (CheckBox)findViewById(R.id.wed); thu = (CheckBox)findViewById(R.id.thu); fri = (CheckBox)findViewById(R.id.fri); sat = (CheckBox)findViewById(R.id.sat); sun = (CheckBox)findViewById(R.id.sun); Button btnDate=(Button)findViewById(R.id.btndate); Button btnTime=(Button)findViewById(R.id.btntime); final TextView txtDate=(TextView)findViewById(R.id.txtdate); final TextView txtTime=(TextView)findViewById(R.id.txttime); Button btnDateEnd=(Button)findViewById(R.id.btndateEnd); Button btnTimeEnd=(Button)findViewById(R.id.btntimeEnd); final TextView txtDateEnd=(TextView)findViewById(R.id.txtdateEnd); final TextView txtTimeEnd=(TextView)findViewById(R.id.txttimeEnd); Button btnAddTrigger = (Button)findViewById(R.id.btnInsertTrigger); /* INITIALIZE */ Calendar cal=Calendar.getInstance(); txtDate.setText(cal.get(Calendar.DAY_OF_MONTH)-1+"/"+cal.get(Calendar.MONTH)+"/"+cal.get(Calendar.YEAR)); txtTime.setText(cal.get(Calendar.HOUR_OF_DAY)+":"+cal.get(Calendar.MINUTE)); txtDateEnd.setText(cal.get(Calendar.DAY_OF_MONTH)+"/"+cal.get(Calendar.MONTH)+"/"+cal.get(Calendar.YEAR)); txtTimeEnd.setText(cal.get(Calendar.HOUR_OF_DAY)+":"+cal.get(Calendar.MINUTE)); /* QUERY ALARMS */ btnAddTrigger.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Log.i("-->", "End " + txtDate.getText() + " " + txtTime.getText()); Log.i("-->", "Start " + txtDateEnd.getText() + " " + txtTimeEnd.getText()); GregorianCalendar dtStart = new GregorianCalendar(Integer.valueOf(txtDate.getText().toString().split("/")[2]), Integer.valueOf(txtDate.getText().toString().split("/")[1]), Integer.valueOf(txtDate.getText().toString().split("/")[0]), Integer.valueOf(txtTime.getText().toString().split(":")[0]), Integer.valueOf(txtTime.getText().toString().split(":")[1])); GregorianCalendar dtEnd= new GregorianCalendar(Integer.valueOf(txtDateEnd.getText().toString().split("/")[2]), Integer.valueOf(txtDateEnd.getText().toString().split("/")[1]), Integer.valueOf(txtDateEnd.getText().toString().split("/")[0]), Integer.valueOf(txtTimeEnd.getText().toString().split(":")[0]), Integer.valueOf(txtTimeEnd.getText().toString().split(":")[1])); EditText etTriggerName = (EditText)findViewById(R.id.edittexttriggername); String triggerName = etTriggerName.getText().toString(); if(triggerName != null){ /*get days*/ String s_mon = "0", s_tue = "0", s_wed = "0", s_thu = "0", s_fri = "0", s_sat = "0", s_sun = "0", s_checkbox = ""; if(mon.isChecked()) s_mon = "1"; if(tue.isChecked()) s_tue = "1"; if(wed.isChecked()) s_wed = "1"; if(thu.isChecked()) s_thu = "1"; if(fri.isChecked()) s_fri = "1"; if(sat.isChecked()) s_sat = "1"; if(sun.isChecked()) s_sun = "1"; s_checkbox = s_mon + s_tue + s_wed + s_thu + s_fri + s_sat + s_sun; Log.i(LOG, "...inserting action " + triggerName); Actuator a; a = actuators.get(0); Date dateNow = new Date(); Action action = new Action(-1, a.getId(), -1, dtStart.getTime(), dtEnd.getTime(), dateNow, triggerName, 0, -1, 1, 0, s_checkbox); toDoDBAdapter.open(); toDoDBAdapter.insertAction(action); toDoDBAdapter.close(); // back at home Intent iHome = new Intent(context, DomoHome.class); context.startActivity(iHome); } } }); /* DATE START */ final OnDateSetListener odsl=new OnDateSetListener() { public void onDateSet(DatePicker arg0, int year, int month, int dayOfMonth) { // TODO Auto-generated method stub txtDate.setText(dayOfMonth+"/"+month+"/"+year); } }; btnDate.setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) { // TODO Auto-generated method stub Calendar cal=Calendar.getInstance(); DatePickerDialog datePickDiag=new DatePickerDialog(context,odsl,cal.get(Calendar.YEAR),cal.get(Calendar.MONTH),cal.get(Calendar.DAY_OF_MONTH)); datePickDiag.show(); } }); /* DATE END */ final OnDateSetListener odslEnd=new OnDateSetListener() { public void onDateSet(DatePicker arg0, int year, int month, int dayOfMonth) { // TODO Auto-generated method stub txtDateEnd.setText(dayOfMonth+"/"+month+"/"+year); } }; btnDateEnd.setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) { Calendar cal=Calendar.getInstance(); DatePickerDialog datePickDiag=new DatePickerDialog(context,odslEnd,cal.get(Calendar.YEAR),cal.get(Calendar.MONTH),cal.get(Calendar.DAY_OF_MONTH)); datePickDiag.show(); } }); /* START TIME */ final OnTimeSetListener otsl=new OnTimeSetListener() { public void onTimeSet(TimePicker arg0, int hourOfDay, int minute) { txtTime.setText(hourOfDay+":"+minute); } }; btnTime.setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) { Calendar cal=Calendar.getInstance(); TimePickerDialog timePickDiag=new TimePickerDialog(context,otsl,cal.get(Calendar.HOUR_OF_DAY),cal.get(Calendar.MINUTE),true); timePickDiag.show(); } }); /* END TIME */ final OnTimeSetListener otslEnd=new OnTimeSetListener() { public void onTimeSet(TimePicker arg0, int hourOfDay, int minute) { txtTimeEnd.setText(hourOfDay+":"+minute); } }; btnTimeEnd.setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) { Calendar cal=Calendar.getInstance(); TimePickerDialog timePickDiag=new TimePickerDialog(context,otslEnd,cal.get(Calendar.HOUR_OF_DAY),cal.get(Calendar.MINUTE),true); timePickDiag.show(); } }); } }