Skip to content

Commit 93d6586

Browse files
author
Sébastien Vitard
committed
Step-3 done
1 parent 23d8a67 commit 93d6586

3 files changed

Lines changed: 58 additions & 11 deletions

File tree

‎app/src/main/java/io/kristal/events/detail/DetailFragment.java‎

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,15 @@ public final class DetailFragment extends Fragment implements DatePickerDialog.O
3737
private EditText mEditDate;
3838
private EditText mEditPlace;
3939

40-
// TODO: override onCreate to retrieve the event
40+
@Override
41+
public void onCreate(@Nullable Bundle savedInstanceState) {
42+
super.onCreate(savedInstanceState);
43+
44+
Bundle args = getArguments();
45+
if (args != null) {
46+
mEvent = args.getParcelable(DetailActivity.EXTRA_EVENT);
47+
}
48+
}
4149

4250
@Override
4351
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
@@ -63,7 +71,11 @@ public void onClick(View v) {
6371
}
6472
});
6573

66-
// TODO: set EditText values if not null
74+
if (mEvent != null) {
75+
mEditTitle.setText(mEvent.getTitle());
76+
mEditPlace.setText(mEvent.getPlace());
77+
mEditDate.setText(sDateFormat.format(mEvent.getDate()));
78+
}
6779

6880
return view;
6981
}

‎app/src/main/java/io/kristal/events/detail/EditActivity.java‎

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package io.kristal.events.detail;
22

33
import android.content.Intent;
4+
import android.os.Bundle;
5+
import android.support.v4.app.Fragment;
46
import android.widget.Toast;
57

68
import io.kristal.events.R;
@@ -13,8 +15,17 @@
1315
public final class EditActivity extends DetailActivity {
1416

1517
public static final int RESULT_EDITED = -2;
18+
19+
@Override
20+
public void onAttachFragment(Fragment fragment) {
21+
super.onAttachFragment(fragment);
1622

17-
// TODO: override onAttachFragment and pass the event to the DetailFragment
23+
if (fragment instanceof DetailFragment) {
24+
Bundle bundle = new Bundle(1);
25+
bundle.putParcelable(EXTRA_EVENT, getIntent().getParcelableExtra(EXTRA_EVENT));
26+
fragment.setArguments(bundle);
27+
}
28+
}
1829

1930
@Override
2031
protected void onCheckOptionsItemSelected() {

‎app/src/main/java/io/kristal/events/main/MainActivity.java‎

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import android.view.Menu;
88
import android.view.MenuInflater;
99
import android.view.MenuItem;
10+
import android.view.View;
11+
import android.widget.AdapterView;
1012
import android.widget.ListView;
1113
import android.widget.Toast;
1214

@@ -23,6 +25,7 @@
2325
import io.kristal.events.R;
2426
import io.kristal.events.detail.CreateActivity;
2527
import io.kristal.events.detail.DetailActivity;
28+
import io.kristal.events.detail.EditActivity;
2629
import io.kristal.events.model.Event;
2730
import 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

Comments
 (0)