TrackListActivity: show all markers.

This commit is contained in:
Dennis Guse
2019-07-19 21:58:00 +02:00
parent 15155aa394
commit 1e1d4f6f4b
5 changed files with 28 additions and 27 deletions
@@ -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<Cursor>() {
@NonNull
@Override
public Loader<Cursor> 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);
@@ -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);
@@ -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();
+1 -1
View File
@@ -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" />
</menu>
@@ -24,6 +24,12 @@ limitations under the License.
android:icon="@drawable/ic_menu_start_gps"
android:title="@string/menu_start_gps"
android:showAsAction="ifRoom" />
<item
android:id="@+id/track_list_markers"
android:icon="@drawable/ic_menu_insert_marker"
android:orderInCategory="5"
android:title="@string/menu_markers"
android:showAsAction="ifRoom" />
<item
android:id="@+id/track_list_aggregated_statistics"
android:icon="@drawable/ic_menu_aggregated_statistics"