summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Kralevich <nnk@google.com>2011-05-26 13:32:03 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-05-26 13:32:03 -0700
commit5379cd3f586062b9e0a2f31058326097dc727bfe (patch)
tree43e6789f352ac842c82a9b6a45407e4c257a6209
parent60b67e274a7f4b57a6fedbf6eb3bafdf1cf738ab (diff)
parent7a763db1c15bb6436be85a3f23382e4171970b6e (diff)
downloadGallery3D-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.java2
-rw-r--r--src/com/cooliris/picasa/PicasaApi.java17
-rw-r--r--src/com/cooliris/picasa/PicasaContentProvider.java2
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;