diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/MyMapsFactory.java b/MyTracks/src/com/google/android/apps/mytracks/io/MyMapsFactory.java index d7108d352..5bbce5a50 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/MyMapsFactory.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/MyMapsFactory.java @@ -2,7 +2,6 @@ package com.google.android.apps.mytracks.io; import com.google.android.apps.mytracks.io.gdata.GDataClientFactory; import com.google.android.apps.mytracks.io.mymaps.MapsFacade; -import com.google.android.apps.mytracks.io.mymaps.MapsFacade.AuthenticationRefresher; import com.google.android.apps.mytracks.io.mymaps.MapsService; import android.app.Activity; @@ -24,13 +23,7 @@ public class MyMapsFactory { public static MapsFacade newMapsClient(Activity context, final AuthManager auth) { MapsFacade client = MapsService.newClient(context, GDataClientFactory.getGDataClient(context), - auth.getAuthToken()); - client.setAuthenticationRefresher(new AuthenticationRefresher() { - @Override - public void invalidateAndRefresh(Runnable done) { - auth.invalidateAndRefresh(done); - } - }); + auth); return client; } diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/mymaps/MapsFacade.java b/MyTracks/src/com/google/android/apps/mytracks/io/mymaps/MapsFacade.java index d55ebbc58..3a291ba27 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/mymaps/MapsFacade.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/mymaps/MapsFacade.java @@ -12,15 +12,6 @@ import java.util.Collection; */ public interface MapsFacade { - /** Interface used for refreshing authentication credentials. */ - public interface AuthenticationRefresher { - /** Refreshes authentication credentials, then calls done. */ - void invalidateAndRefresh(Runnable done); - } - - /** Sets the authentication refresher to use. */ - void setAuthenticationRefresher(AuthenticationRefresher refresher); - /** * Interface for receiving data back from getMapsList. * All calls to the interface will happen before getMapsList returns. diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/mymaps/MapsFacadeImpl.java b/MyTracks/src/com/google/android/apps/mytracks/io/mymaps/MapsFacadeImpl.java index 2f3a5fc45..2b8007c34 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/mymaps/MapsFacadeImpl.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/mymaps/MapsFacadeImpl.java @@ -1,6 +1,7 @@ // Copyright 2011 Google Inc. All Rights Reserved. package com.google.android.apps.mytracks.io.mymaps; +import com.google.android.apps.mytracks.io.AuthManager; import com.google.android.maps.GeoPoint; import com.google.android.maps.mytracks.R; import com.google.wireless.gdata.client.GDataClient; @@ -36,11 +37,11 @@ class MapsFacadeImpl implements MapsFacade { private final String authToken; public MapsFacadeImpl(Context context, GDataClient gdataClient, - String authToken) { + AuthManager auth) { this.context = context; - this.authToken = authToken; + this.authToken = auth.getAuthToken(); - wrapper = new MyMapsGDataWrapper(context, gdataClient); + wrapper = new MyMapsGDataWrapper(context, gdataClient, auth); wrapper.setRetryOnAuthFailure(true); try { @@ -50,11 +51,6 @@ class MapsFacadeImpl implements MapsFacade { } } - @Override - public void setAuthenticationRefresher(AuthenticationRefresher refresher) { - wrapper.setAuthenticationRefresher(refresher); - } - @Override public boolean getMapsList(final MapsListCallback callback) { return wrapper.runQuery(new MyMapsGDataWrapper.QueryFunction() { diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/mymaps/MapsService.java b/MyTracks/src/com/google/android/apps/mytracks/io/mymaps/MapsService.java index d1b61b20f..713abda59 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/mymaps/MapsService.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/mymaps/MapsService.java @@ -1,6 +1,7 @@ // Copyright 2011 Google Inc. All Rights Reserved. package com.google.android.apps.mytracks.io.mymaps; +import com.google.android.apps.mytracks.io.AuthManager; import com.google.wireless.gdata.client.GDataClient; import android.app.Activity; @@ -25,8 +26,8 @@ public class MapsService { public static MapsFacade newClient( Activity context, GDataClient gDataClient, - String authToken) { - return new MapsFacadeImpl(context, gDataClient, authToken); + AuthManager auth) { + return new MapsFacadeImpl(context, gDataClient, auth); } /** Returns the service name to authenticate to for providing the authentication token above. */ diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/mymaps/MyMapsGDataWrapper.java b/MyTracks/src/com/google/android/apps/mytracks/io/mymaps/MyMapsGDataWrapper.java index 26941aa87..01576f05e 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/mymaps/MyMapsGDataWrapper.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/mymaps/MyMapsGDataWrapper.java @@ -1,7 +1,7 @@ // Copyright 2010 Google Inc. All Rights Reserved. package com.google.android.apps.mytracks.io.mymaps; -import com.google.android.apps.mytracks.io.mymaps.MapsFacade.AuthenticationRefresher; +import com.google.android.apps.mytracks.io.AuthManager; import com.google.android.common.gdata.AndroidXmlParserFactory; import com.google.wireless.gdata.client.GDataClient; import com.google.wireless.gdata.client.HttpException; @@ -56,6 +56,7 @@ class MyMapsGDataWrapper { public static final int ERROR_UNKNOWN = 100; private final GDataClient androidGdataClient; + private final AuthManager auth; private final MapsClient client; private String errorMessage; @@ -63,10 +64,10 @@ class MyMapsGDataWrapper { private boolean retryOnAuthFailure; private int retriesPending; private boolean cleanupCalled; - private AuthenticationRefresher authenticationRefresher; - public MyMapsGDataWrapper(Context context, GDataClient gdataClient) { + public MyMapsGDataWrapper(Context context, GDataClient gdataClient, AuthManager auth) { androidGdataClient = gdataClient; + this.auth = auth; client = new MapsClient(androidGdataClient, new XmlMapsGDataParserFactory( new AndroidXmlParserFactory())); @@ -123,7 +124,7 @@ class MyMapsGDataWrapper { e.printStackTrace(); } Log.d(MyMapsConstants.TAG, "GData error encountered: " + errorMessage); - if (errorType == ERROR_AUTH && authenticationRefresher != null) { + if (errorType == ERROR_AUTH && auth != null) { Runnable whenFinished = null; if (retryOnAuthFailure) { retriesPending++; @@ -138,7 +139,7 @@ class MyMapsGDataWrapper { } }; } - authenticationRefresher.invalidateAndRefresh(whenFinished); + auth.invalidateAndRefresh(whenFinished); } return false; } @@ -161,10 +162,6 @@ class MyMapsGDataWrapper { cleanupCalled = true; } - public void setAuthenticationRefresher(AuthenticationRefresher refresher) { - this.authenticationRefresher = refresher; - } - public void setRetryOnAuthFailure(boolean retry) { retryOnAuthFailure = retry; }