saber icon indicating copy to clipboard operation
saber copied to clipboard

Immediate refresh of drawn strokes on ONYX e-ink displays (RawDrawing)

Open TekkertheChaot opened this issue 10 months ago • 7 comments

Before submitting an issue, please check the following

  • [X] I have searched for similar issues (both open and closed) and cannot find a duplicate
  • [X] I agree to follow the Code of Conduct

Motivation

One thing to make writing on e-ink-tablets like ONYX tablets way more comfortable is to update the pen stroke immediately as it is being drawn. This helps during writing, sketching and feels way more natural to the user. With this I'm not refering to the normal "draw to UI"-call but to update the display directly.

With the proposed solution, ONYX users have the ability to use higher quality display modes, which would increase display latency under normal usage (like its currently the case) except for pen strokes which update directly while being drawn.

Solution

If I understand correctly, the onyx-sdk offers the functionality to directly and immediately refresh the display in the area where the pen-stroke is being drawn in.

I think the way to do this, is by using the "RawDrawing"-Mode and using the RawInputCallback to quickly draw a bitmap to the display itself. This could reflect a rough estimate on the display on how the pen-stroke looks, that can be fully updated once the penis lifted from the display. The official OnyxAndroidDemo project does this somewhat similarly.

Notable is another app that is specifically build for ONYX tablets that also utilizes the RawDrawing-mode. The official OnyxAndroidDemo project may also have a demo on how to refresh it immediately, but unfortunately,

Alternatives

No response

Saber version

0.21.2 GooglePlay (21020)

Device

  • Device: ONYX BOOX Tab Ultra
  • OS: Android 11

Anything else?

No response

TekkertheChaot avatar Mar 28 '24 19:03 TekkertheChaot

This seems the same as what we currently have in OnyxsdkPenArea.kt.

You may be referring to how the screen doesn't fully refresh for 1s after you draw with the pen. This is intentional:

1.0.2 Refresh the screen after 1s (default). This fixes the issue where after writing with the pen, the screen wouldn't respond to your finger.

You're free to submit PRs if you can improve the implementation, but I no longer have an Onyx device to test any further development

adil192 avatar Mar 30 '24 04:03 adil192

This seems the same as what we currently have in OnyxsdkPenArea.kt.

Oh, I have completely missed that, sorry!

You may be referring to how the screen doesn't fully refresh for 1s after you draw with the pen. This is intentional

Ahh, not quite. The intentional fix you've mentioned seems to be referring to the screen refresh after pen inactivity. This would coincide with the refreshing I have observed in the current version of the app (but I may be completely mistaken, it's just my understanding). I've meant the immediate refresh while drawing. Currently, it is completely dependent on the screen refresh mode: pen stroke comparison Noteable, for example, doesn't care for the refresh mode

You're free to submit PRs if you can improve the implementation, but I no longer have an Onyx device to test any further development

Understandable and fair! Maybe this will be THE push for me to get into android app development... 😉

TekkertheChaot avatar Apr 01 '24 16:04 TekkertheChaot

When I had my onyx boox note air2, it worked like the notable app did in your gif (https://github.com/saber-notes/saber/issues/186) @ma-con Is it still working for you?

adil192 avatar Apr 04 '24 11:04 adil192

Can you confirm you downloaded Saber from the Play Store and not somewhere else like F-Droid?

adil192 avatar Apr 04 '24 11:04 adil192

When I had my onyx boox note air2, it worked like the notable app did in your gif (https://github.com/saber-notes/saber/issues/186)

Hmmm, weird. 🤔

Can you confirm you downloaded Saber from the Play Store and not somewhere else like F-Droid?

Yeah, I got it from the play store: IMG_20240404_140748~2.jpg

TekkertheChaot avatar Apr 04 '24 12:04 TekkertheChaot

I really want to rule out user error, before I dive into a self learning course for Android development. Are there any accessible settings that could affect this? Otherwise, Android Studio is downloading in the background... ;)

TekkertheChaot avatar Apr 04 '24 15:04 TekkertheChaot

I have an Onyx Boox Note Air 2 Plus and Saber installed from Google Play. Saber used to have fast pen strokes but that hasn't worked for several months by now. I cannot remember which update broke this, but I can confirm (or at least give one more data point) that the fast pen strokes are not working anymore on Onyx Boox devices.

favba avatar May 07 '24 12:05 favba

I have an Onyx Boox Note X3s and Saber installed from Github. The fast pen strokes are not working anymore on Onyx Boox devices. And when i was writing the whole screen would refresh but not the writing part. Hope we can fix it.

ghost14622 avatar Jun 01 '24 00:06 ghost14622

As I am new to programming in dart (and flutter & kotlin for that matter) I am only slowly starting to understand how things are handled. Unfortunately, I cannot get the required OnyxpenSDK module running in flutter on my end. Something about how no module repo (maven, google, etc. ) is able to serve the referenced libraries. I think I am too inexperienced to get it working myself for now...

TekkertheChaot avatar Jun 01 '24 07:06 TekkertheChaot

As I am new to programming in dart (and flutter & kotlin for that matter) I am only slowly starting to understand how things are handled. Unfortunately, I cannot get the required OnyxpenSDK module running in flutter on my end. Something about how no module repo (maven, google, etc. ) is able to serve the referenced libraries. I think I am too inexperienced to get it working myself for now...

That's all right. We are lucky to have Saber. It's enough for now.

ghost14622 avatar Jun 01 '24 12:06 ghost14622

I have Saber version 0.24.1 installed now and the instant stroke feature on my Onyx Note Air 2 plus is working again!

favba avatar Jul 01 '24 14:07 favba

I have Saber version 0.24.1 installed now and the instant stroke feature on my Onyx Note Air 2 plus is working again!

Glad to hear it!

adil192 avatar Jul 01 '24 18:07 adil192

Just wanted to add: works on Boox Tab Ultra again too! thank you! @adil192 for the patch!

TekkertheChaot avatar Jul 02 '24 10:07 TekkertheChaot

I experience the exact same issue described here with an ONYX BOOX Go 10.3 both with version 0.24.4 (F-Droid) and with version 0.24.5 (Play Store). The OS on this device is Android 12. Please let me know if I can provide any other information.

tverbeke avatar Aug 13 '24 18:08 tverbeke

I am facing this issue as well with the same device, using the current version from github 0.24.7 (the non FOSS that should contain onyx-sdk). Maybe the problem is that the lib is not up-to-date?

Should we open another issue given that the original one was fixed?

gilcu3 avatar Sep 25 '24 15:09 gilcu3