forked from upstream-mirrors/OpenTracks
Fixing issue 190 (second step: refactoring mymaps uploading)
This commit is contained in:
@@ -26,6 +26,7 @@ import com.google.android.apps.mytracks.io.AuthManagerFactory;
|
||||
import com.google.android.apps.mytracks.io.GpxImporter;
|
||||
import com.google.android.apps.mytracks.io.SendToDocs;
|
||||
import com.google.android.apps.mytracks.io.SendToMyMaps;
|
||||
import com.google.android.apps.mytracks.io.SendToMyMaps.OnSendCompletedListener;
|
||||
import com.google.android.apps.mytracks.io.TrackWriter;
|
||||
import com.google.android.apps.mytracks.io.TrackWriterFactory;
|
||||
import com.google.android.apps.mytracks.io.TrackWriterFactory.TrackFileFormat;
|
||||
@@ -55,6 +56,8 @@ import android.location.LocationManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Environment;
|
||||
import android.os.Handler;
|
||||
import android.os.HandlerThread;
|
||||
import android.os.IBinder;
|
||||
import android.os.RemoteException;
|
||||
import android.util.Log;
|
||||
@@ -523,8 +526,8 @@ public class MyTracks extends TabActivity implements OnTouchListener,
|
||||
if (results.hasExtra("mapid")) {
|
||||
sendToMyMapsMapId = results.getStringExtra("mapid");
|
||||
}
|
||||
setProgressMessage(getString(
|
||||
R.string.progress_message_authenticating_mymaps));
|
||||
setProgressMessage(
|
||||
R.string.progress_message_authenticating_mymaps);
|
||||
authenticate(results, MyTracksConstants.SEND_TO_GOOGLE,
|
||||
MyMapsConstants.MAPSHOP_SERVICE);
|
||||
} else {
|
||||
@@ -590,7 +593,7 @@ public class MyTracks extends TabActivity implements OnTouchListener,
|
||||
if (resultCode == RESULT_OK) {
|
||||
setProgressValue(0);
|
||||
setProgressMessage(
|
||||
getString(R.string.progress_message_authenticating_docs));
|
||||
R.string.progress_message_authenticating_docs);
|
||||
authenticate(results,
|
||||
MyTracksConstants.AUTHENTICATE_TO_TRIX, "writely");
|
||||
} else {
|
||||
@@ -602,7 +605,7 @@ public class MyTracks extends TabActivity implements OnTouchListener,
|
||||
if (resultCode == RESULT_OK) {
|
||||
setProgressValue(30);
|
||||
setProgressMessage(
|
||||
getString(R.string.progress_message_authenticating_docs));
|
||||
R.string.progress_message_authenticating_docs);
|
||||
authenticate(results, MyTracksConstants.SEND_TO_DOCS, "wise");
|
||||
} else {
|
||||
dismissDialogSafely(DIALOG_PROGRESS);
|
||||
@@ -613,7 +616,7 @@ public class MyTracks extends TabActivity implements OnTouchListener,
|
||||
if (results != null && resultCode == RESULT_OK) {
|
||||
Log.d(MyTracksConstants.TAG, "Sending to Docs....");
|
||||
setProgressValue(50);
|
||||
setProgressMessage(getString(R.string.progress_message_sending_docs));
|
||||
setProgressMessage(R.string.progress_message_sending_docs);
|
||||
final long trackId = results.getLongExtra("trackid", selectedTrackId);
|
||||
final SendToDocs sender = new SendToDocs(this, authMap.get("wise"),
|
||||
authMap.get("writely"), trackId);
|
||||
@@ -644,30 +647,30 @@ public class MyTracks extends TabActivity implements OnTouchListener,
|
||||
}
|
||||
case MyTracksConstants.SEND_TO_GOOGLE: {
|
||||
if (results != null && resultCode == RESULT_OK) {
|
||||
final String mapid;
|
||||
final String mapId;
|
||||
final long trackId;
|
||||
if (results.hasExtra("mapid")) {
|
||||
mapid = results.getStringExtra("mapid");
|
||||
mapId = results.getStringExtra("mapid");
|
||||
} else {
|
||||
mapid = "new";
|
||||
mapId = "new";
|
||||
}
|
||||
if (results.hasExtra("trackid")) {
|
||||
trackId = results.getLongExtra("trackid", -1);
|
||||
} else {
|
||||
trackId = selectedTrackId;
|
||||
}
|
||||
final SendToMyMaps sender = new SendToMyMaps(this, mapid, auth,
|
||||
trackId, this/*progressIndicator*/);
|
||||
Runnable onCompletion = new Runnable() {
|
||||
public void run() {
|
||||
sendToMyMapsMessage = sender.getStatusMessage();
|
||||
sendToMyMapsSuccess = sender.wasSuccess();
|
||||
|
||||
OnSendCompletedListener onCompletion = new OnSendCompletedListener() {
|
||||
@Override
|
||||
public void onSendCompleted(String mapId, boolean success, int statusMessage) {
|
||||
sendToMyMapsMessage = getString(statusMessage);
|
||||
sendToMyMapsSuccess = success;
|
||||
if (sendToMyMapsSuccess) {
|
||||
sendToMyMapsMapId = sender.getMapId();
|
||||
sendToMyMapsMapId = mapId;
|
||||
// Update the map id for this track:
|
||||
try {
|
||||
Track track = providerUtils.getTrack(trackId);
|
||||
track.setMapId(sender.getMapId());
|
||||
track.setMapId(mapId);
|
||||
providerUtils.updateTrack(track);
|
||||
} catch (RuntimeException e) {
|
||||
// If that fails whatever reasons we'll just log an error, but
|
||||
@@ -688,8 +691,13 @@ public class MyTracks extends TabActivity implements OnTouchListener,
|
||||
}
|
||||
}
|
||||
};
|
||||
sender.setOnCompletion(onCompletion);
|
||||
sender.run();
|
||||
final SendToMyMaps sender = new SendToMyMaps(this, mapId, auth,
|
||||
trackId, this/*progressIndicator*/, onCompletion);
|
||||
|
||||
HandlerThread handlerThread = new HandlerThread("SendToMyMaps");
|
||||
handlerThread.start();
|
||||
Handler handler = new Handler(handlerThread.getLooper());
|
||||
handler.post(sender);
|
||||
} else {
|
||||
dismissDialogSafely(DIALOG_PROGRESS);
|
||||
}
|
||||
@@ -953,18 +961,31 @@ public class MyTracks extends TabActivity implements OnTouchListener,
|
||||
});
|
||||
}
|
||||
|
||||
public void setProgressMessage(final String text) {
|
||||
// ProgressIndicator implementation
|
||||
|
||||
@Override
|
||||
public void setProgressMessage(int resId) {
|
||||
setProgressMessage(getString(resId));
|
||||
}
|
||||
|
||||
private void setProgressMessage(final String message) {
|
||||
runOnUiThread(new Runnable() {
|
||||
public void run() {
|
||||
synchronized (this) {
|
||||
if (progressDialog != null) {
|
||||
progressDialog.setMessage(text);
|
||||
progressDialog.setMessage(message);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clearProgressMessage() {
|
||||
setProgressMessage("");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setProgressValue(final int percent) {
|
||||
runOnUiThread(new Runnable() {
|
||||
public void run() {
|
||||
@@ -1278,7 +1299,7 @@ public class MyTracks extends TabActivity implements OnTouchListener,
|
||||
return;
|
||||
}
|
||||
setProgressValue(0);
|
||||
setProgressMessage("");
|
||||
clearProgressMessage();
|
||||
showDialogSafely(DIALOG_PROGRESS);
|
||||
if (sendToGoogleDialog.getSendToMyMaps()) {
|
||||
if (!sendToGoogleDialog.getCreateNewMap()) {
|
||||
@@ -1286,8 +1307,8 @@ public class MyTracks extends TabActivity implements OnTouchListener,
|
||||
startActivityForResult(listIntent, MyTracksConstants.GET_MAP);
|
||||
} else {
|
||||
setProgressValue(0);
|
||||
setProgressMessage(getString(
|
||||
R.string.progress_message_authenticating_mymaps));
|
||||
setProgressMessage(
|
||||
R.string.progress_message_authenticating_mymaps);
|
||||
authenticate(new Intent(), MyTracksConstants.SEND_TO_GOOGLE,
|
||||
MyMapsConstants.MAPSHOP_SERVICE);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user