Android dual-screen: sync android-native and only enable dual-screen on a built-in second screen - #1097
Merged
Conversation
- Introduced `PhysicalGamepadState` class to encapsulate state for each controller, improving state management and reducing redundancy. - Added `androidGamepadConnectionBitmapForSlots` function to generate connection bitmaps for multiple controllers. - Updated `NativeStreamClient` to utilize the new `PhysicalGamepadState` for managing physical gamepad inputs, including buttons, triggers, and stick positions. - Enhanced controller connection handling to support multiple controllers, including updates to the gamepad state burst limiter and sending current gamepad states. - Implemented new settings for multi-controller support in the UI, allowing users to enable multiple controller slots. - Added tests to ensure proper functionality of multi-controller features and gamepad state management. - Introduced `RecordingDestination` object for managing stream recording destinations, including folder permissions and file creation. - Updated UI components for touch button appearance to support landscape layouts and improved user experience. - Enhanced diagnostics schema to include multi-controller settings and dynamic network adjustments.
…d-dual-screen-sync # Conflicts: # android/app/src/main/java/com/opencloudgaming/opennow/OpenNowCatalogControls.kt # android/app/src/main/java/com/opencloudgaming/opennow/OpenNowStreamControls.kt
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Sync with android-native
Merges the three new
android-nativecommits: the multi-controller gamepad input refactor and two bug-fix batches.Two conflicts were resolved:
rememberPrintedWastePicker: keeps the dual-screen extraction and takes native's regional routing (printedWasteRegionalUrlwithstate.regions, skipping zones that have no route).StreamControlsPanel: takes native's new expand-to-full-screen panel and keeps the caller-sizedmodifierthe bottom screen relies on. The floating overlay height follows native (0.78). The expand button is hidden when the panel is hosted on the bottom screen, which it already fills; expanding there would also have changed the stream window's system bars.Dual-screen mode only for a built-in second screen
Dual-screen mode turns on when the bottom-screen deck launches. Until now it launched on any public, non-default display that was switched on. That included an HDMI or USB-C monitor, a Miracast/cast display, or a docked handheld's TV, so a phone or an Odin plugged into a TV would have opened the deck on the TV.
selectBottomScreenDisplayIdnow only accepts displays withoutDisplay.FLAG_PRESENTATION. Android sets that flag on external, wireless and cast displays, but not on a second built-in panel.isKnownDualScreenDevice: AYN Thor, AYANEO Pocket DS, Anbernic RG DS) also accepts those, preferring the lowest display id because built-in panels register at boot, before any dock.rememberBottomScreenHostingstays false and the app is the normal single-screen app. The "Bottom screen" settings section is hidden as before.Checks
:app:testDebugUnitTest: 1160 tests, 0 failures. The newDualScreenTestcases cover single-screen, external-only, docked-TV-plus-bottom-panel, switched-off panel and the known-device fallback.:app:assembleDebugbuildsnpm run locales:checkpasses