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 public static final String EXTRA_EVENT
= "event";
25 public static void editEvent(final Context c
, final Event e
) {
26 final Intent i
= new Intent(c
,AddEventActivity
.class);
27 i
.putExtra(AddEventActivity
.EXTRA_EVENT
,e
);
33 protected void onCreate(final Bundle savedInstanceState
) {
34 super.onCreate(savedInstanceState
);
35 setTitle(R
.string
.add_event_title
);
36 final Event event
= getIntent().hasExtra(EXTRA_EVENT
) ?
(Event
) getIntent().getParcelableExtra(EXTRA_EVENT
) : new Event();
37 final ActionBar actionBar
= getActionBar();
38 actionBar
.setNavigationMode(ActionBar
.NAVIGATION_MODE_TABS
);
39 final ActionBar
.Tab t1
= actionBar
.newTab().setText(this.getString(R
.string
.addevtab1
));
40 final ActionBar
.Tab t2
= actionBar
.newTab().setText(this.getString(R
.string
.addevtab2
));
41 final ActionBar
.Tab t3
= actionBar
.newTab().setText(this.getString(R
.string
.addevtab3
));
43 final Fragment f1
= new TrivialFragment();
44 final Bundle b1
=new Bundle();
45 b1
.putInt(TrivialFragment
.ARGUMENT_LAYOUT
, R
.layout
.add_event_basic_tab
);
46 b1
.putParcelable(TrivialFragment
.ARGUMENT_EVENT
, event
);
49 final Fragment f2
= new TrivialFragment();
50 final Bundle b2
=new Bundle();
51 b2
.putInt(TrivialFragment
.ARGUMENT_LAYOUT
, R
.layout
.add_event_details_tab
);
52 b2
.putParcelable(TrivialFragment
.ARGUMENT_EVENT
, event
);
55 final Fragment f3
= new TrivialFragment();
56 final Bundle b3
=new Bundle();
57 b3
.putInt(TrivialFragment
.ARGUMENT_LAYOUT
, R
.layout
.add_event_other_tab
);
58 b3
.putParcelable(TrivialFragment
.ARGUMENT_EVENT
, event
);
61 t1
.setTabListener(new AddEventTabListener(f1
, event
, 0));
62 t2
.setTabListener(new AddEventTabListener(f2
, event
, 1));
63 t3
.setTabListener(new AddEventTabListener(f3
, event
, 2));
71 public boolean onCreateOptionsMenu(final Menu menu
) {
72 final MenuInflater inflater
= getMenuInflater();
73 inflater
.inflate(R
.menu
.add_event
, menu
);
78 public boolean onOptionsItemSelected(final MenuItem item
) {
79 switch (item
.getItemId()) {
85 Toast toast
= Toast
.makeText(getApplicationContext(),"Event saved!",Toast
.LENGTH_LONG
);
94 public void showDateTimePickerDialog(final View v
) {
95 dateTimeTextView
=(TextView
) v
;
96 if(v
.getId()==R
.id
.date_start
|| v
.getId()==R
.id
.date_end
|| v
.getId() == R
.id
.repeat_until
){
97 final String
[] parts
= dateTimeTextView
.getText().toString().split("-");
98 final DatePickerFragment fragment
= new DatePickerFragment();
99 final Bundle args
= new Bundle();
100 args
.putInt(DatePickerFragment
.ARGUMENT_YEAR
, Integer
.parseInt(parts
[0]));
101 args
.putInt(DatePickerFragment
.ARGUMENT_MONTH
, Integer
.parseInt(parts
[1]));
102 args
.putInt(DatePickerFragment
.ARGUMENT_DAY
, Integer
.parseInt(parts
[2]));
103 fragment
.setArguments(args
);
104 fragment
.show(getFragmentManager(), "datePicker");
106 final String
[] parts
= dateTimeTextView
.getText().toString().split(":");
107 final TimePickerFragment fragment
= new TimePickerFragment();
108 final Bundle args
= new Bundle();
109 args
.putInt(TimePickerFragment
.ARGUMENT_HOUR
, Integer
.parseInt(parts
[0]));
110 args
.putInt(TimePickerFragment
.ARGUMENT_MINUTE
, Integer
.parseInt(parts
[1]));
111 fragment
.setArguments(args
);
112 fragment
.show(getFragmentManager(), "timePicker");
117 public void onTimeSet(final TimePicker picker
, final int hour
, final int minute
) {
118 dateTimeTextView
.setText(String
.format("%02d:%02d",hour
,minute
));
119 if(dateTimeTextView
.getId() == R
.id
.time_start
)
120 ((TextView
)findViewById(R
.id
.time_end
)).setText(String
.format("%2d:%2d",hour
,minute
));
124 public void onDateSet(final DatePicker picker
, final int year
, final int monthOfYear
, final int dayOfMonth
) {
125 final Calendar calendar
=new GregorianCalendar(year
, monthOfYear
, dayOfMonth
);
126 dateTimeTextView
.setText(Utils
.formatDate(year
, monthOfYear
, dayOfMonth
));
127 //calendar.add(Calendar.DAY_OF_MONTH, 1);
128 if(dateTimeTextView
.getId() == R
.id
.date_start
)
129 ((TextView
)findViewById(R
.id
.date_end
)).setText(Utils
.formatDate(calendar
.get(Calendar
.YEAR
), calendar
.get(Calendar
.MONTH
), calendar
.get(Calendar
.DAY_OF_MONTH
)));