Place overlay debug panels on the side that fits#853
Conversation
|
More information about animation caveat: Since i just coded the feature using Codex and lack code knowledge myself, i am unable to fix the transition issue caused when pausing. Otherwise, i hope this feature is an overall non disruptive little addon, fit for addition to the main app as well. |
|
Small related note while testing the 4.0.0 beta overlay behavior: this PR also fixes a remaining edge-position restore issue from #852. #852 fixed the data-source side by making The remaining problem is in This PR removes that caller-side zero rejection as part of the menu anchor-position work, so top/left/top-left saved positions are restored correctly here. If this PR does not get merged as-is, I think a small follow-up fix would still be needed for that specific issue: treat any non-null loaded position as valid in |
Summary
Fixes #850.
This PR makes horizontal debug/result panels choose a side around the floating overlay buttons instead of always assuming that the panel can open to the right.
It applies to:
Behavior
Right-side placement remains the default. The panel flips left only when all of these are true:
When the panel flips left, the button cluster remains the user's visual anchor. The overlay window shifts left so the buttons stay where the user placed them.
Other Details
CardViewrather than split into a second overlay window.Animation Caveat
This improves the clipping/placement logic and reduces a few right-side assumptions in the transition path. The resize animation may still benefit from maintainer-side visual tuning on a real device: when the panel is on the left and the buttons are anchored on the right, Android's layout-change transition can still feel like it is folding from the larger debug panel instead of perfectly from the button anchor. I am calling this out because the mechanical placement behavior is covered here, while the final motion polish is much easier to judge with live overlay feedback.
Validation
./gradlew.bat --no-daemon --max-workers=3 --console=plain :core:common:overlays:testFDroidDebugUnitTest :feature:smart-config:compileFDroidDebugKotlin :feature:smart-debugging:compileFDroidDebugKotlin