@@ -129,11 +129,6 @@ class ObjectKey extends LocalKey {
129
129
}
130
130
}
131
131
132
- /// Signature for a callback when a global key is removed from the tree.
133
- ///
134
- /// Used by [GlobalKey.registerRemoveListener] .
135
- typedef void GlobalKeyRemoveListener (GlobalKey key);
136
-
137
132
/// A key that is unique across the entire app.
138
133
///
139
134
/// Global keys uniquely identify elements. Global keys provide access to other
@@ -168,7 +163,6 @@ abstract class GlobalKey<T extends State<StatefulWidget>> extends Key {
168
163
const GlobalKey .constructor () : super ._();
169
164
170
165
static final Map <GlobalKey , Element > _registry = < GlobalKey , Element > {};
171
- static final Map <GlobalKey , Set <GlobalKeyRemoveListener >> _removeListeners = < GlobalKey , Set <GlobalKeyRemoveListener >> {};
172
166
static final Set <GlobalKey > _removedKeys = new HashSet <GlobalKey >();
173
167
static final Set <Element > _debugIllFatedElements = new HashSet <Element >();
174
168
static final Map <GlobalKey , Element > _debugReservations = < GlobalKey , Element > {};
@@ -297,53 +291,6 @@ abstract class GlobalKey<T extends State<StatefulWidget>> extends Key {
297
291
}
298
292
return null ;
299
293
}
300
-
301
- /// Calls `listener` whenever a widget with the given global key is removed
302
- /// from the tree.
303
- ///
304
- /// Listeners can be removed with [unregisterRemoveListener] .
305
- static void registerRemoveListener (GlobalKey key, GlobalKeyRemoveListener listener) {
306
- assert (key != null );
307
- final Set <GlobalKeyRemoveListener > listeners =
308
- _removeListeners.putIfAbsent (key, () => new HashSet <GlobalKeyRemoveListener >());
309
- final bool added = listeners.add (listener);
310
- assert (added);
311
- }
312
-
313
- /// Stop calling `listener` whenever a widget with the given global key is
314
- /// removed from the tree.
315
- ///
316
- /// Listeners can be added with [registerRemoveListener] .
317
- static void unregisterRemoveListener (GlobalKey key, GlobalKeyRemoveListener listener) {
318
- assert (key != null );
319
- assert (_removeListeners.containsKey (key));
320
- assert (_removeListeners[key].contains (listener));
321
- final bool removed = _removeListeners[key].remove (listener);
322
- if (_removeListeners[key].isEmpty)
323
- _removeListeners.remove (key);
324
- assert (removed);
325
- }
326
-
327
- static void _notifyListeners () {
328
- if (_removedKeys.isEmpty)
329
- return ;
330
- try {
331
- for (GlobalKey key in _removedKeys) {
332
- if (! _registry.containsKey (key) && _removeListeners.containsKey (key)) {
333
- final Set <GlobalKeyRemoveListener > localListeners = new HashSet <GlobalKeyRemoveListener >.from (_removeListeners[key]);
334
- for (GlobalKeyRemoveListener listener in localListeners) {
335
- try {
336
- listener (key);
337
- } catch (e, stack) {
338
- _debugReportException ('while notifying GlobalKey listener' , e, stack);
339
- }
340
- }
341
- }
342
- }
343
- } finally {
344
- _removedKeys.clear ();
345
- }
346
- }
347
294
}
348
295
349
296
/// A global key with a debugging label.
@@ -2082,7 +2029,6 @@ class BuildOwner {
2082
2029
}
2083
2030
return true ;
2084
2031
});
2085
- scheduleMicrotask (GlobalKey ._notifyListeners);
2086
2032
} catch (e, stack) {
2087
2033
_debugReportException ('while finalizing the widget tree' , e, stack);
2088
2034
} finally {
0 commit comments