tree e7412d3790c9486d554261dd0b685cff69307106
parent f89d0edd8b4fb471474fe989536ecb4a4be03844
author Paul Sowden <paulsowden@google.com> 1660697380 -0700
committer Copybara-Service <copybara-worker@google.com> 1660697418 -0700

Apply configuration changes to `ActivityScenario` `Activity`s

The `Activity`s created by `ActivityScenario` are created through the `RoboMonitoringInstrumentation`, keep track of all the non-destroyed `ActivityController`s created by the instrumentation and when a configuration change happens to the global configuration (which is applied when calling e.g. `RuntimeEnvironment#setQualifiers`) then apply the configuration to the instrumentation created controllers.

A couple of changes were made to support this:

*   The `ActivityController#changeConfiguration` method was not causing all the lifecycle events to get notified as some of them were not going through instrumentation, update to make this method consistent with the relevant lifecycle methods on the controller, this is necessary for `ActivityScenario` to correctly handle the configuration change
*   Add a method to the `ShadowResources` to allow listening for a configuration change, this allows the `RoboMonitoringInstrumentation` to listen for the global configuration change (as its in a different package the `RuntimeEnvironment` cannot directly interact with it)

Note that a call to `visible()` is made in the `RoboMonitoringInstrumentation`, this should really happen in the `ActivityController`, but this is hard to retroactively change, at least make the new `ActivityScenario` case work correctly from start (without this call the view of the recreated activity does not get added to the window and so cannot properly be interacted with).

PiperOrigin-RevId: 468069979
