Archfx/duo-de

Sometimes screen not switch to single mode when you close it to single screen on duo 1

sir86 opened this issue · 14 comments

Acknowledgements

  • I have chosen an appropriate title.
  • All requested information has been provided properly.
  • This is not a feature request.
  • This issue is not a duplicate of an existing issue.
  • The issue is solely related to this GSI.
  • This issue occurs with the latest available build.
  • I am not running a custom vendor on my device.
  • This issue is not kernel related.
  • This issue is not related to Magisk/KernelSU/APatch.

Info

  • Device:
  • GSI version:
  • Vendor version:

Expected Behavior

Screen should always switch to single mode when close it to single screen.

Current Behavior

Sometimes screen not switch to single mode when you close it to single screen on duo 1 and you see only half on the screen.

Possible Solution

No response

Steps to Reproduce

Logs

No response

Additional context

No response

The description is not clear to me. How to reproduce this issue?

when you open phone fully to look like tablet and use both screens for some time then back to single screen by moving one screen one the back to make it look like a phone, sometimes screen not switch to phone mode and u see half of tablet mode on the screen. its not happening very often. Maybe 3 times per day. Then you have to close phone fully and reopen and its fine again. i have this issue since i first installed this rom. I first installed [v2024.07.25 then i using OTA and its happening from time to time since then. I think its a posture issue. Very good work btw

This sometimes happens on Duo 2 as well, but it's not clear to me exactly why it does that, a little hard to reproduce consistently.

It could be an issue with the hall sensor of the particular units then.

It should be visible in the log,

run the following command and change the fold to reproduce the issue,

adb logcat | grep 'POSTURE PROCESSOR'

If it is not producing the output for the hinge angle or the hinge angle value is not changing, the sensor has an issue.

log.txt

Here is a log with that issue. I notice if I quickly open from closed to one screen, it tends to work better, but opening to two screens first, then single screen tends to trigger the issue.

The posture seems to update with the change in hinge rapidly, so I do not think this is a sensor issue.

10-01 23:54:08.425  3379  3379 D POSTURE PROCESSOR: Processing posture Closed : R0
10-01 23:54:08.433  3379  3379 D POSTURE PROCESSOR: Setting display composition 2 new!
10-01 23:54:08.925  3379  3379 D POSTURE PROCESSOR: hall value: 1
10-01 23:54:08.929  3379  3379 D POSTURE PROCESSOR: Hall wake up. Register sensors
10-01 23:54:09.085  3379  3379 D POSTURE PROCESSOR: Setting hinge angle 0
10-01 23:54:09.218  3379  3379 D POSTURE PROCESSOR: Setting hinge angle 157
10-01 23:54:09.283  3379  3379 D POSTURE PROCESSOR: Got posture FlatDualP : R0
10-01 23:54:09.284  3379  3379 D POSTURE PROCESSOR: Updating posture because previous or new are closed
10-01 23:54:09.284  3379  3379 D POSTURE PROCESSOR: Loaded X: 1344 Y: 1892 HINGE: 66 OFFSET: 672
10-01 23:54:09.284  3379  3379 D POSTURE PROCESSOR: Processing posture FlatDualP : R0
10-01 23:54:09.303  3379  3379 D POSTURE PROCESSOR: Setting display composition 2 new!
10-01 23:54:09.317  3379  3379 D POSTURE PROCESSOR: Setting hinge angle 197
10-01 23:54:09.383  3379  3379 D POSTURE PROCESSOR: Got posture FlatDualL : R90
10-01 23:54:09.383  3379  3379 D POSTURE PROCESSOR: Loaded X: 1344 Y: 1892 HINGE: 66 OFFSET: 672
10-01 23:54:09.383  3379  3379 D POSTURE PROCESSOR: Processing posture FlatDualP : R0
10-01 23:54:09.390  3379  3379 D POSTURE PROCESSOR: Setting display composition 2 new!
10-01 23:54:09.396  3379  3379 D POSTURE PROCESSOR: Setting hinge angle 233
10-01 23:54:09.567  3379  3379 D POSTURE PROCESSOR: Setting hinge angle 259
10-01 23:54:09.613  3379  3379 D POSTURE PROCESSOR: Setting hinge angle 266
10-01 23:54:09.782  3379  3379 D POSTURE PROCESSOR: Got posture RampRight : R90
10-01 23:54:09.783  3379  3379 D POSTURE PROCESSOR: Loaded X: 1344 Y: 1892 HINGE: 66 OFFSET: 672
10-01 23:54:09.783  3379  3379 D POSTURE PROCESSOR: Processing posture FlatDualP : R0
10-01 23:54:09.790  3379  3379 D POSTURE PROCESSOR: Setting display composition 2 new!
10-01 23:54:09.793  3379  3379 D POSTURE PROCESSOR: Setting hinge angle 306
10-01 23:54:09.793  3379  3379 D POSTURE PROCESSOR: Setting hinge angle 322
10-01 23:54:09.983  3379  3379 D POSTURE PROCESSOR: Setting hinge angle 360
10-01 23:54:09.983  3379  3379 D POSTURE PROCESSOR: Got posture FlipLRight : R90
10-01 23:54:09.985  3379  3379 D POSTURE PROCESSOR: Loaded X: 1344 Y: 1892 HINGE: 66 OFFSET: 672
10-01 23:54:09.985  3379  3379 D POSTURE PROCESSOR: Processing posture FlatDualP : R0
10-01 23:54:09.991  3379  3379 D POSTURE PROCESSOR: Setting display composition 2 new!
10-01 23:54:16.387  3379  3379 D POSTURE PROCESSOR: Got posture FlipLRight : R270
10-01 23:54:16.389  3379  3379 D POSTURE PROCESSOR: Loaded X: 1344 Y: 1892 HINGE: 66 OFFSET: 672
10-01 23:54:16.389  3379  3379 D POSTURE PROCESSOR: Processing posture FlatDualP : R0
10-01 23:54:16.399  3379  3379 D POSTURE PROCESSOR: Setting display composition 2 new!

Particularly here, it seems to get stuck on one posture even though the hinge has changed angle

Seems like the PostureSensorListener is reporting the right posture, but the subsequent function processPosture seems to revert back to the previous posture?

10-01 23:54:08.425  3379  3379 D POSTURE PROCESSOR: Processing posture Closed : R0
10-01 23:54:08.433  3379  3379 D POSTURE PROCESSOR: Setting display composition 2 new!
10-01 23:54:08.925  3379  3379 D POSTURE PROCESSOR: hall value: 1
10-01 23:54:08.929  3379  3379 D POSTURE PROCESSOR: Hall wake up. Register sensors
10-01 23:54:09.085  3379  3379 D POSTURE PROCESSOR: Setting hinge angle 0
10-01 23:54:09.218  3379  3379 D POSTURE PROCESSOR: Setting hinge angle 157
10-01 23:54:09.283  3379  3379 D POSTURE PROCESSOR: Got posture FlatDualP : R0
10-01 23:54:09.284  3379  3379 D POSTURE PROCESSOR: Updating posture because previous or new are closed
10-01 23:54:09.284  3379  3379 D POSTURE PROCESSOR: Loaded X: 1344 Y: 1892 HINGE: 66 OFFSET: 672
10-01 23:54:09.284  3379  3379 D POSTURE PROCESSOR: Processing posture FlatDualP : R0
10-01 23:54:09.303  3379  3379 D POSTURE PROCESSOR: Setting display composition 2 new!
10-01 23:54:09.317  3379  3379 D POSTURE PROCESSOR: Setting hinge angle 197
10-01 23:54:09.383  3379  3379 D POSTURE PROCESSOR: Got posture FlatDualL : R90
10-01 23:54:09.383  3379  3379 D POSTURE PROCESSOR: Loaded X: 1344 Y: 1892 HINGE: 66 OFFSET: 672
10-01 23:54:09.383  3379  3379 D POSTURE PROCESSOR: Processing posture FlatDualP : R0
10-01 23:54:09.390  3379  3379 D POSTURE PROCESSOR: Setting display composition 2 new!
10-01 23:54:09.396  3379  3379 D POSTURE PROCESSOR: Setting hinge angle 233
10-01 23:54:09.567  3379  3379 D POSTURE PROCESSOR: Setting hinge angle 259
10-01 23:54:09.613  3379  3379 D POSTURE PROCESSOR: Setting hinge angle 266
10-01 23:54:09.782  3379  3379 D POSTURE PROCESSOR: Got posture RampRight : R90
10-01 23:54:09.783  3379  3379 D POSTURE PROCESSOR: Loaded X: 1344 Y: 1892 HINGE: 66 OFFSET: 672
10-01 23:54:09.783  3379  3379 D POSTURE PROCESSOR: Processing posture FlatDualP : R0
10-01 23:54:09.790  3379  3379 D POSTURE PROCESSOR: Setting display composition 2 new!
10-01 23:54:09.793  3379  3379 D POSTURE PROCESSOR: Setting hinge angle 306
10-01 23:54:09.793  3379  3379 D POSTURE PROCESSOR: Setting hinge angle 322
10-01 23:54:09.983  3379  3379 D POSTURE PROCESSOR: Setting hinge angle 360
10-01 23:54:09.983  3379  3379 D POSTURE PROCESSOR: Got posture FlipLRight : R90
10-01 23:54:09.985  3379  3379 D POSTURE PROCESSOR: Loaded X: 1344 Y: 1892 HINGE: 66 OFFSET: 672
10-01 23:54:09.985  3379  3379 D POSTURE PROCESSOR: Processing posture FlatDualP : R0
10-01 23:54:09.991  3379  3379 D POSTURE PROCESSOR: Setting display composition 2 new!
10-01 23:54:16.387  3379  3379 D POSTURE PROCESSOR: Got posture FlipLRight : R270
10-01 23:54:16.389  3379  3379 D POSTURE PROCESSOR: Loaded X: 1344 Y: 1892 HINGE: 66 OFFSET: 672
10-01 23:54:16.389  3379  3379 D POSTURE PROCESSOR: Processing posture FlatDualP : R0
10-01 23:54:16.399  3379  3379 D POSTURE PROCESSOR: Setting display composition 2 new!

Particularly here, it seems to get stuck on one posture even though the hinge has changed angle

Mmmm interesting

It looks like the composition is not updated and stuck at 2 in this particular case.

composition 2 is for the tablet mode, it should be either 0 or 1 in the phone mode.

I wonder how this happened,

10-01 23:54:16.387  3379  3379 D POSTURE PROCESSOR: Got posture FlipLRight : R270
10-01 23:54:16.389  3379  3379 D POSTURE PROCESSOR: Loaded X: 1344 Y: 1892 HINGE: 66 OFFSET: 672
10-01 23:54:16.389  3379  3379 D POSTURE PROCESSOR: Processing posture FlatDualP : R0

It registers FlipLRight but processes FlatDualP.

Note: I think I found the issue, drafting a new release on this.

Could you guys please check the latest release and try to reproduce the issue?

I can't seem to replicate the issue anymore on the new release, seems to be fixed. If I encounter the bug I'll post an update here.

Great, thanks