From e89ae475f6a4d03ca79d0382e71d1fb9ea816b40 Mon Sep 17 00:00:00 2001
From: dignow <linlong1265@gmail.com>
Date: Thu, 10 Aug 2023 03:01:46 +0800
Subject: [PATCH] fix build

Signed-off-by: dignow <linlong1265@gmail.com>
---
 .../main/kotlin/com/carriez/flutter_hbb/MainService.kt |  2 +-
 libs/scrap/src/android/ffi.rs                          |  5 +++--
 src/server/connection.rs                               | 10 +++++-----
 3 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/flutter/android/app/src/main/kotlin/com/carriez/flutter_hbb/MainService.kt b/flutter/android/app/src/main/kotlin/com/carriez/flutter_hbb/MainService.kt
index f32203703..535a3f8c3 100644
--- a/flutter/android/app/src/main/kotlin/com/carriez/flutter_hbb/MainService.kt
+++ b/flutter/android/app/src/main/kotlin/com/carriez/flutter_hbb/MainService.kt
@@ -81,7 +81,7 @@ class MainService : Service() {
             Log.d(logTag,"Turn on Screen")
             wakeLock.acquire(5000)
         } else {
-            when (name) {
+            when (kind) {
                 "touch" -> {
                     InputService.ctx?.onTouchInput(mask, x, y)
                 }
diff --git a/libs/scrap/src/android/ffi.rs b/libs/scrap/src/android/ffi.rs
index ba775dfd3..e9c60ef93 100644
--- a/libs/scrap/src/android/ffi.rs
+++ b/libs/scrap/src/android/ffi.rs
@@ -154,17 +154,18 @@ pub extern "system" fn Java_com_carriez_flutter_1hbb_MainService_init(
     }
 }
 
-pub fn call_main_service_pointer_input(kind: String, mask: i32, x: i32, y: i32) -> JniResult<()> {
+pub fn call_main_service_pointer_input(kind: &str, mask: i32, x: i32, y: i32) -> JniResult<()> {
     if let (Some(jvm), Some(ctx)) = (
         JVM.read().unwrap().as_ref(),
         MAIN_SERVICE_CTX.read().unwrap().as_ref(),
     ) {
         let mut env = jvm.attach_current_thread_as_daemon()?;
+        let kind = env.new_string(kind)?;
         env.call_method(
             ctx,
             "rustPointerInput",
             "(Ljava/lang/String;III)V",
-            &[JValue::Object(&JObject::from(name)), JValue::Int(mask), JValue::Int(x), JValue::Int(y)],
+            &[JValue::Object(&JObject::from(kind)), JValue::Int(mask), JValue::Int(x), JValue::Int(y)],
         )?;
         return Ok(());
     } else {
diff --git a/src/server/connection.rs b/src/server/connection.rs
index 972750fc2..f107d15a6 100644
--- a/src/server/connection.rs
+++ b/src/server/connection.rs
@@ -39,7 +39,7 @@ use hbb_common::{
     tokio_util::codec::{BytesCodec, Framed},
 };
 #[cfg(any(target_os = "android", target_os = "ios"))]
-use scrap::android::call_main_service_mouse_input;
+use scrap::android::call_main_service_pointer_input;
 use serde_json::{json, value::Value};
 use sha2::{Digest, Sha256};
 #[cfg(not(any(target_os = "android", target_os = "ios")))]
@@ -1547,7 +1547,7 @@ impl Connection {
                 Some(message::Union::MouseEvent(me)) => {
                     #[cfg(any(target_os = "android", target_os = "ios"))]
                     if let Err(e) =
-                        call_main_service_pointer_input("mouse".to_string(), me.mask, me.x, me.y)
+                        call_main_service_pointer_input("mouse", me.mask, me.x, me.y)
                     {
                         log::debug!("call_main_service_pointer_input fail:{}", e);
                     }
@@ -1567,7 +1567,7 @@ impl Connection {
                         Some(pointer_device_event::Union::TouchEvent(touch)) => match touch.union {
                             Some(touch_event::Union::PanStart(pan_start)) => {
                                 call_main_service_pointer_input(
-                                    "touch".to_string(),
+                                    "touch",
                                     4,
                                     pan_start.x,
                                     pan_start.y,
@@ -1575,7 +1575,7 @@ impl Connection {
                             }
                             Some(touch_event::Union::PanUpdate(pan_update)) => {
                                 call_main_service_pointer_input(
-                                    "touch".to_string(),
+                                    "touch",
                                     5,
                                     pan_update.x,
                                     pan_update.y,
@@ -1583,7 +1583,7 @@ impl Connection {
                             }
                             Some(touch_event::Union::PanEnd(pan_end)) => {
                                 call_main_service_pointer_input(
-                                    "touch".to_string(),
+                                    "touch",
                                     6,
                                     pan_end.x,
                                     pan_end.y,