forked from upstream-mirrors/OpenTracks
Improve transition after deleting a track or a marker.
This commit is contained in:
@@ -21,6 +21,7 @@ import com.google.android.apps.mytracks.content.Track;
|
|||||||
import com.google.android.apps.mytracks.content.Waypoint;
|
import com.google.android.apps.mytracks.content.Waypoint;
|
||||||
import com.google.android.apps.mytracks.content.Waypoint.WaypointType;
|
import com.google.android.apps.mytracks.content.Waypoint.WaypointType;
|
||||||
import com.google.android.apps.mytracks.fragments.DeleteOneMarkerDialogFragment;
|
import com.google.android.apps.mytracks.fragments.DeleteOneMarkerDialogFragment;
|
||||||
|
import com.google.android.apps.mytracks.fragments.DeleteOneMarkerDialogFragment.DeleteOneMarkerCaller;
|
||||||
import com.google.android.apps.mytracks.util.IntentUtils;
|
import com.google.android.apps.mytracks.util.IntentUtils;
|
||||||
import com.google.android.apps.mytracks.util.StatsUtils;
|
import com.google.android.apps.mytracks.util.StatsUtils;
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
@@ -35,10 +36,11 @@ import android.widget.TextView;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* An activity to display marker detail info.
|
* An activity to display marker detail info.
|
||||||
*
|
*
|
||||||
* @author Leif Hendrik Wilden
|
* @author Leif Hendrik Wilden
|
||||||
*/
|
*/
|
||||||
public class MarkerDetailActivity extends AbstractMyTracksActivity {
|
public class MarkerDetailActivity extends AbstractMyTracksActivity
|
||||||
|
implements DeleteOneMarkerCaller {
|
||||||
|
|
||||||
public static final String EXTRA_MARKER_ID = "marker_id";
|
public static final String EXTRA_MARKER_ID = "marker_id";
|
||||||
private static final String TAG = MarkerDetailActivity.class.getSimpleName();
|
private static final String TAG = MarkerDetailActivity.class.getSimpleName();
|
||||||
@@ -87,8 +89,8 @@ public class MarkerDetailActivity extends AbstractMyTracksActivity {
|
|||||||
statisticsSection.setVisibility(View.GONE);
|
statisticsSection.setVisibility(View.GONE);
|
||||||
|
|
||||||
TextView markerType = (TextView) findViewById(R.id.marker_detail_waypoint_marker_type);
|
TextView markerType = (TextView) findViewById(R.id.marker_detail_waypoint_marker_type);
|
||||||
markerType.setText(getString(
|
markerType.setText(
|
||||||
R.string.marker_detail_waypoint_marker_type, waypoint.getCategory()));
|
getString(R.string.marker_detail_waypoint_marker_type, waypoint.getCategory()));
|
||||||
TextView description = (TextView) findViewById(R.id.marker_detail_waypoint_description);
|
TextView description = (TextView) findViewById(R.id.marker_detail_waypoint_description);
|
||||||
description.setText(getString(R.string.generic_description_line, waypoint.getDescription()));
|
description.setText(getString(R.string.generic_description_line, waypoint.getDescription()));
|
||||||
} else {
|
} else {
|
||||||
@@ -98,14 +100,14 @@ public class MarkerDetailActivity extends AbstractMyTracksActivity {
|
|||||||
StatsUtils.setLocationValues(this, waypoint.getLocation(), false);
|
StatsUtils.setLocationValues(this, waypoint.getLocation(), false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCreateOptionsMenu(Menu menu) {
|
public boolean onCreateOptionsMenu(Menu menu) {
|
||||||
getMenuInflater().inflate(R.menu.marker_detail, menu);
|
getMenuInflater().inflate(R.menu.marker_detail, menu);
|
||||||
|
|
||||||
Track track = myTracksProviderUtils.getTrack(waypoint.getTrackId());
|
Track track = myTracksProviderUtils.getTrack(waypoint.getTrackId());
|
||||||
menu.findItem(R.id.marker_detail_edit).setVisible(!track.isSharedWithMe());
|
menu.findItem(R.id.marker_detail_edit).setVisible(!track.isSharedWithMe());
|
||||||
menu.findItem(R.id.marker_detail_delete).setVisible(!track.isSharedWithMe());
|
menu.findItem(R.id.marker_detail_delete).setVisible(!track.isSharedWithMe());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -116,7 +118,7 @@ public class MarkerDetailActivity extends AbstractMyTracksActivity {
|
|||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
Intent intent;
|
Intent intent;
|
||||||
@@ -140,4 +142,14 @@ public class MarkerDetailActivity extends AbstractMyTracksActivity {
|
|||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onMarkerDeleted() {
|
||||||
|
runOnUiThread(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
finish();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import com.google.android.apps.mytracks.content.Track;
|
|||||||
import com.google.android.apps.mytracks.content.Waypoint.WaypointType;
|
import com.google.android.apps.mytracks.content.Waypoint.WaypointType;
|
||||||
import com.google.android.apps.mytracks.content.WaypointsColumns;
|
import com.google.android.apps.mytracks.content.WaypointsColumns;
|
||||||
import com.google.android.apps.mytracks.fragments.DeleteOneMarkerDialogFragment;
|
import com.google.android.apps.mytracks.fragments.DeleteOneMarkerDialogFragment;
|
||||||
|
import com.google.android.apps.mytracks.fragments.DeleteOneMarkerDialogFragment.DeleteOneMarkerCaller;
|
||||||
import com.google.android.apps.mytracks.util.ApiAdapterFactory;
|
import com.google.android.apps.mytracks.util.ApiAdapterFactory;
|
||||||
import com.google.android.apps.mytracks.util.IntentUtils;
|
import com.google.android.apps.mytracks.util.IntentUtils;
|
||||||
import com.google.android.apps.mytracks.util.ListItemUtils;
|
import com.google.android.apps.mytracks.util.ListItemUtils;
|
||||||
@@ -55,7 +56,7 @@ import android.widget.ListView;
|
|||||||
*
|
*
|
||||||
* @author Leif Hendrik Wilden
|
* @author Leif Hendrik Wilden
|
||||||
*/
|
*/
|
||||||
public class MarkerListActivity extends AbstractMyTracksActivity {
|
public class MarkerListActivity extends AbstractMyTracksActivity implements DeleteOneMarkerCaller {
|
||||||
|
|
||||||
public static final String EXTRA_TRACK_ID = "track_id";
|
public static final String EXTRA_TRACK_ID = "track_id";
|
||||||
|
|
||||||
@@ -74,16 +75,16 @@ public class MarkerListActivity extends AbstractMyTracksActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canEdit(int position, long id) {
|
public boolean canEdit(int position, long id) {
|
||||||
Track track = myTracksProviderUtils.getTrack(trackId);
|
Track track = myTracksProviderUtils.getTrack(trackId);
|
||||||
return !track.isSharedWithMe();
|
return !track.isSharedWithMe();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canDelete(int poistion, long id) {
|
public boolean canDelete(int poistion, long id) {
|
||||||
Track track = myTracksProviderUtils.getTrack(trackId);
|
Track track = myTracksProviderUtils.getTrack(trackId);
|
||||||
return !track.isSharedWithMe();
|
return !track.isSharedWithMe();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -314,4 +315,9 @@ public class MarkerListActivity extends AbstractMyTracksActivity {
|
|||||||
}
|
}
|
||||||
return super.onKeyUp(keyCode, event);
|
return super.onKeyUp(keyCode, event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onMarkerDeleted() {
|
||||||
|
// Do nothing
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import com.google.android.apps.mytracks.content.Track;
|
|||||||
import com.google.android.apps.mytracks.content.Waypoint;
|
import com.google.android.apps.mytracks.content.Waypoint;
|
||||||
import com.google.android.apps.mytracks.content.Waypoint.WaypointType;
|
import com.google.android.apps.mytracks.content.Waypoint.WaypointType;
|
||||||
import com.google.android.apps.mytracks.fragments.DeleteOneMarkerDialogFragment;
|
import com.google.android.apps.mytracks.fragments.DeleteOneMarkerDialogFragment;
|
||||||
|
import com.google.android.apps.mytracks.fragments.DeleteOneMarkerDialogFragment.DeleteOneMarkerCaller;
|
||||||
import com.google.android.apps.mytracks.fragments.DeleteOneTrackDialogFragment;
|
import com.google.android.apps.mytracks.fragments.DeleteOneTrackDialogFragment;
|
||||||
import com.google.android.apps.mytracks.fragments.DeleteOneTrackDialogFragment.DeleteOneTrackCaller;
|
import com.google.android.apps.mytracks.fragments.DeleteOneTrackDialogFragment.DeleteOneTrackCaller;
|
||||||
import com.google.android.apps.mytracks.services.MyTracksLocationManager;
|
import com.google.android.apps.mytracks.services.MyTracksLocationManager;
|
||||||
@@ -73,7 +74,8 @@ import java.util.SortedSet;
|
|||||||
*
|
*
|
||||||
* @author Rodrigo Damazio
|
* @author Rodrigo Damazio
|
||||||
*/
|
*/
|
||||||
public class SearchListActivity extends AbstractMyTracksActivity implements DeleteOneTrackCaller {
|
public class SearchListActivity extends AbstractMyTracksActivity
|
||||||
|
implements DeleteOneTrackCaller, DeleteOneMarkerCaller {
|
||||||
|
|
||||||
private static final String TAG = SearchListActivity.class.getSimpleName();
|
private static final String TAG = SearchListActivity.class.getSimpleName();
|
||||||
|
|
||||||
@@ -130,25 +132,25 @@ public class SearchListActivity extends AbstractMyTracksActivity implements Dele
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canEdit(int position, long id) {
|
public boolean canEdit(int position, long id) {
|
||||||
Map<String, Object> item = arrayAdapter.getItem(position);
|
Map<String, Object> item = arrayAdapter.getItem(position);
|
||||||
Long trackId = (Long) item.get(TRACK_ID_FIELD);
|
Long trackId = (Long) item.get(TRACK_ID_FIELD);
|
||||||
Track track = myTracksProviderUtils.getTrack(trackId);
|
Track track = myTracksProviderUtils.getTrack(trackId);
|
||||||
return !track.isSharedWithMe();
|
return !track.isSharedWithMe();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canDelete(int position, long id) {
|
public boolean canDelete(int position, long id) {
|
||||||
Map<String, Object> item = arrayAdapter.getItem(position);
|
Map<String, Object> item = arrayAdapter.getItem(position);
|
||||||
Long trackId = (Long) item.get(TRACK_ID_FIELD);
|
Long trackId = (Long) item.get(TRACK_ID_FIELD);
|
||||||
Long markerId = (Long) item.get(MARKER_ID_FIELD);
|
Long markerId = (Long) item.get(MARKER_ID_FIELD);
|
||||||
if (markerId != null) {
|
if (markerId != null) {
|
||||||
Track track = myTracksProviderUtils.getTrack(trackId);
|
Track track = myTracksProviderUtils.getTrack(trackId);
|
||||||
return !track.isSharedWithMe();
|
return !track.isSharedWithMe();
|
||||||
} else {
|
} else {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private MyTracksProviderUtils myTracksProviderUtils;
|
private MyTracksProviderUtils myTracksProviderUtils;
|
||||||
@@ -245,7 +247,7 @@ public class SearchListActivity extends AbstractMyTracksActivity implements Dele
|
|||||||
super.onResume();
|
super.onResume();
|
||||||
arrayAdapter.notifyDataSetChanged();
|
arrayAdapter.notifyDataSetChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onStop() {
|
protected void onStop() {
|
||||||
super.onStop();
|
super.onStop();
|
||||||
@@ -292,7 +294,7 @@ public class SearchListActivity extends AbstractMyTracksActivity implements Dele
|
|||||||
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
|
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
|
||||||
super.onCreateContextMenu(menu, v, menuInfo);
|
super.onCreateContextMenu(menu, v, menuInfo);
|
||||||
getMenuInflater().inflate(R.menu.list_context_menu, menu);
|
getMenuInflater().inflate(R.menu.list_context_menu, menu);
|
||||||
|
|
||||||
Map<String, Object> item = arrayAdapter.getItem(((AdapterContextMenuInfo) menuInfo).position);
|
Map<String, Object> item = arrayAdapter.getItem(((AdapterContextMenuInfo) menuInfo).position);
|
||||||
Long trackId = (Long) item.get(TRACK_ID_FIELD);
|
Long trackId = (Long) item.get(TRACK_ID_FIELD);
|
||||||
Long markerId = (Long) item.get(MARKER_ID_FIELD);
|
Long markerId = (Long) item.get(MARKER_ID_FIELD);
|
||||||
@@ -516,4 +518,24 @@ public class SearchListActivity extends AbstractMyTracksActivity implements Dele
|
|||||||
public TrackRecordingServiceConnection getTrackRecordingServiceConnection() {
|
public TrackRecordingServiceConnection getTrackRecordingServiceConnection() {
|
||||||
return trackRecordingServiceConnection;
|
return trackRecordingServiceConnection;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onTrackDeleted() {
|
||||||
|
runOnUiThread(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
handleIntent(getIntent());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onMarkerDeleted() {
|
||||||
|
runOnUiThread(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
handleIntent(getIntent());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
|
|||||||
|
|
||||||
private static final String TAG = TrackDetailActivity.class.getSimpleName();
|
private static final String TAG = TrackDetailActivity.class.getSimpleName();
|
||||||
private static final String CURRENT_TAB_TAG_KEY = "current_tab_tag_key";
|
private static final String CURRENT_TAB_TAG_KEY = "current_tab_tag_key";
|
||||||
|
|
||||||
// The following are set in onCreate
|
// The following are set in onCreate
|
||||||
private MyTracksProviderUtils myTracksProviderUtils;
|
private MyTracksProviderUtils myTracksProviderUtils;
|
||||||
private SharedPreferences sharedPreferences;
|
private SharedPreferences sharedPreferences;
|
||||||
@@ -230,7 +230,7 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
|
|||||||
protected void onResume() {
|
protected void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
trackDataHub.loadTrack(trackId);
|
trackDataHub.loadTrack(trackId);
|
||||||
|
|
||||||
// Update UI
|
// Update UI
|
||||||
boolean isRecording = trackId == recordingTrackId;
|
boolean isRecording = trackId == recordingTrackId;
|
||||||
updateMenuItems(isRecording, recordingTrackPaused);
|
updateMenuItems(isRecording, recordingTrackPaused);
|
||||||
@@ -294,13 +294,13 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
|
|||||||
.setTitle(getString(R.string.menu_save_format, fileTypes[2]));
|
.setTitle(getString(R.string.menu_save_format, fileTypes[2]));
|
||||||
menu.findItem(R.id.track_detail_save_tcx)
|
menu.findItem(R.id.track_detail_save_tcx)
|
||||||
.setTitle(getString(R.string.menu_save_format, fileTypes[3]));
|
.setTitle(getString(R.string.menu_save_format, fileTypes[3]));
|
||||||
|
|
||||||
Track track = myTracksProviderUtils.getTrack(trackId);
|
Track track = myTracksProviderUtils.getTrack(trackId);
|
||||||
menu.findItem(R.id.track_detail_edit).setVisible(!track.isSharedWithMe());
|
menu.findItem(R.id.track_detail_edit).setVisible(!track.isSharedWithMe());
|
||||||
shareDriveMenuItem = menu.findItem(R.id.track_detail_share_drive);
|
shareDriveMenuItem = menu.findItem(R.id.track_detail_share_drive);
|
||||||
shareDriveMenuItem.setEnabled(!track.isSharedWithMe());
|
shareDriveMenuItem.setEnabled(!track.isSharedWithMe());
|
||||||
shareDriveMenuItem.setVisible(!track.isSharedWithMe());
|
shareDriveMenuItem.setVisible(!track.isSharedWithMe());
|
||||||
|
|
||||||
insertMarkerMenuItem = menu.findItem(R.id.track_detail_insert_marker);
|
insertMarkerMenuItem = menu.findItem(R.id.track_detail_insert_marker);
|
||||||
playMenuItem = menu.findItem(R.id.track_detail_play);
|
playMenuItem = menu.findItem(R.id.track_detail_play);
|
||||||
shareMenuItem = menu.findItem(R.id.track_detail_share);
|
shareMenuItem = menu.findItem(R.id.track_detail_share);
|
||||||
@@ -349,7 +349,7 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
|
|||||||
default:
|
default:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
Intent intent;
|
Intent intent;
|
||||||
@@ -460,6 +460,16 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
|
|||||||
return trackRecordingServiceConnection;
|
return trackRecordingServiceConnection;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onTrackDeleted() {
|
||||||
|
runOnUiThread(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
finish();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the {@link TrackDataHub}.
|
* Gets the {@link TrackDataHub}.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ public class TrackListActivity extends FragmentActivity implements DeleteOneTrac
|
|||||||
private static final String[] PROJECTION = new String[] { TracksColumns._ID, TracksColumns.NAME,
|
private static final String[] PROJECTION = new String[] { TracksColumns._ID, TracksColumns.NAME,
|
||||||
TracksColumns.DESCRIPTION, TracksColumns.CATEGORY, TracksColumns.STARTTIME,
|
TracksColumns.DESCRIPTION, TracksColumns.CATEGORY, TracksColumns.STARTTIME,
|
||||||
TracksColumns.TOTALDISTANCE, TracksColumns.TOTALTIME, TracksColumns.ICON,
|
TracksColumns.TOTALDISTANCE, TracksColumns.TOTALTIME, TracksColumns.ICON,
|
||||||
TracksColumns.SHAREDWITHME};
|
TracksColumns.SHAREDWITHME };
|
||||||
|
|
||||||
// Callback when the trackRecordingServiceConnection binding changes.
|
// Callback when the trackRecordingServiceConnection binding changes.
|
||||||
private final Runnable bindChangedCallback = new Runnable() {
|
private final Runnable bindChangedCallback = new Runnable() {
|
||||||
@@ -167,10 +167,9 @@ public class TrackListActivity extends FragmentActivity implements DeleteOneTrac
|
|||||||
R.string.recording_track_paused_key,
|
R.string.recording_track_paused_key,
|
||||||
PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT);
|
PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT);
|
||||||
}
|
}
|
||||||
if (key == null || key.equals(PreferencesUtils.getKey(
|
if (key == null || key.equals(
|
||||||
TrackListActivity.this, R.string.drive_sync_key))) {
|
PreferencesUtils.getKey(TrackListActivity.this, R.string.drive_sync_key))) {
|
||||||
driveSync = PreferencesUtils.getBoolean(TrackListActivity.this,
|
driveSync = PreferencesUtils.getBoolean(TrackListActivity.this, R.string.drive_sync_key,
|
||||||
R.string.drive_sync_key,
|
|
||||||
PreferencesUtils.DRIVE_SYNC_DEFAULT);
|
PreferencesUtils.DRIVE_SYNC_DEFAULT);
|
||||||
}
|
}
|
||||||
if (key != null) {
|
if (key != null) {
|
||||||
@@ -197,15 +196,15 @@ public class TrackListActivity extends FragmentActivity implements DeleteOneTrac
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canEdit(int position, long id) {
|
public boolean canEdit(int position, long id) {
|
||||||
Track track = myTracksProviderUtils.getTrack(id);
|
Track track = myTracksProviderUtils.getTrack(id);
|
||||||
return !track.isSharedWithMe();
|
return !track.isSharedWithMe();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canDelete(int position, long id) {
|
public boolean canDelete(int position, long id) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private final OnClickListener recordListener = new OnClickListener() {
|
private final OnClickListener recordListener = new OnClickListener() {
|
||||||
@@ -341,7 +340,7 @@ public class TrackListActivity extends FragmentActivity implements DeleteOneTrac
|
|||||||
private long recordingTrackId = PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
|
private long recordingTrackId = PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
|
||||||
private boolean recordingTrackPaused = PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT;
|
private boolean recordingTrackPaused = PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT;
|
||||||
private boolean driveSync = PreferencesUtils.DRIVE_SYNC_DEFAULT;
|
private boolean driveSync = PreferencesUtils.DRIVE_SYNC_DEFAULT;
|
||||||
|
|
||||||
// Menu items
|
// Menu items
|
||||||
private MenuItem searchMenuItem;
|
private MenuItem searchMenuItem;
|
||||||
private MenuItem startGpsMenuItem;
|
private MenuItem startGpsMenuItem;
|
||||||
@@ -379,7 +378,8 @@ public class TrackListActivity extends FragmentActivity implements DeleteOneTrac
|
|||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
sectionResourceCursorAdapter = new SectionResourceCursorAdapter(this, R.layout.list_item, null, 0) {
|
sectionResourceCursorAdapter = new SectionResourceCursorAdapter(
|
||||||
|
this, R.layout.list_item, null, 0) {
|
||||||
@Override
|
@Override
|
||||||
public void bindView(View view, Context context, Cursor cursor) {
|
public void bindView(View view, Context context, Cursor cursor) {
|
||||||
int idIndex = cursor.getColumnIndex(TracksColumns._ID);
|
int idIndex = cursor.getColumnIndex(TracksColumns._ID);
|
||||||
@@ -465,7 +465,7 @@ public class TrackListActivity extends FragmentActivity implements DeleteOneTrac
|
|||||||
sectionResourceCursorAdapter.notifyDataSetChanged();
|
sectionResourceCursorAdapter.notifyDataSetChanged();
|
||||||
trackController.update(isRecording, recordingTrackPaused);
|
trackController.update(isRecording, recordingTrackPaused);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPause() {
|
protected void onPause() {
|
||||||
super.onPause();
|
super.onPause();
|
||||||
@@ -531,7 +531,7 @@ public class TrackListActivity extends FragmentActivity implements DeleteOneTrac
|
|||||||
saveAllMenuItem = menu.findItem(R.id.track_list_save_all);
|
saveAllMenuItem = menu.findItem(R.id.track_list_save_all);
|
||||||
deleteAllMenuItem = menu.findItem(R.id.track_list_delete_all);
|
deleteAllMenuItem = menu.findItem(R.id.track_list_delete_all);
|
||||||
syncNowMenuItem = menu.findItem(R.id.track_list_sync_now);
|
syncNowMenuItem = menu.findItem(R.id.track_list_sync_now);
|
||||||
|
|
||||||
ApiAdapterFactory.getApiAdapter().configureSearchWidget(this, searchMenuItem);
|
ApiAdapterFactory.getApiAdapter().configureSearchWidget(this, searchMenuItem);
|
||||||
updateMenuItems(recordingTrackId != PreferencesUtils.RECORDING_TRACK_ID_DEFAULT);
|
updateMenuItems(recordingTrackId != PreferencesUtils.RECORDING_TRACK_ID_DEFAULT);
|
||||||
return true;
|
return true;
|
||||||
@@ -634,6 +634,11 @@ public class TrackListActivity extends FragmentActivity implements DeleteOneTrac
|
|||||||
return trackRecordingServiceConnection;
|
return trackRecordingServiceConnection;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onTrackDeleted() {
|
||||||
|
// Do nothing
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Shows start up dialogs.
|
* Shows start up dialogs.
|
||||||
*/
|
*/
|
||||||
@@ -658,7 +663,7 @@ public class TrackListActivity extends FragmentActivity implements DeleteOneTrac
|
|||||||
* doesn't show through.
|
* doesn't show through.
|
||||||
*/
|
*/
|
||||||
findViewById(R.id.track_list_empty_view).setVisibility(View.VISIBLE);
|
findViewById(R.id.track_list_empty_view).setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
checkGooglePlayServices();
|
checkGooglePlayServices();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -668,7 +673,7 @@ public class TrackListActivity extends FragmentActivity implements DeleteOneTrac
|
|||||||
if (code != ConnectionResult.SUCCESS) {
|
if (code != ConnectionResult.SUCCESS) {
|
||||||
Dialog dialog = GooglePlayServicesUtil.getErrorDialog(
|
Dialog dialog = GooglePlayServicesUtil.getErrorDialog(
|
||||||
code, this, GOOGLE_PLAY_SERVICES_REQUEST_CODE, new DialogInterface.OnCancelListener() {
|
code, this, GOOGLE_PLAY_SERVICES_REQUEST_CODE, new DialogInterface.OnCancelListener() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCancel(DialogInterface dialogInterface) {
|
public void onCancel(DialogInterface dialogInterface) {
|
||||||
finish();
|
finish();
|
||||||
|
|||||||
+35
-17
@@ -16,23 +16,21 @@
|
|||||||
|
|
||||||
package com.google.android.apps.mytracks.fragments;
|
package com.google.android.apps.mytracks.fragments;
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.MarkerListActivity;
|
|
||||||
import com.google.android.apps.mytracks.content.DescriptionGeneratorImpl;
|
import com.google.android.apps.mytracks.content.DescriptionGeneratorImpl;
|
||||||
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
|
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
|
||||||
import com.google.android.apps.mytracks.util.DialogUtils;
|
import com.google.android.apps.mytracks.util.DialogUtils;
|
||||||
import com.google.android.apps.mytracks.util.IntentUtils;
|
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v4.app.DialogFragment;
|
import android.support.v4.app.DialogFragment;
|
||||||
import android.support.v4.app.FragmentActivity;
|
import android.support.v4.app.FragmentActivity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A DialogFragment to delete one marker.
|
* A DialogFragment to delete one marker.
|
||||||
*
|
*
|
||||||
* @author Jimmy Shih
|
* @author Jimmy Shih
|
||||||
*/
|
*/
|
||||||
public class DeleteOneMarkerDialogFragment extends DialogFragment {
|
public class DeleteOneMarkerDialogFragment extends DialogFragment {
|
||||||
@@ -41,6 +39,19 @@ public class DeleteOneMarkerDialogFragment extends DialogFragment {
|
|||||||
private static final String KEY_MARKER_ID = "markerId";
|
private static final String KEY_MARKER_ID = "markerId";
|
||||||
private static final String KEY_TRACK_ID = "trackId";
|
private static final String KEY_TRACK_ID = "trackId";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interface for caller of this dialog fragment.
|
||||||
|
*
|
||||||
|
* @author Jimmy Shih
|
||||||
|
*/
|
||||||
|
public interface DeleteOneMarkerCaller {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when a marker is deleted.
|
||||||
|
*/
|
||||||
|
public void onMarkerDeleted();
|
||||||
|
}
|
||||||
|
|
||||||
public static DeleteOneMarkerDialogFragment newInstance(long markerId, long trackId) {
|
public static DeleteOneMarkerDialogFragment newInstance(long markerId, long trackId) {
|
||||||
Bundle bundle = new Bundle();
|
Bundle bundle = new Bundle();
|
||||||
bundle.putLong(KEY_MARKER_ID, markerId);
|
bundle.putLong(KEY_MARKER_ID, markerId);
|
||||||
@@ -51,28 +62,35 @@ public class DeleteOneMarkerDialogFragment extends DialogFragment {
|
|||||||
return deleteOneMarkerDialogFragment;
|
return deleteOneMarkerDialogFragment;
|
||||||
}
|
}
|
||||||
|
|
||||||
private FragmentActivity activity;
|
private FragmentActivity fragmentActivity;
|
||||||
|
private DeleteOneMarkerCaller caller;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAttach(Activity activity) {
|
||||||
|
super.onAttach(activity);
|
||||||
|
try {
|
||||||
|
caller = (DeleteOneMarkerCaller) activity;
|
||||||
|
} catch (ClassCastException e) {
|
||||||
|
throw new ClassCastException(activity.toString() + " must implement DeleteOneMarkerCaller");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||||
activity = getActivity();
|
fragmentActivity = getActivity();
|
||||||
return DialogUtils.createConfirmationDialog(activity,
|
return DialogUtils.createConfirmationDialog(fragmentActivity,
|
||||||
R.string.marker_delete_one_marker_confirm_message, new DialogInterface.OnClickListener() {
|
R.string.marker_delete_one_marker_confirm_message, new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
new Thread(new Runnable() {
|
new Thread(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
MyTracksProviderUtils.Factory.get(activity).deleteWaypoint(
|
MyTracksProviderUtils.Factory.get(fragmentActivity).deleteWaypoint(
|
||||||
getArguments().getLong(KEY_MARKER_ID),
|
getArguments().getLong(KEY_MARKER_ID),
|
||||||
new DescriptionGeneratorImpl(activity));
|
new DescriptionGeneratorImpl(fragmentActivity));
|
||||||
|
caller.onMarkerDeleted();
|
||||||
}
|
}
|
||||||
}).start();
|
}).start();
|
||||||
Intent intent = IntentUtils.newIntent(activity, MarkerListActivity.class)
|
|
||||||
.putExtra(MarkerListActivity.EXTRA_TRACK_ID, getArguments().getLong(KEY_TRACK_ID));
|
|
||||||
startActivity(intent);
|
|
||||||
// Close the activity since its content can change after delete.
|
|
||||||
activity.finish();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
+22
-20
@@ -16,20 +16,16 @@
|
|||||||
|
|
||||||
package com.google.android.apps.mytracks.fragments;
|
package com.google.android.apps.mytracks.fragments;
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.TrackListActivity;
|
|
||||||
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
|
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
|
||||||
import com.google.android.apps.mytracks.services.TrackRecordingServiceConnection;
|
import com.google.android.apps.mytracks.services.TrackRecordingServiceConnection;
|
||||||
import com.google.android.apps.mytracks.util.DialogUtils;
|
import com.google.android.apps.mytracks.util.DialogUtils;
|
||||||
import com.google.android.apps.mytracks.util.IntentUtils;
|
|
||||||
import com.google.android.apps.mytracks.util.PreferencesUtils;
|
import com.google.android.apps.mytracks.util.PreferencesUtils;
|
||||||
import com.google.android.apps.mytracks.util.TrackRecordingServiceConnectionUtils;
|
import com.google.android.apps.mytracks.util.TrackRecordingServiceConnectionUtils;
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.content.Context;
|
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v4.app.DialogFragment;
|
import android.support.v4.app.DialogFragment;
|
||||||
import android.support.v4.app.FragmentActivity;
|
import android.support.v4.app.FragmentActivity;
|
||||||
@@ -50,7 +46,16 @@ public class DeleteOneTrackDialogFragment extends DialogFragment {
|
|||||||
* @author Jimmy Shih
|
* @author Jimmy Shih
|
||||||
*/
|
*/
|
||||||
public interface DeleteOneTrackCaller {
|
public interface DeleteOneTrackCaller {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the track recording service connection.
|
||||||
|
*/
|
||||||
public TrackRecordingServiceConnection getTrackRecordingServiceConnection();
|
public TrackRecordingServiceConnection getTrackRecordingServiceConnection();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when a track is deleted.
|
||||||
|
*/
|
||||||
|
public void onTrackDeleted();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static DeleteOneTrackDialogFragment newInstance(long trackId) {
|
public static DeleteOneTrackDialogFragment newInstance(long trackId) {
|
||||||
@@ -62,42 +67,39 @@ public class DeleteOneTrackDialogFragment extends DialogFragment {
|
|||||||
return deleteOneTrackDialogFragment;
|
return deleteOneTrackDialogFragment;
|
||||||
}
|
}
|
||||||
|
|
||||||
private FragmentActivity activity;
|
private FragmentActivity fragmentActivity;
|
||||||
private DeleteOneTrackCaller caller;
|
private DeleteOneTrackCaller caller;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAttach(Activity anActivity) {
|
public void onAttach(Activity activity) {
|
||||||
super.onAttach(anActivity);
|
super.onAttach(activity);
|
||||||
try {
|
try {
|
||||||
caller = (DeleteOneTrackCaller) anActivity;
|
caller = (DeleteOneTrackCaller) activity;
|
||||||
} catch (ClassCastException e) {
|
} catch (ClassCastException e) {
|
||||||
throw new ClassCastException(anActivity.toString() + " must implement DeleteOneTrackCaller");
|
throw new ClassCastException(activity.toString() + " must implement DeleteOneTrackCaller");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||||
activity = getActivity();
|
fragmentActivity = getActivity();
|
||||||
return DialogUtils.createConfirmationDialog(activity,
|
return DialogUtils.createConfirmationDialog(fragmentActivity,
|
||||||
R.string.track_detail_delete_confirm_message, new DialogInterface.OnClickListener() {
|
R.string.track_detail_delete_confirm_message, new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
final long trackId = getArguments().getLong(KEY_TRACK_ID);
|
final long trackId = getArguments().getLong(KEY_TRACK_ID);
|
||||||
final Context context = activity;
|
if (trackId
|
||||||
if (trackId == PreferencesUtils.getLong(context, R.string.recording_track_id_key)) {
|
== PreferencesUtils.getLong(fragmentActivity, R.string.recording_track_id_key)) {
|
||||||
TrackRecordingServiceConnectionUtils.stopRecording(
|
TrackRecordingServiceConnectionUtils.stopRecording(
|
||||||
context, caller.getTrackRecordingServiceConnection(), false);
|
fragmentActivity, caller.getTrackRecordingServiceConnection(), false);
|
||||||
}
|
}
|
||||||
new Thread(new Runnable() {
|
new Thread(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
MyTracksProviderUtils.Factory.get(context).deleteTrack(trackId);
|
MyTracksProviderUtils.Factory.get(fragmentActivity).deleteTrack(trackId);
|
||||||
|
caller.onTrackDeleted();
|
||||||
}
|
}
|
||||||
}).start();
|
}).start();
|
||||||
Intent intent = IntentUtils.newIntent(context, TrackListActivity.class);
|
|
||||||
startActivity(intent);
|
|
||||||
// Close the activity since its content can change after delete
|
|
||||||
activity.finish();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user