Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix: Handle missing AmbientLifecycleObserver in Robolectric #2474

Merged
merged 2 commits into from
Dec 6, 2024

Conversation

yschimke
Copy link
Collaborator

@yschimke yschimke commented Dec 6, 2024

WHAT

Handles missing AmbientLifecycleObserver in Robolectric tests by catching NoClassDefFoundError and returning null instead of crashing. This allows ambient-aware composables to be tested in Robolectric without requiring a real device or emulator.

WHY

HOW

Checklist 📋

  • Add explicit visibility modifier and explicit return types for public declarations
  • Run spotless check
  • Run tests
  • Update metalava's signature text files

Handles missing AmbientLifecycleObserver in Robolectric tests by catching NoClassDefFoundError and returning null instead of crashing. This allows ambient-aware composables to be tested in Robolectric without requiring a real device or emulator.
@yschimke yschimke requested review from kul3r4 and garanj December 6, 2024 08:32
@yschimke yschimke closed this Dec 6, 2024
@yschimke yschimke reopened this Dec 6, 2024
@yschimke yschimke merged commit 6cd025b into google:main Dec 6, 2024
6 checks passed
yschimke added a commit to yschimke/horologist that referenced this pull request Dec 6, 2024
)

* Fix: Handle missing AmbientLifecycleObserver in Robolectric

Handles missing AmbientLifecycleObserver in Robolectric tests by catching NoClassDefFoundError and returning null instead of crashing. This allows ambient-aware composables to be tested in Robolectric without requiring a real device or emulator.

---------

Co-authored-by: yschimke <[email protected]>
(cherry picked from commit 6cd025b)
yschimke added a commit that referenced this pull request Dec 6, 2024
* Refactor: AmbientAware API change (#2472)

This change refactors the `AmbientAware` API to make it more intuitive and easier to use.

The following changes were made:

- The `AmbientAware` composable moves to the screen level
- The `AmbientStateUpdate` class was merged into `AmbientState`.
- The `AmbientState` sealed interface now has a data object `Interactive` and a data class `Ambient` to store AmbientDetails, as well as Inactive.

---------

(cherry picked from commit f8ccc68)

* Fix: Handle missing AmbientLifecycleObserver in Robolectric (#2474)

* Fix: Handle missing AmbientLifecycleObserver in Robolectric

Handles missing AmbientLifecycleObserver in Robolectric tests by catching NoClassDefFoundError and returning null instead of crashing. This allows ambient-aware composables to be tested in Robolectric without requiring a real device or emulator.

---------

(cherry picked from commit 6cd025b)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants