Have updated the Volla (old Volla, GS290) from 4.4.0.72 to 4.5.0.21 using sfos.upgrade / reboot / post_sfos-upgrade, used it a few days (worked fine) and then I dared to update to 4.5.0.24, again using sfos.upgrade / reboot / post_sfos-upgrade.
Since the last update a freezing touchscreen problem occurs very frequently. If this happens, I have to push pwr button, push pwr button again and attach finger on FP-sensor. Mostly it works then for a longer time (until it freezes the next time). Everything else works fine from user’s sight.
Also I tweaked around a little with this file:
vi /usr/share/lipstick-jolla-home-qt5/lockscreen/EdgeIndicator.qml
initially to remove annoying arrows when unlocking device, but then I saw that there are some timings and delays that affect the reaction speed of keyboard when typing and also the frequency of occurance of ‘freezing touchscreen’.
Q’s:
Is there a chance to ‘try harder’ to find the real reason for the freezing touchscreen occurance?
Was it generally a mistake to upgrade from 4.5.0.21 to 4.5.0.24, should I better have refrained from doing so?
This is what I’ve done to the /usr/share/lipstick-jolla-home-qt5/lockscreen/EdgeIndicator.qml
file:
- commented out the arrow image source,
- tweaked around in the ‘transition’ duration and velocity values at the end of the file.
Q: Did I unknowingly break something or set inadmissible values?
This is the modified file:
import QtQuick 2.0
import Sailfish.Silica 1.0
import org.nemomobile.lipstick 0.1
Image {
id: indicator
property bool active
property bool peeking
property real peekProgress
property bool hinting: false
property real offset: -width
property real threshold: Theme.itemSizeLarge / 2
property bool locked
property bool fadeoutWhenHiding
property real _peekProgressScale: 0.4
property real _initialIconPos
function reset() {
state = "hidden"
hinting = false
}
state: "hidden"
// source: "image://theme/graphics-edge-swipe-arrow"
rotation: 90
width: sourceSize.width
height: sourceSize.height
enabled: peeking || hinting
onPeekingChanged: {
if (peeking) {
hinting = false
}
}
states: [
State {
name: "peeking"
when: indicator.peeking
StateChangeScript {
script: {
_initialIconPos = indicator.offset
}
}
PropertyChanges {
target: indicator
offset: {
if (_initialIconPos < 0) {
// accelerate icon movement from offscreen
var peekedRatio = (indicator.peekProgress * indicator._peekProgressScale) / (lockScreen.peekFilter.threshold * indicator._peekProgressScale)
var iconPosChange = indicator.width * peekedRatio
return (peekProgress * _peekProgressScale) + _initialIconPos + iconPosChange
} else {
return (peekProgress * _peekProgressScale)
}
}
opacity: (offset + indicator.width) / (lockScreen.peekFilter.threshold * indicator._peekProgressScale)
}
}, State {
name: "hinting"
when: indicator.hinting
PropertyChanges {
target: indicator
offset: Screen.sizeCategory <= Screen.Medium ? 0 : indicator.threshold
opacity: (offset + indicator.width) / indicator.threshold
}
}, State {
name: "triggered"
when: !indicator.locked && indicator.active
PropertyChanges {
target: indicator
opacity: 0.0
offset: lockScreen.peekFilter.threshold * 0.8
}
}, State {
name: "fadedOut"
when: !indicator.hinting && !indicator.peeking && fadeoutWhenHiding
PropertyChanges {
target: indicator
opacity: 0.0
offset: offset
}
}, State {
name: "hidden"
extend: "fadedOut"
when: !indicator.hinting && !indicator.peeking && !fadeoutWhenHiding
PropertyChanges {
target: indicator
offset: -indicator.width
}
}
]
transitions: [
Transition {
from: "hidden,fadedOut"
to: "hinting"
SequentialAnimation {
alwaysRunToEnd: true
ParallelAnimation {
FadeAnimation {
target: indicator
duration: 4
from: Theme.opacityHigh
to: 1.0
}
SmoothedAnimation {
target: indicator
properties: "offset"
duration: 35
velocity: 50
}
}
PauseAnimation { duration: 100 }
ScriptAction {
script: {
indicator.hinting = false
}
}
}
}, Transition {
from: "peeking"
to: "triggered"
SequentialAnimation {
SmoothedAnimation {
target: indicator
properties: "offset"
duration: 20
velocity: 3
}
FadeAnimation {
target: indicator
duration: 20
}
ScriptAction { script: indicator.reset(true) }
}
}, Transition {
from: "peeking,hinting"
to: "hidden"
SequentialAnimation {
SmoothedAnimation {
target: indicator
properties: "offset"
duration: 20
velocity: 3
}
PropertyAction { target: indicator; property: "opacity" }
ScriptAction { script: indicator.reset(true) }
}
}, Transition {
from: "peeking,hinting"
to: "fadedOut"
SequentialAnimation {
FadeAnimation {
target: indicator
duration: 20
}
ScriptAction { script: indicator.reset(true) }
}
}
]
}
Thanks for any help!