merge heads

This commit is contained in:
Jimmy Shih
2011-11-10 15:53:49 -08:00
parent 9f05d8d8d9
commit f19482985d
24 changed files with 132 additions and 112 deletions
@@ -22,6 +22,7 @@ import com.google.android.apps.mytracks.content.Track;
import com.google.android.apps.mytracks.io.docs.DocsHelper;
import com.google.android.apps.mytracks.io.gdata.GDataClientFactory;
import com.google.android.apps.mytracks.io.gdata.GDataWrapper;
import com.google.android.apps.mytracks.io.sendtogoogle.SendType;
import com.google.android.common.gdata.AndroidXmlParserFactory;
import com.google.android.maps.mytracks.R;
import com.google.wireless.gdata.client.GDataClient;
@@ -115,13 +116,11 @@ public class SendToDocs {
Log.d(Constants.TAG, "SendToDocs: Uploading to spreadsheet");
success = uploadToDocs(track);
if (success) {
if (createdNewSpreadSheet) {
statusMessage = activity.getString(
R.string.send_google_success_new_doc);
} else {
statusMessage = activity.getString(
R.string.send_google_success_existing_doc);
}
String format = createdNewSpreadSheet
? activity.getString(R.string.send_google_success_new_doc)
: activity.getString(R.string.send_google_success_existing_doc);
String url = activity.getString(SendType.DOCS.getServiceUrl());
statusMessage = String.format(format, url);
} else {
statusMessage = activity.getString(R.string.send_google_error_docs);
}
@@ -24,6 +24,7 @@ import com.google.android.apps.mytracks.content.Track;
import com.google.android.apps.mytracks.content.Waypoint;
import com.google.android.apps.mytracks.io.gdata.GDataWrapper;
import com.google.android.apps.mytracks.io.gdata.GDataWrapper.QueryFunction;
import com.google.android.apps.mytracks.io.sendtogoogle.SendType;
import com.google.android.apps.mytracks.stats.DoubleBuffer;
import com.google.android.apps.mytracks.stats.TripStatistics;
import com.google.android.apps.mytracks.util.ApiFeatures;
@@ -71,7 +72,7 @@ public class SendToFusionTables implements Runnable {
* Listener invoked when sending to fusion tables completes.
*/
public interface OnSendCompletedListener {
void onSendCompleted(String tableId, boolean success, int statusMessage);
void onSendCompleted(String tableId, boolean success, String statusMessage);
}
/** The GData service id for Fusion Tables. */
@@ -168,7 +169,7 @@ public class SendToFusionTables implements Runnable {
}
private void doUpload() {
int statusMessageId = R.string.send_google_error_fusion_tables;
String statusMessage = context.getString(R.string.send_google_error_fusion_tables);
boolean success = true;
try {
progressIndicator.setProgressValue(PROGRESS_INITIALIZATION);
@@ -205,17 +206,18 @@ public class SendToFusionTables implements Runnable {
return;
}
statusMessageId = R.string.send_google_success_fusion_tables;
String format = context.getString(R.string.send_google_success_fusion_tables);
String url = context.getString(SendType.FUSION_TABLES.getServiceUrl());
statusMessage = String.format(format, url);
Log.d(Constants.TAG, "SendToFusionTables: Done: " + success);
progressIndicator.setProgressValue(PROGRESS_COMPLETE);
} finally {
final boolean finalSuccess = success;
final int finalStatusMessageId = statusMessageId;
final String finalStatusMessage = statusMessage;
context.runOnUiThread(new Runnable() {
public void run() {
if (onCompletion != null) {
onCompletion.onSendCompleted(
tableId, finalSuccess, finalStatusMessageId);
onCompletion.onSendCompleted(tableId, finalSuccess, finalStatusMessage);
}
}
});
@@ -23,6 +23,7 @@ import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
import com.google.android.apps.mytracks.content.Track;
import com.google.android.apps.mytracks.content.Waypoint;
import com.google.android.apps.mytracks.io.mymaps.MapsFacade;
import com.google.android.apps.mytracks.io.sendtogoogle.SendType;
import com.google.android.apps.mytracks.stats.DoubleBuffer;
import com.google.android.apps.mytracks.stats.TripStatistics;
import com.google.android.apps.mytracks.util.LocationUtils;
@@ -75,7 +76,7 @@ public class SendToMyMaps implements Runnable {
private int totalSegmentsUploaded;
public interface OnSendCompletedListener {
void onSendCompleted(String mapId, boolean success, int statusMessage);
void onSendCompleted(String mapId, boolean success, String statusMessage);
}
public SendToMyMaps(Activity context, String mapId, AuthManager auth,
@@ -98,7 +99,7 @@ public class SendToMyMaps implements Runnable {
}
private void doUpload() {
int statusMessageId = R.string.send_google_error_my_maps;
String statusMessage = context.getString(R.string.send_google_error_my_maps);
boolean success = true;
try {
progressIndicator.setProgressMessage(R.string.send_google_progress_reading_track);
@@ -171,9 +172,11 @@ public class SendToMyMaps implements Runnable {
}
if (success) {
statusMessageId = isNewMap
? R.string.send_google_success_new_map
: R.string.send_google_success_existing_map;
String format = isNewMap
? context.getString(R.string.send_google_success_new_map)
: context.getString(R.string.send_google_success_existing_map);
String url = context.getString(SendType.MYMAPS.getServiceUrl());
statusMessage = String.format(format, url);
}
Log.d(TAG, "SendToMyMaps: Done: " + success);
progressIndicator.setProgressValue(100);
@@ -183,12 +186,11 @@ public class SendToMyMaps implements Runnable {
}
final boolean finalSuccess = success;
final int finalStatusMessageId = statusMessageId;
final String finalStatusMessage = statusMessage;
context.runOnUiThread(new Runnable() {
public void run() {
if (onCompletion != null) {
onCompletion.onSendCompleted(
mapId, finalSuccess, finalStatusMessageId);
onCompletion.onSendCompleted(mapId, finalSuccess, finalStatusMessage);
}
}
});
@@ -3,6 +3,7 @@ package com.google.android.apps.mytracks.io.mymaps;
import com.google.android.apps.mytracks.content.Waypoint;
import com.google.android.apps.mytracks.io.AuthManager;
import com.google.android.apps.mytracks.util.StringUtils;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.mytracks.R;
import com.google.wireless.gdata.client.HttpException;
@@ -119,7 +120,7 @@ public class MapsFacade {
MyMapsMapMetadata metaData = new MyMapsMapMetadata();
metaData.setTitle(title);
metaData.setDescription(description + " - "
+ category + " - " + context.getString(R.string.send_google_by_my_tracks));
+ category + " - " + StringUtils.getCreatedByMyTracks(context, false));
metaData.setSearchable(isPublic);
Entry entry = MyMapsGDataConverter.getMapEntryForMetadata(metaData);
Log.d(MyMapsConstants.TAG, "Title: " + entry.getTitle());
@@ -428,9 +428,9 @@ public class SendActivity extends Activity implements ProgressIndicator {
SendToMyMaps.OnSendCompletedListener onCompletion = new SendToMyMaps.OnSendCompletedListener() {
@Override
public void onSendCompleted(String mapId, boolean success, int statusMessage) {
public void onSendCompleted(String mapId, boolean success, String statusMessage) {
// TODO: Use this message
sendToMyMapsMessage = getString(statusMessage);
sendToMyMapsMessage = statusMessage;
sendToMyMapsSuccess = success;
if (sendToMyMapsSuccess) {
sendToMyMapsMapId = mapId;
@@ -489,10 +489,9 @@ public class SendActivity extends Activity implements ProgressIndicator {
OnSendCompletedListener onCompletion = new OnSendCompletedListener() {
@Override
public void onSendCompleted(String tableId, boolean success,
int statusMessage) {
public void onSendCompleted(String tableId, boolean success, String statusMessage) {
// TODO: Use this message
sendToFusionTablesMessage = getString(statusMessage);
sendToFusionTablesMessage = statusMessage;
sendToFusionTablesSuccess = success;
if (sendToFusionTablesSuccess) {
sendToFusionTablesTableId = tableId;
@@ -24,11 +24,11 @@ import com.google.android.maps.mytracks.R;
*/
public enum SendType {
MYMAPS(R.string.send_google_my_maps,
R.string.sendtogoogle_google_mymaps_url),
R.string.send_google_my_maps_url),
FUSION_TABLES(R.string.send_google_fusion_tables,
R.string.sendtogoogle_google_fusiontables_url),
R.string.send_google_fusion_tables_url),
DOCS(R.string.send_google_docs,
R.string.sendtogoogle_google_docs_url);
R.string.send_google_docs_url);
private int serviceName;
private int serviceUrl;
@@ -24,6 +24,7 @@ import com.google.android.apps.mytracks.stats.TripStatistics;
import com.google.android.apps.mytracks.util.StringUtils;
import com.google.android.apps.mytracks.util.UnitConversions;
import com.google.android.maps.mytracks.R;
import com.google.common.annotations.VisibleForTesting;
import android.content.Context;
import android.content.SharedPreferences;
@@ -327,7 +328,8 @@ public class StatusAnnouncerTask implements PeriodicTask {
*
* @param time the time
*/
private String getAnnounceTime(long time) {
@VisibleForTesting
String getAnnounceTime(long time) {
int[] parts = StringUtils.getTimeParts(time);
String secLabel =
context.getString(parts[0] == 1 ? R.string.voice_second : R.string.voice_seconds);
@@ -343,6 +345,7 @@ public class StatusAnnouncerTask implements PeriodicTask {
sb.append(hourLabel);
sb.append(" ");
sb.append(parts[1]);
sb.append(" ");
sb.append(minLabel);
} else {
sb.append(parts[1]);
@@ -350,6 +353,7 @@ public class StatusAnnouncerTask implements PeriodicTask {
sb.append(minLabel);
sb.append(" ");
sb.append(parts[0]);
sb.append(" ");
sb.append(secLabel);
}
return sb.toString();
@@ -303,7 +303,7 @@ public class StringUtils implements DescriptionGenerator {
+ "<img border=\"0\" src=\"%s\"/>",
// Line 1
context.getString(R.string.send_google_by_my_tracks),
getCreatedByMyTracks(context, true),
// Line 2
context.getString(R.string.stat_total_distance),
@@ -353,6 +353,22 @@ public class StringUtils implements DescriptionGenerator {
ChartURLGenerator.getChartUrl(distances, elevations, track, context));
}
/**
* Returns the 'Created by My Tracks on Android' string.
*
* @param context the context
* @param addLink true to add a link to the My Tracks web site
*/
public static String getCreatedByMyTracks(Context context, boolean addLink) {
String format = context.getString(R.string.send_google_by_my_tracks);
if (addLink) {
String url = context.getString(R.string.my_tracks_web_url);
return String.format(format, "<a href='http://" + url + "'>", "</a>");
} else {
return String.format(format, "", "");
}
}
private String getSpeedString(double speed, int speedLabel, int paceLabel,
boolean displaySpeed) {
double speedInKph = speed * 3.6;