I saw rooted r1 devices with a custom Android installed. There, the magic wheel apparently sends clicks to the volume button.
Now, I am wondering: Is the behavior similar for the default r1 operating system? So the wheel sends volume clicks, and then the UI just interprets them differently?
In that case, it seems that only discrete events from the wheel will be used, not the analog information about the actual angle? For some UI elements, having the analog information might result in a more smooth experience, I guess. Can you look into this and provide details on how this is currently solved, and whether it can be further improved?
Part of the reason why you build your own operating system based on Android, rather than just using Android and customising it visually, is so you can better define default behaviour particularly around fairly unique hardware and how it intertwines with the software.
Fun fact - some of the original Android phones, including the first one, the G1 (which I bought on release day and still own) had little navigational trackballs, which functioned in a similar manner to our scrollwheel.
I am not sure why a vanilla Android build would interpret the wheel for volume, but my understanding is that our custom drivers for rabbitOS will tell the OS that wheel = scroll navigation, as opposed to wheel = volume + (now add extra code that says when you see volume triggers from hardware, remap it to become nav)
Ah, interesting! Thanks for the detailed explanation.
Then, I hope that you already make use of the highest resolution input that you can get (since I think sometimes drivers will give several inputs, in different resolutions and formats, like clicks, angle, …).
Just had this in mind when I saw the video of some custom ROM installed on an r1, together with the reports of a little flaky scrolling behavior on the normal r1.