diff --git a/app/src/androidTest/java/com/gaurav/avnc/vnc/VncClientTest.kt b/app/src/androidTest/java/com/gaurav/avnc/vnc/VncClientTest.kt index 7ef915d..9ae9f85 100644 --- a/app/src/androidTest/java/com/gaurav/avnc/vnc/VncClientTest.kt +++ b/app/src/androidTest/java/com/gaurav/avnc/vnc/VncClientTest.kt @@ -29,9 +29,9 @@ class VncClientTest { } - lateinit var server: TestServer - lateinit var client: VncClient - lateinit var observer: TestObserver + private lateinit var server: TestServer + private lateinit var client: VncClient + private lateinit var observer: TestObserver private val sampleText = "Smelly Cat" private val sampleTextWithAccent = "Pokémon Fõbár" diff --git a/app/src/androidTest/java/com/gaurav/avnc/vnc/VncUriTest.kt b/app/src/androidTest/java/com/gaurav/avnc/vnc/VncUriTest.kt index 3999e17..1147722 100644 --- a/app/src/androidTest/java/com/gaurav/avnc/vnc/VncUriTest.kt +++ b/app/src/androidTest/java/com/gaurav/avnc/vnc/VncUriTest.kt @@ -9,6 +9,7 @@ package com.gaurav.avnc.vnc import android.net.Uri +import com.gaurav.avnc.model.ServerProfile import org.junit.Assert.assertEquals import org.junit.Test @@ -44,6 +45,7 @@ class VncUriTest { assertEquals("foo", uri.password) assertEquals(2, uri.securityType) assertEquals(true, uri.viewOnly) + assertEquals(ServerProfile.CHANNEL_TCP, uri.channelType) } @Test @@ -55,6 +57,7 @@ class VncUriTest { assertEquals("foo", uri.password) assertEquals(2, uri.securityType) assertEquals(true, uri.viewOnly) + assertEquals(ServerProfile.CHANNEL_TCP, uri.channelType) } @Test diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a4a4974..8fa3486 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -24,6 +24,7 @@ @@ -33,6 +34,7 @@ diff --git a/app/src/main/cpp/Cursor.h b/app/src/main/cpp/Cursor.h index 12463c7..18d308f 100644 --- a/app/src/main/cpp/Cursor.h +++ b/app/src/main/cpp/Cursor.h @@ -95,7 +95,9 @@ void freeCursor(Cursor *cursor) { free(cursor); } -void updateCursor(Cursor *cursor, uint8_t *buffer, uint8_t *mask, uint16_t width, int height, int xHot, int yHot) { +void updateCursor(Cursor *cursor, uint8_t *buffer, uint8_t *mask, uint16_t width, uint16_t height, + uint16_t xHot, uint16_t yHot) { + freeCursorBuffers(cursor); cursor->buffer = buffer; cursor->mask = mask; diff --git a/app/src/main/cpp/native-vnc.cpp b/app/src/main/cpp/native-vnc.cpp index d9aeb26..133f598 100644 --- a/app/src/main/cpp/native-vnc.cpp +++ b/app/src/main/cpp/native-vnc.cpp @@ -11,7 +11,6 @@ #include #include "ClientEx.h" -#include "Cursor.h" #include "Utility.h" @@ -24,7 +23,7 @@ struct JniContext { jclass managedCls; //Managed `VncClient` class jmethodID cbFramebufferUpdated; //Cached reference to managed callback - JNIEnv *getEnv() { + JNIEnv *getEnv() const { JNIEnv *env = nullptr; if (vm != nullptr && vm->GetEnv((void **) &env, JNI_VERSION_1_6) == JNI_OK) @@ -204,13 +203,14 @@ static rfbBool onMallocFrameBuffer(rfbClient *client) { return TRUE; } -static void onGotCursorShape(rfbClient *client, int xhot, int yhot, int width, int height, int bytesPerPixel) { +static void onGotCursorShape(rfbClient *client, int xHot, int yHot, int width, int height, int bytesPerPixel) { auto ex = getClientExtension(client); LOCK(ex->mutex); //Steel buffers from rfbClient - updateCursor(ex->cursor, client->rcSource, client->rcMask, width, height, xhot, yhot); + updateCursor(ex->cursor, client->rcSource, client->rcMask, (uint16_t) width, (uint16_t) height, + (uint16_t) xHot, (uint16_t) yHot); client->rcSource = NULL; client->rcMask = NULL; @@ -350,7 +350,7 @@ extern "C" JNIEXPORT jboolean JNICALL Java_com_gaurav_avnc_vnc_VncClient_nativeSendKeyEvent(JNIEnv *env, jobject thiz, jlong client_ptr, jlong key, jboolean is_down) { - return (jboolean) SendKeyEvent((rfbClient *) client_ptr, (uint32_t) key, is_down); + return (jboolean) SendKeyEvent((rfbClient *) client_ptr, (uint32_t) key, is_down ? TRUE : FALSE); } extern "C" @@ -460,7 +460,7 @@ Java_com_gaurav_avnc_vnc_VncClient_nativeUploadCursor(JNIEnv *env, jobject thiz, auto fb = (uint32_t *) client->frameBuffer; auto buffer = (uint32_t *) cursor->buffer; auto scratch = (uint32_t *) cursor->scratchBuffer; - auto mask = (uint8_t *) cursor->mask; + auto mask = cursor->mask; //Scratch buffer index int32_t z = 0; diff --git a/app/src/main/java/com/gaurav/avnc/viewmodel/BaseViewModel.kt b/app/src/main/java/com/gaurav/avnc/viewmodel/BaseViewModel.kt index 8e1ad0b..b064710 100644 --- a/app/src/main/java/com/gaurav/avnc/viewmodel/BaseViewModel.kt +++ b/app/src/main/java/com/gaurav/avnc/viewmodel/BaseViewModel.kt @@ -66,7 +66,7 @@ open class BaseViewModel(val app: Application) : AndroidViewModel(app) { /** * Executes given [block] asynchronously on IO thread. */ - protected fun asyncIO(block: () -> Unit) = asyncIO(block, {}) + protected fun asyncIO(block: () -> Unit) = asyncIO(block) {} /** * Executes given [block] asynchronously on IO thread. diff --git a/app/src/main/java/com/gaurav/avnc/vnc/VncClient.kt b/app/src/main/java/com/gaurav/avnc/vnc/VncClient.kt index 7d0bef0..a60576f 100644 --- a/app/src/main/java/com/gaurav/avnc/vnc/VncClient.kt +++ b/app/src/main/java/com/gaurav/avnc/vnc/VncClient.kt @@ -97,7 +97,7 @@ class VncClient(private val observer: Observer) { * This flags works around the issue by temporarily ignoring serer-side updates. */ @Volatile - var ignorePointerMovesByServer = false; + var ignorePointerMovesByServer = false /** * Setup different properties for this client. diff --git a/app/src/main/res/layout/fragment_license.xml b/app/src/main/res/layout/fragment_license.xml index 250fdbb..1031916 100644 --- a/app/src/main/res/layout/fragment_license.xml +++ b/app/src/main/res/layout/fragment_license.xml @@ -7,6 +7,7 @@ --> + android:textAppearance="@style/TextAppearance.MaterialComponents.Body1" + app:drawableEndCompat="@drawable/ic_gpl" /> + app:tint="?colorError" /> diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index a6b3dae..3a09068 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -1,2 +1,2 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/xml/pref_input.xml b/app/src/main/res/xml/pref_input.xml index 4f31684..cd32db4 100644 --- a/app/src/main/res/xml/pref_input.xml +++ b/app/src/main/res/xml/pref_input.xml @@ -6,8 +6,8 @@ ~ See COPYING.txt for more details. --> -