@@ -455,21 +455,13 @@ abstract class TransitionRoute<T> extends OverlayRoute<T> {
455
455
/// An entry in the history of a [LocalHistoryRoute] .
456
456
class LocalHistoryEntry {
457
457
/// Creates an entry in the history of a [LocalHistoryRoute] .
458
- ///
459
- /// The [impliesAppBarDismissal] defaults to true if not provided.
460
- LocalHistoryEntry ({ this .onRemove, this .impliesAppBarDismissal = true });
458
+ LocalHistoryEntry ({ this .onRemove });
461
459
462
460
/// Called when this entry is removed from the history of its associated [LocalHistoryRoute] .
463
461
final VoidCallback ? onRemove;
464
462
465
463
LocalHistoryRoute <dynamic >? _owner;
466
464
467
- /// Whether an [AppBar] in the route this entry belongs to should
468
- /// automatically add a back button or close button.
469
- ///
470
- /// Defaults to true.
471
- final bool impliesAppBarDismissal;
472
-
473
465
/// Remove this entry from the history of its associated [LocalHistoryRoute] .
474
466
void remove () {
475
467
_owner? .removeLocalHistoryEntry (this );
@@ -490,7 +482,7 @@ class LocalHistoryEntry {
490
482
/// is removed from the list and its [LocalHistoryEntry.onRemove] is called.
491
483
mixin LocalHistoryRoute <T > on Route <T > {
492
484
List <LocalHistoryEntry >? _localHistory;
493
- int _entriesImpliesAppBarDismissal = 0 ;
485
+
494
486
/// Adds a local history entry to this route.
495
487
///
496
488
/// When asked to pop, if this route has any local history entries, this route
@@ -628,12 +620,7 @@ mixin LocalHistoryRoute<T> on Route<T> {
628
620
_localHistory ?? = < LocalHistoryEntry > [];
629
621
final bool wasEmpty = _localHistory! .isEmpty;
630
622
_localHistory! .add (entry);
631
- bool internalStateChanged = false ;
632
- if (entry.impliesAppBarDismissal) {
633
- internalStateChanged = _entriesImpliesAppBarDismissal == 0 ;
634
- _entriesImpliesAppBarDismissal += 1 ;
635
- }
636
- if (wasEmpty || internalStateChanged)
623
+ if (wasEmpty)
637
624
changedInternalState ();
638
625
}
639
626
@@ -645,15 +632,10 @@ mixin LocalHistoryRoute<T> on Route<T> {
645
632
assert (entry != null );
646
633
assert (entry._owner == this );
647
634
assert (_localHistory! .contains (entry));
648
- bool internalStateChanged = false ;
649
- if (_localHistory! .remove (entry) && entry.impliesAppBarDismissal) {
650
- _entriesImpliesAppBarDismissal -= 1 ;
651
- internalStateChanged = _entriesImpliesAppBarDismissal == 0 ;
652
- }
635
+ _localHistory! .remove (entry);
653
636
entry._owner = null ;
654
637
entry._notifyRemoved ();
655
- if (_localHistory! .isEmpty || internalStateChanged) {
656
- assert (_entriesImpliesAppBarDismissal == 0 );
638
+ if (_localHistory! .isEmpty) {
657
639
if (SchedulerBinding .instance.schedulerPhase == SchedulerPhase .persistentCallbacks) {
658
640
// The local history might be removed as a result of disposing inactive
659
641
// elements during finalizeTree. The state is locked at this moment, and
@@ -681,12 +663,7 @@ mixin LocalHistoryRoute<T> on Route<T> {
681
663
assert (entry._owner == this );
682
664
entry._owner = null ;
683
665
entry._notifyRemoved ();
684
- bool internalStateChanged = false ;
685
- if (entry.impliesAppBarDismissal) {
686
- _entriesImpliesAppBarDismissal -= 1 ;
687
- internalStateChanged = _entriesImpliesAppBarDismissal == 0 ;
688
- }
689
- if (_localHistory! .isEmpty || internalStateChanged)
666
+ if (_localHistory! .isEmpty)
690
667
changedInternalState ();
691
668
return false ;
692
669
}
@@ -720,7 +697,6 @@ class _ModalScopeStatus extends InheritedWidget {
720
697
const _ModalScopeStatus ({
721
698
required this .isCurrent,
722
699
required this .canPop,
723
- required this .impliesAppBarDismissal,
724
700
required this .route,
725
701
required super .child,
726
702
}) : assert (isCurrent != null ),
@@ -730,14 +706,12 @@ class _ModalScopeStatus extends InheritedWidget {
730
706
731
707
final bool isCurrent;
732
708
final bool canPop;
733
- final bool impliesAppBarDismissal;
734
709
final Route <dynamic > route;
735
710
736
711
@override
737
712
bool updateShouldNotify (_ModalScopeStatus old) {
738
713
return isCurrent != old.isCurrent ||
739
714
canPop != old.canPop ||
740
- impliesAppBarDismissal != old.impliesAppBarDismissal ||
741
715
route != old.route;
742
716
}
743
717
@@ -746,7 +720,6 @@ class _ModalScopeStatus extends InheritedWidget {
746
720
super .debugFillProperties (description);
747
721
description.add (FlagProperty ('isCurrent' , value: isCurrent, ifTrue: 'active' , ifFalse: 'inactive' ));
748
722
description.add (FlagProperty ('canPop' , value: canPop, ifTrue: 'can pop' ));
749
- description.add (FlagProperty ('impliesAppBarDismissal' , value: impliesAppBarDismissal, ifTrue: 'implies app bar dismissal' ));
750
723
}
751
724
}
752
725
@@ -849,7 +822,6 @@ class _ModalScopeState<T> extends State<_ModalScope<T>> {
849
822
route: widget.route,
850
823
isCurrent: widget.route.isCurrent, // _routeSetState is called if this updates
851
824
canPop: widget.route.canPop, // _routeSetState is called if this updates
852
- impliesAppBarDismissal: widget.route.impliesAppBarDismissal,
853
825
child: Offstage (
854
826
offstage: widget.route.offstage, // _routeSetState is called if this updates
855
827
child: PageStorage (
@@ -1589,14 +1561,6 @@ abstract class ModalRoute<T> extends TransitionRoute<T> with LocalHistoryRoute<T
1589
1561
/// notified.
1590
1562
bool get canPop => hasActiveRouteBelow || willHandlePopInternally;
1591
1563
1592
- /// Whether an [AppBar] in the route should automatically add a back button or
1593
- /// close button.
1594
- ///
1595
- /// This getter returns true if there is at least one active route below it,
1596
- /// or there is at least one [LocalHistoryEntry] with `impliesAppBarDismissal`
1597
- /// set to true
1598
- bool get impliesAppBarDismissal => hasActiveRouteBelow || _entriesImpliesAppBarDismissal > 0 ;
1599
-
1600
1564
// Internals
1601
1565
1602
1566
final GlobalKey <_ModalScopeState <T >> _scopeKey = GlobalKey <_ModalScopeState <T >>();
0 commit comments