display sleep can cause several issues at the moment, and the behavior is not consistent across devices.
such issues include but are not limited to:
- no touch input
- blank projection display
- power savings destroying performance or throttling refresh rate
- activities falling off the projection display
it doesn't work without the trusted flag due to permissions
I may try to connect privd in the virtual activity launcher to fix this, and also add a setting to disable the launcher.
for now, it seems to work reliably on most(?) modern devices
continuing on the UX improvements, this is another pain point.
previously if I have my map and music in split-screen but only want to use one or the other, I would have to open the split-screen task before selecting one from the app drawer. the cost of messing this up is multiple extra taps and feels annoying.
now, it will always open the selected app in a task by itself. if I want to go to the split screen, I can just select the split-screen task from the dock, which saves an extra tap or two anyway.
after using it a fair bit I've noticed that re-ordering the open task list is more annoying than having to move them myself.
this is especially annoying due to a habit I've developed of double-tapping an icon to bring up the task operations in order to close it. when it re-orders, it breaks this workflow.
additionally, it might be undesirable to move buttons on the screen while the user is driving.
this makes some changes to the behavior of task ordering:
- pinned items can be unpinned to any location
- non-pinned items can be re-ordered to any location
- selecting a non-pinned item no longer brings it to the front of the task list
- new non-pinned tasks are appended to the end of the list
this is nice for several reasons:
- it adds a loading screen in place of what would be a broken/frozen frame buffer
- it adds a way to easily re-launch an activity that crashes
- the same applies when pressing back too many times and closing the activity
- it also allows a relatively seamless transition for apps to go from the car display to the phone and back
- in the future, I can add a callback to VirtualActivity to hide the splash screen after this activity renders its first frame to make loading even more seamless
there is no in-call ui and likely won't be for a while.
even this basic implementation will probably break if you receive two calls that ring at the same time.