package edu.gricar.brezskrbnik.budilka; import java.io.IOException; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.Calendar; import java.util.Date; import android.app.Activity; import android.app.AlarmManager; import android.app.Dialog; import android.app.PendingIntent; import android.app.ProgressDialog; import android.content.Intent; import android.graphics.Color; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.SystemClock; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.Window; import android.view.View.OnClickListener; import edu.gricar.brezskrbnik.budilka.MyAlarmService; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.TextView; import android.widget.TimePicker; import android.widget.Toast; import edu.gricar.brezskrbnik.ApplicationBrezskrbnik; import edu.gricar.brezskrbnik.R; import org.ksoap2.*; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapPrimitive; import org.ksoap2.serialization.SoapSerializationEnvelope; import org.ksoap2.transport.HttpTransportSE; public class AlarmActivity extends Activity implements OnClickListener { static final int TIME_DIALOG_ID = 0; ApplicationBrezskrbnik app; static public String kraj; static public String[] vremenskiPodatkiTabela; private static final String SOAP_ACTION = "http://tempuri.org/Floki"; private static final String METHOD_NAME = "Floki"; private static final String NAMESPACE = "http://tempuri.org/"; public static String URL = ""; static public String ip; static String casIzspleta = ""; static String vremenskiPodatki =""; EditText et; TextView tvIP, tvVreme, tvDialogOpis, tvDialogTemp, tv1, tv2; TimePicker tp; int ura, minuta; Dialog dialogOdlocitev; ImageView ivSlika; Button btnOK; Button btnPreklici; Button button, button2, button3; public static String iptomcat =""; Menu nMenu; private static final String NAMESPACE2 = "http://service.gricar.edu"; private static final String METHOD_NAME2 = "Parser"; private static final String SOAP_ACTION2 = NAMESPACE2 + METHOD_NAME2; private static String URL2 = ""; private PendingIntent mAlarmSender; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); setContentView(R.layout.alarmll); try { showDialog(TIME_DIALOG_ID); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } app = (ApplicationBrezskrbnik) getApplication(); button = (Button) findViewById(R.id.btnAlarm); button3 = (Button) findViewById(R.id.btnPovezi); tvIP = (TextView) findViewById(R.id.textViewIP); tv1 = (TextView) findViewById(R.id.textViewBudilka1); tv2 = (TextView) findViewById(R.id.textViewBudilka2); button.setOnClickListener(this); button2 = (Button) findViewById(R.id.btnAlarmStop); button2.setOnClickListener(this); button3.setOnClickListener(this); tp = (TimePicker) findViewById(R.id.timePicker1); tp.setIs24HourView(true); mAlarmSender = PendingIntent.getService(AlarmActivity.this, 0, new Intent(AlarmActivity.this, MyAlarmService.class), 0); URL = "http://" + ip + "/service1.asmx"; URL2 = "http://" + iptomcat + ":8080/AccuServerIP/services/Service2?wsdl"; tvIP.setText(URL); // pingIIS(); } /* * private TimePickerDialog.OnTimeSetListener mTimeSetListener = new * TimePickerDialog.OnTimeSetListener() { public void onTimeSet(TimePicker * view, int hourOfDay, int minute) { Toast.makeText(AlarmActivity.this, * "Time is="+hourOfDay+":"+minute, Toast.LENGTH_SHORT).show(); ura = * hourOfDay; minuta = minute; }}; * * @Override protected Dialog onCreateDialog(int id) { switch (id) { case * TIME_DIALOG_ID: return new TimePickerDialog(this,mTimeSetListener, 0, 0, * false); } return null; } */ public void nastaviSliko(){ if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("1_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_1)); btnOK.setTextColor(Color.parseColor("#177BBD")); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("2_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_2)); btnOK.setTextColor(Color.parseColor("#177BBD")); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("3_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_3)); btnOK.setTextColor(Color.parseColor("#177BBD")); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("4_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_4)); btnOK.setTextColor(Color.parseColor("#177BBD")); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("5_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_5)); btnOK.setTextColor(Color.parseColor("#177BBD")); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("6_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_6)); btnOK.setTextColor(Color.parseColor("#177BBD")); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("7_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_7)); btnOK.setTextColor(Color.parseColor("#177BBD")); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("8_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_8)); btnOK.setTextColor(Color.parseColor("#177BBD")); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("11_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_11)); btnOK.setTextColor(Color.parseColor("#177BBD")); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("12_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_12)); btnPreklici.setTextColor(Color.parseColor("#177BBD")); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("13_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_13)); btnPreklici.setTextColor(Color.parseColor("#177BBD")); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("14_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_14)); btnPreklici.setTextColor(Color.parseColor("#177BBD")); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("15_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_15)); btnPreklici.setTextColor(Color.parseColor("#177BBD")); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("16_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_16)); btnPreklici.setTextColor(Color.parseColor("#177BBD")); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("17_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_17)); btnPreklici.setTextColor(Color.parseColor("#177BBD")); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("18_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_18)); btnOK.setTextColor(Color.parseColor("#177BBD")); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("19_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_19)); btnOK.setTextColor(Color.parseColor("#177BBD")); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("20_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_20)); btnOK.setTextColor(Color.parseColor("#177BBD")); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("21_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_21)); btnOK.setTextColor(Color.parseColor("#177BBD")); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("22_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_22)); btnOK.setTextColor(Color.parseColor("#177BBD")); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("23_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_23)); btnOK.setTextColor(Color.parseColor("#177BBD")); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("24_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_24)); btnOK.setTextColor(Color.parseColor("#177BBD")); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("25_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_25)); btnOK.setTextColor(Color.parseColor("#177BBD")); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("26_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_26)); btnPreklici.setTextColor(Color.parseColor("#177BBD")); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("29_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_29)); btnPreklici.setTextColor(Color.parseColor("#177BBD")); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("30_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_30)); btnOK.setTextColor(Color.parseColor("#177BBD")); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("31_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_31)); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("32_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_32)); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("33_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_33)); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("34_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_34)); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("35_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_35)); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("36_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_36)); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("37_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_37)); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("38_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_38)); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("39_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_39)); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("40_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_40)); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("41_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_41)); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("42_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_42)); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("43_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_43)); } if (vremenskiPodatkiTabela[0].toString().equalsIgnoreCase("40_int.jpg")){ ivSlika.setImageDrawable(getResources().getDrawable(R.drawable.weather_44)); } } public void odpriDialogOdlocanja(){ dialogOdlocitev = new Dialog(this); dialogOdlocitev.setContentView(R.layout.budilkavremedialog); btnOK = (Button)dialogOdlocitev.findViewById(R.id.btnDialogOk); btnPreklici = (Button)dialogOdlocitev.findViewById(R.id.btnDialogPreklici); tvDialogTemp = (TextView) dialogOdlocitev.findViewById(R.id.tvDialogTemp); tvDialogOpis = (TextView) dialogOdlocitev.findViewById(R.id.tvDialogOpis); ivSlika = (ImageView) dialogOdlocitev.findViewById(R.id.ivDialogSlika); nastaviSliko(); tvDialogTemp.setText(vremenskiPodatkiTabela[1].toString()); tvDialogOpis.setText(vremenskiPodatkiTabela[2].toString()); dialogOdlocitev.setTitle("Bova vstala " + tp.getCurrentMinute().toString() + " minut �ez " + tp.getCurrentHour().toString() + "?" ); dialogOdlocitev.show(); btnOK.setOnClickListener(new OnClickListener() { public void onClick(View v) { //bla bla int sek = (ura * 60 * 60) + minuta * 60; /* * // Schedule the alarm! AlarmManager am = * (AlarmManager)getSystemService(ALARM_SERVICE); * am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, * Integer.parseInt(et.getText().toString())*1000, mAlarmSender); * //Tu nastavi npr 1x na dan 24*60*60*1000 // Tell the user about * what we did. */ // Single run Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); Date dt = new Date(); ura = tp.getCurrentHour(); minuta = tp.getCurrentMinute(); int trenutnaura = dt.getHours(); int trenutnaminuta = dt.getMinutes(); int cajt = (trenutnaura * 60 * 60) + trenutnaminuta * 60; sek = 86400 - cajt; int preracunan = (ura * 60 * 60) + minuta * 60; // sek = cajt - preracunan; if (cajt < preracunan) { sek = preracunan - cajt; } else sek = cajt - preracunan; calendar.add(Calendar.SECOND, sek); Toast.makeText(AlarmActivity.this, "Budilka �ez " + sek + "s.", Toast.LENGTH_LONG).show(); // Schedule the alarm! AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), mAlarmSender); //bla bla dialogOdlocitev.dismiss(); } }); btnPreklici.setOnClickListener(new OnClickListener() { public void onClick(View v) { dialogOdlocitev.dismiss(); } }); ivSlika.setOnClickListener(new OnClickListener() { public void onClick(View v) { String url = "http://www.accuweather.com/en-us/si/" + kraj + "/" + kraj + "/hourly24.aspx"; Intent i = new Intent(Intent.ACTION_VIEW); i.setData(Uri.parse(url)); startActivity(i); } }); } public void onAccu(View v){ BackgroundAsyncTask2 mt2 = new BackgroundAsyncTask2(); mt2.execute(); } public void onClickStart(View v) { } public void onClickStop(View v) { AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); am.cancel(mAlarmSender); // Tell the user about what we did. Toast.makeText(AlarmActivity.this, "Stop repeating alarm", Toast.LENGTH_LONG).show(); } public void onClick(View v) { if (v.getId() == R.id.btnAlarm) { //int sek = (ura * 60 * 60) + minuta * 60; /* * // Schedule the alarm! AlarmManager am = * (AlarmManager)getSystemService(ALARM_SERVICE); * am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, * Integer.parseInt(et.getText().toString())*1000, mAlarmSender); * //Tu nastavi npr 1x na dan 24*60*60*1000 // Tell the user about * what we did. */ // Single run Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); int sek; ura = calendar.getTime().getHours(); minuta = calendar.getTime().getMinutes(); int trenutnaura = ura; int trenutnaminuta = minuta; int cajt = (trenutnaura * 60 * 60) + trenutnaminuta * 60; sek = 86400 - cajt; int preracunan = (ura * 60 * 60) + minuta * 60; if (cajt < preracunan) { sek = preracunan - cajt; } else sek = cajt - preracunan; calendar.add(Calendar.SECOND, sek); Toast.makeText(AlarmActivity.this, "Budilka �ez " + sek + "s.", Toast.LENGTH_LONG).show(); // Schedule the alarm! AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), mAlarmSender); } if (v.getId() == R.id.btnAlarmStop) { AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); am.cancel(mAlarmSender); // Tell the user about what we did. Toast.makeText(AlarmActivity.this, "Stop repeating alarm", Toast.LENGTH_LONG).show(); } if (v.getId() == R.id.btnPovezi) { BackgroundAsyncTask mt = new BackgroundAsyncTask(); mt.execute(); } } public class BackgroundAsyncTask extends AsyncTask<Void, Integer, String> { ProgressDialog dialogWait; @Override protected String doInBackground(Void... params) { dialogWait.setCancelable(true); casIzspleta = GetData(); dialogWait.dismiss(); return casIzspleta; } @Override protected void onPreExecute() { dialogWait = ProgressDialog.show(AlarmActivity.this, "Povezujem", "Po�akajte prosim..", true); } protected void onPostExecute(String arg) { try { if (casIzspleta.equalsIgnoreCase("0")) Toast.makeText(AlarmActivity.this, "Napaka v komunikaciji!", Toast.LENGTH_LONG).show(); else { casIzspleta = arg; String[] ura = casIzspleta.split(":"); int iura = Integer.parseInt(ura[0]); int iminuta = Integer.parseInt(ura[1]); tp.setCurrentHour(iura); tp.setCurrentMinute(iminuta); } } catch (NumberFormatException e) { e.printStackTrace(); } } private String GetData() { SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME); // Request.addProperty("Celsius", param); SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope( SoapEnvelope.VER11); soapEnvelope.dotNet = true; soapEnvelope.setOutputSoapObject(Request); HttpTransportSE aht = new HttpTransportSE(URL); try { aht.call(SOAP_ACTION, soapEnvelope); SoapPrimitive result = (SoapPrimitive) soapEnvelope .getResponse(); return result.toString(); } catch (Exception e) { e.printStackTrace(); } return "0"; } public void pingIIS() { try { InetAddress address = InetAddress.getByName("www.najdi.si"); tvIP.setText("Name: " + address.getHostName() + " Addr: " + address.getHostAddress() + " Reach: " + address.isReachable(3000)); } catch (UnknownHostException e) { tvIP.setText("colis"); } catch (IOException e) { tvIP.setText("Unable to reach "); } } } public class BackgroundAsyncTask2 extends AsyncTask<Void, Integer, String> { @Override protected String doInBackground(Void... params) { vremenskiPodatki = onDobiVreme(); return vremenskiPodatki; } @Override protected void onPreExecute() { setProgressBarIndeterminateVisibility(true); } protected void onPostExecute(String arg) { setProgressBarIndeterminateVisibility(false); if ((vremenskiPodatki.substring(0, 6)).equalsIgnoreCase("napaka")){ Toast.makeText(AlarmActivity.this, "Napaka v komunikaciji!", Toast.LENGTH_LONG).show(); } else{ vremenskiPodatkiTabela = vremenskiPodatki.split(";"); odpriDialogOdlocanja(); } } } public String onDobiVreme(){ try{ SoapObject request = new SoapObject(NAMESPACE2, METHOD_NAME2); request.addProperty("kraj", kraj); SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.dotNet = true; envelope.setOutputSoapObject(request); HttpTransportSE androidHttpTransport = new HttpTransportSE(URL2); androidHttpTransport.call(SOAP_ACTION2,envelope); Object result = envelope.getResponse(); return result.toString(); } catch (Exception e) { e.printStackTrace(); return "napaka: "+e.toString(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { nMenu = menu; MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.nastavitve_budilka, nMenu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.SpremeniPogled: tv1.setVisibility(View.VISIBLE); tv2.setVisibility(View.VISIBLE); tvIP.setVisibility(View.VISIBLE); button.setVisibility(View.VISIBLE); button2.setVisibility(View.VISIBLE); button3.setVisibility(View.VISIBLE); return true; default:// Generic catch all for all the other menu resources if (!item.hasSubMenu()) { Toast.makeText(this, item.getTitle(), Toast.LENGTH_SHORT).show(); return true; } break; } return false; } }