Commit graph

355 commits

Author SHA1 Message Date
Gaurav Ujjwal
ad6d081a6f Allow client-side cursor movement in view-only mode
With direct-touch off, panning the viewer requires cursor movement.
GitHub Issue: #89
2022-08-16 13:27:26 +05:30
Gaurav Ujjwal
64f06caa09 Improve two-finger-swipe vs scale detection 2022-08-15 23:17:10 +05:30
Gaurav Ujjwal
ead089fd5e Release v1.9.2 2022-08-08 20:41:00 +05:30
Gaurav Ujjwal
548e0241a4 Translations update from Hosted Weblate
* Translated using Weblate (Polish)
* Translated using Weblate (Chinese (Simplified))

Co-authored-by: WaldiS <sto@tutanota.de>
Co-authored-by: Eric <alchemillatruth@purelymail.com>
2022-08-08 20:23:04 +05:30
Gaurav Ujjwal
2ccbd0cbd8 Fix possible crash on opening the toolbar for the first time
AVNC always tried to open the left/start drawer when connecting for the
first time, to highlight it for the new users. But if a user changes the
toolbar alignment to 'End' before ever connecting to a server, AVNC will
crash when connecting for the first time, because there won't be any
'left' drawer.

Fix it by opening the toolbar directly.
2022-08-08 20:23:04 +05:30
Gaurav Ujjwal
bf73d24f9e Constrain aspect ratio of PiP window
Android requires the aspect ratio of PiP window to be within 1:2.39 range
in either orientation. If  aspect ratio of framebuffer was outside this
range, it would crash the app.

Also guarded against unlikely possibility of fbWidth/fbHeight being 0.
2022-08-02 16:50:03 +05:30
Gaurav Ujjwal
ee8ae23d5f Refactor connection initialization
Until now, connection was started at the very end of onCreate(). As a
result components like Dispatcher could not rely on VncViewModel's
profile during their initialization. Now initialization happen at
the beginning.

