From dfac9f9bd73920c4c5b3f8c59ae64ffa846d9d29 Mon Sep 17 00:00:00 2001 From: Hixie Date: Fri, 26 Feb 2016 18:53:02 -0800 Subject: [PATCH] SizeObserver crusade: Remove SizeObserver --- .../flutter/lib/src/rendering/proxy_box.dart | 28 ----------- packages/flutter/lib/src/widgets/basic.dart | 24 --------- packages/flutter/test/widget/block_test.dart | 3 -- .../test/widget/size_observer_test.dart | 50 ------------------- 4 files changed, 105 deletions(-) delete mode 100644 packages/flutter/test/widget/size_observer_test.dart diff --git a/packages/flutter/lib/src/rendering/proxy_box.dart b/packages/flutter/lib/src/rendering/proxy_box.dart index 3d966195c3..23b8314a21 100644 --- a/packages/flutter/lib/src/rendering/proxy_box.dart +++ b/packages/flutter/lib/src/rendering/proxy_box.dart @@ -5,7 +5,6 @@ import 'package:flutter/gestures.dart'; import 'package:vector_math/vector_math_64.dart'; -import 'basic_types.dart'; import 'box.dart'; import 'debug.dart'; import 'object.dart'; @@ -1167,33 +1166,6 @@ class RenderFractionalTranslation extends RenderProxyBox { } } -/// Calls [onSizeChanged] whenever the child's layout size changes -/// -/// Because size observer calls its callback during layout, you cannot modify -/// layout information during the callback. -class RenderSizeObserver extends RenderProxyBox { - RenderSizeObserver({ - this.onSizeChanged, - RenderBox child - }) : super(child) { - assert(onSizeChanged != null); - } - - /// The callback to call whenever the child's layout size changes - ValueChanged onSizeChanged; - - void performLayout() { - Size oldSize = hasSize ? size : null; - super.performLayout(); - if (oldSize != size) { - // We make a copy of the Size object here because if we leak a _DebugSize - // object out of the render tree, we can get confused later if it comes - // back and gets set as the size property of a RenderBox. - onSizeChanged(new Size(size.width, size.height)); - } - } -} - abstract class CustomPainter { const CustomPainter(); diff --git a/packages/flutter/lib/src/widgets/basic.dart b/packages/flutter/lib/src/widgets/basic.dart index 1e44f7c4a3..9d8de95042 100644 --- a/packages/flutter/lib/src/widgets/basic.dart +++ b/packages/flutter/lib/src/widgets/basic.dart @@ -828,30 +828,6 @@ class Viewport extends OneChildRenderObjectWidget { } } -/// Calls [onSizeChanged] whenever the child's layout size changes -/// -/// Because size observer calls its callback during layout, you cannot modify -/// layout information during the callback. -class SizeObserver extends OneChildRenderObjectWidget { - SizeObserver({ Key key, this.onSizeChanged, Widget child }) - : super(key: key, child: child) { - assert(onSizeChanged != null); - } - - /// The callback to call whenever the child's layout size changes - final ValueChanged onSizeChanged; - - RenderSizeObserver createRenderObject() => new RenderSizeObserver(onSizeChanged: onSizeChanged); - - void updateRenderObject(RenderSizeObserver renderObject, SizeObserver oldWidget) { - renderObject.onSizeChanged = onSizeChanged; - } - - void didUnmountRenderObject(RenderSizeObserver renderObject) { - renderObject.onSizeChanged = null; - } -} - // CONTAINER diff --git a/packages/flutter/test/widget/block_test.dart b/packages/flutter/test/widget/block_test.dart index 65c64ea249..af5ec59ce5 100644 --- a/packages/flutter/test/widget/block_test.dart +++ b/packages/flutter/test/widget/block_test.dart @@ -22,7 +22,6 @@ void main() { ] ) ); - tester.pump(); // for SizeObservers Point middleOfContainer = tester.getCenter(tester.findText('Hello')); Point target = tester.getCenter(tester.findElementByKey(blockKey)); @@ -100,7 +99,6 @@ void main() { } tester.pumpWidget(buildBlock(ViewportAnchor.end)); - tester.pump(); // for SizeObservers Point target = const Point(200.0, 200.0); tester.tapAt(target); @@ -108,7 +106,6 @@ void main() { expect(second, equals(1)); tester.pumpWidget(buildBlock(ViewportAnchor.start)); - tester.pump(); // for SizeObservers tester.tapAt(target); expect(first, equals(1)); diff --git a/packages/flutter/test/widget/size_observer_test.dart b/packages/flutter/test/widget/size_observer_test.dart deleted file mode 100644 index cc8dd5247b..0000000000 --- a/packages/flutter/test/widget/size_observer_test.dart +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2015 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter_test/flutter_test.dart'; -import 'package:flutter/rendering.dart'; -import 'package:flutter/widgets.dart'; -import 'package:test/test.dart'; - -void main() { - test('SizeObserver notices zero size', () { - testWidgets((WidgetTester tester) { - List results = []; - tester.pumpWidget(new Center( - child: new SizeObserver( - onSizeChanged: (Size size) { results.add(size); }, - child: new Container(width:0.0, height:0.0) - ) - )); - expect(results, equals([Size.zero])); - tester.pump(); - expect(results, equals([Size.zero])); - tester.pumpWidget(new Center( - child: new SizeObserver( - onSizeChanged: (Size size) { results.add(size); }, - child: new Container(width:100.0, height:0.0) - ) - )); - expect(results, equals([Size.zero, const Size(100.0, 0.0)])); - tester.pump(); - expect(results, equals([Size.zero, const Size(100.0, 0.0)])); - tester.pumpWidget(new Center( - child: new SizeObserver( - onSizeChanged: (Size size) { results.add(size); }, - child: new Container(width:0.0, height:0.0) - ) - )); - expect(results, equals([Size.zero, const Size(100.0, 0.0), Size.zero])); - tester.pump(); - expect(results, equals([Size.zero, const Size(100.0, 0.0), Size.zero])); - tester.pumpWidget(new Center( - child: new SizeObserver( - onSizeChanged: (Size size) { results.add(size); }, - child: new Container(width:0.0, height:0.0) - ) - )); - expect(results, equals([Size.zero, const Size(100.0, 0.0), Size.zero])); - }); - }); -}