• Ian Hickson's avatar
    Deep linking: automatically push the route hiearchy on load. (#10894) · 9adb4a78
    Ian Hickson authored
    The main purpose of this PR is to make it so that when you set the
    initial route and it's a hierarchical route (e.g. `/a/b/c`), it
    implies multiple pushes, one for each step of the route (so in that
    case, `/`, `/a`, `/a/b`, and `/a/b/c`, in that order). If any of those
    routes don't exist, it falls back to '/'.
    
    As part of doing that, I:
    
     * Changed the default for MaterialApp.initialRoute to honor the
       actual initial route.
    
     * Added a MaterialApp.onUnknownRoute for handling bad routes.
    
     * Added a feature to flutter_driver that allows the host test script
       and the device test app to communicate.
    
     * Added a test to make sure `flutter drive --route` works.
       (Hopefully that will also prove `flutter run --route` works, though
       this isn't testing the `flutter` tool's side of that. My main
       concern is over whether the engine side works.)
    
     * Fixed `flutter drive` to output the right target file name.
    
     * Changed how the stocks app represents its data, so that we can
       show a page for a stock before we know if it exists.
    
     * Made it possible to show a stock page that doesn't exist. It shows
       a progress indicator if we're loading the data, or else shows a
       message saying it doesn't exist.
    
     * Changed the pathing structure of routes in stocks to work more
       sanely.
    
     * Made search in the stocks app actually work (before it only worked
       if we happened to accidentally trigger a rebuild). Added a test.
    
     * Replaced some custom code in the stocks app with a BackButton.
    
     * Added a "color" feature to BackButton to support the stocks use case.
    
     * Spaced out the ErrorWidget text a bit more.
    
     * Added `RouteSettings.copyWith`, which I ended up not using.
    
     * Improved the error messages around routing.
    
    While I was in some files I made a few formatting fixes, fixed some
    code health issues, and also removed `flaky: true` from some devicelab
    tests that have been stable for a while. Also added some documentation
    here and there.
    9adb4a78
Name
Last commit
Last update
..
about.dart Loading commit data...
app.dart Loading commit data...
app_bar.dart Loading commit data...
arc.dart Loading commit data...
back_button.dart Loading commit data...
bottom_navigation_bar.dart Loading commit data...
bottom_sheet.dart Loading commit data...
button.dart Loading commit data...
button_bar.dart Loading commit data...
card.dart Loading commit data...
checkbox.dart Loading commit data...
checkbox_list_tile.dart Loading commit data...
chip.dart Loading commit data...
circle_avatar.dart Loading commit data...
colors.dart Loading commit data...
constants.dart Loading commit data...
data_table.dart Loading commit data...
data_table_source.dart Loading commit data...
date_picker.dart Loading commit data...
debug.dart Loading commit data...
dialog.dart Loading commit data...
divider.dart Loading commit data...
drawer.dart Loading commit data...
drawer_header.dart Loading commit data...
dropdown.dart Loading commit data...
expand_icon.dart Loading commit data...
expansion_panel.dart Loading commit data...
expansion_tile.dart Loading commit data...
flat_button.dart Loading commit data...
flexible_space_bar.dart Loading commit data...
floating_action_button.dart Loading commit data...
flutter_logo.dart Loading commit data...
grid_tile.dart Loading commit data...
grid_tile_bar.dart Loading commit data...
icon_button.dart Loading commit data...
icons.dart Loading commit data...
ink_highlight.dart Loading commit data...
ink_splash.dart Loading commit data...
ink_well.dart Loading commit data...
input_decorator.dart Loading commit data...
list_tile.dart Loading commit data...
material.dart Loading commit data...
mergeable_material.dart Loading commit data...
page.dart Loading commit data...
paginated_data_table.dart Loading commit data...
popup_menu.dart Loading commit data...
progress_indicator.dart Loading commit data...
radio.dart Loading commit data...
radio_list_tile.dart Loading commit data...
raised_button.dart Loading commit data...
refresh_indicator.dart Loading commit data...
scaffold.dart Loading commit data...
scrollbar.dart Loading commit data...
shadows.dart Loading commit data...
slider.dart Loading commit data...
snack_bar.dart Loading commit data...
stepper.dart Loading commit data...
switch.dart Loading commit data...
switch_list_tile.dart Loading commit data...
tab_controller.dart Loading commit data...
tabs.dart Loading commit data...
text_field.dart Loading commit data...
text_form_field.dart Loading commit data...
text_selection.dart Loading commit data...
theme.dart Loading commit data...
theme_data.dart Loading commit data...
time_picker.dart Loading commit data...
toggleable.dart Loading commit data...
tooltip.dart Loading commit data...
two_level_list.dart Loading commit data...
typography.dart Loading commit data...
user_accounts_drawer_header.dart Loading commit data...