Skip to content

Commit dd79abf

Browse files
committed
feat(image): android support for useOkhttp
Useful to share the same cache/client as http requests
1 parent a216a88 commit dd79abf

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

src/image/index-common.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ export interface ImageError {
5757
export interface ImagePipelineConfigSetting {
5858
isDownsampleEnabled?: boolean;
5959
leakTracker?: any;
60+
useOkhttp?: boolean;
6061
}
6162

6263
export class EventData implements IEventData {

src/image/index.android.ts

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,24 @@ export function initialize(config?: ImagePipelineConfigSetting): void {
1414
initializeConfig = config;
1515
return;
1616
}
17-
const builder = com.facebook.imagepipeline.core.ImagePipelineConfig.newBuilder(context);
18-
if (config && config.isDownsampleEnabled) {
17+
let builder: com.facebook.imagepipeline.core.ImagePipelineConfig.Builder;
18+
const useOkhttp = config?.useOkhttp;
19+
if (useOkhttp) {
20+
//@ts-ignore
21+
if (useOkhttp instanceof okhttp3.OkHttpClient) {
22+
//@ts-ignore
23+
builder = com.facebook.imagepipeline.backends.okhttp3.OkHttpImagePipelineConfigFactory.newBuilder(context, useOkhttp);
24+
} else {
25+
//@ts-ignore
26+
builder = com.facebook.imagepipeline.backends.okhttp3.OkHttpImagePipelineConfigFactory.newBuilder(context, new okhttp3.OkHttpClient());
27+
}
28+
} else {
29+
builder = com.facebook.imagepipeline.core.ImagePipelineConfig.newBuilder(context);
30+
}
31+
if (config?.isDownsampleEnabled) {
1932
builder.setDownsampleEnabled(true);
2033
}
21-
if (config && config.leakTracker) {
34+
if (config?.leakTracker) {
2235
builder.setCloseableReferenceLeakTracker(config.leakTracker);
2336
}
2437
// builder.experiment().setNativeCodeDisabled(true);
@@ -722,7 +735,6 @@ export class Img extends ImageBase {
722735
const controller = builder.build();
723736

724737
this.nativeImageViewProtected.setController(controller);
725-
console.log('setController', this, src, uri);
726738
// } else {
727739
// const dataSource = com.facebook.drawee.backends.pipeline.Fresco.getImagePipeline().fetchDecodedImage(request, src);
728740
// const result = com.facebook.datasource.DataSources.waitForFinalResult(dataSource);

0 commit comments

Comments
 (0)