package edu.gricar.brezskrbnik.koledar;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import edu.gricar.brezskrbnik.R;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.TimePickerDialog;
import android.content.ContentValues;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.Toast;
public class KoledarActivity extends Activity {
private static final int TIME_DIALOG_ID = 0;
private static final int TIME_DIALOG_ID2 = 1;
private static final int DATE_DIALOG_ID = 2;
private static final int DATE_DIALOG_ID2 = 3;
Button odDatum, doDatum, odUra, doUra;
EditText tvime, tvkje, tvopis;
Spinner spinner;
ArrayList<Koledar> koledar = new ArrayList<Koledar>();
String[] spinTabela;
public static int oznacen=1;
Calendar koledarDo;
Calendar koledarOd;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.opomniki);
odDatum = (Button) findViewById(R.id.btnDogodkiOdDatum);
doDatum = (Button) findViewById(R.id.btnDogodkiDoDatum);
odUra = (Button) findViewById(R.id.btnDogodkiOdCas);
doUra = (Button) findViewById(R.id.btnDogodkiDoCas);
spinner = (Spinner) findViewById(R.id.spinnerDogodkiKoledar);
tvime = (EditText) findViewById(R.id.etDogodkiIme);
tvkje = (EditText) findViewById(R.id.etDogodkiLokacija);
tvopis = (EditText) findViewById(R.id.etDogodkiOpis);
try {
koledarjiNaVoljoSo();
zacetnaFazapolnjena();
} catch (Exception e) {
e.printStackTrace();
}
}
void zacetnaFazapolnjena(){
Calendar c = Calendar.getInstance();
koledarDo = Calendar.getInstance();
koledarOd = Calendar.getInstance();
int h,m;
h = c.getTime().getHours();
m = c.getTime().getMinutes();
odUra.setText("" + h + ":" + m);
h+=1;
doUra.setText("" + h + ":" + m);
koledarOd.set(Calendar.HOUR_OF_DAY, h);
koledarOd.set(Calendar.MINUTE, m);
koledarDo.set(Calendar.HOUR_OF_DAY, h+1);
koledarDo.set(Calendar.MINUTE, m+1);
odDatum.setText(DateFormat.getDateInstance(DateFormat.LONG).format(c.getTime()).toString());
doDatum.setText(DateFormat.getDateInstance(DateFormat.LONG).format(c.getTime()).toString());
spinTabela = new String[koledar.size()];
for (int i=0; i < koledar.size(); i++){
spinTabela[i] = koledar.get(i).getIme();
}
ArrayAdapter<String> katAdapter = new ArrayAdapter<String>( this, android.R.layout.simple_spinner_item, spinTabela);
katAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(katAdapter);
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
oznacen = position + 1; //ker se koledarji za�nejo z 1
}
public void onNothingSelected(AdapterView<?> parentView) {}
});
}
void koledarjiNaVoljoSo(){
String[] projection = new String[] { "_id", "name" };
Uri calendars = Uri.parse("content://com.android.calendar/calendars");
Cursor managedCursor = managedQuery(calendars, projection, null, null, null);
if (managedCursor.moveToFirst()) {
String calName;
String calId;
int nameColumn = managedCursor.getColumnIndex("name");
int idColumn = managedCursor.getColumnIndex("_id");
do {
calName = managedCursor.getString(nameColumn);
calId = managedCursor.getString(idColumn);
koledar.add(new Koledar(calName, calId));
} while (managedCursor.moveToNext());
}
}
private TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
odUra.setText(""+hourOfDay + ":" +minute);
koledarOd.set(Calendar.HOUR_OF_DAY, hourOfDay);
koledarOd.set(Calendar.MINUTE, minute);
}
};
private TimePickerDialog.OnTimeSetListener mTimeSetListener2 = new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
doUra.setText(""+hourOfDay + ":" +minute);
koledarDo.set(Calendar.HOUR_OF_DAY, hourOfDay);
koledarDo.set(Calendar.MINUTE, minute);
}
};
private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int month, int day) {
Calendar d = Calendar.getInstance();
d.set(year, month, day);
odDatum.setText(DateFormat.getDateInstance(DateFormat.LONG).format(d.getTime()).toString());
koledarOd.set(year, month, day);
}
};
private DatePickerDialog.OnDateSetListener mDateSetListener2 = new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int month, int day) {
Calendar d = Calendar.getInstance();
d.set(year, month, day);
doDatum.setText(DateFormat.getDateInstance(DateFormat.LONG).format(d.getTime()).toString());
koledarDo.set(year, month, day);
}
};
protected Dialog onCreateDialog(int id) {
switch (id) {
case TIME_DIALOG_ID:
Calendar c = Calendar.getInstance();
return new TimePickerDialog(this,mTimeSetListener, c.get(Calendar.HOUR), c.get(Calendar.MINUTE), true);
case TIME_DIALOG_ID2:
Calendar c1 = Calendar.getInstance();
return new TimePickerDialog(this,mTimeSetListener2, c1.get(Calendar.HOUR), c1.get(Calendar.MINUTE), true);
case DATE_DIALOG_ID:
Calendar c2 = Calendar.getInstance();
return new DatePickerDialog(this, mDateSetListener, c2.get(Calendar.YEAR), c2.get(Calendar.MONTH), c2.get(Calendar.DATE));
case DATE_DIALOG_ID2:
Calendar c3 = Calendar.getInstance();
return new DatePickerDialog(this, mDateSetListener2, c3.get(Calendar.YEAR), c3.get(Calendar.MONTH), c3.get(Calendar.DATE));
}
return null;
}
public void onDogodkiOdDatum(View v){
showDialog(DATE_DIALOG_ID);
}
public void onDogodkiDoDatum(View v){
showDialog(DATE_DIALOG_ID2);
}
public void onDogodkiOdCas(View v){
showDialog(TIME_DIALOG_ID);
}
public void onDogodkiDoCas(View v){
showDialog(TIME_DIALOG_ID2);
}
public void onDogodkiPrikazi(View v){
Intent i = new Intent(this.getApplicationContext(), CalendarActivity.class);
startActivity(i);
}
public void onDogodkiPovrni(View v){
this.finish();
}
private String getCalendarUriBase() {
String calendarUriBase = null;
Uri calendars = Uri.parse("content://calendar/calendars");
Cursor managedCursor = null;
try {
managedCursor = managedQuery(calendars, null, null, null, null);
} catch (Exception e) {
// eat
}
if (managedCursor != null) {
calendarUriBase = "content://calendar/";
} else {
calendars = Uri.parse("content://com.android.calendar/calendars");
try {
managedCursor = managedQuery(calendars, null, null, null, null);
} catch (Exception e) {
// eat
}
if (managedCursor != null) {
calendarUriBase = "content://com.android.calendar/";
}
}
return calendarUriBase;
}
public void onDogodkiDokoncano(View v){
//private Uri MakeNewCalendarEntry(int calId) {
if (tvime.getText().toString().equalsIgnoreCase("") || koledarOd.getTimeInMillis() > koledarDo.getTimeInMillis()){
Toast.makeText(this, "Vpi�i ime / vnesi pravilen �as", Toast.LENGTH_LONG).show();
}
else{
ContentValues event = new ContentValues();
event.put("calendar_id", oznacen);
event.put("title", tvime.getText().toString());
event.put("description", tvopis.getText().toString());
event.put("eventLocation", tvkje.getText().toString());
event.put("dtstart", koledarOd.getTimeInMillis());
event.put("dtend", koledarDo.getTimeInMillis());
event.put("allDay", 0); // 0 for false, 1 for true
event.put("eventStatus", 1);
event.put("visibility", 0);
event.put("transparency", 0);
event.put("hasAlarm", 0); // 0 for false, 1 for true
Uri eventsUri = Uri.parse(getCalendarUriBase()+"events");
Uri insertedUri = getContentResolver().insert(eventsUri, event);
Toast.makeText(this, "Dogodek: " + tvime.getText().toString() + " vpisan.", Toast.LENGTH_LONG).show();
this.finish();
}
//return insertedUri;
// }
}
}