diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b1371c0..e6396f2 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -46,13 +46,16 @@
-
+
@@ -60,6 +63,9 @@
+
, CreateNfcAppDataCallback {
@@ -74,21 +73,27 @@ public class EventDetailsActivity extends ActionBarActivity implements LoaderCal
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
- case android.R.id.home:
- // Navigate up to the track associated to this event
- Intent upIntent = new Intent(this, TrackScheduleActivity.class);
- upIntent.putExtra(TrackScheduleActivity.EXTRA_DAY, event.getDay());
- upIntent.putExtra(TrackScheduleActivity.EXTRA_TRACK, event.getTrack());
- upIntent.putExtra(TrackScheduleActivity.EXTRA_FROM_EVENT_ID, event.getId());
- upIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+ case android.R.id.home:
+ // Navigate up to the track associated with this event
+ Intent upIntent = new Intent(this, TrackScheduleActivity.class);
+ upIntent.putExtra(TrackScheduleActivity.EXTRA_DAY, event.getDay());
+ upIntent.putExtra(TrackScheduleActivity.EXTRA_TRACK, event.getTrack());
+ upIntent.putExtra(TrackScheduleActivity.EXTRA_FROM_EVENT_ID, event.getId());
- finish();
- if (NavUtils.shouldUpRecreateTask(this, upIntent)) {
- TaskStackBuilder.create(this).addNextIntent(new Intent(this, MainActivity.class)).addNextIntent(upIntent).startActivities();
- } else {
- startActivity(upIntent);
- }
- return true;
+ if (NavUtils.shouldUpRecreateTask(this, upIntent)) {
+ TaskStackBuilder.create(this)
+ .addNextIntentWithParentStack(upIntent)
+ .startActivities();
+ finish();
+ } else {
+ // Replicate the compatibility implementation of NavUtils.navigateUpTo()
+ // to ensure the parent Activity is always launched
+ // even if not present on the back stack.
+ upIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+ startActivity(upIntent);
+ finish();
+ }
+ return true;
}
return false;
}