Changes tabbed layout for adding events into single tab with scrollview
[unical.git] / src / ro / ieval / unical / AddEventActivity.java
CommitLineData
5cf4714f 1package ro.ieval.unical;
7908d49e 2import java.text.SimpleDateFormat;
3dd871ef 3import java.util.Calendar;
7908d49e 4import java.util.Date;
3dd871ef
MG
5import java.util.GregorianCalendar;
6
6d7e08bf 7import android.app.ActionBar;
5cf4714f 8import android.app.Activity;
3dd871ef 9import android.app.DatePickerDialog.OnDateSetListener;
6d7e08bf 10import android.app.Fragment;
3dd871ef 11import android.app.TimePickerDialog.OnTimeSetListener;
ad349897
P
12import android.content.Context;
13import android.content.Intent;
5cf4714f 14import android.os.Bundle;
6d7e08bf
PT
15import android.view.Menu;
16import android.view.MenuInflater;
17import android.view.MenuItem;
e6ba41a8 18import android.view.View;
c32befcc 19import android.widget.*;
3dd871ef
MG
20
21public final class AddEventActivity extends Activity implements OnDateSetListener, OnTimeSetListener{
7908d49e
P
22
23 private class OnCheckedChangeListener implements android.widget.CompoundButton.OnCheckedChangeListener{
24 private final LinearLayout layout;
25 public OnCheckedChangeListener(final LinearLayout layout){
26 this.layout=layout;
27 }
28
29 private class OnItemSelectedListener implements android.widget.AdapterView.OnItemSelectedListener{
30 private final View repeatCount;
31 private final View repeatUntil;
32
33 public OnItemSelectedListener(final View repeatCount, final View repeatUntil) {
34 this.repeatCount=repeatCount;
35 this.repeatUntil=repeatUntil;
36 }
37
38 @Override
39 public void onItemSelected(final AdapterView<?> whatever, final View ignored, final int pos, final long id) {
40 switch(pos){
41 case 0:
42 repeatCount.setVisibility(View.GONE);
43 repeatUntil.setVisibility(View.GONE);
44 break;
45 case 1:
46 repeatCount.setVisibility(View.GONE);
47 repeatUntil.setVisibility(View.VISIBLE);
48 break;
49 case 2:
50 repeatCount.setVisibility(View.VISIBLE);
51 repeatUntil.setVisibility(View.GONE);
52 break;
53 default:
54 }
55 }
56
57 @Override public void onNothingSelected(final AdapterView<?> arg0) { /* do nothing */ }
58 }
59
60 @Override
61 public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
62 if(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)));
66 }else {
67 Utils.setEnabledRecursively(layout, false);
68 }
69 }
70 }
71
3dd871ef 72 private TextView dateTimeTextView;
ad349897 73 public static final String EXTRA_EVENT = "event";
7908d49e 74 private Event event;
ad349897
P
75
76 public static void editEvent(final Context c, final Event e) {
d431c81c 77 final Intent i = new Intent(c,AddEventActivity.class);
ad349897
P
78 i.putExtra(AddEventActivity.EXTRA_EVENT,e);
79 c.startActivity(i);
80 }
81
5cf4714f 82
5cf4714f
MG
83 @Override
84 protected void onCreate(final Bundle savedInstanceState) {
85 super.onCreate(savedInstanceState);
f2e460f4 86 setTitle(R.string.add_event_title);
7908d49e 87 event = getIntent().hasExtra(EXTRA_EVENT) ? (Event) getIntent().getParcelableExtra(EXTRA_EVENT) : new Event();
724f9857 88 final ActionBar actionBar = getActionBar();
7908d49e
P
89 setContentView(R.layout.add_event);
90
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);
95
96 repeatSwitch.setOnCheckedChangeListener(new OnCheckedChangeListener(layout));
97
98 EditText title = (EditText) findViewById(R.id.eventtitle);
99 title.setText(event.title);
100
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());
108
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);
118 }
2821d13f
PT
119 }
120
6d7e08bf
PT
121 @Override
122 public boolean onCreateOptionsMenu(final Menu menu) {
123 final MenuInflater inflater = getMenuInflater();
124 inflater.inflate(R.menu.add_event, menu);
125 return true;
126 }
070d3ab2 127
6d7e08bf
PT
128 @Override
129 public boolean onOptionsItemSelected(final MenuItem item) {
130 switch (item.getItemId()) {
131 case R.id.cancel:
132 finish();
133 return true;
412b2d69 134 case R.id.save:
7908d49e
P
135 System.out.println("MuieLaComisie\n"+event.title);
136
c32befcc
P
137 Toast toast = Toast.makeText(getApplicationContext(),"Event saved!",Toast.LENGTH_LONG);
138 toast.show();
139 finish();
412b2d69 140 return true;
6d7e08bf
PT
141 default:
142 return false;
143 }
5cf4714f 144 }
070d3ab2 145
412b2d69 146 public void showDateTimePickerDialog(final View v) {
3dd871ef 147 dateTimeTextView=(TextView) v;
e4fb15ad
MG
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");
157 } else {
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");
165 }
3dd871ef
MG
166 }
167
168 @Override
169 public void onTimeSet(final TimePicker picker, final int hour, final int minute) {
66307122 170 dateTimeTextView.setText(String.format("%02d:%02d",hour,minute));
3dd871ef
MG
171 if(dateTimeTextView.getId() == R.id.time_start)
172 ((TextView)findViewById(R.id.time_end)).setText(String.format("%2d:%2d",hour,minute));
173 }
174
175 @Override
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);
dfc674f6 178 dateTimeTextView.setText(Utils.formatDate(year, monthOfYear, dayOfMonth));
5835912b 179 //calendar.add(Calendar.DAY_OF_MONTH, 1);
3dd871ef 180 if(dateTimeTextView.getId() == R.id.date_start)
dfc674f6 181 ((TextView)findViewById(R.id.date_end)).setText(Utils.formatDate(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)));
e6ba41a8 182 }
5cf4714f 183}
This page took 0.028192 seconds and 4 git commands to generate.