1 package ro
.ieval
.unical
;
2 import java
.util
.Calendar
;
3 import java
.util
.GregorianCalendar
;
5 import android
.app
.ActionBar
;
6 import android
.app
.Activity
;
7 import android
.app
.DatePickerDialog
.OnDateSetListener
;
8 import android
.app
.Fragment
;
9 import android
.app
.TimePickerDialog
.OnTimeSetListener
;
10 import android
.content
.Context
;
11 import android
.content
.Intent
;
12 import android
.os
.Bundle
;
13 import android
.view
.Menu
;
14 import android
.view
.MenuInflater
;
15 import android
.view
.MenuItem
;
16 import android
.view
.View
;
17 import android
.widget
.*;
19 //TODO if i want to add a new event after i edit one the fields are being filled with the last event data
21 public final class AddEventActivity
extends Activity
implements OnDateSetListener
, OnTimeSetListener
{
22 private TextView dateTimeTextView
;
23 private static Event tempEvent
=new Event();
24 public static final String EXTRA_EVENT
= "event";
25 private static Fragment f1
,f2
,f3
;
27 public static void editEvent(final Context c
, final Event e
) {
28 Intent i
= new Intent(c
,AddEventActivity
.class);
29 i
.putExtra(AddEventActivity
.EXTRA_EVENT
,e
);
36 protected void onCreate(final Bundle savedInstanceState
) {
37 super.onCreate(savedInstanceState
);
38 setTitle(R
.string
.add_event_title
);
39 final ActionBar actionBar
= getActionBar();
40 actionBar
.setNavigationMode(ActionBar
.NAVIGATION_MODE_TABS
);
41 final ActionBar
.Tab t1
= actionBar
.newTab().setText(this.getString(R
.string
.addevtab1
));
42 final ActionBar
.Tab t2
= actionBar
.newTab().setText(this.getString(R
.string
.addevtab2
));
43 final ActionBar
.Tab t3
= actionBar
.newTab().setText(this.getString(R
.string
.addevtab3
));
45 f1
= new TrivialFragment();
46 final Bundle b1
=new Bundle();
47 b1
.putInt(TrivialFragment
.ARGUMENT_LAYOUT
, R
.layout
.add_event_basic_tab
);
48 b1
.putParcelable(TrivialFragment
.ARGUMENT_EVENT
,tempEvent
);
51 f2
= new TrivialFragment();
52 final Bundle b2
=new Bundle();
53 b2
.putInt(TrivialFragment
.ARGUMENT_LAYOUT
, R
.layout
.add_event_details_tab
);
54 b2
.putParcelable(TrivialFragment
.ARGUMENT_EVENT
,tempEvent
);
57 f3
= new TrivialFragment();
58 final Bundle b3
=new Bundle();
59 b3
.putInt(TrivialFragment
.ARGUMENT_LAYOUT
, R
.layout
.add_event_other_tab
);
60 b3
.putParcelable(TrivialFragment
.ARGUMENT_EVENT
,tempEvent
);
63 t1
.setTabListener(new AddEventTabListener(f1
,tempEvent
,0));
64 t2
.setTabListener(new AddEventTabListener(f2
,tempEvent
,1));
65 t3
.setTabListener(new AddEventTabListener(f3
,tempEvent
,2));
73 public boolean onCreateOptionsMenu(final Menu menu
) {
74 final MenuInflater inflater
= getMenuInflater();
75 inflater
.inflate(R
.menu
.add_event
, menu
);
80 public boolean onOptionsItemSelected(final MenuItem item
) {
81 switch (item
.getItemId()) {
87 Toast toast
= Toast
.makeText(getApplicationContext(),"Event saved!",Toast
.LENGTH_LONG
);
96 public void showDateTimePickerDialog(final View v
) {
97 dateTimeTextView
=(TextView
) v
;
98 if(v
.getId()==R
.id
.date_start
|| v
.getId()==R
.id
.date_end
|| v
.getId() == R
.id
.repeat_until
)
99 new DatePickerFragment().show(getFragmentManager(), "datePicker");
101 new TimePickerFragment().show(getFragmentManager(), "timePicker");
105 public void onTimeSet(final TimePicker picker
, final int hour
, final int minute
) {
106 dateTimeTextView
.setText(String
.format("%02d:%02d",hour
,minute
));
107 if(dateTimeTextView
.getId() == R
.id
.time_start
)
108 ((TextView
)findViewById(R
.id
.time_end
)).setText(String
.format("%2d:%2d",hour
,minute
));
112 public void onDateSet(final DatePicker picker
, final int year
, final int monthOfYear
, final int dayOfMonth
) {
113 final Calendar calendar
=new GregorianCalendar(year
, monthOfYear
, dayOfMonth
);
114 dateTimeTextView
.setText(Utils
.formatDate(year
, monthOfYear
, dayOfMonth
));
115 //calendar.add(Calendar.DAY_OF_MONTH, 1);
116 if(dateTimeTextView
.getId() == R
.id
.date_start
)
117 ((TextView
)findViewById(R
.id
.date_end
)).setText(Utils
.formatDate(calendar
.get(Calendar
.YEAR
), calendar
.get(Calendar
.MONTH
), calendar
.get(Calendar
.DAY_OF_MONTH
)));