77import android .view .Menu ;
88import android .view .MenuInflater ;
99import android .view .MenuItem ;
10+ import android .view .View ;
11+ import android .widget .AdapterView ;
1012import android .widget .ListView ;
1113import android .widget .Toast ;
1214
2325import io .kristal .events .R ;
2426import io .kristal .events .detail .CreateActivity ;
2527import io .kristal .events .detail .DetailActivity ;
28+ import io .kristal .events .detail .EditActivity ;
2629import io .kristal .events .model .Event ;
2730import io .kristal .events .model .EventsList ;
2831
@@ -43,7 +46,15 @@ protected void onCreate(Bundle savedInstanceState) {
4346
4447 ListView listView = findViewById (android .R .id .list );
4548 listView .setAdapter (mAdapter );
46- // TODO: set OnItemClickListener on listView and start EditActivity passing the event
49+ listView .setOnItemClickListener (new AdapterView .OnItemClickListener () {
50+
51+ @ Override
52+ public void onItemClick (AdapterView <?> parent , View view , int position , long id ) {
53+ Intent intent = new Intent (MainActivity .this , EditActivity .class );
54+ intent .putExtra (DetailActivity .EXTRA_EVENT , mAdapter .getItem (position ));
55+ startActivityForResult (intent , 0 );
56+ }
57+ });
4758
4859 if (savedInstanceState == null ) {
4960 reset ();
@@ -75,14 +86,27 @@ public boolean onOptionsItemSelected(MenuItem item) {
7586
7687 @ Override
7788 protected void onActivityResult (int requestCode , int resultCode , Intent data ) {
78- // TODO: retrieve the edited event & edit it instead of adding it
79- if (requestCode == 0
80- && resultCode == CreateActivity .RESULT_CREATED ) {
81- Event event = data .getParcelableExtra (DetailActivity .EXTRA_EVENT );
82- EventsList .addEvent (event );
83- reload ();
89+ boolean handled = false ;
90+
91+ if (requestCode == 0 ) {
92+ Event event ;
93+ switch (resultCode ) {
94+ case CreateActivity .RESULT_CREATED :
95+ event = data .getParcelableExtra (DetailActivity .EXTRA_EVENT );
96+ EventsList .addEvent (event );
97+ reload ();
98+ handled = true ;
99+ break ;
100+ case EditActivity .RESULT_EDITED :
101+ event = data .getParcelableExtra (DetailActivity .EXTRA_EVENT );
102+ EventsList .editEvent (event );
103+ reload ();
104+ handled = true ;
105+ break ;
106+ }
84107 }
85- else {
108+
109+ if (! handled ) {
86110 super .onActivityResult (requestCode , resultCode , data );
87111 }
88112 }
0 commit comments