Edit event. Fragment no longer takes arguments in constructor
[unical.git] / src / ro / ieval / unical / AddEventActivity.java
1 package ro.ieval.unical;
2 import java.util.Calendar;
3 import java.util.GregorianCalendar;
4
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.*;
18
19 //TODO if i want to add a new event after i edit one the fields are being filled with the last event data
20
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;
26
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);
30 tempEvent=e;
31 c.startActivity(i);
32 }
33
34
35 @Override
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));
44
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);
49 f1.setArguments(b1);
50
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);
55 f2.setArguments(b2);
56
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);
61 f3.setArguments(b3);
62
63 t1.setTabListener(new AddEventTabListener(f1,tempEvent,0));
64 t2.setTabListener(new AddEventTabListener(f2,tempEvent,1));
65 t3.setTabListener(new AddEventTabListener(f3,tempEvent,2));
66
67 actionBar.addTab(t1);
68 actionBar.addTab(t2);
69 actionBar.addTab(t3);
70 }
71
72 @Override
73 public boolean onCreateOptionsMenu(final Menu menu) {
74 final MenuInflater inflater = getMenuInflater();
75 inflater.inflate(R.menu.add_event, menu);
76 return true;
77 }
78
79 @Override
80 public boolean onOptionsItemSelected(final MenuItem item) {
81 switch (item.getItemId()) {
82 case R.id.cancel:
83 finish();
84 return true;
85 case R.id.save:
86 //TODO Save event
87 Toast toast = Toast.makeText(getApplicationContext(),"Event saved!",Toast.LENGTH_LONG);
88 toast.show();
89 finish();
90 return true;
91 default:
92 return false;
93 }
94 }
95
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");
100 else
101 new TimePickerFragment().show(getFragmentManager(), "timePicker");
102 }
103
104 @Override
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));
109 }
110
111 @Override
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)));
118 }
119 }
This page took 0.025039 seconds and 4 git commands to generate.