From 1e1d4f6f4b6647fed3383965eb4043ec96590743 Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Fri, 19 Jul 2019 21:58:00 +0200 Subject: [PATCH] TrackListActivity: show all markers. --- .../apps/mytracks/MarkerListActivity.java | 28 +++++++++---------- .../apps/mytracks/TrackListActivity.java | 17 ++++------- .../mytracks/content/MyTracksProvider.java | 2 +- myTracks/src/main/res/menu/marker_list.xml | 2 +- myTracks/src/main/res/menu/track_list.xml | 6 ++++ 5 files changed, 28 insertions(+), 27 deletions(-) diff --git a/myTracks/src/main/java/com/google/android/apps/mytracks/MarkerListActivity.java b/myTracks/src/main/java/com/google/android/apps/mytracks/MarkerListActivity.java index ddcf74be2..628afc28b 100644 --- a/myTracks/src/main/java/com/google/android/apps/mytracks/MarkerListActivity.java +++ b/myTracks/src/main/java/com/google/android/apps/mytracks/MarkerListActivity.java @@ -22,7 +22,6 @@ import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.database.Cursor; import android.os.Bundle; -import android.util.Log; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.KeyEvent; @@ -137,14 +136,11 @@ public class MarkerListActivity extends AbstractActivity implements DeleteMarker myTracksProviderUtils = MyTracksProviderUtils.Factory.get(this); sharedPreferences = getSharedPreferences(Constants.SETTINGS_NAME, Context.MODE_PRIVATE); + long trackId = getIntent().getLongExtra(EXTRA_TRACK_ID, -1L); - if (trackId == -1L) { - Log.d(TAG, "invalid track id"); - finish(); - return; - } - track = myTracksProviderUtils.getTrack(trackId); - + track = trackId != -1L ? myTracksProviderUtils.getTrack(trackId) : null; + final long trackFirstWaypointId = trackId != -1 ? myTracksProviderUtils.getFirstWaypointId(trackId) : -1; + setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL); listView = findViewById(R.id.marker_list); @@ -185,14 +181,18 @@ public class MarkerListActivity extends AbstractActivity implements DeleteMarker listView.setAdapter(resourceCursorAdapter); AbstractTrackActivity.configureListViewContextualMenu(listView, contextualActionModeCallback); - final long firstWaypointId = myTracksProviderUtils.getFirstWaypointId(trackId); LoaderManager.getInstance(this).initLoader(0, null, new LoaderCallbacks() { @NonNull @Override public Loader onCreateLoader(int arg0, Bundle arg1) { - return new CursorLoader(MarkerListActivity.this, WaypointsColumns.CONTENT_URI, PROJECTION, - WaypointsColumns.TRACKID + "=? AND " + WaypointsColumns._ID + "!=?", - new String[] { String.valueOf(track.getId()), String.valueOf(firstWaypointId) }, null); + if (track != null) { + return new CursorLoader(MarkerListActivity.this, WaypointsColumns.CONTENT_URI, PROJECTION, + WaypointsColumns.TRACKID + "=? AND " + WaypointsColumns._ID + "!=?", + new String[] { String.valueOf(track.getId()), String.valueOf(trackFirstWaypointId) }, null); + } else { + return new CursorLoader(MarkerListActivity.this, WaypointsColumns.CONTENT_URI, PROJECTION, + WaypointsColumns.STARTTIME + " IS NULL",null, null); + } } @Override @@ -245,13 +245,13 @@ public class MarkerListActivity extends AbstractActivity implements DeleteMarker @Override public boolean onPrepareOptionsMenu(Menu menu) { - insertMarkerMenuItem.setVisible(track.getId() == recordingTrackId && !recordingTrackPaused); + insertMarkerMenuItem.setVisible(track != null && track.getId() == recordingTrackId && !recordingTrackPaused); return super.onPrepareOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { - if (item.getItemId() == R.id.marker_list_insert_marker) { + if (track != null && item.getItemId() == R.id.marker_list_insert_marker) { Intent intent = IntentUtils.newIntent(this, MarkerEditActivity.class) .putExtra(MarkerEditActivity.EXTRA_TRACK_ID, track.getId()); startActivity(intent); diff --git a/myTracks/src/main/java/com/google/android/apps/mytracks/TrackListActivity.java b/myTracks/src/main/java/com/google/android/apps/mytracks/TrackListActivity.java index 5285453c6..d0b233bea 100644 --- a/myTracks/src/main/java/com/google/android/apps/mytracks/TrackListActivity.java +++ b/myTracks/src/main/java/com/google/android/apps/mytracks/TrackListActivity.java @@ -284,10 +284,8 @@ public class TrackListActivity extends AbstractTrackActivity implements FileType myTracksProviderUtils = MyTracksProviderUtils.Factory.get(this); sharedPreferences = getSharedPreferences(Constants.SETTINGS_NAME, Context.MODE_PRIVATE); - trackRecordingServiceConnection = new TrackRecordingServiceConnection( - this, bindChangedCallback); - trackController = new TrackController( - this, trackRecordingServiceConnection, true, recordListener, stopListener); + trackRecordingServiceConnection = new TrackRecordingServiceConnection(this, bindChangedCallback); + trackController = new TrackController(this, trackRecordingServiceConnection, true, recordListener, stopListener); setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL); // Show trackController when search dialog is dismissed @@ -349,13 +347,8 @@ public class TrackListActivity extends AbstractTrackActivity implements FileType protected void onStart() { super.onStart(); - // Register shared preferences listener sharedPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener); - - // Update shared preferences sharedPreferenceChangeListener.onSharedPreferenceChanged(null, null); - - // Update track recording service connection TrackRecordingServiceConnectionUtils.startConnection(this, trackRecordingServiceConnection); } @@ -382,9 +375,7 @@ public class TrackListActivity extends AbstractTrackActivity implements FileType protected void onStop() { super.onStop(); - // Unregister shared preferences listener sharedPreferences.unregisterOnSharedPreferenceChangeListener(sharedPreferenceChangeListener); - trackRecordingServiceConnection.unbind(); } @@ -471,6 +462,10 @@ public class TrackListActivity extends AbstractTrackActivity implements FileType this.invalidateOptionsMenu(); } return true; + case R.id.track_list_markers: + intent = IntentUtils.newIntent(this, MarkerListActivity.class); + startActivity(intent); + return true; case R.id.track_list_aggregated_statistics: intent = IntentUtils.newIntent(this, AggregatedStatsActivity.class); startActivity(intent); diff --git a/myTracks/src/main/java/com/google/android/apps/mytracks/content/MyTracksProvider.java b/myTracks/src/main/java/com/google/android/apps/mytracks/content/MyTracksProvider.java index 437f965b8..6a8b4e900 100644 --- a/myTracks/src/main/java/com/google/android/apps/mytracks/content/MyTracksProvider.java +++ b/myTracks/src/main/java/com/google/android/apps/mytracks/content/MyTracksProvider.java @@ -148,7 +148,7 @@ public class MyTracksProvider extends ContentProvider { throw new IllegalArgumentException("Unknown URL " + url); } - Log.w(MyTracksProvider.TAG, "Deleting table " + table); + Log.w(TAG, "Deleting table " + table); int count; try { db.beginTransaction(); diff --git a/myTracks/src/main/res/menu/marker_list.xml b/myTracks/src/main/res/menu/marker_list.xml index 6f7737b74..76ab16a0e 100644 --- a/myTracks/src/main/res/menu/marker_list.xml +++ b/myTracks/src/main/res/menu/marker_list.xml @@ -23,5 +23,5 @@ limitations under the License. android:id="@+id/marker_list_search" android:title="@string/menu_search" android:actionViewClass="android.widget.SearchView" - android:showAsAction="ifRoom|collapseActionView" /> + android:showAsAction="ifRoom" /> \ No newline at end of file diff --git a/myTracks/src/main/res/menu/track_list.xml b/myTracks/src/main/res/menu/track_list.xml index 03b6a1121..87985c6bd 100644 --- a/myTracks/src/main/res/menu/track_list.xml +++ b/myTracks/src/main/res/menu/track_list.xml @@ -24,6 +24,12 @@ limitations under the License. android:icon="@drawable/ic_menu_start_gps" android:title="@string/menu_start_gps" android:showAsAction="ifRoom" /> +