Skip to content

Commit cc225be

Browse files
committed
feat(android): forceCache option
1 parent 7955915 commit cc225be

File tree

4 files changed

+27
-1
lines changed

4 files changed

+27
-1
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.nativescript.https;
2+
import okhttp3.Interceptor;
3+
import okhttp3.Request;
4+
import okhttp3.Response;
5+
import java.io.IOException;
6+
7+
public class CacheInterceptor implements Interceptor {
8+
final String TAG = "CacheInterceptor";
9+
10+
public Response intercept(Interceptor.Chain chain ) throws IOException {
11+
Request originalRequest = chain.request();
12+
String cacheControlHeader = originalRequest.header("Cache-Control");
13+
Response originalResponse = chain.proceed(originalRequest);
14+
return originalResponse.newBuilder().header("Cache-Control", cacheControlHeader).build();
15+
}
16+
17+
18+
}

src/https.android.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,10 @@ const peer: Ipeer = {
1818
};
1919

2020
let cache: okhttp3.Cache;
21-
21+
let forceCache = false;
2222
export function setCache(options?: Https.CacheOptions) {
2323
if (options) {
24+
forceCache = options.forceCache === true;
2425
cache = new okhttp3.Cache(new java.io.File(options.diskLocation), options.diskSize);
2526
} else {
2627
cache = null;
@@ -329,6 +330,9 @@ function getClient(reload: boolean = false, timeout: number = 10): okhttp3.OkHtt
329330

330331
if (cache) {
331332
client.cache(cache);
333+
if (forceCache) {
334+
client.addInterceptor(new com.nativescript.https.CacheInterceptor());
335+
}
332336
}
333337
if (cookieJar) {
334338
client.cookieJar(cookieJar);

src/https.common.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ export interface CacheOptions {
1111
diskLocation: string;
1212
diskSize: number;
1313
memorySize?: number;
14+
forceCache?: boolean;
1415
}
1516

1617
export interface HttpsFormDataParam {

src/typings/android.d.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ declare namespace com {
44
export class QuotePreservingCookieJar extends okhttp3.CookieJar {
55
constructor(manager: java.net.CookieManager);
66
}
7+
export class CacheInterceptor implements okhttp3.Interceptor {
8+
intercept(chain): okhttp3.Response;
9+
}
710
export class OkHttpResponse {
811
progressCallback: OkHttpResponse.OkHttpResponseProgressCallback;
912
closeCallback: OkHttpResponse.OkHttpResponseCloseCallback;

0 commit comments

Comments
 (0)