• 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
..
.idea Loading commit data...
android Loading commit data...
ios Loading commit data...
lib Loading commit data...
test Loading commit data...
test_driver Loading commit data...
.gitignore Loading commit data...
README.md Loading commit data...
android.iml Loading commit data...
pubspec.yaml Loading commit data...
stocks.iml Loading commit data...