From 25ba390076260c14132fad1ef00e23dc500e3c94 Mon Sep 17 00:00:00 2001 From: "phuoctv.tgg" Date: Thu, 13 Jul 2023 14:15:51 +0700 Subject: [PATCH 1/2] Fix couldn't send data to the other device --- .../printooth/utilities/Bluetooth.java | 3 +- .../printooth/utilities/Printing.kt | 32 ++++++++++++------- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/printooth/src/main/java/com/mazenrashed/printooth/utilities/Bluetooth.java b/printooth/src/main/java/com/mazenrashed/printooth/utilities/Bluetooth.java index 0cee7a7..93a2417 100644 --- a/printooth/src/main/java/com/mazenrashed/printooth/utilities/Bluetooth.java +++ b/printooth/src/main/java/com/mazenrashed/printooth/utilities/Bluetooth.java @@ -228,13 +228,14 @@ public void disconnect() { } } - public void sendMessage(byte[] msg) { + public void sendMessage(byte[] msg) throws IOException { try { out.write(msg); } catch (final IOException e) { connected = false; if (deviceCallback != null) deviceCallback.onDeviceDisconnected(device, e.getMessage()); + throw e; } } diff --git a/printooth/src/main/java/com/mazenrashed/printooth/utilities/Printing.kt b/printooth/src/main/java/com/mazenrashed/printooth/utilities/Printing.kt index 4e2e399..8acdaf6 100644 --- a/printooth/src/main/java/com/mazenrashed/printooth/utilities/Printing.kt +++ b/printooth/src/main/java/com/mazenrashed/printooth/utilities/Printing.kt @@ -9,6 +9,7 @@ import com.mazenrashed.printooth.data.DeviceCallback import com.mazenrashed.printooth.data.PairedPrinter import com.mazenrashed.printooth.data.printable.Printable import com.mazenrashed.printooth.data.printer.Printer +import java.io.IOException class Printing(private var printer: Printer, private var pairedPrinter: PairedPrinter, val context: Context) { private lateinit var printables: List @@ -41,7 +42,6 @@ class Printing(private var printer: Printer, private var pairedPrinter: PairedPr bluetooth.setDeviceCallback(object : DeviceCallback { override fun onDeviceConnected(device: BluetoothDevice) { printPrintables() - printingCallback?.printingOrderSentSuccessfully() } override fun onDeviceDisconnected(device: BluetoothDevice, message: String) { @@ -63,21 +63,29 @@ class Printing(private var printer: Printer, private var pairedPrinter: PairedPr } private fun printPrintables() { - bluetooth.send(printer.initPrinterCommand) // init printer - this.printables.forEach { - it.getPrintableByteArray(printer).forEach { ops -> - bluetooth.send(ops) + try { + bluetooth.send(printer.initPrinterCommand) // init printer + this.printables.forEach { + it.getPrintableByteArray(printer).forEach { ops -> + bluetooth.send(ops) + } + } + + //Feed 2 lines to cut the paper + if (extraLinesAtEnd > 0) { + bluetooth.send(printer.feedLineCommand.plus(extraLinesAtEnd)) } - } - //Feed 2 lines to cut the paper - if (extraLinesAtEnd > 0) { - bluetooth.send(printer.feedLineCommand.plus(extraLinesAtEnd)) + Handler(Looper.getMainLooper()).postDelayed({ + bluetooth.disconnect() + }, 2000) + + printingCallback?.printingOrderSentSuccessfully() + } catch (e: IOException) { + printingCallback?.onError("Couldn't send data to the other device. Error: " + e.message) } - Handler(Looper.getMainLooper()).postDelayed({ - bluetooth.disconnect() - }, 2000) + } fun print(printables: ArrayList) { From d9f9161e8295af8ec42d404926d19ddb90e57032 Mon Sep 17 00:00:00 2001 From: "phuoctv.tgg" Date: Thu, 13 Jul 2023 14:26:27 +0700 Subject: [PATCH 2/2] add IOException --- .../java/com/mazenrashed/printooth/utilities/Bluetooth.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/printooth/src/main/java/com/mazenrashed/printooth/utilities/Bluetooth.java b/printooth/src/main/java/com/mazenrashed/printooth/utilities/Bluetooth.java index 93a2417..bcc3bac 100644 --- a/printooth/src/main/java/com/mazenrashed/printooth/utilities/Bluetooth.java +++ b/printooth/src/main/java/com/mazenrashed/printooth/utilities/Bluetooth.java @@ -171,7 +171,7 @@ public void onReceive(Context context, Intent intent) { } }; - public void send(byte[] msg) { + public void send(byte[] msg) throws IOException { sendMessage(msg); }