package com.mobeegal.android.activity; /* <!-- $Id:: Preferences.java 14 2008-08-19 06:36:45Z muthu.ramadoss $: Id of last commit $Rev:: 14 $: Revision of last commit $Author:: muthu.ramadoss $: Author of last commit $Date:: 2008-08-19 12:06:45 +0530 (Tue, 19 Aug 2008) $: Date of last commit $HeadURL:: http://svn.assembla.com/svn/mobeegal/trunk/client/android/src/com/mo#$: Head URL of last commit --> */ import android.app.Activity; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.location.Location; import android.location.LocationManager; import android.os.Bundle; import android.os.SystemClock; import android.util.Log; 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.CheckBox; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.RadioButton; import android.widget.Spinner; import android.widget.TabHost; import com.mobeegal.android.R; import com.mobeegal.android.content.SendLocation; import com.mobeegal.android.util.ViewMenu; import java.util.ArrayList; /** * @author http://mobeegal/in */ public class Preferences extends Activity { private String settimename1; private String res; private long timeid; private SQLiteDatabase myDatabase; private String serviceInterval; private String getservicerequestinterval; private String TimeInterval; private String getmStuffView; private String MStuffView; private String time; private String views; private String viewname1; private String servicename1; private String timename1; final ArrayList<String> results = new ArrayList(); RadioButton mStuffView; RadioButton mStufftext; RadioButton servicerequestinterval; RadioButton servicerequestmanual; Spinner timeinterval; Spinner timeintervalLocation; String gettime; int getPosition; int getPositionLocation; Number elapsedtime; public String getTimeInterval = ""; public Settings set; public String[] interval; int firstvalue; String secondvalue; String gettingcategory; CheckBox auto; CheckBox manual; RadioButton turnon; RadioButton turnoff; LocationManager myLocationManager; Location loc; Double lat; Double lng; long numericValue; String lbstatestatus = null; String lbservice = null; String lbstate = null; String lbtime = null; String lbservicestatus = null; String getTime; String timeIntervalLocation; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.preferences); Log.i("Preferences", "1"); myDatabase = this.openOrCreateDatabase("Mobeegal", Context.MODE_PRIVATE, null); String[] col = {"views", "service", "time", "settime", "lbservice", "lbstate", "lbtimesettings"}; Cursor c = myDatabase.query("Preferences", col, null, null, null, null, null); int viewname = c.getColumnIndexOrThrow("views"); int servicename = c.getColumnIndexOrThrow("service"); int timename = c.getColumnIndexOrThrow("time"); int settimename = c.getColumnIndexOrThrow("settime"); int lbservicecolumn = c.getColumnIndexOrThrow("lbservice"); int lbstatecolumn = c.getColumnIndexOrThrow("lbstate"); int lbtimecolumn = c.getColumnIndexOrThrow("lbtimesettings"); Log.i("Preferences", "2"); if (c != null) { if (c.isFirst()) { do { viewname1 = c.getString(viewname); servicename1 = c.getString(servicename); timename1 = c.getString(timename); settimename1 = c.getString(settimename); lbservice = c.getString(lbservicecolumn); lbstate = c.getString(lbstatecolumn); lbtime = c.getString(lbtimecolumn); results.add(viewname1); results.add(servicename1); results.add(timename1); results.add(settimename1); } while (c.moveToNext()); } } Log.i("Preferences", "3"); res = results.toString(); c.close(); Log.i("Preferences", "4"); TabHost tabs = (TabHost) this.findViewById(R.id.tabs); tabs.setup(); TabHost.TabSpec one = tabs.newTabSpec("one"); one.setContent(R.id.mStuffView); one.setIndicator("mStuffView"); tabs.addTab(one); mStuffView = (RadioButton) findViewById(R.id.mapviewradiobutton); mStufftext = (RadioButton) findViewById(R.id.textviewradiobutton); if (viewname1.toString().equals("MapView")) { mStuffView.setChecked(true); mStufftext.setChecked(false); } else { mStufftext.setChecked(true); mStuffView.setChecked(false); } Log.i("Preferences", "5"); TabHost.TabSpec two = tabs.newTabSpec("two"); two.setContent(R.id.servicerequestinterval); two.setIndicator("Service request interval"); tabs.addTab(two); timeinterval = (Spinner) findViewById(R.id.timeinterval); timeinterval.setVisibility(View.INVISIBLE); servicerequestinterval = (RadioButton) findViewById(R.id.autoradiobutton); servicerequestmanual = (RadioButton) findViewById(R.id.manualradiobutton); Log.i("Preferences", "6"); TabHost.TabSpec locationbroadcasting = tabs.newTabSpec("Location broadcasting"); locationbroadcasting.setContent(R.id.Locationbroadcasting); locationbroadcasting.setIndicator("Location broadcasting"); myLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); loc = myLocationManager.getLastKnownLocation("gps"); lat = loc.getLatitude() * 1E6; lng = loc.getLongitude() * 1E6; timeintervalLocation = (Spinner) findViewById(R.id.timeintervallocation); ArrayAdapter adapterLocation = ArrayAdapter.createFromResource( this, R.array.timeperiod, android.R.layout.simple_spinner_item); timeintervalLocation.setAdapter(adapterLocation); int getpos = Integer.parseInt(lbtime); timeintervalLocation.setSelection(getpos); turnon = (RadioButton) findViewById(R.id.turnonradiobutton); turnoff = (RadioButton) findViewById(R.id.turnoffradiobutton); auto = (CheckBox) findViewById(R.id.auto); manual = (CheckBox) findViewById(R.id.manual); auto.setVisibility(CheckBox.INVISIBLE); manual.setVisibility(CheckBox.INVISIBLE); timeintervalLocation.setVisibility(Spinner.INVISIBLE); Log.i("Preferences", "7"); turnon.setOnCheckedChangeListener(new OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton arg0, boolean arg1) { if (turnon.isChecked()) { lbservicestatus = "on"; auto.setVisibility(CheckBox.VISIBLE); manual.setVisibility(CheckBox.VISIBLE); } else { auto.setVisibility(CheckBox.INVISIBLE); manual.setVisibility(CheckBox.INVISIBLE); } manual.setOnCheckedChangeListener(new OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton arg0, boolean arg1) { if (manual.isChecked()) { auto.setChecked(false); lbstatestatus = "manual"; timeintervalLocation.setVisibility(Spinner.VISIBLE); } else { timeintervalLocation .setVisibility(Spinner.INVISIBLE); } } }); } }); turnoff.setOnCheckedChangeListener(new OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton arg0, boolean arg1) { if (turnoff.isChecked()) { lbservicestatus = "off"; lbstatestatus = "auto"; auto.setVisibility(CheckBox.INVISIBLE); manual.setVisibility(CheckBox.INVISIBLE); timeintervalLocation.setVisibility(Spinner.INVISIBLE); } } }); Log.i("Preferences", "9"); auto.setOnCheckedChangeListener(new OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton arg0, boolean arg1) { if (auto.isChecked()) { manual.setChecked(false); timeintervalLocation.setVisibility(Spinner.INVISIBLE); lbstatestatus = "auto"; } } }); tabs.addTab(locationbroadcasting); if (servicename1.toString().equals("Auto")) { servicerequestinterval.setChecked(true); servicerequestmanual.setChecked(false); timeinterval = (Spinner) findViewById(R.id.timeinterval); timeinterval.setVisibility(View.INVISIBLE); } else { servicerequestmanual.setChecked(true); servicerequestinterval.setChecked(false); timeinterval = (Spinner) findViewById(R.id.timeinterval); timeinterval.setVisibility(View.VISIBLE); } if (lbservice.equals("off")) { turnoff.setChecked(true); auto.setVisibility(CheckBox.INVISIBLE); manual.setVisibility(CheckBox.INVISIBLE); timeintervalLocation.setVisibility(Spinner.INVISIBLE); } else if (lbservice.equals("on")) { turnon.setChecked(true); auto.setVisibility(CheckBox.VISIBLE); manual.setVisibility(CheckBox.VISIBLE); if (lbstate.equals("manual")) { manual.setChecked(true); timeintervalLocation.setVisibility(Spinner.VISIBLE); } else if (lbstate.equals("auto")) { auto.setChecked(true); timeintervalLocation.setVisibility(Spinner.INVISIBLE); } } Log.i("Preferences", "10"); ArrayAdapter adapter1 = ArrayAdapter.createFromResource( this, R.array.timeperiod, android.R.layout.simple_spinner_item); timeinterval.setAdapter(adapter1); int pos = Integer.parseInt(timename1); timeinterval.setSelection(pos); timeinterval.setOnItemSelectedListener( new AdapterView.OnItemSelectedListener() { public void onItemSelected(AdapterView parent, View v, int position, long id) { } public void onNothingSelected(AdapterView parent) { } }); final RadioButton manualRadiobutton = (RadioButton) findViewById(R.id.manualradiobutton); if (manualRadiobutton.isEnabled()) { manualRadiobutton .setOnClickListener(new RadioButton.OnClickListener() { public void onClick(View arg0) { timeinterval.setVisibility(View.VISIBLE); } }); } Log.i("Preferences", "11"); final RadioButton autoRadiobutton = (RadioButton) findViewById(R.id.autoradiobutton); if (autoRadiobutton.isEnabled()) { autoRadiobutton.setOnClickListener(new RadioButton.OnClickListener() { // default setting 1 minute and getting mstuff from server public void onClick(View arg0) { timeinterval.setVisibility(View.INVISIBLE); } }); } tabs.setCurrentTab(0); final long startTime = SystemClock.elapsedRealtime(); final Button savebutton = (Button) findViewById(R.id.save); savebutton.setOnClickListener(new Button.OnClickListener() { private String getsettime; public void onClick(View v) { Log.i("Preferences", "12"); String latitudeString = Integer.toString(lat.intValue()); String longitudeString = Integer.toString(lng.intValue()); Log.i("Preferences", "13"); getTime = (String) timeintervalLocation.getSelectedItem(); String[] strArray = getTime.split(" "); numericValue = Long.parseLong(strArray[0]); if (turnoff.isChecked()) { AlarmManager alarmmanager = (AlarmManager) getSystemService(ALARM_SERVICE); Intent intent = new Intent(Preferences.this, SendLocation.class); final PendingIntent pi = PendingIntent.getActivity (getApplicationContext(), 0, intent, PendingIntent.FLAG_CANCEL_CURRENT); alarmmanager.cancel(pi); } if (lbstatestatus.equals("auto") && lbservicestatus.equals("on")) { Intent intobject2 = new Intent(Preferences.this, SendLocation.class); Bundle bundle = new Bundle(); bundle.putString("latitude", latitudeString); bundle.putString("longitude", longitudeString); intobject2.putExtras(bundle); AlarmManager alarmmanager = (AlarmManager) getSystemService(ALARM_SERVICE); final PendingIntent pi = PendingIntent.getActivity (getApplicationContext(), 0, intobject2, PendingIntent.FLAG_CANCEL_CURRENT); alarmmanager.setRepeating( AlarmManager.ELAPSED_REALTIME_WAKEUP, startTime, 60 * 1000, pi); } if (lbstatestatus.equals("manual") && lbservicestatus.equals("on")) { if (strArray[1].equals("Minutes")) { Intent intobject2 = new Intent(Preferences.this, SendLocation.class); Bundle bundle = new Bundle(); bundle.putString("latitude", latitudeString); bundle.putString("longitude", longitudeString); intobject2.putExtras(bundle); AlarmManager alarmmanager = (AlarmManager) getSystemService(ALARM_SERVICE); final PendingIntent pi = PendingIntent.getActivity (getApplicationContext(), 0, intobject2, PendingIntent.FLAG_CANCEL_CURRENT); alarmmanager.setRepeating( AlarmManager.ELAPSED_REALTIME_WAKEUP, startTime, numericValue * 60 * 1000, pi); } else if (strArray[1].equals("Hours")) { Intent intobject2 = new Intent(Preferences.this, SendLocation.class); Bundle bundle = new Bundle(); bundle.putString("latitude", latitudeString); bundle.putString("longitude", longitudeString); intobject2.putExtras(bundle); AlarmManager alarmmanager = (AlarmManager) getSystemService(ALARM_SERVICE); final PendingIntent pi = PendingIntent.getActivity (getApplicationContext(), 0, intobject2, PendingIntent.FLAG_CANCEL_CURRENT); alarmmanager.setRepeating( AlarmManager.ELAPSED_REALTIME_WAKEUP, startTime, numericValue * 60 * 60 * 1000, pi); } else if (strArray[1].equals("Day")) { Intent intobject2 = new Intent(Preferences.this, SendLocation.class); Bundle bundle = new Bundle(); bundle.putString("latitude", latitudeString); bundle.putString("longitude", longitudeString); intobject2.putExtras(bundle); AlarmManager alarmmanager = (AlarmManager) getSystemService(ALARM_SERVICE); final PendingIntent pi = PendingIntent.getActivity (getApplicationContext(), 0, intobject2, PendingIntent.FLAG_CANCEL_CURRENT); alarmmanager.setRepeating( AlarmManager.ELAPSED_REALTIME_WAKEUP, startTime, numericValue * 24 * 60 * 60 * 1000, pi); } } // Based on the time interval sending request to server for matchin stuffs mStuffView = (RadioButton) findViewById(R.id.mapviewradiobutton); getPosition = timeinterval.getSelectedItemPosition(); getPositionLocation = timeintervalLocation.getSelectedItemPosition(); timeIntervalLocation = Integer.toString(getPositionLocation); TimeInterval = Integer.toString(getPosition); getsettime = (String) timeinterval.getSelectedItem(); if (mStuffView.isChecked()) { getmStuffView = "MapView"; } else { getmStuffView = "TextView"; } servicerequestinterval = (RadioButton) findViewById(R.id.autoradiobutton); if (servicerequestinterval.isChecked()) { getservicerequestinterval = "Auto"; } else { getservicerequestinterval = "Manual"; } myDatabase.execSQL("UPDATE Preferences set views='" + getmStuffView + "',service='" + getservicerequestinterval + "',time='" + TimeInterval + "',settime='" + getsettime + "',lbservice='" + lbservicestatus + "',lbstate='" + lbstatestatus + "',lbtimesettings='" + timeIntervalLocation + "' where preference=preference"); finish(); } }); } // MenuView @Override public boolean onCreateOptionsMenu(Menu menu) { ViewMenu.onCreateOptionsMenu(menu); return true; } // Menu Item @Override public boolean onMenuItemSelected(int i, MenuItem item) { switch (item.getItemId()) { // mStuff Menu case 1: Intent stuffCheckintent = new Intent(Preferences.this, MapResults.class); startActivityForResult(stuffCheckintent, 0); finish(); break; case 2: Intent intent1 = new Intent(Preferences.this, FindandInstall.class); startActivityForResult(intent1, 0); finish(); break; case 3: Intent settings = new Intent(Preferences.this, Settings.class); startActivity(settings); break; } return super.onOptionsItemSelected(item); } }