Testing Requested for updated input handling on Android

Hello everyone!

For the past weeks I’ve been pulling my hair over a bug on Android, which resulted in Krita’s UI freezing, locking or even crashing. This was all due to the way input handling and window management was being done within Qt.

Due to the nature of the bug, I had to spend quite some time testing to see if my solution didn’t break anything or didn’t slow anything down. And because I was changing the way input is handled I thought it would be a good idea to make some other things simpler too, which resulted in rewriting a few things (even though I’ve kept them almost as original but are now in C++ not in Java).

What I’m getting at is, this change resulted in an entirely different way of handling the input events (exception is keyboard based events). On paper, things should work exactly like they did before [1] and if anything doesn’t it is likely a bug.

Testing

Pretty much everything related to input requires testing. Some things that come to my mind:

  1. Basic tests, if things like tablet tilt, multi-touch handling, mouse clicks work like they did before.
  2. Test if keyboard modifiers work with tablet/mouse events like they did before.
  3. Check if using context menus doesn’t cause lock ups (like in (bug?) App soft-locks(?) itself when trying to navigate the top menu - #10 by sh-zam).
  4. Check if long-press-to-right-click works like it used to.
  5. If you have touch painting enabled, those “dots” on canvas when performing gestures shouldn’t appear now (or they shouldn’t be as sensitive as they once were).
  6. Check if swifting through context menu, windows, changing focus works, with multiple input devices.
  7. If you have external tablet, test if things work like it did with previous versions. I’d greatly appreciate if you have a display tablet available to test using it with Krita (and all its functionality (pressure, tilt etc) works, i.e it is same as the previous version of Krita).
  8. Compare in split view with Play Store version of Krita if you see any significant difference with strokes etc.

The link to test APK is: https://drive.google.com/file/d/117gNleOwX315S02K45P4FFrrPml-riYH/view?usp=sharing (it will install itself side-by-side along with the release APK, with name “Krita Debug”. So no config will be lost)

[1]: Except the bug/freeze/crash should be fixed, obviously.

cc @Magolorchan your bug in (bug?) App soft-locks(?) itself when trying to navigate the top menu should be fixed now :slight_smile:

Thanks in advance, if you can take some time to test this!

9 Likes

I’m testing 5.1.1 git efc5b67 (Krita debug) against 5.1.1 from the Playstore on an ONN tablet running Android 11 Go. My tablet has no pressure sensitivity so I don’t know how valuable this info will be… In both versions I turned off HiDPI and turned on touch painting.

I was very interested to try out the gestures.

One finger tap gives me problems in both versions - (actually 1 finger tap is a long 1 finger press on my tablet - I don’t know if that matters). At first it brings up the Popup Widget, but after a few minutes of painting the 1 finger tap gesture does not work at all until I touch another part of Krita that is off the canvas. Then it works again for a few minutes. I was unable to get 1 finger tap to work in previous 5.x versions as well so it was my habit to change the Popup Widget to 3 finger tap (after deleting redo as the default for 3 finger tap).

Playstore version: I changed the Popup Widget to 3 finger tap and it works beautifully. All the other gestures work well. I was unable to get it to break.

Debug version: After about 20-30 minutes the debug version gave up the ghost and wouldn’t let me paint at all with a brush, line or shape (vector pen and vector shapes continued to work). The brush cursor was on the screen but would not paint. The cursor would not follow my finger. I uninstalled the app and all its config files and reinstalled it fresh.

Krita Debug - 2nd install: One finger tap consistently behaved as described - the popup widget would be called up successfully a few times but then would stop working until I tapped some other off-canvas area. I was unable to freak it out this time. It continued to work well even if I changed layers repeatedly and painted really fast and used the gestures and different tools often. I changed the gestures around and still couldn’t get it to break.

Touch Docker
There are 2 icons that don’t work: Open Image and Save Image (these are the icons on either side of the Save icon). Pressing either of these makes the entire screen go white. Using the tablet’s back button restores the screen and there are no problems created.

You’re doing great work with the Android app. Let me know if I can test anything else for you.

1 Like

Hi Sooz!

Thanks a lot for testing!

Ah, yes, the way gestures and longpress work are kind of different and they’re not very related (longpress is detected by the OS, but gestures are detected by us). I’ve noted the bug, thanks!

Just to confirm, the app, menus, dockers etc didn’t lock up? Just that some tools stopped working the first time you tried the debug version?

On my tablet for a couple of milliseconds something is rendered and then it is hidden behind a white background. Could be a problem with QML. Touch docker is a component which is waiting for someone to clean it up (but that’s probably after we port to newer version of Qt) :wink:

1 Like

Did a brief test on Tab S7 android 12.
TL;DR : Did not see regression from I can tell.

  • Tilt, multi-touch works as before, but I only try most-uesd default gesture.
  • Can’t make it lock up on both stable 5.1.1 version and debug version, so can’t tell.
  • No regression to long press to right click from what I see.
  • Never try touch painting before, but I don’t see any dot appear with touch painting when performing multi-touch gesture.
  • Can’t tell defference with strokes, but my panel have some pressure sensitivity issue (hardware fault), maybe take a grain of salt?
2 Likes

Thank you! I spam-clicked the context menus in the Debug version and it looks like it was now fixed for me.

2 Likes

That is correct. Everything but the paint tool continued to function.

1 Like

Samsung Tab S8 Plus
Android 12L

I’m not sure if the bug I’m seeing from master is related to these issues

If I compare Play Store to current Nightly I get the behavior where stylus barely interacts with menu bar.

Using this Debug version, interaction seems perfect.

So Play Store release is fine, Nightly from Jenkins has screwed up menu bar interaction, and Debug seems fine.

Not noticing any other weird behavior so far. Will update if I see anything.

EDIT: Just did a new video with all three to show

1 Like

yes, the nightly has been broken because it had a bad fix in it. But today’s nightly build (which will be built in a few hours from now) should work properly like the playstore/debug build.

3 Likes

Indeed it does! Just updated and menus working great. Thank you.

1 Like

While I’m thinking about it. What controls the naming of the Jenkins artifacts? It’s been stuck on 5.1.0 unsigned for a while. They’ve been signed and are on 5.2.0 prealpha. Actually confused me when it started getting signed as I was still used to signing it myself.

Believe I found a new issue with stylus.

Samsung Tab S8+

Able to reproduce this on Play store stable, debug, and nightly

Trying to select a tool with the stylus has a high chance of just scrolling the list without actually selecting the item. Takes three or four tries for it to actually take effect.

1 Like

I attempted to reproduce on samsung s22 ultra, on nightly version and i do not have this issue. I set up my tool box to be horizontal and near toobar. Works fine

2 Likes

Does this happen with an older version of Krita? Like 5.1.1 or lower?

5.1.1 with the double wide toolbar still exhibits the same behavior.

This was fresh start as I had to uninstall 5.1.2

1 Like

If it happens with 5.1.2, it being a regression is out of the way. Have you tried moving the toolbox to a different location and checking if the same behavior is exhibited? I have seen some Samsung Styluses act weird around the screen edges.

2 Likes

By jove, that seems to be it! Moving to the top or other side seems to be fine (tested with 5.1.3)

Thank you!

3 Likes

Can anyone test this. I use to be able to scroll with toolbox just by swiping it. It no longer works. Did something change recently? Because if so i need to revert back to 924 or earlier, too tedious to tap the scroll buttons on toolbox Because the tool is either far bottom or top.

Okay, so the issue is that, click to scroll messes with the selection of frames in animation docker. If i choose touch scroll the selection of frames is great but then the toolbox cannot scroll unless i use touch. If i choose middle button well thats not optimal either. Why must click to scroll (inverse kinematic) control the animation docker too and toolbox different at the same time!? They must both have their own settings!