Files
MWClash/lib/widgets/icon.dart
chen08209 a3e1b38201 Fix windows admin auto launch issues
Add android vpn options

Support proxies icon configuration

Optimize android immersion display

Fix some issues
2024-10-12 15:06:55 +08:00

53 lines
1.1 KiB
Dart

import 'package:cached_network_image/cached_network_image.dart';
import 'package:fl_clash/common/common.dart';
import 'package:flutter/material.dart';
class CommonIcon extends StatelessWidget {
final String src;
final double size;
const CommonIcon({
super.key,
required this.src,
required this.size,
});
Widget _defaultIcon() {
return Icon(
IconsExt.target,
size: size,
);
}
Widget _buildIcon() {
if (src.isEmpty) {
return _defaultIcon();
}
final base64 = src.getBase64;
if (base64 != null) {
return Image.memory(
base64,
gaplessPlayback: true,
errorBuilder: (_, error, ___) {
return _defaultIcon();
},
);
}
return CachedNetworkImage(
imageUrl: src,
fadeInDuration: Duration.zero,
fadeOutDuration: Duration.zero,
errorWidget: (_, __, ___) => _defaultIcon(),
);
}
@override
Widget build(BuildContext context) {
return SizedBox(
width: size,
height: size,
child: _buildIcon(),
);
}
}