Commit graph

287 commits

Author SHA1 Message Date
Gaurav Ujjwal
26d303ebbd Refactor connection state
Until now, connection state was managed in VncClient. This was fine before
introduction of SSH Tunnel, but now, state in VncClient may not fully reflect
the state transitions. Moreover, most of the time we simply check whether
we are connected or not.

Now, simple boolean state is managed by VncClient, and more granular state
is managed by VncViewModel.
2022-01-28 21:38:01 +05:30
Gaurav Ujjwal
781263fc5f Stabilize rediscovery indicator
- Reimplemented from scratch, less hacky
- Preference change no longer requires app restart to take effect
- Moved the preference to Discovery section to provide more context
2022-01-25 12:56:16 +05:30
Gaurav Ujjwal
2b64933fcb Refactor Discovery
Instead of having different (and confusing) timeouts/restart settings, we now have
a single 'Autorun' mode. When enabled, we keep discovering servers as long as
HomeActivity is in foreground, and automatically stop in background.
So discovered servers won't become stale after timeout.
2022-01-25 12:56:16 +05:30
Gaurav Ujjwal
2b6441080f Remove obsolete comment
Fixes #46
[skip ci]
2022-01-16 21:29:18 +05:30
Gaurav Ujjwal
db275ce209 Re-implement Login auto-completion 2022-01-14 16:08:36 +05:30
Weblate (bot)
8bcae288e0
Translations update from Hosted Weblate (#47)
Translated using Weblate (Persian)
Translated using Weblate (French)
Translated using Weblate (Norwegian Bokmål)

Co-authored-by: Eshagh Shahedany <eshagh094@gmail.com>
Co-authored-by: Nathan <bonnemainsnathan@gmail.com>
Co-authored-by: J. Lavoie <j.lavoie@net-c.ca>
Co-authored-by: Allan Nordhøy <epost@anotheragency.no>
2022-01-14 14:11:21 +05:30
Gaurav Ujjwal
ef107b1fd3 Release v1.6.0 2022-01-10 21:26:12 +05:30
Gaurav Ujjwal
c29b8431f3 Implement trackpad/touchpad mode
To activate it, disable "Settings => Input => Gestures => Direct touch".
When active, swipe gesture moves the pointer,
and all actions happen at pointer position.

Mouse and stylus devices are NOT affected.
2022-01-10 18:30:42 +05:30
Gaurav Ujjwal
8b85396e5d Add ListPreferenceEx 2022-01-10 16:16:07 +05:30
Weblate (bot)
6c0299446c
Translations update from Hosted Weblate (#45)
Translated using Weblate (Portuguese (Brazil))
Translated using Weblate (French)
Translated using Weblate (Norwegian Bokmål)
Translated using Weblate (Persian)

 Added new language using Weblate (Russian)
 Added new language using Weblate (Serbian)


Co-authored-by: J. Lavoie <j.lavoie@net-c.ca>
Co-authored-by: Gaurav Ujjwal <gujjwal00@gmail.com>
Co-authored-by: Allan Nordhøy <epost@anotheragency.no>
Co-authored-by: Eshagh Shahedany <eshagh094@gmail.com>
Co-authored-by: Artem <Localizer_in_Russian@protonmail.com>
Co-authored-by: Саша Петровић <salepetronije@gmail.com>
2022-01-10 13:32:37 +05:30
Gaurav Ujjwal
f60f4f9772 Update pref string 2022-01-10 09:40:11 +05:30
Gaurav Ujjwal
823a633edc TouchHandler: Use GestureDetector for scroll events of Drag gesture 2022-01-09 22:16:55 +05:30
Gaurav Ujjwal
049714f9ea Move 'Two-finger tap' preference
Now, all point preferences are together, followed by swipe preferences.
2022-01-09 15:56:41 +05:30
Gaurav Ujjwal
08117b45f9 Simplify 'Mouse passthrough' summary 2022-01-09 15:48:51 +05:30
Gaurav Ujjwal
7fd428b6d5 Update app description 2022-01-09 12:43:08 +05:30
Gaurav Ujjwal
1d11afb829 FrameState: Optimize base scale for portrait-mode framebuffers
Until now, base scale was optimized only for landscape-mode framebuffers.
2022-01-08 23:41:14 +05:30
Gaurav Ujjwal
9af1e88969
Improve English strings (#44)
- Consistently use 'Sentence case' for strings
- Remove unnecessary punctuation
- Simplify phrases
2022-01-08 12:15:13 +05:30
Gaurav Ujjwal
fd2314f004 Update Portuguese translations
Suggested by: João Paulo
2022-01-03 08:10:08 +05:30
Gaurav Ujjwal
4382b6b46d Extract hard-coded string to resources 2022-01-03 07:52:40 +05:30
Gaurav Ujjwal
c94559f620 Drop experimental status from 2 finger tap gesture 2022-01-02 22:00:48 +05:30
Eshagh Shahedany
9b8d41fc9d Translated using Weblate (Persian) 2022-01-01 18:29:01 +05:30
J. Lavoie
cd285ca597 Translated using Weblate (French)
Added new language using Weblate (French)

Translate-URL: https://hosted.weblate.org/projects/avnc/app/fr/
2022-01-01 18:29:01 +05:30
Gaurav Ujjwal
1976d4d89a Don't consume key events if VncClient is not connected 2021-12-31 15:40:03 +05:30
Gaurav Ujjwal
8bca42afcf Lint: Remove unused parameter 2021-12-31 15:35:13 +05:30
Gaurav Ujjwal
c5b4b2b720 Capture meta key events on Samsung DeX
We can now receive Meta key events, and other shortcuts like Alt+Tab.
Standard AOSP has no way to capture these, but it seems Samsung DeX
has a (secret?) method, which allows apps to request these events.

Fixes #37
2021-12-30 16:31:06 +05:30
Gaurav Ujjwal
c1879004ff
Add Weblate link in Readme 2021-12-29 23:02:58 +05:30
Eshagh
8915809875
Add persian language (#34)
Co-authored-by: eshagh79 <eshagh094@gmail.com>
2021-12-29 20:50:24 +05:30
Gaurav Ujjwal
bbd1c294d9
Cleanup redundant space in string resource
[skip ci]
2021-12-29 20:42:16 +05:30
Gaurav Ujjwal
7b0ecb269b Dispatcher Refactoring: Simplify action selection 2021-12-29 13:02:07 +05:30
Gaurav Ujjwal
91a3fab1bd Dispatcher Refactoring: Use functional interface for swipe actions
During a recent profiling session, I noticed that we were generating a lot of
`Float` objects during event processing. This was due the way Kotlin implements
lambda return type, as implementation of generic `Function` interface. This
causes auto-boxing of dx & dy parameters for swipe actions.

Now we use an explicit functional interface for efficient code generation.
2021-12-29 13:02:07 +05:30
Gaurav Ujjwal
a403fe9ec7 Dispatcher Refactoring: De-lazify action config
Delegating to lazy properties has no benefit here. It was originally intended to
speedup Dispatcher construction, by reducing allocation & avoiding prefs lookup.
But Lazy objects themselves have to be allocated, and we have to do an extra
indirection to retrieve actual values later. So, it was a pre-mature optimization,
entirely unnecessary here.
2021-12-29 13:02:07 +05:30
Rajasekaran Karunanithi
f855fce915
Translated using Weblate (Tamil)
Currently translated at 3.8% (6 of 154 strings)

Added translation using Weblate (Tamil)

Co-authored-by: Rajasekaran Karunanithi <rajasekaran86@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/avnc/app/ta/
Translation: AVNC/App
2021-12-29 04:53:03 +01:00
Allan Nordhøy
841c0f40e4
Translated using Weblate (Norwegian Bokmål)
Currently translated at 65.5% (101 of 154 strings)

Added translation using Weblate (Norwegian Bokmål)

Co-authored-by: Allan Nordhøy <epost@anotheragency.no>
Translate-URL: https://hosted.weblate.org/projects/avnc/app/nb_NO/
Translation: AVNC/App
2021-12-29 04:53:02 +01:00
Gaurav Ujjwal
eec02d5b22 Release v1.5.0 2021-12-27 12:05:24 +05:30
Gaurav Ujjwal
7000f2756f Mark app name to be non-translatable 2021-12-27 11:48:28 +05:30
inkhorn
e289842903 Add Portuguese (BR) translation (#24) 2021-12-27 11:39:19 +05:30
Gaurav Ujjwal
8da0d5719c Refactor TouchHandler
- Re-organized code fragments for better readability & locality.
- Instead of having multiple gesture *End() functions, we now have a general
  solution to end gestures, by automatically releasing mouse buttons.
- Simplify 'Hover' event handling.
- Move FrameScroller to VncViewModel
2021-12-26 20:46:31 +05:30
Gaurav Ujjwal
46caf35a38 Add tests for TouchHandler 2021-12-24 15:38:34 +05:30
Henry H
5282ce6366 Add preference to hide Android system cursor
On some devices, the local and remote cursors are both visible,
resulting in a double cursor.
2021-12-18 08:33:10 +05:30
Henry H
0188996bc0 TouchHandler: Make onGenericMotionEvent handle stylus and mouse events
Previously, onGenericMotionEvent only passed events to handleMouseEvent.
Stylus hover events, however, also trigger onGenericMotionEvent, so it
needs to handle stylus events, too.
2021-12-17 06:34:28 +05:30
Gaurav Ujjwal
191d394304 Handle hover events generated by a Stylus 2021-12-16 21:45:10 +05:30
Gaurav Ujjwal
4e9a7b49c4 Release v1.4.0 2021-12-12 21:41:33 +05:30
Gaurav Ujjwal
9411ece2d3 Fix miscellaneous lint+grammar issues 2021-12-12 21:32:48 +05:30
Gaurav Ujjwal
892d01d658 Re-implement diacritic (accent) composition
New implementation has couple of benefits:
- Handles character key press while accent key is still down
- Better handling of intermixed character/accent key events
2021-12-11 20:26:53 +05:30
Gaurav Ujjwal
e8a54ca3fc Assert that matching key ups/downs are generated during KeyHandlerTest 2021-12-11 20:24:55 +05:30
Gaurav Ujjwal
772f32c3d7 Use ISO 8859-1 encoding for clipboard text exchange with server
Added some tests to make sure we handle text-encoding correctly.
2021-12-11 20:24:21 +05:30
Gaurav Ujjwal
9c6856de16 Implement experimental support for full immersive mode 2021-12-07 18:50:53 +05:30
Gaurav Ujjwal
af6313cb59 Update submodules
wolfSSL: 5.0.0
libjpeg-turbo: 2.1.2
2021-12-01 20:35:29 +05:30
Gaurav Ujjwal
f3b95a6f0d Improve numpad support
Now numpad keys are properly handled when NumLock is off.
2021-11-28 21:41:38 +05:30
Gaurav Ujjwal
0a2f5dae42 Add more KeyHandler tests 2021-11-28 20:54:33 +05:30