diff --git a/tns-core-modules/image-source/image-source.android.ts b/tns-core-modules/image-source/image-source.android.ts index 8ed1b7f48..f8847d5b3 100644 --- a/tns-core-modules/image-source/image-source.android.ts +++ b/tns-core-modules/image-source/image-source.android.ts @@ -139,9 +139,11 @@ export class ImageSource implements ImageSourceDefinition { }); } - public setNativeSource(source: any): boolean { + public setNativeSource(source: any): void { + if (source && !(source instanceof android.graphics.Bitmap)) { + throw new Error("The method setNativeSource() expects android.graphics.Bitmap instance."); + } this.android = source; - return source != null; } public saveToFile(path: string, format: "png" | "jpeg" | "jpg", quality = 100): boolean { @@ -239,8 +241,9 @@ export function fromBase64(source: string): ImageSource { } export function fromNativeSource(source: any): ImageSource { - const image = new ImageSource(); - return image.setNativeSource(source) ? image : null; + const imageSource = new ImageSource(); + imageSource.setNativeSource(source); + return imageSource; } export function fromUrl(url: string): Promise { diff --git a/tns-core-modules/image-source/image-source.d.ts b/tns-core-modules/image-source/image-source.d.ts index 23fd5bb59..adde48c27 100644 --- a/tns-core-modules/image-source/image-source.d.ts +++ b/tns-core-modules/image-source/image-source.d.ts @@ -88,11 +88,11 @@ export class ImageSource { fromBase64(source: string): Promise; /** - * Sets the provided native source object (typically a Bitmap). + * Sets the provided native source object (typically a Bitmap or a UIImage). * This will update either the android or ios properties, depending on the target os. * @param source The native image object. Will be either a Bitmap for Android or a UIImage for iOS. */ - setNativeSource(source: any): boolean; + setNativeSource(source: any): void; /** * Saves this instance to the specified file, using the provided image format and quality. diff --git a/tns-core-modules/image-source/image-source.ios.ts b/tns-core-modules/image-source/image-source.ios.ts index b27f28b49..9cd55e34c 100644 --- a/tns-core-modules/image-source/image-source.ios.ts +++ b/tns-core-modules/image-source/image-source.ios.ts @@ -118,11 +118,11 @@ export class ImageSource implements ImageSourceDefinition { }); } - public setNativeSource(source: any): boolean { - if (source instanceof UIImage) { - this.ios = source; + public setNativeSource(source: any): void { + if (source && !(source instanceof UIImage)) { + throw new Error("The method setNativeSource() expects UIImage instance."); } - return source != null; + this.ios = source; } public saveToFile(path: string, format: "png" | "jpeg" | "jpg", quality?: number): boolean { @@ -221,8 +221,9 @@ export function fromBase64(source: string): ImageSource { } export function fromNativeSource(source: any): ImageSource { - const image = new ImageSource(); - return image.setNativeSource(source) ? image : null; + const imageSource = new ImageSource(); + imageSource.setNativeSource(source); + return imageSource; } export function fromUrl(url: string): Promise {