-
Couldn't load subscription status.
- Fork 166
Description
Edge-to-edge mode is a new Android feature that adds transparency to the system status bar and navigation buttons by drawing apps behind them. But if the app has any buttons of its own near the top or bottom edges then the system controls eat their clicks. This can be suppressed in Android 15 with R.attr#windowOptOutEdgeToEdgeEnforcement but that will be ignored in Android 16. Instead we're supposed to ask the system how tall these overlaps are using getInsets and avoid putting controls there. Strange but true.
Here's the evidence:
https://developer.android.com/develop/ui/views/layout/edge-to-edge#java
https://developer.android.com/about/versions/16/behavior-changes-16
This is causing show-stopping dysfunction in most apps based on reflex/obelisk, including ours:
https://gitlab.com/tahoe-lafs/bala-lafs-mobile/-/issues/2
We're not sure how to apply either of the solutions linked above within the reflex ecosystem.
We also filed a ticket in obelisk because we're not sure which repo needs fixing:
This would seem like a very high priority issue because it's hard to imagine an app which doesn't have controls near either the top or bottom edge, and all these apps are rendered unusable on Android 15 or higher.
I suggest that reflex/obelisk should sidestep this lunacy altogether by always using getInsets and putting empty space there. Any other solution would require painstaking work from individual app developers.