O PopScope sozinho nao resolvia: GoRouterDelegate.popRoute() itera _findCurrentNavigators(), que devolve [root, shell] e retorna states.reversed, ou seja, o shell navigator e consultado primeiro. O viewer e um showDialog no root navigator, entao o shell nunca ve o PopEntry dele, popa a sala e retorna true antes de chegar no dialog. BackButtonListener registra no BackButtonDispatcher raiz, que e consultado antes do RouterDelegate.popRoute(), entao o viewer fecha primeiro. Aplicado tambem no MxcImageViewer (avatar/sticker), que tinha o mesmo defeito.
6.6 KiB
6.6 KiB