Skip to content

Commit e1d2553

Browse files
committed
fix(core-tabs): getOriginalIcon fix for ImageSource and ImageAsset
1 parent 3b5cc40 commit e1d2553

File tree

1 file changed

+16
-12
lines changed

1 file changed

+16
-12
lines changed

src/core-tabs/tab-navigation/index.android.ts

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Application, Color, CoreTypes, Font, ImageSource, Utils, getTransformedText } from '@nativescript/core';
1+
import { Application, Color, CoreTypes, Font, ImageAsset, ImageSource, Utils, getTransformedText } from '@nativescript/core';
22
import { TabContentItem } from '../tab-content-item';
33
import { getIconSpecSize, itemsProperty, selectedIndexProperty, tabStripProperty } from '../tab-navigation-base';
44
import { TabStrip } from '../tab-strip';
@@ -459,25 +459,29 @@ export abstract class TabNavigation<T extends android.view.ViewGroup = any> exte
459459
}
460460

461461
private getOriginalIcon(tabStripItem: TabStripItem, color?: Color): android.graphics.Bitmap {
462-
const iconSource = tabStripItem.image && tabStripItem.image.src;
462+
const iconSource = tabStripItem.image?.src;
463463
if (!iconSource) {
464464
return null;
465465
}
466466

467-
let is: ImageSource;
468-
if (Utils.isFontIconURI(iconSource)) {
469-
const fontIconCode = iconSource.split('//')[1];
470-
const target = tabStripItem.image ? tabStripItem.image : tabStripItem;
471-
const font = target.style.fontInternal;
472-
if (!color) {
473-
color = target.style.color;
467+
let is: ImageSource | ImageAsset;
468+
if (typeof iconSource === 'string') {
469+
if (Utils.isFontIconURI(iconSource)) {
470+
const fontIconCode = iconSource.split('//')[1];
471+
const target = tabStripItem.image ? tabStripItem.image : tabStripItem;
472+
const font = target.style.fontInternal;
473+
if (!color) {
474+
color = target.style.color;
475+
}
476+
is = ImageSource.fromFontIconCodeSync(fontIconCode, font, color);
477+
} else {
478+
is = ImageSource.fromFileOrResourceSync(iconSource);
474479
}
475-
is = ImageSource.fromFontIconCodeSync(fontIconCode, font, color);
476480
} else {
477-
is = ImageSource.fromFileOrResourceSync(iconSource);
481+
is = iconSource;
478482
}
479483

480-
return is && is.android;
484+
return is?.android;
481485
}
482486

483487
private getDrawableInfo(image: android.graphics.Bitmap): IconInfo {

0 commit comments

Comments
 (0)