package nerdydog.domoHomeProd;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.ListIterator;
import java.util.Map;
import java.util.Set;
import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import nerdydog.domoHomeProd.db.ConfDatabase;
import nerdydog.domoHomeProd.db.ToDoDBAdapter;
import nerdydog.domoHomeProd.json.ParseJSON;
import nerdydog.domoHomeProd.object.Action;
import nerdydog.domoHomeProd.object.Actuator;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.util.Log;
import android.view.ContextMenu;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;
public class DomoHome extends Activity{
ToDoDBAdapter toDoDBAdapter;
ListView listViewType;
TextView infoTextView;
private TypeAdapter m_adapterType;
private final String TAG = "DomoHome";
// menu
public boolean onCreateOptionsMenu(Menu menu){return Utility.showMenu(menu, getMenuInflater());}
public boolean onOptionsItemSelected (MenuItem item){return Utility.choiceMenu( item, DomoHome.this);}
// end menu
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Utility.getIpFromPreferencesData(this);
listViewType = (ListView)findViewById(R.id.listViewType);
infoTextView = (TextView)findViewById(R.id.domohometextview);
toDoDBAdapter = new ToDoDBAdapter(this);
toDoDBAdapter.open();
/*toDoDBAdapter.dropTableAction();
toDoDBAdapter.dropTableActuator();
toDoDBAdapter.dropTableCounter();*/
// get all the actions
ArrayList<Action> actions = toDoDBAdapter.getAllAction(
ConfDatabase.ACTION_PARENT_ID + "=" + "?", new String[]{"-1"}, null);
ArrayList<Actuator> actuatorspark = toDoDBAdapter.getAllActuators(null, null, ConfDatabase.ACTUATOR_TYPE);
if(actions.size()>0){
Date d = new Date();
Actuator afake = new Actuator(-1, "", "", ConfDatabase.TYPE_ACTION, "Actions", -1, d);
actuatorspark.add(afake);
}
if(actuatorspark.size()>0)
{
infoTextView.setText("Pick up an item");
this.m_adapterType = new TypeAdapter(this, R.layout.rowtype, actuatorspark);
listViewType.setAdapter(m_adapterType);
listViewType.setOnItemClickListener(listClicked);
// check data into the db
ArrayList actuators = toDoDBAdapter.getAllActuators(null,null,null);
Log.i(TAG, Integer.toString(actuators.size()));
// get all the meter's actuator
/*ConfDatabase.aryActuatorsForMeter = toDoDBAdapter.getAllActuators(
ConfDatabase.ACTUATOR_TYPE + "=" + "?" + " AND " + ConfDatabase.ACTUATOR_TYPE + "=" + , new String[]{ConfDatabase.TYPE_TEMPERATURE}, null);*/
ConfDatabase.aryActuatorsForMeter = toDoDBAdapter.getAllActuators(
ConfDatabase.ACTUATOR_TYPE + " IN ('" + new String(ConfDatabase.TYPE_TEMPERATURE) + "','" + new String(ConfDatabase.TYPE_WATTMETER) + "')" ,null, null);
toDoDBAdapter.close();
// start data service
Intent service=new Intent(getApplicationContext(), DataService.class);
startService(service);
}else{
infoTextView.setText("Attention! You should sync DomoticHome with your Arduino.");
}
}
private View.OnLongClickListener listLongClicked = new View.OnLongClickListener() {
public boolean onLongClick(View arg0) {
Log.i(TAG, "long click!");
return false;
}
};
private OnItemClickListener listClicked = new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View v, int position, long id) {
Log.i(TAG, " clicked");
Actuator actuator = (Actuator)v.getTag();
if(actuator != null && actuator.getType() != ConfDatabase.TYPE_ACTION){
Intent i = new Intent(DomoHome.this, ActuatorFunction.class);
i.putExtra("idList", position);
startActivity(i);
}else if (actuator.getType() == ConfDatabase.TYPE_ACTION){
Intent i = new Intent(DomoHome.this, ActionShow.class);
startActivity(i);
Log.i(TAG, "We get an action");
}else{
Log.i(TAG, "Something wrong");
}
}
};
}