LCOV - code coverage report
Current view: top level - src/style - blend_image_icon.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 10 15 66.7 %
Date: 2020-02-15 12:36:36 Functions: 0 0 -

          Line data    Source code
       1             : import 'package:flutter/cupertino.dart';
       2             : import 'package:flutter/foundation.dart';
       3             : import 'package:flutter/material.dart';
       4             : 
       5             : /// decorate the provided [Image] or [IconData]
       6             : class BlendImageIcon<T> extends StatelessWidget {
       7           1 :   const BlendImageIcon(this.image, {Key key, this.color, this.size})
       8           2 :       : assert(image is Widget || image is IconData,
       9             :             'image must be IconData or Widget'),
      10           1 :         super(key: key);
      11             : 
      12             :   final Color color;
      13             :   final T image;
      14             :   final double size;
      15             : 
      16           1 :   @override
      17             :   Widget build(BuildContext context) {
      18           2 :     if (image is Widget) {
      19           3 :       var s = size ?? IconTheme.of(context).size;
      20             :       // flutter web do not support shader mask. (flutter v1.12.x)
      21           1 :       var showRawImage = kIsWeb || color == null;
      22             :       if (showRawImage) {
      23           1 :         return SizedBox(
      24             :           width: s,
      25             :           height: s,
      26           1 :           child: image as Widget,
      27             :         );
      28             :       }
      29           0 :       return SizedBox(
      30             :         width: s,
      31             :         height: s,
      32           0 :         child: ShaderMask(
      33           0 :           child: image as Widget,
      34           0 :           shaderCallback: (Rect bounds) {
      35           0 :             return LinearGradient(colors: [color, color]).createShader(bounds);
      36             :           },
      37             :           blendMode: BlendMode.srcIn,
      38             :         ),
      39             :       );
      40             :     }
      41           4 :     return Icon(image as IconData, size: size, color: color);
      42             :   }
      43             : }

Generated by: LCOV version 1.14