1 package ro
.ieval
.unical
;
2 import java
.text
.SimpleDateFormat
;
3 import java
.util
.Calendar
;
5 import java
.util
.GregorianCalendar
;
7 import android
.app
.ActionBar
;
8 import android
.app
.Activity
;
9 import android
.app
.DatePickerDialog
.OnDateSetListener
;
10 import android
.app
.Fragment
;
11 import android
.app
.TimePickerDialog
.OnTimeSetListener
;
12 import android
.content
.Context
;
13 import android
.content
.Intent
;
14 import android
.os
.Bundle
;
15 import android
.view
.Menu
;
16 import android
.view
.MenuInflater
;
17 import android
.view
.MenuItem
;
18 import android
.view
.View
;
19 import android
.widget
.*;
21 public final class AddEventActivity
extends Activity
implements OnDateSetListener
, OnTimeSetListener
{
23 private class OnCheckedChangeListener
implements android
.widget
.CompoundButton
.OnCheckedChangeListener
{
24 private final LinearLayout layout
;
25 public OnCheckedChangeListener(final LinearLayout layout
){
29 private class OnItemSelectedListener
implements android
.widget
.AdapterView
.OnItemSelectedListener
{
30 private final View repeatCount
;
31 private final View repeatUntil
;
33 public OnItemSelectedListener(final View repeatCount
, final View repeatUntil
) {
34 this.repeatCount
=repeatCount
;
35 this.repeatUntil
=repeatUntil
;
39 public void onItemSelected(final AdapterView
<?
> whatever
, final View ignored
, final int pos
, final long id
) {
42 repeatCount
.setVisibility(View
.GONE
);
43 repeatUntil
.setVisibility(View
.GONE
);
46 repeatCount
.setVisibility(View
.GONE
);
47 repeatUntil
.setVisibility(View
.VISIBLE
);
50 repeatCount
.setVisibility(View
.VISIBLE
);
51 repeatUntil
.setVisibility(View
.GONE
);
57 @Override public void onNothingSelected(final AdapterView
<?
> arg0
) { /* do nothing */ }
61 public void onCheckedChanged(final CompoundButton buttonView
, final boolean isChecked
) {
63 Utils
.setEnabledRecursively(layout
, true);
64 final Spinner repeatType
= (Spinner
) findViewById(R
.id
.repeat_type
);
65 repeatType
.setOnItemSelectedListener(new OnItemSelectedListener(findViewById(R
.id
.repeat_count
),findViewById(R
.id
.repeat_until
)));
67 Utils
.setEnabledRecursively(layout
, false);
72 private TextView dateTimeTextView
;
73 public static final String EXTRA_EVENT
= "event";
76 public static void editEvent(final Context c
, final Event e
) {
77 final Intent i
= new Intent(c
,AddEventActivity
.class);
78 i
.putExtra(AddEventActivity
.EXTRA_EVENT
,e
);
84 protected void onCreate(final Bundle savedInstanceState
) {
85 super.onCreate(savedInstanceState
);
86 setTitle(R
.string
.add_event_title
);
87 event
= getIntent().hasExtra(EXTRA_EVENT
) ?
(Event
) getIntent().getParcelableExtra(EXTRA_EVENT
) : new Event();
88 final ActionBar actionBar
= getActionBar();
89 setContentView(R
.layout
.add_event
);
91 if(getIntent().hasExtra(EXTRA_EVENT
)) {
92 final LinearLayout layout
= (LinearLayout
) findViewById(R
.id
.repeat_layout
);
93 final Switch repeatSwitch
= (Switch
) findViewById(R
.id
.repeat_switch
);
94 Utils
.setEnabledRecursively(layout
, false);
96 repeatSwitch
.setOnCheckedChangeListener(new OnCheckedChangeListener(layout
));
98 EditText title
= (EditText
) findViewById(R
.id
.eventtitle
);
99 title
.setText(event
.title
);
101 TextView tstart
= (TextView
) findViewById(R
.id
.time_start
);
102 TextView tend
= (TextView
) findViewById(R
.id
.time_end
);
103 SimpleDateFormat sf
=new SimpleDateFormat("HH:mm");
104 Date d
=new Date(event
.dtstart
);
105 tstart
.setText(sf
.format(d
).toString());
106 d
.setTime(event
.dtend
);
107 tend
.setText(sf
.format(d
).toString());
109 SimpleDateFormat sd
= new SimpleDateFormat("yyyy-MM-dd");
110 TextView dstart
= (TextView
)findViewById(R
.id
.date_start
);
111 TextView dend
= (TextView
)findViewById(R
.id
.date_end
);
112 d
.setTime(event
.dtstart
);
113 dstart
.setText(sd
.format(d
).toString());
114 d
.setTime(event
.dtend
);
115 dend
.setText(sd
.format(d
).toString());
116 EditText description
= (EditText
) findViewById(R
.id
.description
);
117 description
.setText(event
.description
);
122 public boolean onCreateOptionsMenu(final Menu menu
) {
123 final MenuInflater inflater
= getMenuInflater();
124 inflater
.inflate(R
.menu
.add_event
, menu
);
129 public boolean onOptionsItemSelected(final MenuItem item
) {
130 switch (item
.getItemId()) {
135 System
.out
.println("MuieLaComisie\n"+event
.title
);
137 Toast toast
= Toast
.makeText(getApplicationContext(),"Event saved!",Toast
.LENGTH_LONG
);
146 public void showDateTimePickerDialog(final View v
) {
147 dateTimeTextView
=(TextView
) v
;
148 if(v
.getId()==R
.id
.date_start
|| v
.getId()==R
.id
.date_end
|| v
.getId() == R
.id
.repeat_until
){
149 final String
[] parts
= dateTimeTextView
.getText().toString().split("-");
150 final DatePickerFragment fragment
= new DatePickerFragment();
151 final Bundle args
= new Bundle();
152 args
.putInt(DatePickerFragment
.ARGUMENT_YEAR
, Integer
.parseInt(parts
[0]));
153 args
.putInt(DatePickerFragment
.ARGUMENT_MONTH
, Integer
.parseInt(parts
[1]));
154 args
.putInt(DatePickerFragment
.ARGUMENT_DAY
, Integer
.parseInt(parts
[2]));
155 fragment
.setArguments(args
);
156 fragment
.show(getFragmentManager(), "datePicker");
158 final String
[] parts
= dateTimeTextView
.getText().toString().split(":");
159 final TimePickerFragment fragment
= new TimePickerFragment();
160 final Bundle args
= new Bundle();
161 args
.putInt(TimePickerFragment
.ARGUMENT_HOUR
, Integer
.parseInt(parts
[0]));
162 args
.putInt(TimePickerFragment
.ARGUMENT_MINUTE
, Integer
.parseInt(parts
[1]));
163 fragment
.setArguments(args
);
164 fragment
.show(getFragmentManager(), "timePicker");
169 public void onTimeSet(final TimePicker picker
, final int hour
, final int minute
) {
170 dateTimeTextView
.setText(String
.format("%02d:%02d",hour
,minute
));
171 if(dateTimeTextView
.getId() == R
.id
.time_start
)
172 ((TextView
)findViewById(R
.id
.time_end
)).setText(String
.format("%2d:%2d",hour
,minute
));
176 public void onDateSet(final DatePicker picker
, final int year
, final int monthOfYear
, final int dayOfMonth
) {
177 final Calendar calendar
=new GregorianCalendar(year
, monthOfYear
, dayOfMonth
);
178 dateTimeTextView
.setText(Utils
.formatDate(year
, monthOfYear
, dayOfMonth
));
179 //calendar.add(Calendar.DAY_OF_MONTH, 1);
180 if(dateTimeTextView
.getId() == R
.id
.date_start
)
181 ((TextView
)findViewById(R
.id
.date_end
)).setText(Utils
.formatDate(calendar
.get(Calendar
.YEAR
), calendar
.get(Calendar
.MONTH
), calendar
.get(Calendar
.DAY_OF_MONTH
)));