anchor.diff:  
     @override
     Widget build(BuildContext context) {
  -    ThemeData theme = Theme.of(context);
  -    TextTheme headerTheme = theme.primaryTextTheme;
  -
  +    ThemeData themeData = Theme.of(context);
  +    TextTheme headerTextTheme = themeData.primaryTextTheme;
       Color activeColor;
       Color inactiveColor;
  -    switch(theme.primaryColorBrightness) {
  +    switch(themeData.primaryColorBrightness) {
         case ThemeBrightness.light:
           activeColor = Colors.black87;
           inactiveColor = Colors.black54;
  
positive.code: }
  
  enum _TimePickerMode { hour, minute }
  
  /// A material design time picker.
  ///
  
negative.code:                                  -labelRadius * math.sin(theta));
      }
  
      void paintLabels(List<TextPainter> labels) {
        double labelThetaIncrement = -_kTwoPi / labels.length;
        double labelTheta = math.PI / 2.0;
  
        for (TextPainter label in labels) {
          Offset labelOffset = new Offset(-label.width / 2.0, -label.height / 2.0);
          label.paint(canvas, getOffsetForTheta(labelTheta) + labelOffset);
          labelTheta += labelThetaIncrement;
        }
      }
  
      paintLabels(primaryLabels);
  
      final Paint selectorPaint = new Paint()
        ..color = accentColor;
      final Point focusedPoint = getOffsetForTheta(theta).toPoint();
      final double focusedRadius = labelPadding - 4.0;
      canvas.drawCircle(centerPoint, 4.0, selectorPaint);
      canvas.drawCircle(focusedPoint, focusedRadius, selectorPaint);
      selectorPaint.strokeWidth = 2.0;
      canvas.drawLine(centerPoint, focusedPoint, selectorPaint);
  
      final Rect focusedRect = new Rect.fromCircle(
        center: focusedPoint, radius: focusedRadius
      );
      canvas
        ..saveLayer(focusedRect, new Paint())
        ..clipPath(new Path()..addOval(focusedRect));
      paintLabels(secondaryLabels);
      canvas.restore();
    }
  
    @override
    bool shouldRepaint(_DialPainter oldPainter) {
      return oldPainter.primaryLabels != primaryLabels
          || oldPainter.secondaryLabels != secondaryLabels
          || oldPainter.backgroundColor != backgroundColor
          || oldPainter.accentColor != accentColor
          || oldPainter.theta != theta;
    }
  }
  