summaryrefslogtreecommitdiffstats
path: root/mobile/android/thirdparty/com/squareup/picasso/UrlConnectionDownloader.java
diff options
context:
space:
mode:
Diffstat (limited to 'mobile/android/thirdparty/com/squareup/picasso/UrlConnectionDownloader.java')
-rw-r--r--mobile/android/thirdparty/com/squareup/picasso/UrlConnectionDownloader.java100
1 files changed, 0 insertions, 100 deletions
diff --git a/mobile/android/thirdparty/com/squareup/picasso/UrlConnectionDownloader.java b/mobile/android/thirdparty/com/squareup/picasso/UrlConnectionDownloader.java
deleted file mode 100644
index 50f9b2b98..000000000
--- a/mobile/android/thirdparty/com/squareup/picasso/UrlConnectionDownloader.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (C) 2013 Square, Inc.
- *
- * 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.squareup.picasso;
-
-import android.content.Context;
-import android.net.Uri;
-import android.net.http.HttpResponseCache;
-import android.os.Build;
-import java.io.File;
-import java.io.IOException;
-import java.net.HttpURLConnection;
-import java.net.URL;
-
-import static com.squareup.picasso.Utils.parseResponseSourceHeader;
-
-/**
- * A {@link Downloader} which uses {@link HttpURLConnection} to download images. A disk cache of 2%
- * of the total available space will be used (capped at 50MB) will automatically be installed in the
- * application's cache directory, when available.
- */
-public class UrlConnectionDownloader implements Downloader {
- static final String RESPONSE_SOURCE = "X-Android-Response-Source";
-
- private static final Object lock = new Object();
- static volatile Object cache;
-
- private final Context context;
-
- public UrlConnectionDownloader(Context context) {
- this.context = context.getApplicationContext();
- }
-
- protected HttpURLConnection openConnection(Uri path) throws IOException {
- HttpURLConnection connection = (HttpURLConnection) new URL(path.toString()).openConnection();
- connection.setConnectTimeout(Utils.DEFAULT_CONNECT_TIMEOUT);
- connection.setReadTimeout(Utils.DEFAULT_READ_TIMEOUT);
- return connection;
- }
-
- @Override public Response load(Uri uri, boolean localCacheOnly) throws IOException {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
- installCacheIfNeeded(context);
- }
-
- HttpURLConnection connection = openConnection(uri);
- connection.setUseCaches(true);
- if (localCacheOnly) {
- connection.setRequestProperty("Cache-Control", "only-if-cached,max-age=" + Integer.MAX_VALUE);
- }
-
- int responseCode = connection.getResponseCode();
- if (responseCode >= 300) {
- connection.disconnect();
- throw new ResponseException(responseCode + " " + connection.getResponseMessage());
- }
-
- boolean fromCache = parseResponseSourceHeader(connection.getHeaderField(RESPONSE_SOURCE));
-
- return new Response(connection.getInputStream(), fromCache);
- }
-
- private static void installCacheIfNeeded(Context context) {
- // DCL + volatile should be safe after Java 5.
- if (cache == null) {
- try {
- synchronized (lock) {
- if (cache == null) {
- cache = ResponseCacheIcs.install(context);
- }
- }
- } catch (IOException ignored) {
- }
- }
- }
-
- private static class ResponseCacheIcs {
- static Object install(Context context) throws IOException {
- File cacheDir = Utils.createDefaultCacheDir(context);
- HttpResponseCache cache = HttpResponseCache.getInstalled();
- if (cache == null) {
- long maxSize = Utils.calculateDiskCacheSize(cacheDir);
- cache = HttpResponseCache.install(cacheDir, maxSize);
- }
- return cache;
- }
- }
-}