Sailfish OS 5.0: Problems, Application Changes, Solutions (for developers)

Hello all of you who develop applications.

With SailfishOS 5.0 out, which apart from being awesome running on the C2, brings some changes in OS behaviour which might affect or break existing apps.

This topic is about collecting those, and perhaps sharing solutions in a D2D (dev-to-dev) way.

Known changes so far:

  • improved handling of “notched” devices
  • improved handling of “large display corner” devices
  • home screen rotation, and (optional) app rotation

So if your app experiences an issue, or otherwise can be improved for 5.0 compatibility, please respond here, explaining either the issue, or any solutions, or both.

Friendly note: If you are a user and have a feature request, found an annoyance, or a bug in an app, please do not respond about it in this topic - UNLESS you found something affecting all or a large number of applications.

Instead, file a bug report in the appropriate place (e.g Github Issues, or a support thread here.).

This should be more of a reference and alignment topic.

11 Likes

Heh. Funny. That would require the 4.6 or 5 being available for the devices I have :slight_smile:

I am curious though. What exactly IS the ‘handling’ of notched devices?

1 Like

ssh: connection sdk - phone
setup a new device (here JC2)
transfer public key: error like “no connection to”

What to do:

  1. check your developer settings: remote-connection enabled, devel-su/ssh password created and notice the correct ip
  2. open a terminal at your notebook / pc
  3. move to ~/.ssh. Maybe you have to create this first (chmod 700 / drwx------)
  4. enter: ssh-copy-id -i ~/.ssh/qtc_id.pub -p 22 defaultuser@192.168.2.65
  5. create device in SDK

I try to deploy an app from SDK to JC2 and get this SDK messages:

16:06:21: Starte /opt/sdk/harbour-ieligweb/usr/bin/harbour-ieligweb …
[D] unknown:0 - QML debugging is enabled. Only use this in a safe environment.
[D] unknown:0 - Using Wayland-EGL
library “libutils.so” not found
library “libdmabufheap.so” not found
library “libbase.so” not found
library “libz.so” not found
library “libcutils.so” not found
library “android.hardware.graphics.mapper@4.0.so” not found
library “libgralloctypes.so” not found
library “libhidlbase.so” not found
library “libhardware.so” not found
library “libc++.so” not found
library “libion.so” not found
[W] unknown:309 - file:///opt/sdk/harbour-ieligweb/usr/share/harbour-ieligweb/qml/pages/helper/db.js:309: Error: no such table: webstack Unable to execute statement

Is SFOS 5.0 not ready for this?

Already notified jolla of new notch changes causing issues in apps. While its not something devs have to fix, if it won’t be fixed by the time 5.0 is released at least you’ll know who is to blame

This is how it looks

When using page width and height it doesn’t reach entire screen

3 Likes

That’s a good example.

There’s the question of what ‘fullscreen’ should mean on a screen with these large rounded corners, right?

Should it be ‘true’ fullscreen, which hides some content behind the rounded corners?
Should it be “letterboxed”, i.e. show all of the content but with the corners of the content only touching the center of the rounded screen corners?

And how must touch and swipe input be handled in either case?

It will depend on the app’s purpose I guess.

2 Likes

Docs have not been released, but Sailfish/Silica/plugins.qmltypes exists, and lists some convenience propertes:

    Component {
        exports: ["Sailfish.Silica/Screen 1.0"]
        [...]
        Property { name: "hasCutouts"; type: "bool"; isReadonly: true }
        Property { name: "topCutout"; type: "QRect"; isReadonly: true }
        Property { name: "topLeftCorner"; type: "RoundedCorner"; isReadonly: true; isPointer: true }
        Property { name: "topRightCorner"; type: "RoundedCorner"; isReadonly: true; isPointer: true }
        Property { name: "bottomLeftCorner"; type: "RoundedCorner"; isReadonly: true; isPointer: true }
        Property { name: "bottomRightCorner"; type: "RoundedCorner"; isReadonly: true; isPointer: true }
        Signal { name: "cutoutsChanged" }
    }

    Component {
        exports: ["Sailfish.Silica/CutoutMode 1.0"]
        Enum {
            name: "CutoutMode"
            values: {
                "FullScreen": 0,
                "AvoidLandscapeCutout": 1
            }
        }
    }
    Component {
        exports: ["Sailfish.Silica/RoundedCorner 1.0"]
        Property { name: "x"; type: "int"; isReadonly: true }
        Property { name: "y"; type: "int"; isReadonly: true }
        Property { name: "radius"; type: "int"; isReadonly: true }
        Signal { name: "positionChanged" }
    }

4 Likes

I have the SFOS Forum Viewer v 1.11.0 loaded from Jolla Shop in both C2 and 10 III. Just noticed that in the topic list 10 III shows all topics but there is mentioned in the topic list of C2 only the word " Spam " at the rows of some topics which as said are visible in the 10 III.

Use the Pulley in the main view and select ‘Clear Filter List’.
If that does not help, file a bug report with SFOS Forum Viewer or open a new topic on the forum.

I’m not sure this is a good example. Game assets are not scaled to any arbitrary ratio. Just saying.

In the case of games built, for instance, with Godot, these are all questions for the developer dealing with the features/limitations of SDL2 in the somewhat hampered case of Sailfish. Just tooling about doing my first landscape layouts with godot, it became quickly clear that I’d either have to go ‘full 3D’ without any fixed scaling, or impose an arbitrary, stupid, limit (see molecules). If you have game assets to certain dimensions you’re always going to have to choose a compromise. But I don’t see how sfos can address that? It’s an issue on PC games, too (although, less and less since most just extend a 3d gl scene these days). EDIT: and no, I don’t have the time to do proper 3d development with godot 3.5 for sfos.

That things in unreal 5, or?