diff options
Diffstat (limited to 'gallerycommon/src/com/android/gallery3d/common/HttpClientFactory.java')
-rw-r--r-- | gallerycommon/src/com/android/gallery3d/common/HttpClientFactory.java | 133 |
1 files changed, 0 insertions, 133 deletions
diff --git a/gallerycommon/src/com/android/gallery3d/common/HttpClientFactory.java b/gallerycommon/src/com/android/gallery3d/common/HttpClientFactory.java deleted file mode 100644 index 18b7a8875..000000000 --- a/gallerycommon/src/com/android/gallery3d/common/HttpClientFactory.java +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright (C) 2011 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.gallery3d.common; - -import android.content.Context; -import android.content.pm.PackageInfo; -import android.content.pm.PackageManager.NameNotFoundException; -import android.os.Build; - -import org.apache.http.HttpVersion; -import org.apache.http.client.HttpClient; -import org.apache.http.conn.params.ConnManagerParams; -import org.apache.http.params.CoreProtocolPNames; -import org.apache.http.params.HttpParams; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; - -/** - * Constructs {@link HttpClient} instances and isolates client code from API - * level differences. - */ -public final class HttpClientFactory { - // TODO: migrate GDataClient to use this util method instead of apache's - // DefaultHttpClient. - /** - * Creates an HttpClient with the userAgent string constructed from the - * package name contained in the context. - * @return the client - */ - public static HttpClient newHttpClient(Context context) { - return HttpClientFactory.newHttpClient(getUserAgent(context)); - } - - /** - * Creates an HttpClient with the specified userAgent string. - * @param userAgent the userAgent string - * @return the client - */ - public static HttpClient newHttpClient(String userAgent) { - // AndroidHttpClient is available on all platform releases, - // but is hidden until API Level 8 - try { - Class<?> clazz = Class.forName("android.net.http.AndroidHttpClient"); - Method newInstance = clazz.getMethod("newInstance", String.class); - Object instance = newInstance.invoke(null, userAgent); - - HttpClient client = (HttpClient) instance; - - // ensure we default to HTTP 1.1 - HttpParams params = client.getParams(); - params.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1); - - // AndroidHttpClient sets these two parameters thusly by default: - // HttpConnectionParams.setSoTimeout(params, 60 * 1000); - // HttpConnectionParams.setConnectionTimeout(params, 60 * 1000); - - // however it doesn't set this one... - ConnManagerParams.setTimeout(params, 60 * 1000); - - return client; - } catch (InvocationTargetException e) { - throw new RuntimeException(e); - } catch (ClassNotFoundException e) { - throw new RuntimeException(e); - } catch (NoSuchMethodException e) { - throw new RuntimeException(e); - } catch (IllegalAccessException e) { - throw new RuntimeException(e); - } - } - - /** - * Closes an HttpClient. - */ - public static void close(HttpClient client) { - // AndroidHttpClient is available on all platform releases, - // but is hidden until API Level 8 - try { - Class<?> clazz = client.getClass(); - Method method = clazz.getMethod("close", (Class<?>[]) null); - method.invoke(client, (Object[]) null); - } catch (InvocationTargetException e) { - throw new RuntimeException(e); - } catch (NoSuchMethodException e) { - throw new RuntimeException(e); - } catch (IllegalAccessException e) { - throw new RuntimeException(e); - } - } - - private static String sUserAgent = null; - - private static String getUserAgent(Context context) { - if (sUserAgent == null) { - PackageInfo pi; - try { - pi = context.getPackageManager().getPackageInfo( - context.getPackageName(), 0); - } catch (NameNotFoundException e) { - throw new IllegalStateException("getPackageInfo failed"); - } - sUserAgent = String.format("%s/%s; %s/%s/%s/%s; %s/%s/%s", - pi.packageName, - pi.versionName, - Build.BRAND, - Build.DEVICE, - Build.MODEL, - Build.ID, - Build.VERSION.SDK_INT, - Build.VERSION.RELEASE, - Build.VERSION.INCREMENTAL); - } - return sUserAgent; - } - - private HttpClientFactory() { - } -} |