Jolla Phone : First Experiences, Pros and Cons

Ultimately this was correct. I got it to a point where I’m happy with it, even if the path I took was probably a little too overly-complicated.

First I went and modified compositor.qml:962

peekFilter {
                enabled: appLayerItem.active
                            || cameraLayerItem.active
                            || launcherLayerItem.active
                            || alarmLayerItem.active
                            || topMenuLayerItem.active
                            || (homeLayerItem.active && root.deviceIsLocked)
                leftEnabled: false
                rightEnabled: !Desktop.startupWizardRunning

This might not be the canonical place to modify this, but it does work to disable the left swipe in an application window.

Next, I wanted to remove the back button from android. I did so by adding the following to the props:

echo 'qemu.hw.mainkeys=1' >> "build.prop"

which makes the android container believe that there are physical hardware buttons, hiding the navbar.

I added this to the img at /opt/appsupport/system.img - This might not have been necessary, there might have been a better way to do this. I was messing around with system.img to try to add some other things too.

Next, it should have been just a case of …

appsupport-attach
cmd overlay enable  com.android.internal.systemui.navbar.gestural

annnd.. oh

Exception occurred while executing 'enable':
java.lang.SecurityException: commit failed
	at com.android.server.om.OverlayManagerService$1.commit(OverlayManagerService.java:913)
	at com.android.server.om.OverlayManagerShellCommand.runEnableDisable(OverlayManagerShellCommand.java:251)
	at com.android.server.om.OverlayManagerShellCommand.onCommand(OverlayManagerShellCommand.java:89)
	at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
	at android.os.ShellCommand.exec(ShellCommand.java:38)
	at com.android.server.om.OverlayManagerService$1.onShellCommand(OverlayManagerService.java:1030)
	at android.os.Binder.shellCommand(Binder.java:1230)
	at android.os.Binder.onTransact(Binder.java:1043)
	at android.content.om.IOverlayManager$Stub.onTransact(IOverlayManager.java:510)
	at android.os.Binder.execTransactInternal(Binder.java:1505)
	at android.os.Binder.execTransact(Binder.java:1444)

So it seems like actually this was removed from the image in appsupport. Unfortunate.
I spent an inordinate amount of time trying to restore it, grapping some AOSP images to try to extract it.
Then I got tired. So I just grabbed an apk that adds gestures. Fluid Navigation Gestures

And voila.

Swiping right retains it’s existing functionality of minimizing apps. Swiping left goes back in Android apps (with a little animation).

It also doesn’t mess with the UX for Jolla Apps too much. You can no longer minimise applications using a left swipe, but going back to a different screen still works as expected. You can also do this now from any part of the screen, instead of from the middle. I actually really really prefer this. Swiping from the right to minimise feels fairly natural, and doesn’t conflict with my muscle memory of other platforms.

Another small change I made was doing

dconf write /desktop/lipstick-jolla-home/peekfilter/boundaryWidth 30

This made the sensitivity of the right swipe less, to the point that I usually have to go from off the screen to on the screen to make it work. Makes for right swipe gestures in other applications a little more forgiving.

10 Likes