summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/net/http/HttpResponseCache.java64
1 files changed, 33 insertions, 31 deletions
diff --git a/core/java/android/net/http/HttpResponseCache.java b/core/java/android/net/http/HttpResponseCache.java
index 729aff0ce278..7da76d119ce4 100644
--- a/core/java/android/net/http/HttpResponseCache.java
+++ b/core/java/android/net/http/HttpResponseCache.java
@@ -16,9 +16,8 @@
package android.net.http;
-import com.android.okhttp.Cache;
-import com.android.okhttp.AndroidShimResponseCache;
-import com.android.okhttp.OkCacheContainer;
+import com.android.okhttp.internalandroidapi.AndroidResponseCacheAdapter;
+import com.android.okhttp.internalandroidapi.HasCacheHolder;
import java.io.Closeable;
import java.io.File;
@@ -149,12 +148,12 @@ import java.util.Map;
* } catch (Exception httpResponseCacheNotAvailable) {
* }}</pre>
*/
-public final class HttpResponseCache extends ResponseCache implements Closeable, OkCacheContainer {
+public final class HttpResponseCache extends ResponseCache implements HasCacheHolder, Closeable {
- private final AndroidShimResponseCache delegate;
+ private final AndroidResponseCacheAdapter mDelegate;
- private HttpResponseCache(AndroidShimResponseCache delegate) {
- this.delegate = delegate;
+ private HttpResponseCache(AndroidResponseCacheAdapter delegate) {
+ mDelegate = delegate;
}
/**
@@ -184,30 +183,33 @@ public final class HttpResponseCache extends ResponseCache implements Closeable,
ResponseCache installed = ResponseCache.getDefault();
if (installed instanceof HttpResponseCache) {
HttpResponseCache installedResponseCache = (HttpResponseCache) installed;
+ CacheHolder cacheHolder = installedResponseCache.getCacheHolder();
// don't close and reopen if an equivalent cache is already installed
- AndroidShimResponseCache trueResponseCache = installedResponseCache.delegate;
- if (trueResponseCache.isEquivalent(directory, maxSize)) {
+ if (cacheHolder.isEquivalent(directory, maxSize)) {
return installedResponseCache;
} else {
// The HttpResponseCache that owns this object is about to be replaced.
- trueResponseCache.close();
+ installedResponseCache.close();
}
}
- AndroidShimResponseCache trueResponseCache =
- AndroidShimResponseCache.create(directory, maxSize);
- HttpResponseCache newResponseCache = new HttpResponseCache(trueResponseCache);
- ResponseCache.setDefault(newResponseCache);
- return newResponseCache;
+ CacheHolder cacheHolder = CacheHolder.create(directory, maxSize);
+ AndroidResponseCacheAdapter androidResponseCacheAdapter =
+ new AndroidResponseCacheAdapter(cacheHolder);
+ HttpResponseCache responseCache = new HttpResponseCache(androidResponseCacheAdapter);
+ ResponseCache.setDefault(responseCache);
+ return responseCache;
}
- @Override public CacheResponse get(URI uri, String requestMethod,
+ @Override
+ public CacheResponse get(URI uri, String requestMethod,
Map<String, List<String>> requestHeaders) throws IOException {
- return delegate.get(uri, requestMethod, requestHeaders);
+ return mDelegate.get(uri, requestMethod, requestHeaders);
}
- @Override public CacheRequest put(URI uri, URLConnection urlConnection) throws IOException {
- return delegate.put(uri, urlConnection);
+ @Override
+ public CacheRequest put(URI uri, URLConnection urlConnection) throws IOException {
+ return mDelegate.put(uri, urlConnection);
}
/**
@@ -217,7 +219,7 @@ public final class HttpResponseCache extends ResponseCache implements Closeable,
*/
public long size() {
try {
- return delegate.size();
+ return mDelegate.getSize();
} catch (IOException e) {
// This can occur if the cache failed to lazily initialize.
return -1;
@@ -229,7 +231,7 @@ public final class HttpResponseCache extends ResponseCache implements Closeable,
* its data.
*/
public long maxSize() {
- return delegate.maxSize();
+ return mDelegate.getMaxSize();
}
/**
@@ -239,7 +241,7 @@ public final class HttpResponseCache extends ResponseCache implements Closeable,
*/
public void flush() {
try {
- delegate.flush();
+ mDelegate.flush();
} catch (IOException ignored) {
}
}
@@ -249,7 +251,7 @@ public final class HttpResponseCache extends ResponseCache implements Closeable,
* supply a response or validate a locally cached response.
*/
public int getNetworkCount() {
- return delegate.getNetworkCount();
+ return mDelegate.getNetworkCount();
}
/**
@@ -258,7 +260,7 @@ public final class HttpResponseCache extends ResponseCache implements Closeable,
* validated over the network.
*/
public int getHitCount() {
- return delegate.getHitCount();
+ return mDelegate.getHitCount();
}
/**
@@ -267,18 +269,19 @@ public final class HttpResponseCache extends ResponseCache implements Closeable,
* to handle a redirects and retries.
*/
public int getRequestCount() {
- return delegate.getRequestCount();
+ return mDelegate.getRequestCount();
}
/**
* Uninstalls the cache and releases any active resources. Stored contents
* will remain on the filesystem.
*/
- @Override public void close() throws IOException {
+ @Override
+ public void close() throws IOException {
if (ResponseCache.getDefault() == this) {
ResponseCache.setDefault(null);
}
- delegate.close();
+ mDelegate.close();
}
/**
@@ -288,13 +291,12 @@ public final class HttpResponseCache extends ResponseCache implements Closeable,
if (ResponseCache.getDefault() == this) {
ResponseCache.setDefault(null);
}
- delegate.delete();
+ mDelegate.delete();
}
/** @hide Needed for OkHttp integration. */
@Override
- public Cache getCache() {
- return delegate.getCache();
+ public CacheHolder getCacheHolder() {
+ return mDelegate.getCacheHolder();
}
-
}