platformIcon method
Returns an icon for cross-platform display. Uses emoji if fonts are available, native Flutter icons otherwise. On Linux, checks for actual emoji font availability. On other platforms, uses emoji with ASCII fallback in tooltip.
Implementation
Widget platformIcon(
IconData nativeIcon,
String emoji, {
double? size,
Color? color,
}) {
final fallbackText = emojiFallbacks[emoji] ?? emoji;
final useEmoji = hasEmojiFonts();
if (useEmoji) {
// Use emoji on platforms with good emoji support
return Tooltip(
message: fallbackText,
child: Text(
emoji,
style: TextStyle(fontSize: size ?? 16, color: color),
),
);
} else {
// Use native Flutter icons as fallback
return Tooltip(
message: fallbackText,
child: Icon(nativeIcon, size: size ?? 24, color: color),
);
}
}