observer_tester.dart 1.19 KB
Newer Older
Ian Hickson's avatar
Ian Hickson committed
1
// Copyright 2014 The Flutter Authors. All rights reserved.
2 3 4 5 6
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'package:flutter/material.dart';

7
typedef OnObservation = void Function(Route<dynamic>? route, Route<dynamic>? previousRoute);
8 9 10

/// A trivial observer for testing the navigator.
class TestObserver extends NavigatorObserver {
11 12 13 14 15
  OnObservation? onPushed;
  OnObservation? onPopped;
  OnObservation? onRemoved;
  OnObservation? onReplaced;
  OnObservation? onStartUserGesture;
16 17

  @override
18
  void didPush(Route<dynamic> route, Route<dynamic>? previousRoute) {
19
    onPushed?.call(route, previousRoute);
20 21 22
  }

  @override
23
  void didPop(Route<dynamic> route, Route<dynamic>? previousRoute) {
24
    onPopped?.call(route, previousRoute);
25 26 27
  }

  @override
28
  void didRemove(Route<dynamic> route, Route<dynamic>? previousRoute) {
29
    onRemoved?.call(route, previousRoute);
30 31 32
  }

  @override
33
  void didReplace({ Route<dynamic>? oldRoute, Route<dynamic>? newRoute }) {
34
    onReplaced?.call(newRoute, oldRoute);
35 36 37
  }

  @override
38
  void didStartUserGesture(Route<dynamic> route, Route<dynamic>? previousRoute) {
39
    onStartUserGesture?.call(route, previousRoute);
40 41
  }
}