diff --git a/MyTracks/res/raw/mytracks_empty_spreadsheet.ods b/MyTracks/res/raw/mytracks_empty_spreadsheet.ods index eb7aca654..856f33fda 100644 Binary files a/MyTracks/res/raw/mytracks_empty_spreadsheet.ods and b/MyTracks/res/raw/mytracks_empty_spreadsheet.ods differ diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/drive/SendDriveAsyncTask.java b/MyTracks/src/com/google/android/apps/mytracks/io/drive/SendDriveAsyncTask.java index 2dde0638e..566d81972 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/drive/SendDriveAsyncTask.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/drive/SendDriveAsyncTask.java @@ -68,9 +68,6 @@ public class SendDriveAsyncTask extends AbstractSendAsyncTask { @Override protected void closeConnection() {} - @Override - protected void saveResult() {} - @Override protected boolean performTask() { try { diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/fusiontables/SendFusionTablesAsyncTask.java b/MyTracks/src/com/google/android/apps/mytracks/io/fusiontables/SendFusionTablesAsyncTask.java index b2d4998cd..bf35f2a40 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/fusiontables/SendFusionTablesAsyncTask.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/fusiontables/SendFusionTablesAsyncTask.java @@ -88,9 +88,6 @@ public class SendFusionTablesAsyncTask extends AbstractSendAsyncTask { @Override protected void closeConnection() {} - @Override - protected void saveResult() {} - @Override protected boolean performTask() { try { @@ -121,7 +118,7 @@ public class SendFusionTablesAsyncTask extends AbstractSendAsyncTask { publishProgress(PROGRESS_SET_STYLE); setStyle(fusiontables, tableId); setTemplate(fusiontables, tableId); - if (!setPermission(tableId)) { + if (!setPermission(track, tableId)) { Log.d(TAG, "Cannot set permission for table " + tableId); return false; } @@ -138,9 +135,6 @@ public class SendFusionTablesAsyncTask extends AbstractSendAsyncTask { return false; } - track.setTableId(tableId); - myTracksProviderUtils.updateTrack(track); - publishProgress(PROGRESS_COMPLETE); return true; @@ -200,7 +194,7 @@ public class SendFusionTablesAsyncTask extends AbstractSendAsyncTask { fusiontables.template().insert(tableId, template).execute(); } - private boolean setPermission(String tableId) throws IOException, GoogleAuthException { + private boolean setPermission(Track track, String tableId) throws IOException, GoogleAuthException { boolean defaultTablePublic = PreferencesUtils.getBoolean(context, R.string.export_google_fusion_tables_public_key, PreferencesUtils.EXPORT_GOOGLE_FUSION_TABLES_PUBLIC_DEFAULT); @@ -218,6 +212,8 @@ public class SendFusionTablesAsyncTask extends AbstractSendAsyncTask { permission.setType("anyone"); permission.setValue(""); drive.permissions().insert(tableId, permission).execute(); + + shareUrl = SendFusionTablesUtils.getMapUrl(track, tableId); return true; } diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/fusiontables/SendFusionTablesUtils.java b/MyTracks/src/com/google/android/apps/mytracks/io/fusiontables/SendFusionTablesUtils.java index 989fd0db9..f7f47f995 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/fusiontables/SendFusionTablesUtils.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/fusiontables/SendFusionTablesUtils.java @@ -42,13 +42,11 @@ public class SendFusionTablesUtils { * Gets the url to visualize a fusion table on a map. * * @param track the track + * @param tableId the table id * @return the url. */ - public static String getMapUrl(Track track) { - if (track == null - || track.getTripStatistics() == null - || track.getTableId() == null - || track.getTableId().length() == 0) { + public static String getMapUrl(Track track, String tableId) { + if (track == null || track.getTripStatistics() == null) { Log.e(TAG, "Invalid track"); return null; } @@ -57,7 +55,7 @@ public class SendFusionTablesUtils { int z; if (track.getNumberOfPoints() < 2) { // Use Google's latitude and longitude - latE6 = 37.423 * 1.E6; + latE6 = 37.423 * 1.E6; lonE6 = -122.084 * 1.E6; z = 2; } else { @@ -69,8 +67,7 @@ public class SendFusionTablesUtils { // We explicitly format with Locale.US because we need the latitude and // longitude to be formatted in a locale-independent manner. Specifically, // we need the decimal separator to be a period rather than a comma. - return String.format( - Locale.US, MAP_URL, track.getTableId(), latE6 / 1.E6, lonE6 / 1.E6, z); + return String.format(Locale.US, MAP_URL, tableId, latE6 / 1.E6, lonE6 / 1.E6, z); } /** diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/maps/SendMapsAsyncTask.java b/MyTracks/src/com/google/android/apps/mytracks/io/maps/SendMapsAsyncTask.java index a80c555df..11a5fb040 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/maps/SendMapsAsyncTask.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/maps/SendMapsAsyncTask.java @@ -123,17 +123,6 @@ public class SendMapsAsyncTask extends AbstractSendAsyncTask { } } - @Override - protected void saveResult() { - Track track = myTracksProviderUtils.getTrack(trackId); - if (track == null) { - Log.d(TAG, "No track for " + trackId); - return; - } - track.setMapId(mapId); - myTracksProviderUtils.updateTrack(track); - } - @Override protected boolean performTask() { // Reset the per upload states @@ -222,6 +211,7 @@ public class SendMapsAsyncTask extends AbstractSendAsyncTask { + context.getString(R.string.send_google_by_my_tracks, "", ""); mapId = SendMapsUtils.createNewMap( track.getName(), description, defaultMapPublic, mapsClient, authToken); + shareUrl = MapsClient.buildMapUrl(mapId); } catch (ParseException e) { Log.d(TAG, "Unable to create a new map", e); return false; diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/maps/SendMapsUtils.java b/MyTracks/src/com/google/android/apps/mytracks/io/maps/SendMapsUtils.java index f930039ae..2b811db42 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/maps/SendMapsUtils.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/maps/SendMapsUtils.java @@ -15,7 +15,6 @@ */ package com.google.android.apps.mytracks.io.maps; -import com.google.android.apps.mytracks.content.Track; import com.google.android.apps.mytracks.content.Waypoint; import com.google.android.apps.mytracks.io.gdata.maps.MapsClient; import com.google.android.apps.mytracks.io.gdata.maps.MapsFeature; @@ -46,22 +45,6 @@ public class SendMapsUtils { private SendMapsUtils() {} - /** - * Gets the Google Maps url for a track. - * - * @param track the track - * @return the url if available. - */ - public static String getMapUrl(Track track) { - if (track == null - || track.getMapId() == null - || track.getMapId().length() == 0) { - Log.e(TAG, "Invalid track"); - return null; - } - return MapsClient.buildMapUrl(track.getMapId()); - } - /** * Creates a new Google Map. * diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/sendtogoogle/AbstractSendAsyncTask.java b/MyTracks/src/com/google/android/apps/mytracks/io/sendtogoogle/AbstractSendAsyncTask.java index 2b69b269f..dd9fe1a0e 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/sendtogoogle/AbstractSendAsyncTask.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/sendtogoogle/AbstractSendAsyncTask.java @@ -100,9 +100,6 @@ public abstract class AbstractSendAsyncTask extends AsyncTask