It also comes with a tiny bit of performance improvement.
Receiver thread can now start the connection early, while main thread
is still creating the UI.
2022-07-31 22:38:04 +05:30
Gaurav Ujjwal
a28149eb99 Fix default value for mouse back button preference 2022-07-31 12:06:20 +05:30
Gaurav Ujjwal
2abfd14d83 Remove temporary message about Hide Cursor option 2022-07-29 13:59:11 +05:30
Gaurav Ujjwal
31c90b4287 Release v1.9.1 2022-07-24 16:05:36 +05:30
Gaurav Ujjwal
4facebf48e Use immersive mode pref for full edge exclusion from System Gestures
Current approach won't work because Android enforces a 200dp vertical
limit, unless app is in sticky immersive mode.
2022-07-24 15:09:35 +05:30
Weblate (bot)
153f69d12c
Translations update from Hosted Weblate (#88)
* Translated using Weblate (German)
* Translated using Weblate (Polish)
* Translated using Weblate (Portuguese (Brazil))
* Translated using Weblate (Ukrainian)
* Translated using Weblate (Russian)

Co-authored-by: Pure Incompetence <inc@mailbox.org>
Co-authored-by: WaldiS <sto@tutanota.de>
Co-authored-by: mezysinc <mezysinc@mailon.site>
Co-authored-by: Andrij Mizyk <andmiz@proton.me>
Co-authored-by: Gaurav Ujjwal <gujjwal00@gmail.com>
2022-07-24 15:01:01 +05:30
Gaurav Ujjwal
9c3a0cc3dd Switch 'Full immersive mode' preference's default value to true
In future versions this will be merged  into 'Fullscreen' pref, so
turning it on by default should give us time to figure out any issues.
2022-07-24 14:01:42 +05:30
Gaurav Ujjwal
08b4c01d99 Exclude connection toolbar area from system gestures on API 29+ 2022-07-24 13:43:35 +05:30
Gaurav Ujjwal
22b071365e Update wolfSSL submodule 2022-07-20 20:28:26 +05:30
Gaurav Ujjwal
c671615025 OpenGL: Set texture wrap mode to GL_CLAMP_TO_EDGE
In OpenGL ES 2, support for sampling non-power-of-two textures in
fragment shaders is only guaranteed when wrap mode is GL_CLAMP_TO_EDGE.
Although most modern GPUs don't enforce this requirement, some devices
(like Tegra from Nvidia) do.

Related Github Issue: #85
2022-07-15 23:22:54 +05:30
Gaurav Ujjwal
1af619551a OpenGL: Use correct type for position attribute in Vertex Shader
For a_Position attribute, Frame.bind() only assign the x,y components,
but a_Position was declared as vec4.

While this generally does not cause any issue, its much better to
use the correct data type to avoid any possible misbehavior.
2022-07-15 23:12:02 +05:30
Gaurav Ujjwal
3d82e80beb OpenGL: Move program valition to onDrawFrame()
Program validation verifies the shaders against current OpenGL state.
So doing it in onSurfaceCreated() is not helpful, because uniforms
& attributes are not set at that stage and texture is not properly
initialized.

Now program is validated just before the draw command is issued.
2022-07-15 22:59:55 +05:30
Gaurav Ujjwal
b3bd9399f0 [Style] Cleanup 2022-06-02 21:28:59 +05:30
Gaurav Ujjwal
c0a56d1270 Release v1.9.0 2022-05-31 22:41:21 +05:30
Weblate (bot)
650668d8fa
Translations update from Hosted Weblate (#83)
Added new language using Weblate (German)

Translated using Weblate (Norwegian Bokmål)
Translated using Weblate (Ukrainian)
Translated using Weblate (Polish)
Translated using Weblate (Chinese (Simplified))
Translated using Weblate (Turkish)
Translated using Weblate (French)

Co-authored-by: Allan Nordhøy <epost@anotheragency.no>
Co-authored-by: Andrij Mizyk <andmizyk@gmail.com>
Co-authored-by: WaldiS <sto@tutanota.de>
Co-authored-by: Pure Incompetence <inc@mailbox.org>
Co-authored-by: GT-610 <myddz1005@163.com>
Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Co-authored-by: J. Lavoie <j.lavoie@net-c.ca>
Co-authored-by: Nathan <bonnemainsnathan@gmail.com>
2022-05-31 22:39:38 +05:30
Gaurav Ujjwal
aa5c3e92a8 Update AndroidX Biometric library
Github Issue: #82
2022-05-26 20:19:50 +05:30
Gaurav Ujjwal
d6bf7c6189 Add preference for Natural Scrolling 2022-05-22 14:11:54 +05:30
Gaurav Ujjwal
c3292a5b90 Keep the pointer centered when Direct Touch is off
After moving the pointer, frame is moved in opposite direction to keep
the pointer centered on screen (as long as possible).
2022-05-22 14:11:31 +05:30
Gaurav Ujjwal
45b5fc4696 Disable APK splitting based on language & density
Resources in density-split APKs are not properly handled by AAB, which
causes a lot of warnings from Android.
2022-05-20 21:23:50 +05:30
Gaurav Ujjwal
e259c931a1 Add preference for screen orientation 2022-05-16 23:25:28 +05:30
Gaurav Ujjwal
890b7750b7 Update submodules 2022-05-16 22:13:35 +05:30
Gaurav Ujjwal
c4d5b7b2f8 Move custom rfbClient extensions to our own ClientEx 2022-05-16 22:08:29 +05:30
Gaurav Ujjwal
0a379a68e7 Add help for Drag gesture
The interaction of Drag gesture & Long press gesture can be confusing at first.
Now a helper message is shown for the Drag gesture.
2022-04-08 15:13:54 +05:30
Gaurav Ujjwal
41fb2e3b5f Wrap Discovery start/stop in exception handlers 2022-04-08 13:46:08 +05:30
Gaurav Ujjwal
f9f3a647de Release v1.8.1 2022-04-07 23:36:56 +05:30
Weblate (bot)
56fc2f8f3c
Translations update from Hosted Weblate (#72)
* Translated using Weblate (Persian)
* Translated using Weblate (Turkish)
* Translated using Weblate (Polish)

Co-authored-by: Eshagh Shahedany <eshagh094@gmail.com>
Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Co-authored-by: WaldiS <sto@tutanota.de>
2022-04-07 23:29:58 +05:30
Gaurav Ujjwal
00bd2da0f6 Formatting + fix lint issues 2022-04-07 21:56:21 +05:30
Gaurav Ujjwal
0cce0c2ef8 Fix click position for mouse back press 2022-04-06 15:05:03 +05:30
Gaurav Ujjwal
999bdb2f72 Release v1.8.0 2022-03-31 10:02:52 +05:30
Weblate (bot)
c66d7e3668
Translations update from Hosted Weblate (#71)
Translated using Weblate (Persian)
Translated using Weblate (Ukrainian)
Translated using Weblate (Turkish)
Translated using Weblate (French)
Translated using Weblate (Polish)

Co-authored-by: Eshagh Shahedany <eshagh094@gmail.com>
Co-authored-by: Andrij Mizyk <andmizyk@gmail.com>
Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Co-authored-by: Nathan <bonnemainsnathan@gmail.com>
Co-authored-by: WaldiS <sto@tutanota.de>
2022-03-30 23:57:53 +05:30
Gaurav Ujjwal
b83747b1d0 Fix tests 2022-03-30 23:34:36 +05:30
Gaurav Ujjwal
ee49c2d1b4 Refactor mouse-triggered Back-key interception 2022-03-30 23:34:36 +05:30
Gaurav Ujjwal
bfd34747e8 Update libjpeg-turbo 2022-03-27 23:34:49 +05:30
Gaurav Ujjwal
ce4e838351 Add workaround for WolSSL CMake requirement 2022-03-27 23:00:02 +05:30
Gaurav Ujjwal
a5f3faedba Misc. translation updates 2022-03-27 22:47:40 +05:30
Gaurav Ujjwal
45929278ee Remove Single-tap gesture preference
Since the implementation of relative mode, only remaining use of this
pref was to disable Single-tap gesture, which I doubt anyone uses.
2022-03-27 22:24:03 +05:30
Gaurav Ujjwal
6526cb86b2 Restore option to hide remote pointer
It is now available as a global preference.
2022-03-27 22:12:51 +05:30
wang
5780d08a9d Translation updates from Weblate
Added new language using Weblate (Polish)
Added new language using Weblate (Chinese (Simplified))

Translated using Weblate (Turkish)
Translated using Weblate (Ukrainian)
Translated using Weblate (French)
Translated using Weblate (Portuguese (Brazil))
Translated using Weblate (Norwegian Bokmål)

Co-authored-by: Andrij Mizyk <andmizyk@gmail.com>
Co-authored-by: Саша Петровић <salepetronije@gmail.com>
Co-authored-by: Allan Nordhøy <epost@anotheragency.no>
Co-authored-by: Nathan <bonnemainsnathan@gmail.com>
Co-authored-by: J. Lavoie <j.lavoie@net-c.ca>
Co-authored-by: Luiz-bro <luiznneto1@gmail.com>
Co-authored-by: wang <wwj402@sina.com>
Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Co-authored-by: WaldiS <sto@tutanota.de>
2022-03-27 10:49:24 +05:30
Gaurav Ujjwal
ee28bf184d Add preference for swipe sensitivity 2022-03-26 23:40:32 +05:30
Gaurav Ujjwal
c6b28ea6f1 Implement 'pan-with-cursor' for relative action mode 2022-03-26 23:19:53 +05:30
Gaurav Ujjwal
ce2736ed20 Fix incorrect cursor rendering at (0,0) position 2022-03-26 17:47:08 +05:30
Gaurav Ujjwal
36d8b66cae Use correct range for pointer position coercion 2022-03-26 17:45:51 +05:30
Gaurav Ujjwal
f0475ccdcf Remove workaround required to sync pointer position in relative mode
As client-side cursor rendering is now supported, most servers will now
send message about the real pointer position.
2022-03-26 13:38:32 +05:30
Gaurav Ujjwal
d04e19be58 Disable Fling gesture in relative action mode.
Because 1-finger swipe is used for moving the mouse, fling gesture can be
confusing/bothering as it moves the frame instead of mouse.
2022-03-26 13:29:42 +05:30