Skip to content

Commit 01aeb59

Browse files
committed
fix(android): cacheMode improvements
1 parent 35c35ea commit 01aeb59

File tree

1 file changed

+32
-28
lines changed

1 file changed

+32
-28
lines changed

src/webview/index.android.ts

Lines changed: 32 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,23 @@ const extToMimeType = new Map<string, string>([
4141
const extToBinaryEncoding = new Set<string>(['gif', 'jpeg', 'jpg', 'otf', 'png', 'ttf']);
4242

4343
//#region android_native_classes
44-
let cacheModeMap: Map<CacheMode, number>;
44+
const cacheModeMap = {
45+
get cache_first() {
46+
return android.webkit.WebSettings.LOAD_CACHE_ELSE_NETWORK;
47+
},
48+
get cache_only() {
49+
return android.webkit.WebSettings.LOAD_CACHE_ONLY;
50+
},
51+
get default() {
52+
return android.webkit.WebSettings.LOAD_DEFAULT;
53+
},
54+
get no_cache() {
55+
return android.webkit.WebSettings.LOAD_NO_CACHE;
56+
},
57+
get normal() {
58+
return android.webkit.WebSettings.LOAD_NORMAL;
59+
}
60+
};
4561

4662
export interface AndroidWebViewClient extends android.webkit.WebViewClient {}
4763

@@ -62,14 +78,6 @@ function initializeWebViewClient(): void {
6278
return;
6379
}
6480

65-
cacheModeMap = new Map<CacheMode, number>([
66-
['cache_first', android.webkit.WebSettings.LOAD_CACHE_ELSE_NETWORK],
67-
['cache_only', android.webkit.WebSettings.LOAD_CACHE_ONLY],
68-
['default', android.webkit.WebSettings.LOAD_DEFAULT],
69-
['no_cache', android.webkit.WebSettings.LOAD_NO_CACHE],
70-
['normal', android.webkit.WebSettings.LOAD_NORMAL]
71-
]);
72-
7381
@NativeClass()
7482
class WebViewExtClientImpl extends android.webkit.WebViewClient {
7583
private owner: WeakRef<AWebView>;
@@ -899,20 +907,22 @@ export class AWebView extends WebViewExtBase {
899907
}
900908

901909
[cacheModeProperty.getDefault](): CacheMode | null {
902-
const androidWebView = this.nativeViewProtected;
903-
if (!androidWebView) {
904-
return null;
905-
}
910+
return 'default';
911+
// const androidWebView = this.nativeViewProtected;
912+
// if (!androidWebView) {
913+
// return null;
914+
// }
906915

907-
const settings = androidWebView.getSettings();
908-
const cacheModeInt = settings.getCacheMode();
909-
for (const [key, value] of cacheModeMap) {
910-
if (value === cacheModeInt) {
911-
return key;
912-
}
913-
}
916+
// const settings = androidWebView.getSettings();
917+
// const cacheModeInt = settings.getCacheMode();
918+
919+
// for (const key of Object.keys(cacheModeMap)) {
920+
// if (cacheModeMap[key] === cacheModeInt) {
921+
// return key as CacheMode;
922+
// }
923+
// }
914924

915-
return null;
925+
// return null;
916926
}
917927

918928
[cacheModeProperty.setNative](cacheMode: CacheMode) {
@@ -922,13 +932,7 @@ export class AWebView extends WebViewExtBase {
922932
}
923933

924934
const settings = androidWebView.getSettings();
925-
for (const [key, nativeValue] of cacheModeMap) {
926-
if (key === cacheMode) {
927-
settings.setCacheMode(nativeValue);
928-
929-
return;
930-
}
931-
}
935+
settings.setCacheMode(cacheModeMap[cacheMode]);
932936
}
933937

934938
[databaseStorageProperty.getDefault]() {

0 commit comments

Comments
 (0)