mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-15 19:26:42 +08:00
75 lines
2.4 KiB
TypeScript
75 lines
2.4 KiB
TypeScript
import * as imageCacheModule from "@nativescript/core/ui/image-cache";
|
|
import { ImageSource } from "@nativescript/core/image-source";
|
|
import { isAndroid, device } from "@nativescript/core/platform";
|
|
import lazy from "@nativescript/core/utils/lazy";
|
|
|
|
const sdkVersion = lazy(() => parseInt(device.sdkVersion));
|
|
|
|
export const test_ImageCache_ValidUrl = function (done: (err: Error, res?: string) => void) {
|
|
// see https://github.com/NativeScript/NativeScript/issues/6643
|
|
if (isAndroid && sdkVersion() < 20) {
|
|
done(null);
|
|
|
|
return;
|
|
}
|
|
|
|
const cache = new imageCacheModule.Cache();
|
|
cache.maxRequests = 5;
|
|
|
|
let imgSource: ImageSource;
|
|
const url = "https://github.com/NativeScript.png";
|
|
// Try to read the image from the cache
|
|
const image = cache.get(url);
|
|
if (image) {
|
|
// If present -- use it.
|
|
imgSource = new ImageSource(image);
|
|
done(new Error("The image was found in the cache"));
|
|
}
|
|
else {
|
|
// If not present -- request its download.
|
|
cache.push({
|
|
key: url,
|
|
url: url,
|
|
completed: (image: any, key: string) => {
|
|
if (url === key) {
|
|
imgSource = new ImageSource(image);
|
|
console.log("Valid url: ", key);
|
|
done(null);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
};
|
|
|
|
export const test_ImageCache_NothingAtProvidedUrl = function (done: (err: Error, res?: string) => void) {
|
|
const cache = new imageCacheModule.Cache();
|
|
cache.maxRequests = 5;
|
|
|
|
let imgSource: ImageSource;
|
|
const url = "https://github.com/NativeScript-NoImage.png";
|
|
// Try to read the image from the cache
|
|
const image = cache.get(url);
|
|
if (image) {
|
|
// If present -- use it.
|
|
imgSource = new ImageSource(image);
|
|
done(new Error("The image was found in the cache"));
|
|
}
|
|
else {
|
|
// If not present -- request its download.
|
|
cache.push({
|
|
key: url,
|
|
url: url,
|
|
completed: (image: any, key: string) => {
|
|
if (url === key) {
|
|
imgSource = new ImageSource(image);
|
|
}
|
|
done(new Error("The completed callback was not expected to be called"));
|
|
},
|
|
error: (key: string) => {
|
|
console.log("No image for key: ", key);
|
|
done(null);
|
|
}
|
|
});
|
|
}
|
|
};
|