These 76 commits are when the Protocol Buffers files have changed:
Commit: | cfc9e58 | |
---|---|---|
Author: | Robert Lin | |
Committer: | Robert Lin |
Support interactable progress bars and markers Fixes #2146. This change adds an option in the Dials & Gauges plugin UI to set a progress bar or marker as draggable. Doing so will result in adding a Modifier on progress nodes that track tap/drag and then updates the value of the progress bar/marker. A new OnProgressChangedCallback() customization can be set, allowing a developer to receive updates whenever a tap or drag causes the value of the progress bar to change.
Commit: | 76e0d44 | |
---|---|---|
Author: | Robert Lin | |
Committer: | GitHub |
Create Scalable UI plugin (#2169) Fixes #2180. - Create a plugin to add scalable UI data - Proto and Figma schema changes to parse and store the data To fetch a file to be used to load scalable ui panel states, run the fetch tool with the --scalableui option and the root node that contains all the panel component instances. For example: cargo run --bin fetch --features fetch -- --doc-id <doc_id> --nodes "#stage" --output ScalableSystemUi_<doc_id>.dcf --scalableui
The documentation is generated from this commit.
Commit: | 9ce9802 | |
---|---|---|
Author: | Robert Lin | |
Committer: | Robert Lin |
Create Scalable UI plugin Fixes #2180. - Create a plugin to add scalable UI data - Proto and Figma schema changes to parse and store the data To fetch a file to be used to load scalable ui panel states, run the fetch tool with the --scalableui option and the root node that contains all the panel component instances. For example: cargo run --bin fetch --features fetch -- --doc-id <doc_id> --nodes "#stage" --output ScalableSystemUi_<doc_id>.dcf --scalableui
The documentation is generated from this commit.
Commit: | 87fb33e | |
---|---|---|
Author: | Robert Lin | |
Committer: | Robert Lin |
Test for backward compatibility of old dcf files Fixes #2126. This commit makes a change to the field containing a text node's font color, renaming it from text_color to font_color. Any updates to or new DCF files will save text color to font_color in node_style instead of text_color. This change's only purpose is to introduce a protobuf change and demonstrate our capability to support old protobufs that still set text_color. This is supported by using font_color if it is set, and if not, using text_color. To facilitate support of old DCF files as protobufs continue to evolve, a new utility file utils/ProtoVersions.kt has some functions to manage checking of old fields. This file should grow when a protobuf change that requires code to support old versions is made. Additionally, a new test has been added to test for old protobufs. Currently this tests that v27 protobufs (that still use text_color) have a header that says v27, and that they render correctly, including a screenshot. New tests should be added when protobufs again change.
Commit: | 606afbc | |
---|---|---|
Author: | Robert Lin | |
Committer: | Robert Lin |
Create Scalable UI plugin Fixes #2180. - Create a plugin to add scalable UI data - Proto and Figma schema changes to parse and store the data To fetch a file to be used to load scalable ui panel states, run the fetch tool with the --scalableui option and the root node that contains all the panel component instances. For example: cargo run --bin fetch --features fetch -- --doc-id <doc_id> --nodes "#stage" --output ScalableSystemUi_<doc_id>.dcf --scalableui
The documentation is generated from this commit.
Commit: | d08a9bd | |
---|---|---|
Author: | Robert Lin |
Support interactable progress bars and markers Fixes #2146. This change adds an option in the Dials & Gauges plugin UI to set a progress bar or marker as draggable. Doing so will result in adding a Modifier on progress nodes that track tap/drag and then updates the value of the progress bar/marker. A new OnProgressChangedCallback() customization can be set, allowing a developer to receive updates whenever a tap or drag causes the value of the progress bar to change.
Commit: | bc006c0 | |
---|---|---|
Author: | Robert Lin | |
Committer: | Robert Lin |
Add an option in the plugin UI to set a progress bar or marker as draggable. When tapping/dragging, set the meter state for that node in CustomizationContext so that it does not need to be done manually by a developer using Meter customizations. Instead, the developer can optionally receive updates when the progress changes using the progress callback customization.
Commit: | c587d65 | |
---|---|---|
Author: | Robert Lin | |
Committer: | Robert Lin |
Create Scalable UI plugin Fixes #2180. - Create a plugin to add scalable UI data - Proto and Figma schema changes to parse and store the data To fetch a file to be used to load scalable ui panel states, run the fetch tool with the --scalableui option and the root node that contains all the panel component instances. For example: cargo run --bin fetch --features fetch -- --doc-id <doc_id> --nodes "#stage" --output ScalableSystemUi_<doc_id>.dcf --scalableui
The documentation is generated from this commit.
Commit: | 46c3f9d | |
---|---|---|
Author: | Robert Lin | |
Committer: | Robert Lin |
Support parsing Figma files for ScalableUI data - Create a plugin to add scalable UI data - Proto and Figma schema changes to parse and store the data
The documentation is generated from this commit.
Commit: | ddcf479 | |
---|---|---|
Author: | Robert Lin | |
Committer: | Robert Lin |
Support parsing Figma files for ScalableUI data - Create a plugin to add scalable UI data - Proto and Figma schema changes to parse and store the data
The documentation is generated from this commit.
Commit: | 5833a6f | |
---|---|---|
Author: | Robert Lin | |
Committer: | Robert Lin |
Support parsing Figma files for ScalableUI data - Create a plugin to add scalable UI data - Proto and Figma schema changes to parse and store the data
Commit: | fce2860 | |
---|---|---|
Author: | Robert Lin | |
Committer: | Robert Lin |
Support parsing Figma files for ScalableUI data - Create a plugin to add scalable UI data - Proto and Figma schema changes to parse and store the data
Commit: | ba97a4d | |
---|---|---|
Author: | yiqunw700 | |
Committer: | GitHub |
Add a RB hvac example to validation (#2150) Towards: #2138 Fixes: #2148
Commit: | 83fe927 | |
---|---|---|
Author: | Robert Lin | |
Committer: | Robert Lin |
WIP adding tests
Commit: | 368af43 | |
---|---|---|
Author: | yiqunw700 | |
Committer: | yiqunw700 |
Support non-zero offset for progress bar meter data
Commit: | 84d8a17 | |
---|---|---|
Author: | yiqunw700 | |
Committer: | yiqunw700 |
Support shape overrides and nested component overrides
Commit: | 8a2f011 | |
---|---|---|
Author: | Robert Lin | |
Committer: | Robert Lin |
ScalableUI plugin WIP - Plugin to add scalable UI data - Proto and Figma schema changes to parse and store the data - Functions to enable live update from non-compose app - Store scalable ui data in ScalableUiDoc object, with functions to get scalable ui data
Commit: | 26a73df | |
---|---|---|
Author: | yiqunw700 | |
Committer: | GitHub |
Iterate tree for component overrides (#2090) The component_info now has one more field: - map<string, ComponentOverrides> overrides_table = 4; which stores the computed overrides. This pr has a limited support for the component overrides: * The override_table holds a name to override data map. If name is not identical, it will have unexpected behaviors. * Only check if there is any character overrides, when text is overridden, use the text or styledText from the overrides_table stored in the component_info. * Nested component instance override does not work. Fixes: #1842
Commit: | 509f16e | |
---|---|---|
Author: | yiqunw700 | |
Committer: | GitHub |
Fix shader brush not initialized exception and add two improvements (#2123) 1. Add image uniform customization support from drawable resource. Also can do image customization from bytes array but no examples and no helper functions created. Recommended to use drawable resource to do customization. 2. Fix shader brush not initialized exception on api level 32 where fallback color is not set. Also updated the figma design doc to test those cases. 3. BuildProcessor now set the shader time uniform state in the generated code. It also adds a designFeatures to the DesignDoc annotation to decide if the time uniform state will be set to the customization context or not. Fixes: #2124
Commit: | 217a725 | |
---|---|---|
Author: | Robert Lin | |
Committer: | GitHub |
Move proto files into dc_bundle/src folder (#2106) Closes #2105
Commit: | effbf03 | |
---|---|---|
Author: | yiqunw700 | |
Committer: | GitHub |
Proto message name cleanup (#2068) Fixes: #1887
Commit: | 38b76c6 | |
---|---|---|
Author: | yiqunw700 | |
Committer: | GitHub |
Add localization support for image shader uniform (#2067) Fixes: #2060
Commit: | 5b78aa4 | |
---|---|---|
Author: | yiqunw700 | |
Committer: | GitHub |
Support image uniform (#2064) Towards: #2060
Commit: | 9cafae5 | |
---|---|---|
Author: | yiqunw700 | |
Committer: | GitHub |
Support int vec uniform (#2037) Fixes: #2038
Commit: | 6a07699 | |
---|---|---|
Author: | yiqunw700 | |
Committer: | GitHub |
Make shader iTime state a global customization (#2022) By making the `iTime` state a global customization, newly created nodes will apply the `iTime` customization automatically. This way, it requires no client side change for new node to animate. Also removed logging when customized uniform is not found in the shader code. Too many log outputs when it is animating. Before: create a new node with animating shader, no animation after live update because iTime customization is not set After: create a new node with animating shader, animates after live update * Also update Dials and Gauges with usage of shader
Commit: | c1df559 | |
---|---|---|
Author: | yiqunw700 | |
Committer: | GitHub |
Support shader as stroke (#2021) 1. Write the shader data as a single struct in the plugin data so to support strokes, we can just have `shader` plugin data for background and `strokeShader` for strokes 2. Update the figma schema `ShaderDataJson` to map the shader data plugin struct 3. Move shader protos to its own proto file. 4. Move the shader_data from `View` proto message to `NodeStyle` where the background/text_color are stored. 5. Add support for shader as stroke by adding `ShaderData` to `Stroke` proto. 6. FrameRender and SquooshRender to support shader strokes. 7. Customization - create a class `ShaderUniformCustomizations` wraps all the shader uniform customizations for background and stroke for a single node in `ShaderHelper`. Fixes: #1832
Commit: | f1efa2a | |
---|---|---|
Author: | yiqunw700 | |
Committer: | GitHub |
Support shader int uniform (#2014) Towards: #1830
Commit: | d956ae0 | |
---|---|---|
Author: | yiqunw700 | |
Committer: | GitHub |
Support shader float/color uniform (#1969) Towards: #1830 Support float and color uniform. Type set by plugin: float -> float, color -> float3, color with alpha -> float4 Shader API: - float->`setFloatUniform(name, value)` - color->`setFloatUniform(name, value1, value2, value3)` - color with alpha -> `setFloatUniform(name, value1, value2, value3, value4)` Parse: shader_schema.rs: `ShaderUniformJson` -> `ShaderUniform` Customization supports: - `List<ShaderUniform>` - `List<State<ShaderUniform>>` Helper functions to create: - `float` -> `ShaderUniform` - `FloatState`->`State<ShaderUniform>` - `Color`->`ShaderUniform` - `State<Color>`->`State<ShaderUniform>`
Commit: | 096eddb | |
---|---|---|
Author: | yiqunw700 | |
Committer: | yiqunw700 |
Fix the UnsupportedOperationException Protobuf returns unmodifiable map so we can not update the image map in the document.
Commit: | 5a70cd0 | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Convert the Convert Request/Response types to Proto, refactor Layout conversion code (#1965) With this change we're able to fully remove serde-reflection from the code base. This involved a decent amount of refactoring and cleanup of old work to get things right. My goal with the refactoring was to keep the packages cleanly separated and to work towards having the ability to build a DesignCompose app without including anything related to Live Update. Ultimately I could see the dc_jni crate being split into the layout and fetch portions, which would compile into their own separate libraries, and merged in with figma_import and layout. Some of the messages related to both the doc fetching and layout processing were a bit scattered and were declared in crates that didn't actually use them. Before this change the `dc_jni` crate didn't have any of its own proto messages, it was pulling the ones it needed (Layout conversion related) from other crates (both `dc_bundle` and `layout`). The new Convert Request/Response messages would only be used by `dc_jni`, so it made sense to add a build.rs file to it so that the generated messages would be native to that crate, rather than being part of an unrelated crate. While making that change it made sense to rearrange the proto messages related to the android interface, so I moved the layout related messages into a `layout_interface` proto package and put the new Convert messages into the `live_update` package. In addition, the layout code had really only been half converted to proto, we were still parsing them and then converting them into the original Rust structs. That's all cleaned up now. We had been manually generating a json string which was decoded into the ConvertRequest on the rust side, so I converted the ConvertRequest to Proto and removed the json code. It didn't make sense to use proto on one side and not the other. It'd probably be cleaner to change the `jniFetchDoc` method to just send a single proto message instead of the ConvertRequest, doc_id, version_id and proxy configuration, but that can be cleaned up another day. I also decided not to convert the image_session from json to proto because we don't actually do anything with it on the Kotlin side other than writing it into the .dcf. I'm simply including the json in the proto message and removing the redundant storage of the session's bytes in the docContent class. Admittedly this PR is bigger than it strictly needed to be. I can split it into some smaller PRs if requested. I'm sure there's some additional cleanup that could be done as well, including simplifying the `jniFetchDoc` function and turning ProxyConfig into a proto struct.
Commit: | d252b08 | |
---|---|---|
Author: | yiqunw700 |
Support shader color uniform
Commit: | 353b560 | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Convert the encoded DCF and ServerFigmaDocs to Proto (#1941) <!-- start git-machete generated --> # Based on PR #1886 ## Chain of upstream PRs as of 2024-12-23 * PR #1886: `main` ← `feature/protoconv` * **PR #1941 (THIS ONE)**: `feature/protoconv` ← `wb/froeht/protolize-dcf` <!-- end git-machete generated --> This PR should convert all of our code that serializes and deserializes DCF files and the ServerFigmaDoc to encode them as Proto messages (mostly). This includes sending the doc from figma_import to the kotlin code via JNI. The old DCF format consisted of the bincode-encoded header, bincode-encoded doc, and JSON-encoded image session all concatenated together. I've simply converted the bincode encoding to proto encoding, using the `encode/decodeDelimited()` functions that proto provides to write the length of the encoded message first, followed by the message. This results in pretty clean code on both sides, especially the Kotlin side which can just read through the input stream. I've added some tests in Common to decode and re-encode the DesignSwitcher and HelloWorld docs. These can be run right now, because we haven't broken the Common code. I've also enhanced the Figma_import fetch_tests to write the fetched doc to a file and read it back in. You can test these by running `./gradlew common:test` and `cargo test --all-features`
Commit: | 791c682 | |
---|---|---|
Author: | yiqunw700 | |
Committer: | yiqunw700 |
Support shader float uniform
Commit: | 3286245 | |
---|---|---|
Author: | yiqunw700 | |
Committer: | GitHub |
Create a simple shader plugin with CanvasKit (#1775) Supports: - Text area to modify/input shader code - Preview shader in the plugin UI - Insert shader code into the shared plugin data of the selected node that supports background image fill - Default shaders(from skia and shader toy) - Generate an image and insert into the figma selected node What don't work yet: - Not allow other uniforms other than iTime and iResolution - Don't support strokes Towards: #1714 <img width="599" alt="Screenshot 2024-12-12 at 14 56 50" src="https://github.com/user-attachments/assets/d649fd3b-9fc5-4712-b3b8-ee2fd7a3077e" />
Commit: | 6050664 | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Convert ServerFigmaDoc to Proto (#1851) <!-- start git-machete generated --> # Based on PR #1849 ## Chain of upstream PRs as of 2024-12-10 * PR #1849: `main` ← `wb/froeht/cargo-fix` * **PR #1851 (THIS ONE)**: `wb/froeht/cargo-fix` ← `wb/froeht/1850-serverfigmadoc` <!-- end git-machete generated --> Fixes #1850
Commit: | 6f7c8cb | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Refactor: Convert DesignComposeDefinition to proto (#1847) <!-- start git-machete generated --> # Based on PR #1845 ## Chain of upstream PRs & tree of downstream PRs as of 2024-12-09 * PR #1845: `main` ← `wb/froeht/convert-encodedimagemap` * **PR #1847 (THIS ONE)**: `wb/froeht/convert-encodedimagemap` ← `wb/froeht/1172-convert-dcd` * PR #1849: `wb/froeht/1172-convert-dcd` ← `wb/froeht/cargo-fix` <!-- end git-machete generated --> Fixes #1172
Commit: | d38211c | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | Tim Froehlich |
Convert ServerFigmaDoc to Proto Fixes #1850
Commit: | aee1ddf | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | Tim Froehlich |
Refactor: Convert DesignComposeDefinition to proto Fixes #1172 # Conflicts: # crates/figma_import/tests/layout-unit-tests.dcf # designcompose/src/main/assets/figma/DesignSwitcherDoc_Ljph4e3sC0lHcynfXpoh9f.dcf # integration-tests/validation/src/main/assets/figma/AlignmentTestDoc_JIjE9oKQbq8ipi66ab5UaK.dcf # integration-tests/validation/src/main/assets/figma/AutoLayoutMinMaxTestDoc_ArHVZAQIsKf2B9mATnVvLX.dcf # integration-tests/validation/src/main/assets/figma/BattleshipDoc_RfGl9SWnBEvdg8T1Ex6ZAR.dcf # integration-tests/validation/src/main/assets/figma/ComponentReplaceDoc_bQVVy2GSZJ8veYaJUrG6Ni.dcf # integration-tests/validation/src/main/assets/figma/ComponentTapCallbackDoc_1jeKYynjk1nqYblZ66QDDK.dcf # integration-tests/validation/src/main/assets/figma/CrossAxisFillTestDoc_GPr1cx4n3zBPwLhqlSL1ba.dcf # integration-tests/validation/src/main/assets/figma/DialsGaugesTestDoc_lZj6E9GtIQQE4HNLpzgETw.dcf # integration-tests/validation/src/main/assets/figma/FancyFillTestDoc_xQ9cunHt8VUm6xqJJ2Pjb2.dcf # integration-tests/validation/src/main/assets/figma/GridLayoutDoc_MBNjjSbzzKeN7nBjVoewsl.dcf # integration-tests/validation/src/main/assets/figma/GridLayoutTestDoc_JOSOEvsrjvMqanyQa5OpNR.dcf # integration-tests/validation/src/main/assets/figma/GridWidgetTestDoc_OBhNItd9i9J2LwVYuLxEIx.dcf # integration-tests/validation/src/main/assets/figma/HelloVersionDoc_v62Vwlxa4Bb6nopJiAxQAQ_5668177823.dcf # integration-tests/validation/src/main/assets/figma/InteractionTestDoc_8Zg9viyjYTnyN29pbkR1CE.dcf # integration-tests/validation/src/main/assets/figma/ItemSpacingTestDoc_YXrHBp6C6OaW5ShcCYeGJc.dcf # integration-tests/validation/src/main/assets/figma/LayoutReplacementTestDoc_dwk2GF7RiNvlbbAKPjqldx.dcf # integration-tests/validation/src/main/assets/figma/LayoutTestsDoc_Gv63fYTzpeH2ZtxP4go31E.dcf # integration-tests/validation/src/main/assets/figma/ListWidgetTestDoc_9ev0MBNHFrgTqJOrAGcEpV.dcf # integration-tests/validation/src/main/assets/figma/ModuleExampleDoc_hPEGkrF0LUqNYEZObXqjXZ.dcf # integration-tests/validation/src/main/assets/figma/OpenLinkTestDoc_r7m4tqyKv6y9DWcg7QBEDf.dcf # integration-tests/validation/src/main/assets/figma/RecursiveCustomizationsDoc_o0GWzcqdOWEgzj4kIeIlAu.dcf # integration-tests/validation/src/main/assets/figma/ScrollingTestDoc_1kyFRMyqZt6ylhOUKUvI2J.dcf # integration-tests/validation/src/main/assets/figma/SmartAnimateTestDoc_RW3lFurXCoVDeqY2Y7bf4v.dcf # integration-tests/validation/src/main/assets/figma/TelltaleTestDoc_TZgHrKWx8wvQM7UPTyEpmz.dcf # integration-tests/validation/src/main/assets/figma/TextElideTestDoc_oQ7nK49Ya5PJ3GpjI5iy8d.dcf # integration-tests/validation/src/main/assets/figma/VariablesTestDoc_HhGxvL4aHhP8ALsLNz56TP.dcf # integration-tests/validation/src/main/assets/figma/VariantAnimationTestDoc_pghyUUhlzJNoxxSK86ngiw.dcf # integration-tests/validation/src/main/assets/figma/VariantAnimationTimelineTestDoc_vJRf4zxY4QX4zzSSUd1nJ5.dcf # integration-tests/validation/src/main/assets/figma/VariantAsteriskTestDoc_gQeYHGCSaBE4zYSFpBrhre.dcf # integration-tests/validation/src/main/assets/figma/VariantInteractionsTestDoc_WcsgoLR4aDRSkZHY29Qdhq.dcf # integration-tests/validation/src/main/assets/figma/VariantPropertiesTestDoc_4P7zDdrQxj7FZsKJoIQcx1.dcf # reference-apps/tutorial/app/src/main/assets/figma/TutorialDoc_3z4xExq0INrL9vxPhj9tl7.dcf
Commit: | 2a9942f | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Refactor: Inline EncodedImageMap into DesignComposeDefinition (#1845) <!-- start git-machete generated --> ## Tree of downstream PRs as of 2024-12-09 * **PR #1845 (THIS ONE)**: `main` ← `wb/froeht/convert-encodedimagemap` * PR #1847: `wb/froeht/convert-encodedimagemap` ← `wb/froeht/1172-convert-dcd` * PR #1849: `wb/froeht/1172-convert-dcd` ← `wb/froeht/cargo-fix` <!-- end git-machete generated --> This change refactors the way images are stored in the DesignComposeDefinition proto. Instead of using separate EncodedImageMap and EncodedImage messages, the `images` field is now a direct map of image keys to byte arrays. This simplification removes the need for extra message types and makes the definition more straightforward. The existing EncodedImageMap has been promoted to the main definition file. It will be used in the code and then cloned to the Proto message before serialization.
Commit: | caf031e | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Refactor: Replace ImageKey with String (#1841) <!-- start git-machete generated --> # Based on PR #1837 ## Chain of upstream PRs as of 2024-12-05 * PR #1837: `main` ← `wb/froeht/1670-nodequery` * **PR #1841 (THIS ONE)**: `wb/froeht/1670-nodequery` ← `wb/froeht/remove-imagekey` <!-- end git-machete generated --> This change replaces the `ImageKey` struct with a simple `String` for representing image keys. This simplifies the code and removes the need for a custom struct for image keys, which is now directly represented as a string and allows use of it as a proto map's key
Commit: | f652170 | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Convert NodeQuery to Proto (#1837) This one is a little more complicated because we use NodeQuery as they key to a map in the DesignCompose Definition and protobuf messages can't use a message as a key. Fortunately NodeQuery only contains variations of a String, so it's fairly easy to encode it to a string for use in the DCD. We'll still keep the NodeQuery enum and just convert to/from it from the Protobuf message. Fixes #1670 Fixes #1282
Commit: | 216b819 | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Convert View to Proto (#1813) <!-- start git-machete generated --> # Based on PR #1811 ## Chain of upstream PRs as of 2024-11-27 * PR #1810: `main` ← `wb/froeht/1733-viewstyle` * PR #1811: `wb/froeht/1733-viewstyle` ← `wb/froeht/1732-component` * **PR #1813 (THIS ONE)**: `wb/froeht/1732-component` ← `wb/froeht/1735-view` <!-- end git-machete generated --> Fixes #1735
Commit: | 041b483 | |
---|---|---|
Author: | Robert Lin | |
Committer: | GitHub |
Support scrolling in squoosh (#1809) Fixes https://github.com/google/automotive-design-compose/issues/1787. When a view has scrolling enabled, add it to the list of child composables so that SquooshRoot() can recompose it as its own SquooshRoot(). During this composition, the scrollable view gets a Modifier.scrollable() that handles scroll input. The scroll events are used to calculate a scroll position, and the scroll position is saved into a State<Offset> object that is passed to the renderer and used to translate the children of the scrollable view. In order to calculate the size of a scrollable view's child contents, the "content_size" feature flag has been turned on in taffy. This allows taffy to calculate the size of a node's children, which we save into new content_width and content_height fields in layout. A scrolling test, validation example and unit test have been added.
Commit: | 2aca348 | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Convert NodeStyle to Proto (#1806) Fixes #1736
Commit: | c5ca847 | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | Tim Froehlich |
Convert NodeStyle to Proto Fixes #1736
Commit: | 3caabf9 | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Refactor: Rename interior MeterData to MeterDataType (#1796) <!-- start git-machete generated --> # Based on PR #1795 ## Chain of upstream PRs & tree of downstream PRs as of 2024-11-19 * PR #1795: `main` ← `wb/froeht/1734-textstyle` * **PR #1796 (THIS ONE)**: `wb/froeht/1734-textstyle` ← `wb/froeht/fix-up-meterdata` * PR #1806: `wb/froeht/fix-up-meterdata` ← `wb/froeht/1736-nodestyle` <!-- end git-machete generated --> This change refactors the `MeterData` message to `MeterDataType` to better reflect its role as a container for different meter data types within the exterior MeterData message
Commit: | be1e7a5 | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Convert TextStyle to Proto (#1795) <!-- start git-machete generated --> ## Tree of downstream PRs as of 2024-11-19 * **PR #1795 (THIS ONE)**: `main` ← `wb/froeht/1734-textstyle` * PR #1796: `wb/froeht/1734-textstyle` ← `wb/froeht/fix-up-meterdata` * PR #1806: `wb/froeht/fix-up-meterdata` ← `wb/froeht/1736-nodestyle` <!-- end git-machete generated --> Fixes #1734
Commit: | 3709859 | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Refactor: Move meter data to definition package (#1782) <!-- start git-machete generated --> # Based on PR #1774 ## Chain of upstream PRs as of 2024-11-14 * PR #1774: `main` ← `wb/froeht/protoconv-layout-positioning` * **PR #1782 (THIS ONE)**: `wb/froeht/protoconv-layout-positioning` ← `wb/froeht/1731-meter-data` <!-- end git-machete generated --> Moves the meter data types from the legacy_definition package to the definition package. This change simplifies the codebase by removing the redundant legacy_definition package. Additionally, this change refactors the DesignCompose code to use the new meter data types.
Commit: | c32c0b0 | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Convert the positioning enums and LayoutView to Proto (#1774) <!-- start git-machete generated --> ## Tree of downstream PRs as of 2024-11-14 * **PR #1774 (THIS ONE)**: `main` ← `wb/froeht/protoconv-layout-positioning` * PR #1782: `wb/froeht/protoconv-layout-positioning` ← `wb/froeht/1731-meter-data` <!-- end git-machete generated --> Fixes #1725 Fixes #1723
Commit: | e1fa7ca | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
ProtoConv: Migrate modifier/Shadow (#1742) <!-- start git-machete generated --> # Based on PR #1741 ## Chain of upstream PRs as of 2024-10-29 * PR #1741: `main` ← `wb/froeht/1726-protoconv-blend` * **PR #1742 (THIS ONE)**: `wb/froeht/1726-protoconv-blend` ← `wb/froeht/1727-shadow` <!-- end git-machete generated --> Fixes #1727
Commit: | 81fee08 | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Refactor: Update ViewShape to use proto enums (#1737) This change updates the ViewShape struct to use proto-defined enums for StrokeCap and Shape. This improves type safety and consistency across the codebase. Specifically: - Removes `legacy_definition::element::view_shape::ViewShape` and `legacy_definition::element::view_shape::StrokeCap`. - Introduces `definition::element::view_shape::StrokeCap` and `definition::element::ViewShape`. - Updates `figma_schema::StrokeCap` to convert to the new `definition::element::view_shape::StrokeCap`. - Adds helper functions to `ViewShape` for creating different shape types. - Replaces instances of the old `ViewShape` and `StrokeCap` with the new ones throughout the codebase. - Updates `figma_import::reflection` to trace the new types. - Updates the dcf files to reflect the changes. In addition this required renaming ColorOrVar's inner type because both the inner and outer types shared the same name. This caused a collision in serdegen which caused it to error out. Fixes #1675
Commit: | 669cdd5 | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Migrate Actions and Reactions to Proto (#1695)
Commit: | 17e7bf7 | |
---|---|---|
Author: | Robert Lin | |
Committer: | GitHub |
Move Stroke, Background to proto generated files (#1684) Created ProtoUtils.kt to hold some convenience functions for the serde-generated proto-generated files. Created ProtoEnums.kt to convert between enum values and hard coded integers whose association was lost in the serdegen conversion. This can be removed and fixed when we migrate to using proto-generated Kotlin. This changed required changing usage of color_or_var::ColorOrVar to the outer struct ColorOrVar. Fixes #1667, #1672
Commit: | 675d1ff | |
---|---|---|
Author: | Robert Lin | |
Committer: | GitHub |
Migrate variables to use protobuf generated code. (#1599) Fixes #1571 Fixes #1572
Commit: | 84b38bc | |
---|---|---|
Author: | Robert Lin | |
Committer: | GitHub |
Fixes #1569: Use protobuf generated Color struct (#1595)
Commit: | fc90eae | |
---|---|---|
Author: | yiqunw700 | |
Committer: | GitHub |
Create Hyperlink proto message and replace legacy Hyperlink (#1507)
Commit: | 170257c | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Replace the FontStyle and FontFeature Rust types with the Protobuf implementations (#1403) Why were we converting the font features to a byte array and then back to a string? Either way, it needed to change one way or another because you can't have protobuf arrays with a specified size.
Commit: | f260fb8 | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Migrate remaining basic types to dc_bundle (#1459) <!-- start git-machete generated --> # Based on PR #1458 ## Full chain of PRs as of 2024-07-30 * PR #1459: `wb/froeht/1453-basic-types` ➔ `wb/froeht/migrate-meters` * PR #1458: `wb/froeht/migrate-meters` ➔ `main` <!-- end git-machete generated --> Fixes #1453
Commit: | cd9a8de | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Cherry pick #1425 - protobuf lite into 0.29.x (#1441)
Commit: | a455fbf | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Replace full protobuf implementation with protobuf-lite (#1425) This should help with compatibility issues with other apps that use protobuf, as it's much more common to use the lite version than the full version.
Commit: | 22bf246 | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Migrate Background to dc_bundle (#1414) I ended up moving some of the proto files around because background didn't make sense as a modifier. It still pulls types from the modifier which is awkward, but I didn't think it made sense to create a seperate subpackage for it
Commit: | c90bae6 | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Migrate the shadow modifiers to dc_bundle (#1410) <!-- start git-machete generated --> # Based on PR #1408 ## Full chain of PRs as of 2024-07-23 * PR #1410: `wb/froeht/migrate-shadows` ➔ `wb/froeht/migrate-more-types` * PR #1408: `wb/froeht/migrate-more-types` ➔ `main` <!-- end git-machete generated -->
Commit: | 667b0a5 | |
---|---|---|
Author: | yiqunw700 | |
Committer: | GitHub |
Fixes #1296: Don't fail live update when user has no access to variables (#1352) 1. Log an error in logcat when variable fetch fails 2. Show a warning message in DesignSwitcher when variable value look up fails in VariableManager 3. Update NumOrVar and ColorOrVar to hold a fallback value
Commit: | 4dd69e2 | |
---|---|---|
Author: | yiqunw700 | |
Committer: | GitHub |
Fixes #1317: Support letter spacing and text decoration (#1345) Support letter spacing(#1317 ) and text decoration(#1217 ) for texts with single style and texts with mixed styles.
Commit: | 9c1fb98 | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Migrate FlexWrap to new proto message (#1210) <!-- start git-machete generated --> # Based on PR #1280 ## Full chain of PRs as of 2024-06-21 * PR #1210: `wb/froeht/proto-impl-rust` ➔ `wb/froeht/fix-proto-package-names` * PR #1280: `wb/froeht/fix-proto-package-names` ➔ `main` <!-- end git-machete generated --> Please read #1209 before reviewing. This PR is a bit of a tester, replacing the native FlexWrap enum with the one generated by the protobuf compiler. As you can see I had to make a small change to the proto file to get it to behave properly (in this case the enum was being generated with "FLEX_WRAP_NO_WRAP" being converted to "FlexWrap::Nowrap" instead of "FlexWrap::NoWrap").
Commit: | 8a482a6 | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Fixes #1251: Move Figma/Live Update related messages to a proto live_update package (#1259) <!-- start git-machete generated --> # Based on PR #1280 ## Full chain of PRs as of 2024-06-21 * PR #1259: `wb/froeht/move-live-update-protos` ➔ `wb/froeht/fix-proto-package-names` * PR #1280: `wb/froeht/fix-proto-package-names` ➔ `main` <!-- end git-machete generated -->
Commit: | 2307406 | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Change proto base package name to just "designcompose" (#1280) Fixes #1255
Commit: | 56796cf | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Rename Serialized Design Doc to DesignCompose Definition (#1260) <!-- start git-machete generated --> # Based on PR #1262 ## Full chain of PRs as of 2024-06-20 * PR #1260: `wb/froeht/rename-SDD-to-Definition` ➔ `wb/froeht/clean-up-SDD-naming` * PR #1262: `wb/froeht/clean-up-SDD-naming` ➔ `main` <!-- end git-machete generated --> Towards #1252
Commit: | 2555459 | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Fixes #1250: Move design/element/text to the modifier package. (#1258) Fixes #1250: Move design/element/text to the modifier package. <!-- start git-machete generated --> # Based on PR #1262 ## Full chain of PRs as of 2024-06-20 * PR #1258: `wb/froeht/move-text-modifier` ➔ `wb/froeht/clean-up-SDD-naming` * PR #1262: `wb/froeht/clean-up-SDD-naming` ➔ `main` <!-- end git-machete generated -->
Commit: | 3732a41 | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Fixes Collect the View related protobuf messages into a definition/view package #1256 (#1261) <!-- start git-machete generated --> # Based on PR #1262 ## Full chain of PRs as of 2024-06-20 * PR #1261: `wb/froeht/create-view-dir-for-views` ➔ `wb/froeht/clean-up-SDD-naming` * PR #1262: `wb/froeht/clean-up-SDD-naming` ➔ `main` <!-- end git-machete generated --> Also moves the variable collection messages in with the definition/element/variable proto.
Commit: | bd78fcb | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Fixes #1253: Rename protobuf "design" to "definition" (#1262)
Commit: | 11f3015 | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Create Proto messages for SerializedDesignDoc (#1189) This is another step towards eliminating Serdegen. This should be the full set of messages required for SerializedDesignDoc. The messages have been largely generated by Gemini, so there's likely some inaccuracies in there. Those will become evident when we start integrating the generated messages into the code, so I'm not too concerned about that. What I would like review on right now is the layout of the files in the proto/ directory. Since we're trying to create a documented, stable format it made sense to split the messages into different packages. They are: design: Everything needed for a DesignDoc design/element: Basic elements of a design. Color, Rectangle, etc. design/interaction: Animations and reactions design/layout: Grid, alignment, etc. design/modifier: Blends, filters, transforms design/plugin: Figma Plugin specific, Dials/Guages data toolkit: "Buisiness logic" types, currently SerializedDesignDoc. android_interface: Messaging types that are only used to communicate across the JNI.
Commit: | 0f4732e | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Switch to a better protobuf plugin (#1190) Switch from the built-in Protobuf plugin to https://plugins.jetbrains.com/plugin/16422-protobuf, which is much more capable. It includes better syntax highlighting, auto imports, usages, auto completion, sorts and spaces the header of each file and so on. This PR changes the required Android Studio plugin to use the new one instead of the built-in one and the protolint plugin. After this merges you **will** see a warning from Android Studio that the plugins conflict. Resolve it by opening your plugins page and disabling the built in and protobuf lint plugins. This screenshot shows the correct settings. <img width="464" alt="image" src="https://github.com/google/automotive-design-compose/assets/5819722/a107b9ac-580f-48d7-b668-c346e6b18e8c">
Commit: | 49af626 | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | GitHub |
Convert the Layout crate and JNI to use Protobuf (#1119)
Commit: | 4d65735 | |
---|---|---|
Author: | Tim Froehlich |
Basic Layout file
Commit: | f9e011d | |
---|---|---|
Author: | Tim Froehlich | |
Committer: | Tim Froehlich |
Basic read and write