Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit 68e91829 authored by Jordan Demeulenaere's avatar Jordan Demeulenaere
Browse files

Add SystemUI build flag for Compose code (1/3)

This CL adds a Soong build flag that enables Compose code when building
SystemUI, or anything depending on SystemUI-core. The flag is disabled
by default, and will be first used to measure the impact of Compose on
our apk and system health. It will be turned on for one/many/all targets
once agreed with the Android System Health & Performance team.

To turn this flag on, one simply have to
`export SYSTEMUI_USE_COMPOSE=true` before compiling.

This flag is implemented such that:

 - When it is enabled, SystemUI-core depends on the SystemUIComposeCore
   library and compiles the source files of SystemUIComposeFeatures. In
   an ideal world, SystemUI-core would also just depend on
   SystemUIComposeFeatures instead of recompiling its sources, but given
   that the code in SystemUIComposeFeatures depends on code in
   SystemUI-core, this would lead to a cyclic dependency. Therefore,
   when this flag is enabled, we compile those files together.
   SystemUIComposeFeatures also contains a ComposeFacade object that is
   the bridge between SystemUI-core code and SystemUIComposeFeatures
   code.

 - When it is disabled, we only add another ComposeFacade object with
   the same API as the ComposeFacade object in SystemUIComposeFeatures,
   which throws when its functions are called (except for
   ComposeFacade#isComposeAvailable(), which returns false).

This way, any code in SystemUI-core can check
ComposeFacade#isComposeAvailable() first then call other functions to
indirectly access Compose code. See http://ag/20759151 for an example.

Bug: 242304109
Test: Builds
Change-Id: Ibd895a73041c163816e779273ec0b6588aabef76
parent ff576d73
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment