Skip to content

bug: [Kebab] "Pick up" gestures crash due to upstream LineageOS type mismatch #842

@segamalaga

Description

@segamalaga

Issue type

User interface

Device

OnePlus 8T Kebab KB2003 EU

crDroid version

crDroid 12.4

Exact version / Build date

crDroidAndroid-16.0-20251210-kebab-v12.4

Bug description

Description: The Ambient Display settings crash when accessing "Pick up" options.
Cause: Known upstream LineageOS issue. The code expects a Boolean but the preference is stored/returned as a String, causing a ClassCastException.
Evidence: Link to your logcat (or paste the stack trace).
Workaround: Manually editing /data/data/org.lineageos.settings.doze/shared_prefs/org.lineageos.settings.doze_preferences.xml to set values fixes the functionality, proving it's just a UI crash

Steps to reproduce

Open system Settings.
Go to Lock Screen > Ambient Display (or OnePlus Settings > Ambient Display).
Tap on "Pick up" (or "Pick up gesture").
The app (org.lineageos.settings.doze) immediately crashes and returns to the previous menu.
The toggle/option cannot be changed via UI.

Relevant log (logcat/build log)

12-11 01:34:41.170 E/AndroidRuntime( 5625): FATAL EXCEPTION: main
12-11 01:34:41.170 E/AndroidRuntime( 5625): Process: org.lineageos.settings.doze, PID: 5625
12-11 01:34:41.170 E/AndroidRuntime( 5625): java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Boolean
12-11 01:34:41.170 E/AndroidRuntime( 5625): 	at org.lineageos.settings.doze.DozeSettingsFragment.onPreferenceChange(DozeSettingsFragment.kt:83)
12-11 01:34:41.170 E/AndroidRuntime( 5625): 	at androidx.preference.Preference.callChangeListener(Preference.java:1131)
12-11 01:34:41.170 E/AndroidRuntime( 5625): 	at androidx.preference.ListPreferenceDialogFragmentCompat.onDialogClosed(ListPreferenceDialogFragmentCompat.java:109)

Screenshots or videos

https://drive.google.com/file/d/1JAj3O3778nU3EWubwTpLNjYck7fxfyHZ/view?usp=drivesdk

Solution

Workaround confirmed: Manually editing /data/data/org.lineageos.settings.doze/shared_prefs/org.lineageos.settings.doze_preferences.xml to set 1 enables the feature successfully after a reboot, proving the sensor hardware and firmware (OOS 14) are working correctly. The issue is strictly in the UI/Fragment code.

Additional context

Note: This seems to be an upstream LineageOS regression where DozeSettingsFragment.kt expects a Boolean value, but the legacy preference is returning a String, causing a ClassCastException.

Acknowledgements

  • I've checked device is officially supported and that no support is provided for unofficial devices (for device specific reports and not source related).
  • I'm running latest version available on crdroid.net for this device and that the device is still maintainer supported (not flagged unsupported on download page)
  • I have searched the existing issues and this is a new and no duplicate or related to another open issue.
  • I have written a short but informative title.
  • I filled out all of the requested information in this issue properly and understand that not doing so will automatically result in closing of ticket.

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingconfirmedBug that's confirmed and will be worked on

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions