diff --git a/MyTracks/AndroidManifest.xml b/MyTracks/AndroidManifest.xml
index 9ebba63d8..a1d293b57 100755
--- a/MyTracks/AndroidManifest.xml
+++ b/MyTracks/AndroidManifest.xml
@@ -66,7 +66,7 @@ limitations under the License.
-
diff --git a/MyTracks/res/layout/mytracks_detail.xml b/MyTracks/res/layout/mytracks_detail.xml
deleted file mode 100644
index ceab4e7eb..000000000
--- a/MyTracks/res/layout/mytracks_detail.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/MyTracks/res/layout/track_detail.xml b/MyTracks/res/layout/track_detail.xml
new file mode 100644
index 000000000..99bd657b2
--- /dev/null
+++ b/MyTracks/res/layout/track_detail.xml
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MyTracks/src/com/google/android/apps/mytracks/MapActivity.java b/MyTracks/src/com/google/android/apps/mytracks/MapActivity.java
index 1d2319f89..a78d59c55 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/MapActivity.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/MapActivity.java
@@ -420,9 +420,8 @@ public class MapActivity extends com.google.android.maps.MapActivity
Constants.getActionFromMenuId(item.getItemId()));
return true;
case Constants.MENU_EDIT: {
- Intent intent = new Intent(this, TrackDetails.class);
- // TODO: Pass in a content URI
- intent.putExtra("trackid", dataHub.getSelectedTrackId());
+ Intent intent = new Intent(this, TrackDetail.class);
+ intent.putExtra(TrackDetail.TRACK_ID, dataHub.getSelectedTrackId());
startActivity(intent);
return true;
}
diff --git a/MyTracks/src/com/google/android/apps/mytracks/MyTracks.java b/MyTracks/src/com/google/android/apps/mytracks/MyTracks.java
index a183fd062..88a5a175e 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/MyTracks.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/MyTracks.java
@@ -474,9 +474,9 @@ public class MyTracks extends TabActivity implements OnTouchListener {
serviceConnection.stop();
if (currentTrackId > 0) {
- Intent intent = new Intent(MyTracks.this, TrackDetails.class);
- intent.putExtra("trackid", currentTrackId);
- intent.putExtra("hasCancelButton", false);
+ Intent intent = new Intent(MyTracks.this, TrackDetail.class);
+ intent.putExtra(TrackDetail.TRACK_ID, currentTrackId);
+ intent.putExtra(TrackDetail.SHOW_CANCEL, false);
startActivity(intent);
}
}
diff --git a/MyTracks/src/com/google/android/apps/mytracks/TrackDetail.java b/MyTracks/src/com/google/android/apps/mytracks/TrackDetail.java
new file mode 100644
index 000000000..e44094ae7
--- /dev/null
+++ b/MyTracks/src/com/google/android/apps/mytracks/TrackDetail.java
@@ -0,0 +1,119 @@
+/*
+ * Copyright 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.google.android.apps.mytracks;
+
+import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
+import com.google.android.apps.mytracks.content.Track;
+import com.google.android.maps.mytracks.R;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.ArrayAdapter;
+import android.widget.AutoCompleteTextView;
+import android.widget.Button;
+import android.widget.EditText;
+
+/**
+ * An activity that let's the user see and edit the user editable track meta
+ * data such as track name, activity type, and track description.
+ *
+ * @author Leif Hendrik Wilden
+ */
+public class TrackDetail extends Activity implements OnClickListener {
+
+ public static final String TRACK_ID = "trackId";
+ public static final String SHOW_CANCEL = "showCancel";
+
+ private static final String TAG = TrackDetail.class.getSimpleName();
+
+ private Long trackId;
+ private MyTracksProviderUtils myTracksProviderUtils;
+ private Track track;
+
+ private EditText trackName;
+ private AutoCompleteTextView activityType;
+ private EditText trackDescription;
+
+ @Override
+ protected void onCreate(Bundle bundle) {
+ super.onCreate(bundle);
+ setContentView(R.layout.track_detail);
+
+ trackId = getIntent().getLongExtra(TRACK_ID, -1);
+ if (trackId < 0) {
+ Log.e(TAG, "invalid trackId.");
+ finish();
+ return;
+ }
+
+ myTracksProviderUtils = MyTracksProviderUtils.Factory.get(this);
+
+ track = myTracksProviderUtils.getTrack(trackId);
+ if (track == null) {
+ Log.e(TAG, "no track.");
+ finish();
+ return;
+ }
+
+ trackName = (EditText) findViewById(R.id.track_detail_track_name);
+ trackName.setText(track.getName());
+
+ activityType = (AutoCompleteTextView) findViewById(R.id.track_detail_activity_type);
+ activityType.setText(track.getCategory());
+
+ ArrayAdapter adapter = ArrayAdapter.createFromResource(
+ this, R.array.activity_types, android.R.layout.simple_dropdown_item_1line);
+ activityType.setAdapter(adapter);
+ trackDescription = (EditText) findViewById(R.id.track_detail_track_description);
+ trackDescription.setText(track.getDescription());
+
+ Button save = (Button) findViewById(R.id.track_detail_save);
+ save.setOnClickListener(this);
+
+ Button cancel = (Button) findViewById(R.id.track_detail_cancel);
+ if (getIntent().getBooleanExtra(SHOW_CANCEL, true)) {
+ cancel.setOnClickListener(this);
+ cancel.setVisibility(View.VISIBLE);
+ } else {
+ cancel.setVisibility(View.INVISIBLE);
+ }
+ }
+
+ @Override
+ public void onClick(View view) {
+ switch (view.getId()) {
+ case R.id.track_detail_save:
+ save();
+ finish();
+ break;
+ case R.id.track_detail_cancel:
+ finish();
+ break;
+ default:
+ finish();
+ }
+ }
+
+ private void save() {
+ track.setName(trackName.getText().toString());
+ track.setCategory(activityType.getText().toString());
+ track.setDescription(trackDescription.getText().toString());
+ myTracksProviderUtils.updateTrack(track);
+ }
+}
diff --git a/MyTracks/src/com/google/android/apps/mytracks/TrackDetails.java b/MyTracks/src/com/google/android/apps/mytracks/TrackDetails.java
deleted file mode 100644
index b7d804291..000000000
--- a/MyTracks/src/com/google/android/apps/mytracks/TrackDetails.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright 2008 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.google.android.apps.mytracks;
-
-import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
-import com.google.android.apps.mytracks.content.Track;
-import com.google.android.apps.mytracks.content.TracksColumns;
-import com.google.android.maps.mytracks.R;
-
-import android.app.Activity;
-import android.content.ContentValues;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.ArrayAdapter;
-import android.widget.AutoCompleteTextView;
-import android.widget.Button;
-import android.widget.EditText;
-
-/**
- * An activity that let's the user see and edit the user editable track meta
- * data such as name, activity type and description.
- *
- * @author Leif Hendrik Wilden
- */
-public class TrackDetails extends Activity implements OnClickListener {
-
- /**
- * The id of the track being edited (taken from bundle, "trackid")
- */
- private Long trackId;
-
- private EditText name;
- private EditText description;
- private AutoCompleteTextView category;
-
- @Override
- protected void onCreate(Bundle bundle) {
- super.onCreate(bundle);
- setContentView(R.layout.mytracks_detail);
-
- // Required extra when launching this intent:
- trackId = getIntent().getLongExtra("trackid", -1);
- if (trackId < 0) {
- Log.d(Constants.TAG,
- "MyTracksDetails intent was launched w/o track id.");
- finish();
- return;
- }
-
- // Optional extra that can be used to suppress the cancel button:
- boolean hasCancelButton =
- getIntent().getBooleanExtra("hasCancelButton", true);
-
- name = (EditText) findViewById(R.id.trackdetails_name);
- description = (EditText) findViewById(R.id.trackdetails_description);
- category = (AutoCompleteTextView) findViewById(R.id.trackdetails_category);
- ArrayAdapter adapter = ArrayAdapter.createFromResource(
- this,
- R.array.activity_types,
- android.R.layout.simple_dropdown_item_1line);
- category.setAdapter(adapter);
-
- Button cancel = (Button) findViewById(R.id.trackdetails_cancel);
- if (hasCancelButton) {
- cancel.setOnClickListener(this);
- cancel.setVisibility(View.VISIBLE);
- } else {
- cancel.setVisibility(View.INVISIBLE);
- }
- Button save = (Button) findViewById(R.id.trackdetails_save);
- save.setOnClickListener(this);
-
- fillDialog();
- }
-
- private void fillDialog() {
- Track track = MyTracksProviderUtils.Factory.get(this).getTrack(trackId);
- if (track != null) {
- name.setText(track.getName());
- description.setText(track.getDescription());
- category.setText(track.getCategory());
- }
- }
-
- private void saveDialog() {
- ContentValues values = new ContentValues();
- values.put(TracksColumns.NAME, name.getText().toString());
- values.put(TracksColumns.DESCRIPTION, description.getText().toString());
- values.put(TracksColumns.CATEGORY, category.getText().toString());
- getContentResolver().update(
- TracksColumns.CONTENT_URI,
- values,
- "_id = " + trackId,
- null/*selectionArgs*/);
- }
-
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.trackdetails_cancel:
- finish();
- break;
- case R.id.trackdetails_save:
- saveDialog();
- finish();
- break;
- }
- }
-}
diff --git a/MyTracks/src/com/google/android/apps/mytracks/TrackList.java b/MyTracks/src/com/google/android/apps/mytracks/TrackList.java
index 30ff06b94..d0209f535 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/TrackList.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/TrackList.java
@@ -167,8 +167,8 @@ public class TrackList extends ListActivity
return true;
}
case Constants.MENU_EDIT: {
- Intent intent = new Intent(this, TrackDetails.class);
- intent.putExtra("trackid", trackId);
+ Intent intent = new Intent(this, TrackDetail.class);
+ intent.putExtra(TrackDetail.TRACK_ID, trackId);
startActivity(intent);
return true;
}