diff options
author | Nick Kralevich <nnk@google.com> | 2011-05-26 13:32:03 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-05-26 13:32:03 -0700 |
commit | 5379cd3f586062b9e0a2f31058326097dc727bfe (patch) | |
tree | 43e6789f352ac842c82a9b6a45407e4c257a6209 | |
parent | 60b67e274a7f4b57a6fedbf6eb3bafdf1cf738ab (diff) | |
parent | 7a763db1c15bb6436be85a3f23382e4171970b6e (diff) | |
download | Gallery3D-5379cd3f586062b9e0a2f31058326097dc727bfe.tar.gz |
Merge "Fix 4442284 Android Picasa sync over HTTP - data and credentials sent in clear text. DO NOT MERGE." into gingerbreadandroid-cts-2.3_r5android-cts-2.3_r4android-cts-2.3_r12android-cts-2.3_r11android-cts-2.3_r10gingerbread
-rw-r--r-- | src/com/cooliris/picasa/GDataClient.java | 2 | ||||
-rw-r--r-- | src/com/cooliris/picasa/PicasaApi.java | 17 | ||||
-rw-r--r-- | src/com/cooliris/picasa/PicasaContentProvider.java | 2 |
3 files changed, 16 insertions, 5 deletions
diff --git a/src/com/cooliris/picasa/GDataClient.java b/src/com/cooliris/picasa/GDataClient.java index a2e2be2..b156347 100644 --- a/src/com/cooliris/picasa/GDataClient.java +++ b/src/com/cooliris/picasa/GDataClient.java @@ -32,6 +32,7 @@ import org.apache.http.client.params.HttpClientParams; import org.apache.http.conn.scheme.PlainSocketFactory; import org.apache.http.conn.scheme.Scheme; import org.apache.http.conn.scheme.SchemeRegistry; +import org.apache.http.conn.ssl.SSLSocketFactory; import org.apache.http.entity.ByteArrayEntity; import org.apache.http.entity.InputStreamEntity; import org.apache.http.impl.client.DefaultHttpClient; @@ -70,6 +71,7 @@ public final class GDataClient { // Register HTTP protocol. SchemeRegistry schemeRegistry = new SchemeRegistry(); schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80)); + schemeRegistry.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443)); // Create the connection manager. HTTP_CONNECTION_MANAGER = new ThreadSafeClientConnManager(params, schemeRegistry); diff --git a/src/com/cooliris/picasa/PicasaApi.java b/src/com/cooliris/picasa/PicasaApi.java index 90f3db1..d7f214a 100644 --- a/src/com/cooliris/picasa/PicasaApi.java +++ b/src/com/cooliris/picasa/PicasaApi.java @@ -28,10 +28,12 @@ import android.accounts.AccountManager; import android.accounts.AuthenticatorException; import android.accounts.OperationCanceledException; import android.app.Activity; +import android.content.ContentResolver; import android.content.Context; import android.content.SyncResult; import android.net.Uri; import android.os.Bundle; +import android.provider.Settings; import android.util.Log; import android.util.Xml; @@ -41,7 +43,8 @@ public final class PicasaApi { public static final int RESULT_ERROR = 2; private static final String TAG = "PicasaAPI"; - private static final String BASE_URL = "http://picasaweb.google.com/data/feed/api/"; + private static final String SETTINGS_PICASA_GDATA_BASE_URL_KEY = "picasa_gdata_base_url"; + private static final String DEFAULT_BASE_URL = "https://picasaweb.google.com/data/feed/api/"; private static final String BASE_QUERY_STRING; static { @@ -54,6 +57,7 @@ public final class PicasaApi { BASE_QUERY_STRING = query.toString() + "&visibility=visible"; } + private final ContentResolver mContentResolver; private final GDataClient mClient; private final GDataClient.Operation mOperation = new GDataClient.Operation(); private final GDataParser mParser = new GDataParser(); @@ -151,7 +155,8 @@ public final class PicasaApi { return username; } - public PicasaApi() { + public PicasaApi(ContentResolver cr) { + mContentResolver = cr; mClient = new GDataClient(); } @@ -164,7 +169,9 @@ public final class PicasaApi { public int getAlbums(AccountManager accountManager, SyncResult syncResult, UserEntry user, GDataParser.EntryHandler handler) { // Construct the query URL for user albums. - StringBuilder builder = new StringBuilder(BASE_URL); + String baseUrl = Settings.Secure.getString(mContentResolver, + SETTINGS_PICASA_GDATA_BASE_URL_KEY); + StringBuilder builder = new StringBuilder(baseUrl != null ? baseUrl : DEFAULT_BASE_URL); builder.append("user/"); builder.append(Uri.encode(mAuth.user)); builder.append(BASE_QUERY_STRING); @@ -237,7 +244,9 @@ public final class PicasaApi { public int getAlbumPhotos(AccountManager accountManager, SyncResult syncResult, AlbumEntry album, GDataParser.EntryHandler handler) { // Construct the query URL for user albums. - StringBuilder builder = new StringBuilder(BASE_URL); + String baseUrl = Settings.Secure.getString(mContentResolver, + SETTINGS_PICASA_GDATA_BASE_URL_KEY); + StringBuilder builder = new StringBuilder(baseUrl != null ? baseUrl : DEFAULT_BASE_URL); builder.append("user/"); builder.append(Uri.encode(mAuth.user)); builder.append("/albumid/"); diff --git a/src/com/cooliris/picasa/PicasaContentProvider.java b/src/com/cooliris/picasa/PicasaContentProvider.java index 870c7f1..4211fcf 100644 --- a/src/com/cooliris/picasa/PicasaContentProvider.java +++ b/src/com/cooliris/picasa/PicasaContentProvider.java @@ -516,7 +516,7 @@ public final class PicasaContentProvider extends TableContentProvider { // A connection to the Picasa API for a specific user account. Initially // null. - public PicasaApi api = new PicasaApi(); + public PicasaApi api = new PicasaApi(getContext().getContentResolver()); // A handle to the Picasa databse. public SQLiteDatabase db; |