Make pickers start at the displayed value
[unical.git] / src / ro / ieval / unical / AddEventActivity.java
index 0bc8691e8e33a1f08ac1f8fb5643bcaf60f2ac9d..512b6895e786523fc597a19e88c6f6ddfc1cdc94 100644 (file)
@@ -16,16 +16,15 @@ import android.view.MenuItem;
 import android.view.View;
 import android.widget.*;
 
+//TODO if i want to add a new event after i edit one the fields are being filled with the last event data
+
 public final class AddEventActivity extends Activity implements OnDateSetListener, OnTimeSetListener{
        private TextView dateTimeTextView;
-    private static Event tempEvent=new Event();
     public static final String EXTRA_EVENT = "event";
-    private static Fragment f1,f2,f3;
 
     public static void editEvent(final Context c, final Event e) {
-        Intent i = new Intent(c,AddEventActivity.class);
+        final Intent i = new Intent(c,AddEventActivity.class);
         i.putExtra(AddEventActivity.EXTRA_EVENT,e);
-        tempEvent=e;
         c.startActivity(i);
     }
 
@@ -34,30 +33,34 @@ public final class AddEventActivity extends Activity implements OnDateSetListene
        protected void onCreate(final Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setTitle(R.string.add_event_title);
+               final Event event = getIntent().hasExtra(EXTRA_EVENT) ? (Event) getIntent().getParcelableExtra(EXTRA_EVENT) : new Event();
                final ActionBar actionBar = getActionBar();
                actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
                final ActionBar.Tab t1 = actionBar.newTab().setText(this.getString(R.string.addevtab1));
                final ActionBar.Tab t2 = actionBar.newTab().setText(this.getString(R.string.addevtab2));
                final ActionBar.Tab t3 = actionBar.newTab().setText(this.getString(R.string.addevtab3));
 
-               f1 = new TrivialFragment(tempEvent);
+               final Fragment f1 = new TrivialFragment();
                final Bundle b1=new Bundle();
                b1.putInt(TrivialFragment.ARGUMENT_LAYOUT, R.layout.add_event_basic_tab);
+        b1.putParcelable(TrivialFragment.ARGUMENT_EVENT, event);
                f1.setArguments(b1);
 
-               f2 = new TrivialFragment(tempEvent);
+               final Fragment f2 = new TrivialFragment();
                final Bundle b2=new Bundle();
                b2.putInt(TrivialFragment.ARGUMENT_LAYOUT, R.layout.add_event_details_tab);
+        b2.putParcelable(TrivialFragment.ARGUMENT_EVENT, event);
                f2.setArguments(b2);
 
-               f3 = new TrivialFragment(tempEvent);
+               final Fragment f3 = new TrivialFragment();
                final Bundle b3=new Bundle();
                b3.putInt(TrivialFragment.ARGUMENT_LAYOUT, R.layout.add_event_other_tab);
+        b3.putParcelable(TrivialFragment.ARGUMENT_EVENT, event);
                f3.setArguments(b3);
 
-               t1.setTabListener(new AddEventTabListener(f1,tempEvent,0));
-               t2.setTabListener(new AddEventTabListener(f2,tempEvent,1));
-               t3.setTabListener(new AddEventTabListener(f3,tempEvent,2));
+               t1.setTabListener(new AddEventTabListener(f1, event, 0));
+               t2.setTabListener(new AddEventTabListener(f2, event, 1));
+               t3.setTabListener(new AddEventTabListener(f3, event, 2));
 
                actionBar.addTab(t1);
                actionBar.addTab(t2);
@@ -90,10 +93,24 @@ public final class AddEventActivity extends Activity implements OnDateSetListene
 
     public void showDateTimePickerDialog(final View v) {
                dateTimeTextView=(TextView) v;
-               if(v.getId()==R.id.date_start || v.getId()==R.id.date_end || v.getId() == R.id.repeat_until)
-                       new DatePickerFragment().show(getFragmentManager(), "datePicker");
-               else
-                       new TimePickerFragment().show(getFragmentManager(), "timePicker");
+               if(v.getId()==R.id.date_start || v.getId()==R.id.date_end || v.getId() == R.id.repeat_until){
+                       final String[] parts = dateTimeTextView.getText().toString().split("-");
+                       final DatePickerFragment fragment = new DatePickerFragment();
+                       final Bundle args = new Bundle();
+                       args.putInt(DatePickerFragment.ARGUMENT_YEAR, Integer.parseInt(parts[0]));
+                       args.putInt(DatePickerFragment.ARGUMENT_MONTH, Integer.parseInt(parts[1]));
+                       args.putInt(DatePickerFragment.ARGUMENT_DAY, Integer.parseInt(parts[2]));
+                       fragment.setArguments(args);
+                       fragment.show(getFragmentManager(), "datePicker");
+               } else {
+                       final String[] parts = dateTimeTextView.getText().toString().split(":");
+                       final TimePickerFragment fragment = new TimePickerFragment();
+                       final Bundle args = new Bundle();
+                       args.putInt(TimePickerFragment.ARGUMENT_HOUR, Integer.parseInt(parts[0]));
+                       args.putInt(TimePickerFragment.ARGUMENT_MINUTE, Integer.parseInt(parts[1]));
+                       fragment.setArguments(args);
+                       fragment.show(getFragmentManager(), "timePicker");
+               }
        }
 
        @Override
This page took 0.010616 seconds and 4 git commands to generate.