[roll] Roll fuchsia [carnelian] Support multiple views This change allows Carnelian applications running directly on the display controller to create and close additional views. A future change will allow this to work with Scenic. The reason for this change is to allow the recovery UI to use views to better organize the increasing functionality of their application. For example, bringing up a view with a text field and keyboard for entering a WiFi password. A key limitation of this new feature is that only one view per physical display can be visible at a time. The spinning square example was modified to demonstrate creating and closing additional views. The api for additional views is found in the application sender in a method that takes a view creation options structure and returns the view key that will be used for the new view. With this view key, the application can, in the future, close that view. In order to make this change more safely, ViewKey was turned into a newtype, where before it was a type alias for u64. Since the new view key needs to be available to return in the new method in AppSender, modified the way IdGenerator works so that it can be used globally. A side effect of this is that all users of IdGenerator share one 64 bit space, but even at rate of thousands of IDs per second this generator will take years to overflow and thus run out of IDs. Modified facets and groups to use the modified generator. In order to allow applications to create different sorts of views, create_addition_view takes a Box<dyn Any> that it passed through to ApplicationAssistant's create_view_assistant. Added a ViewCreationParameters structure to bind together all the parameters needed internally for view creation. Since it is hard to predict the timing of messages referencing view keys and the removal of the views identified by that key, made most internal messages referencing keys ignore keys for non-existent views. Added view tracking to the display direct view strategy so implement trait methods to identify which view is focused and which views are visible. Previously, the view ID for the one and only one view on a display was the same as the display ID. Since there can now be more than one view per display, added some mechanism for tracking which views are on which display. Updated virtcon to not require particular ViewKey values. Testing: manual plus unit tests. Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/669892 Original-Revision: 4a8fb9f3e6fd99be43f6368e840e52837e7ee535 GitOrigin-RevId: 9e78606fb68235b23c066791c39319d3284ed028 Change-Id: I339ae3f25d0dfee075169f13adb3057c34d00a4e
This repository contains Fuchsia's Global Integration manifest files.
All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.
Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.
First install Jiri.
Next run:
$ jiri init $ jiri import minimal https://fuchsia.googlesource.com/integration $ jiri update
Third party projects should have their own subdirectory in ./third_party.