Make pickers start at the displayed value
[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 public static final String EXTRA_EVENT = "event";
24
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);
28 c.startActivity(i);
29 }
30
31
32 @Override
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));
42
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);
47 f1.setArguments(b1);
48
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);
53 f2.setArguments(b2);
54
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);
59 f3.setArguments(b3);
60
61 t1.setTabListener(new AddEventTabListener(f1, event, 0));
62 t2.setTabListener(new AddEventTabListener(f2, event, 1));
63 t3.setTabListener(new AddEventTabListener(f3, event, 2));
64
65 actionBar.addTab(t1);
66 actionBar.addTab(t2);
67 actionBar.addTab(t3);
68 }
69
70 @Override
71 public boolean onCreateOptionsMenu(final Menu menu) {
72 final MenuInflater inflater = getMenuInflater();
73 inflater.inflate(R.menu.add_event, menu);
74 return true;
75 }
76
77 @Override
78 public boolean onOptionsItemSelected(final MenuItem item) {
79 switch (item.getItemId()) {
80 case R.id.cancel:
81 finish();
82 return true;
83 case R.id.save:
84 //TODO Save event
85 Toast toast = Toast.makeText(getApplicationContext(),"Event saved!",Toast.LENGTH_LONG);
86 toast.show();
87 finish();
88 return true;
89 default:
90 return false;
91 }
92 }
93
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");
105 } else {
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");
113 }
114 }
115
116 @Override
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));
121 }
122
123 @Override
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)));
130 }
131 }
This page took 0.024641 seconds and 4 git commands to generate.