From 79b4fa56f6b415952ab784ecc2bf2c0285e632c5 Mon Sep 17 00:00:00 2001 From: rizky_denianto Date: Tue, 14 Apr 2026 19:54:08 +0700 Subject: [PATCH 1/4] Menghapus println dan mengubah bentuk variabel agar sesuai dengan kotlin --- android/src/main/java/BluclasPlugin.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/android/src/main/java/BluclasPlugin.kt b/android/src/main/java/BluclasPlugin.kt index a74b511..49a03c8 100644 --- a/android/src/main/java/BluclasPlugin.kt +++ b/android/src/main/java/BluclasPlugin.kt @@ -45,7 +45,6 @@ class BluclasPlugin(private val activity: Activity) : Plugin(activity) { return } - println("KOTLIN") val daftar_res = adapter.bondedDevices.map { i -> mapOf( "nama" to (i.name ?: "Unknown"), From 25ce630e0d2b1275fbdbfea6d4883da460ba1051 Mon Sep 17 00:00:00 2001 From: rizky_denianto Date: Tue, 14 Apr 2026 20:10:20 +0700 Subject: [PATCH 2/4] Memperbaiki struktur respon daftar perangkat --- android/src/main/java/BluclasPlugin.kt | 8 ++++---- src/commands.rs | 4 ++-- src/desktop.rs | 16 ++++++++-------- src/mobile.rs | 4 +++- src/models.rs | 10 ++++++++-- 5 files changed, 25 insertions(+), 17 deletions(-) diff --git a/android/src/main/java/BluclasPlugin.kt b/android/src/main/java/BluclasPlugin.kt index 49a03c8..3509a88 100644 --- a/android/src/main/java/BluclasPlugin.kt +++ b/android/src/main/java/BluclasPlugin.kt @@ -45,16 +45,16 @@ class BluclasPlugin(private val activity: Activity) : Plugin(activity) { return } - val daftar_res = adapter.bondedDevices.map { i -> + val daftarRes = adapter.bondedDevices.map { i -> mapOf( "nama" to (i.name ?: "Unknown"), "alamat" to i.address ) } - val objek_daftar_res = JSObject() - objek_daftar_res.put("data", daftar_res) - invoke.resolve(objek_daftar_res) + val objekDaftarRes = JSObject() + objekDaftarRes.put("data", daftarRes) + invoke.resolve(objekDaftarRes) } fun menghubungkanKoneksi(invoke: Invoke, alamat: String) { diff --git a/src/commands.rs b/src/commands.rs index 996abcf..e06a01c 100644 --- a/src/commands.rs +++ b/src/commands.rs @@ -7,14 +7,14 @@ use crate::Result; #[command] pub(crate) async fn daftar_perangkat( app: AppHandle, -) -> Result> { +) -> Result { return app.bluclas().daftar_perangkat(); } #[command] pub(crate) async fn kirim( app: AppHandle, - payload: SBluetoothClassicMuatanKirim, + payload: SBlueclasClassicMuatanKirim, ) -> Result<()> { return app.bluclas().kirim(payload); } diff --git a/src/desktop.rs b/src/desktop.rs index a95b344..3598916 100644 --- a/src/desktop.rs +++ b/src/desktop.rs @@ -14,16 +14,16 @@ pub fn init( pub struct Bluclas(AppHandle); impl Bluclas { - pub fn daftar_perangkat(&self) -> crate::Result> { - let daftar_res: Vec = - vec![SBluetoothClassicResponPerangkat { - nama: String::new(), - alamat: String::new(), - }]; - return Ok(daftar_res); + pub fn daftar_perangkat( + &self, + ) -> crate::Result { + return Ok(SDaftarPerangkatBlueclasClassicResponDaftarPerangkat { + nama: String::new(), + alamat: String::new(), + }); } - pub fn kirim(&self, _: SBluetoothClassicMuatanKirim) -> crate::Result<()> { + pub fn kirim(&self, _: SBlueclasClassicMuatanKirim) -> crate::Result<()> { return Ok(()); } } diff --git a/src/mobile.rs b/src/mobile.rs index 311e47e..5f78b74 100644 --- a/src/mobile.rs +++ b/src/mobile.rs @@ -25,7 +25,9 @@ pub fn init( pub struct Bluclas(PluginHandle); impl Bluclas { - pub fn daftar_perangkat(&self) -> crate::Result> { + pub fn daftar_perangkat( + &self, + ) -> crate::Result { return self .0 .run_mobile_plugin("daftarPerangkat", ()) diff --git a/src/models.rs b/src/models.rs index 42c5b61..285d0b2 100644 --- a/src/models.rs +++ b/src/models.rs @@ -2,14 +2,20 @@ use serde::{Deserialize, Serialize}; #[derive(Debug, Clone, Default, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] -pub struct SBluetoothClassicResponPerangkat { +pub struct SDaftarPerangkatBlueclasClassicResponDaftarPerangkat { pub nama: String, pub alamat: String, } +#[derive(Debug, Clone, Default, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] +pub struct SBlueclasClassicResponDaftarPerangkat { + pub data: Vec, +} + #[derive(Debug, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] -pub struct SBluetoothClassicMuatanKirim { +pub struct SBlueclasClassicMuatanKirim { pub alamat: String, pub data: Vec, } From 38c39ab8d755ceb50360c522cb51c2aea067a16c Mon Sep 17 00:00:00 2001 From: rizky_denianto Date: Tue, 14 Apr 2026 20:11:54 +0700 Subject: [PATCH 3/4] Memperbaiki struktur data muatan kirim --- src/mobile.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mobile.rs b/src/mobile.rs index 5f78b74..613aefd 100644 --- a/src/mobile.rs +++ b/src/mobile.rs @@ -34,7 +34,7 @@ impl Bluclas { .map_err(Into::into); } - pub fn kirim(&self, payload: SBluetoothClassicMuatanKirim) -> crate::Result<()> { + pub fn kirim(&self, payload: SBlueclasClassicMuatanKirim) -> crate::Result<()> { return self .0 .run_mobile_plugin("kirim", payload) From 00c3ba9b4cd559e3c0f1df383ea8df7ee7c4506b Mon Sep 17 00:00:00 2001 From: rizky_denianto Date: Tue, 14 Apr 2026 23:23:47 +0700 Subject: [PATCH 4/4] Mengubah daftar respon dari map ke jsarray --- android/src/main/java/BluclasPlugin.kt | 12 +++++++----- src/commands.rs | 2 +- src/desktop.rs | 9 ++------- src/mobile.rs | 4 +--- 4 files changed, 11 insertions(+), 16 deletions(-) diff --git a/android/src/main/java/BluclasPlugin.kt b/android/src/main/java/BluclasPlugin.kt index 3509a88..e36b125 100644 --- a/android/src/main/java/BluclasPlugin.kt +++ b/android/src/main/java/BluclasPlugin.kt @@ -11,6 +11,7 @@ import app.tauri.annotation.InvokeArg import app.tauri.annotation.Permission import app.tauri.annotation.TauriPlugin import app.tauri.plugin.Invoke +import app.tauri.plugin.JSArray import app.tauri.plugin.JSObject import app.tauri.plugin.Plugin import java.io.OutputStream @@ -45,11 +46,12 @@ class BluclasPlugin(private val activity: Activity) : Plugin(activity) { return } - val daftarRes = adapter.bondedDevices.map { i -> - mapOf( - "nama" to (i.name ?: "Unknown"), - "alamat" to i.address - ) + val daftarRes = JSArray() + adapter.bondedDevices.map { i -> + val res = JSObject() + res.put("nama", i.name ?: "Unknown") + res.put("alamat", i.address) + daftarRes.put(res) } val objekDaftarRes = JSObject() diff --git a/src/commands.rs b/src/commands.rs index e06a01c..9900ebd 100644 --- a/src/commands.rs +++ b/src/commands.rs @@ -7,7 +7,7 @@ use crate::Result; #[command] pub(crate) async fn daftar_perangkat( app: AppHandle, -) -> Result { +) -> Result { return app.bluclas().daftar_perangkat(); } diff --git a/src/desktop.rs b/src/desktop.rs index 3598916..14e0453 100644 --- a/src/desktop.rs +++ b/src/desktop.rs @@ -14,13 +14,8 @@ pub fn init( pub struct Bluclas(AppHandle); impl Bluclas { - pub fn daftar_perangkat( - &self, - ) -> crate::Result { - return Ok(SDaftarPerangkatBlueclasClassicResponDaftarPerangkat { - nama: String::new(), - alamat: String::new(), - }); + pub fn daftar_perangkat(&self) -> crate::Result { + return Ok(SBlueclasClassicResponDaftarPerangkat { data: vec![] }); } pub fn kirim(&self, _: SBlueclasClassicMuatanKirim) -> crate::Result<()> { diff --git a/src/mobile.rs b/src/mobile.rs index 613aefd..d9045ad 100644 --- a/src/mobile.rs +++ b/src/mobile.rs @@ -25,9 +25,7 @@ pub fn init( pub struct Bluclas(PluginHandle); impl Bluclas { - pub fn daftar_perangkat( - &self, - ) -> crate::Result { + pub fn daftar_perangkat(&self) -> crate::Result { return self .0 .run_mobile_plugin("daftarPerangkat", ())