diff --git a/MyTracks/src/com/google/android/apps/mytracks/AbstractMyTracksActivity.java b/MyTracks/src/com/google/android/apps/mytracks/AbstractMyTracksActivity.java new file mode 100644 index 000000000..88d9786df --- /dev/null +++ b/MyTracks/src/com/google/android/apps/mytracks/AbstractMyTracksActivity.java @@ -0,0 +1,55 @@ +/* + * Copyright 2012 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.util.ApiAdapterFactory; + +import android.os.Bundle; +import android.speech.tts.TextToSpeech; +import android.support.v4.app.FragmentActivity; +import android.view.MenuItem; + +/** + * An abstract class for all My Tracks activities. + * + * @author Jimmy Shih + */ +public class AbstractMyTracksActivity extends FragmentActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setVolumeControlStream(TextToSpeech.Engine.DEFAULT_STREAM); + ApiAdapterFactory.getApiAdapter().configureActionBarHomeAsUp(this); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + if (item.getItemId() != android.R.id.home) { + return false; + } + onHomeSelected(); + return true; + } + + /** + * Callback when the home menu item is selected. + */ + protected void onHomeSelected() { + finish(); + } +} diff --git a/MyTracks/src/com/google/android/apps/mytracks/AggregatedStatsActivity.java b/MyTracks/src/com/google/android/apps/mytracks/AggregatedStatsActivity.java index 895e7c3c0..f2e6710de 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/AggregatedStatsActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/AggregatedStatsActivity.java @@ -19,18 +19,12 @@ 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.stats.TripStatistics; -import com.google.android.apps.mytracks.util.ApiAdapterFactory; -import com.google.android.apps.mytracks.util.IntentUtils; import com.google.android.apps.mytracks.util.StatsUtils; import com.google.android.maps.mytracks.R; -import android.app.Activity; import android.content.Context; -import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; -import android.speech.tts.TextToSpeech; -import android.view.MenuItem; import java.util.List; @@ -39,13 +33,11 @@ import java.util.List; * * @author Fergus Nelson */ -public class AggregatedStatsActivity extends Activity { +public class AggregatedStatsActivity extends AbstractMyTracksActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setVolumeControlStream(TextToSpeech.Engine.DEFAULT_STREAM); - ApiAdapterFactory.getApiAdapter().configureActionBarHomeAsUp(this); setContentView(R.layout.aggregated_stats); SharedPreferences preferences = getSharedPreferences( @@ -58,16 +50,6 @@ public class AggregatedStatsActivity extends Activity { StatsUtils.setLocationElevationValue(this, Double.NaN, metricUnits); } - @Override - public boolean onOptionsItemSelected(MenuItem item) { - if (item.getItemId() != android.R.id.home) { - return false; - } - Intent intent = IntentUtils.newIntent(this, TrackListActivity.class); - startActivity(intent); - return true; - } - /** * Gets the aggregated trip statistics for all the recorded tracks or null if * there is no track. diff --git a/MyTracks/src/com/google/android/apps/mytracks/HelpActivity.java b/MyTracks/src/com/google/android/apps/mytracks/HelpActivity.java index 979af433a..877f6f693 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/HelpActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/HelpActivity.java @@ -17,15 +17,9 @@ package com.google.android.apps.mytracks; import com.google.android.apps.mytracks.fragments.AboutDialogFragment; -import com.google.android.apps.mytracks.util.ApiAdapterFactory; -import com.google.android.apps.mytracks.util.IntentUtils; import com.google.android.maps.mytracks.R; -import android.content.Intent; import android.os.Bundle; -import android.speech.tts.TextToSpeech; -import android.support.v4.app.FragmentActivity; -import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; @@ -34,13 +28,11 @@ import android.view.View.OnClickListener; * * @author Sandor Dornbush */ -public class HelpActivity extends FragmentActivity { +public class HelpActivity extends AbstractMyTracksActivity { @Override - public void onCreate(Bundle savedInstanceState) { + protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setVolumeControlStream(TextToSpeech.Engine.DEFAULT_STREAM); - ApiAdapterFactory.getApiAdapter().configureActionBarHomeAsUp(this); setContentView(R.layout.help); findViewById(R.id.help_ok).setOnClickListener(new OnClickListener() { @@ -55,14 +47,4 @@ public class HelpActivity extends FragmentActivity { } }); } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - if (item.getItemId() != android.R.id.home) { - return false; - } - Intent intent = IntentUtils.newIntent(this, TrackListActivity.class); - startActivity(intent); - return true; - } } diff --git a/MyTracks/src/com/google/android/apps/mytracks/MarkerDetailActivity.java b/MyTracks/src/com/google/android/apps/mytracks/MarkerDetailActivity.java index 0af537c34..88ded474b 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/MarkerDetailActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/MarkerDetailActivity.java @@ -19,7 +19,6 @@ package com.google.android.apps.mytracks; import com.google.android.apps.mytracks.content.MyTracksProviderUtils; import com.google.android.apps.mytracks.content.Waypoint; import com.google.android.apps.mytracks.fragments.DeleteOneMarkerDialogFragment; -import com.google.android.apps.mytracks.util.ApiAdapterFactory; import com.google.android.apps.mytracks.util.IntentUtils; import com.google.android.apps.mytracks.util.StatsUtils; import com.google.android.maps.mytracks.R; @@ -28,8 +27,6 @@ import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; -import android.speech.tts.TextToSpeech; -import android.support.v4.app.FragmentActivity; import android.util.Log; import android.view.Menu; import android.view.MenuItem; @@ -41,7 +38,7 @@ import android.widget.TextView; * * @author Leif Hendrik Wilden */ -public class MarkerDetailActivity extends FragmentActivity { +public class MarkerDetailActivity extends AbstractMyTracksActivity { public static final String EXTRA_MARKER_ID = "marker_id"; private static final String TAG = MarkerDetailActivity.class.getSimpleName(); @@ -52,8 +49,6 @@ public class MarkerDetailActivity extends FragmentActivity { @Override protected void onCreate(Bundle bundle) { super.onCreate(bundle); - setVolumeControlStream(TextToSpeech.Engine.DEFAULT_STREAM); - ApiAdapterFactory.getApiAdapter().configureActionBarHomeAsUp(this); setContentView(R.layout.marker_detail); markerId = getIntent().getLongExtra(EXTRA_MARKER_ID, -1L); @@ -105,15 +100,17 @@ public class MarkerDetailActivity extends FragmentActivity { return true; } + @Override + protected void onHomeSelected() { + Intent intent = IntentUtils.newIntent(this, MarkerListActivity.class) + .putExtra(MarkerListActivity.EXTRA_TRACK_ID, waypoint.getTrackId()); + startActivity(intent); + } + @Override public boolean onOptionsItemSelected(MenuItem item) { Intent intent; switch (item.getItemId()) { - case android.R.id.home: - intent = IntentUtils.newIntent(this, MarkerListActivity.class) - .putExtra(MarkerListActivity.EXTRA_TRACK_ID, waypoint.getTrackId()); - startActivity(intent); - return true; case R.id.marker_detail_show_on_map: intent = IntentUtils.newIntent(this, TrackDetailActivity.class) .putExtra(TrackDetailActivity.EXTRA_MARKER_ID, markerId); diff --git a/MyTracks/src/com/google/android/apps/mytracks/MarkerEditActivity.java b/MyTracks/src/com/google/android/apps/mytracks/MarkerEditActivity.java index 5982824ce..f11b11571 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/MarkerEditActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/MarkerEditActivity.java @@ -22,16 +22,12 @@ import com.google.android.apps.mytracks.content.WaypointCreationRequest; import com.google.android.apps.mytracks.content.WaypointCreationRequest.WaypointType; import com.google.android.apps.mytracks.services.ITrackRecordingService; import com.google.android.apps.mytracks.services.TrackRecordingServiceConnection; -import com.google.android.apps.mytracks.util.ApiAdapterFactory; import com.google.android.apps.mytracks.util.TrackRecordingServiceConnectionUtils; import com.google.android.maps.mytracks.R; -import android.app.Activity; import android.os.Bundle; import android.os.RemoteException; -import android.speech.tts.TextToSpeech; import android.util.Log; -import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.view.inputmethod.EditorInfo; @@ -47,7 +43,7 @@ import android.widget.Toast; * * @author Jimmy Shih */ -public class MarkerEditActivity extends Activity { +public class MarkerEditActivity extends AbstractMyTracksActivity { private static final String TAG = MarkerEditActivity.class.getSimpleName(); @@ -69,8 +65,6 @@ public class MarkerEditActivity extends Activity { @Override protected void onCreate(Bundle bundle) { super.onCreate(bundle); - setVolumeControlStream(TextToSpeech.Engine.DEFAULT_STREAM); - ApiAdapterFactory.getApiAdapter().configureActionBarHomeAsUp(this); setContentView(R.layout.marker_edit); markerId = getIntent().getLongExtra(EXTRA_MARKER_ID, -1L); @@ -172,15 +166,6 @@ public class MarkerEditActivity extends Activity { trackRecordingServiceConnection.unbind(); } - @Override - public boolean onOptionsItemSelected(MenuItem item) { - if (item.getItemId() != android.R.id.home) { - return false; - } - finish(); - return true; - } - /** * Adds a marker. */ diff --git a/MyTracks/src/com/google/android/apps/mytracks/MarkerListActivity.java b/MyTracks/src/com/google/android/apps/mytracks/MarkerListActivity.java index c56605259..e590ed8ca 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/MarkerListActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/MarkerListActivity.java @@ -33,8 +33,6 @@ import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.database.Cursor; import android.os.Bundle; -import android.speech.tts.TextToSpeech; -import android.support.v4.app.FragmentActivity; import android.support.v4.app.LoaderManager.LoaderCallbacks; import android.support.v4.content.CursorLoader; import android.support.v4.content.Loader; @@ -56,7 +54,7 @@ import android.widget.ListView; * * @author Leif Hendrik Wilden */ -public class MarkerListActivity extends FragmentActivity { +public class MarkerListActivity extends AbstractMyTracksActivity { public static final String EXTRA_TRACK_ID = "track_id"; @@ -111,9 +109,7 @@ public class MarkerListActivity extends FragmentActivity { return; } - setVolumeControlStream(TextToSpeech.Engine.DEFAULT_STREAM); setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL); - ApiAdapterFactory.getApiAdapter().configureActionBarHomeAsUp(this); setContentView(R.layout.marker_list); SharedPreferences sharedPreferences = getSharedPreferences( @@ -198,9 +194,6 @@ public class MarkerListActivity extends FragmentActivity { @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { - case android.R.id.home: - finish(); - return true; case R.id.marker_list_insert_marker: Intent intent = IntentUtils.newIntent(this, MarkerEditActivity.class); startActivity(intent); diff --git a/MyTracks/src/com/google/android/apps/mytracks/SearchListActivity.java b/MyTracks/src/com/google/android/apps/mytracks/SearchListActivity.java index c4c9ec972..bd6b06c2f 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/SearchListActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/SearchListActivity.java @@ -42,8 +42,6 @@ import android.location.Location; import android.location.LocationManager; import android.os.Bundle; import android.provider.SearchRecentSuggestions; -import android.speech.tts.TextToSpeech; -import android.support.v4.app.FragmentActivity; import android.util.Log; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; @@ -69,7 +67,7 @@ import java.util.SortedSet; * * @author Rodrigo Damazio */ -public class SearchListActivity extends FragmentActivity { +public class SearchListActivity extends AbstractMyTracksActivity { private static final String TAG = SearchListActivity.class.getSimpleName(); @@ -119,9 +117,7 @@ public class SearchListActivity extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setVolumeControlStream(TextToSpeech.Engine.DEFAULT_STREAM); setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL); - ApiAdapterFactory.getApiAdapter().configureActionBarHomeAsUp(this); setContentView(R.layout.search_list); myTracksProviderUtils = MyTracksProviderUtils.Factory.get(this); @@ -210,9 +206,6 @@ public class SearchListActivity extends FragmentActivity { @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { - case android.R.id.home: - finish(); - return true; case R.id.search_list_search: return ApiAdapterFactory.getApiAdapter().handleSearchMenuSelection(this); default: diff --git a/MyTracks/src/com/google/android/apps/mytracks/SensorStateActivity.java b/MyTracks/src/com/google/android/apps/mytracks/SensorStateActivity.java index 9a2854660..fc79e07d5 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/SensorStateActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/SensorStateActivity.java @@ -27,7 +27,6 @@ import com.google.android.apps.mytracks.util.StringUtils; import com.google.android.maps.mytracks.R; import com.google.protobuf.InvalidProtocolBufferException; -import android.app.Activity; import android.os.Bundle; import android.os.RemoteException; import android.util.Log; @@ -41,7 +40,7 @@ import java.util.TimerTask; * * @author Sandor Dornbush */ -public class SensorStateActivity extends Activity { +public class SensorStateActivity extends AbstractMyTracksActivity { private static final long REFRESH_PERIOD_MS = 250; diff --git a/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java b/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java index 5312a802e..11f45790a 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java @@ -48,8 +48,6 @@ import android.content.pm.ResolveInfo; import android.os.Bundle; import android.os.Parcelable; import android.os.RemoteException; -import android.speech.tts.TextToSpeech; -import android.support.v4.app.FragmentActivity; import android.util.Log; import android.view.Menu; import android.view.MenuItem; @@ -67,7 +65,7 @@ import java.util.List; * @author Leif Hendrik Wilden * @author Rodrigo Damazio */ -public class TrackDetailActivity extends FragmentActivity { +public class TrackDetailActivity extends AbstractMyTracksActivity { public static final String EXTRA_TRACK_ID = "track_id"; public static final String EXTRA_MARKER_ID = "marker_id"; @@ -130,9 +128,7 @@ public class TrackDetailActivity extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setVolumeControlStream(TextToSpeech.Engine.DEFAULT_STREAM); ApiAdapterFactory.getApiAdapter().hideTitle(this); - ApiAdapterFactory.getApiAdapter().configureActionBarHomeAsUp(this); setContentView(R.layout.track_detail); sharedPreferences = getSharedPreferences(Constants.SETTINGS_NAME, Context.MODE_PRIVATE); @@ -253,15 +249,17 @@ public class TrackDetailActivity extends FragmentActivity { return super.onPrepareOptionsMenu(menu); } + @Override + protected void onHomeSelected() { + Intent intent = IntentUtils.newIntent(this, TrackListActivity.class); + startActivity(intent); + } + @Override public boolean onOptionsItemSelected(MenuItem item) { MapFragment mapFragment; Intent intent; switch (item.getItemId()) { - case android.R.id.home: - intent = IntentUtils.newIntent(this, TrackListActivity.class); - startActivity(intent); - return true; case R.id.track_detail_stop_recording: updateMenuItems(false); TrackRecordingServiceConnectionUtils.stop(this, trackRecordingServiceConnection); diff --git a/MyTracks/src/com/google/android/apps/mytracks/TrackEditActivity.java b/MyTracks/src/com/google/android/apps/mytracks/TrackEditActivity.java index 23858d7c2..843152b09 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/TrackEditActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/TrackEditActivity.java @@ -18,16 +18,11 @@ 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.util.ApiAdapterFactory; import com.google.android.maps.mytracks.R; -import android.app.Activity; import android.os.Bundle; -import android.speech.tts.TextToSpeech; import android.util.Log; -import android.view.MenuItem; import android.view.View; -import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; import android.widget.Button; @@ -39,7 +34,7 @@ import android.widget.EditText; * * @author Leif Hendrik Wilden */ -public class TrackEditActivity extends Activity implements OnClickListener { +public class TrackEditActivity extends AbstractMyTracksActivity { public static final String EXTRA_TRACK_ID = "track_id"; public static final String EXTRA_NEW_TRACK = "new_track"; @@ -57,8 +52,6 @@ public class TrackEditActivity extends Activity implements OnClickListener { @Override protected void onCreate(Bundle bundle) { super.onCreate(bundle); - setVolumeControlStream(TextToSpeech.Engine.DEFAULT_STREAM); - ApiAdapterFactory.getApiAdapter().configureActionBarHomeAsUp(this); setContentView(R.layout.track_edit); trackId = getIntent().getLongExtra(EXTRA_TRACK_ID, -1L); @@ -89,7 +82,16 @@ public class TrackEditActivity extends Activity implements OnClickListener { description.setText(track.getDescription()); Button save = (Button) findViewById(R.id.track_edit_save); - save.setOnClickListener(this); + save.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + track.setName(name.getText().toString()); + track.setCategory(activityType.getText().toString()); + track.setDescription(description.getText().toString()); + myTracksProviderUtils.updateTrack(track); + finish(); + } + }); Button cancel = (Button) findViewById(R.id.track_edit_cancel); if (getIntent().getBooleanExtra(EXTRA_NEW_TRACK, false)) { @@ -97,28 +99,13 @@ public class TrackEditActivity extends Activity implements OnClickListener { cancel.setVisibility(View.GONE); } else { setTitle(R.string.menu_edit); - cancel.setOnClickListener(this); + cancel.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); cancel.setVisibility(View.VISIBLE); } } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - if (item.getItemId() != android.R.id.home) { - return false; - } - finish(); - return true; - } - - @Override - public void onClick(View view) { - if (view.getId() == R.id.track_edit_save) { - track.setName(name.getText().toString()); - track.setCategory(activityType.getText().toString()); - track.setDescription(description.getText().toString()); - myTracksProviderUtils.updateTrack(track); - } - finish(); - } }