From eb63c9bdfef1194d35856859f5fb4d281345b9c0 Mon Sep 17 00:00:00 2001 From: Willy Martin Date: Mon, 8 Jul 2019 16:57:53 +0700 Subject: [PATCH] add text aligning and constant value --- .../java/com/nowarzz/rrnepson/EpsonTM82.java | 39 +++++++++++++++++++ .../java/com/nowarzz/rrnepson/MyPrinter.java | 1 + .../RNReactNativeEpsonTm82Module.java | 24 ++++++++++++ index.js | 5 +++ package.json | 2 +- 5 files changed, 70 insertions(+), 1 deletion(-) diff --git a/android/src/main/java/com/nowarzz/rrnepson/EpsonTM82.java b/android/src/main/java/com/nowarzz/rrnepson/EpsonTM82.java index f41c802..7f62fd4 100644 --- a/android/src/main/java/com/nowarzz/rrnepson/EpsonTM82.java +++ b/android/src/main/java/com/nowarzz/rrnepson/EpsonTM82.java @@ -14,6 +14,7 @@ import com.epson.epos2.printer.ReceiveListener; import java.util.Map; +import java.util.HashMap; public class EpsonTM82 implements MyPrinter, ReceiveListener { @@ -49,6 +50,7 @@ public EpsonTM82(final Context context, final PrinterEventListener eventListener this.listener.onInitializeSuccess("Success Connected"); } + @Override public MyReturnValue writeText(String text, ReadableMap property) { MyReturnValue res = new MyReturnValue(); @@ -85,6 +87,43 @@ public MyReturnValue writeText(String text, ReadableMap property) { return res; } + + @Override + public MyReturnValue addTextAlign(int align){ + MyReturnValue res = new MyReturnValue(); + if (this.mPrinter == null) { + res.success = false; + res.message = "Printer belum di inisiasi"; + return res; + } + try{ + this.mPrinter.addTextAlign(align); + }catch(Epos2Exception e){ + String message; + int errorStatus = e.getErrorStatus(); + switch (errorStatus) { + case Epos2Exception.ERR_PARAM: + message = "Parameter Invalid"; + break; + case Epos2Exception.ERR_MEMORY: + message = "Out of memory"; + break; + case Epos2Exception.ERR_FAILURE: + message = "Unknown Error"; + break; + default: + message = Integer.toString(errorStatus); + } + Toast.makeText(this.reactContext, message, 1).show(); + res.success = false; + res.message = message; + return res; + } + res.success = true; + res.message="Sukses"; + return res; + } + @Override public void writeQRCode(String content, ReadableMap property) { Toast.makeText(this.reactContext, "Currently Not Supported", 1).show(); diff --git a/android/src/main/java/com/nowarzz/rrnepson/MyPrinter.java b/android/src/main/java/com/nowarzz/rrnepson/MyPrinter.java index 187a0fa..6871a51 100644 --- a/android/src/main/java/com/nowarzz/rrnepson/MyPrinter.java +++ b/android/src/main/java/com/nowarzz/rrnepson/MyPrinter.java @@ -5,6 +5,7 @@ public interface MyPrinter { MyReturnValue writeText(String text, ReadableMap property); void writeQRCode(String content, ReadableMap property); + MyReturnValue addTextAlign(int align); MyReturnValue writeImage(Bitmap data, int x, int y, int width, int height); MyReturnValue writeFeed(int length); MyReturnValue writeCut(ReadableMap property); diff --git a/android/src/main/java/com/nowarzz/rrnepson/RNReactNativeEpsonTm82Module.java b/android/src/main/java/com/nowarzz/rrnepson/RNReactNativeEpsonTm82Module.java index 2108816..fcd6441 100644 --- a/android/src/main/java/com/nowarzz/rrnepson/RNReactNativeEpsonTm82Module.java +++ b/android/src/main/java/com/nowarzz/rrnepson/RNReactNativeEpsonTm82Module.java @@ -19,6 +19,10 @@ import java.util.ArrayList; import javax.annotation.Nullable; +import java.util.Map; +import java.util.HashMap; + +import com.epson.epos2.printer.Printer; public class RNReactNativeEpsonTm82Module extends ReactContextBaseJavaModule implements PrinterEventListener { @@ -85,6 +89,16 @@ public void initializeDiscovery(Promise promise){ promise.resolve(null); } + @Override + public Map getConstants(){ + final Map constants = new HashMap<>(); + constants.put("ALIGN_LEFT", Printer.ALIGN_LEFT); + constants.put("ALIGN_CENTER", Printer.ALIGN_CENTER); + constants.put("ALIGN_RIGHT", Printer.ALIGN_RIGHT); + constants.put("PARAM_DEFAULT", Printer.PARAM_DEFAULT); + return constants; + } + @ReactMethod @@ -123,6 +137,16 @@ public void writeText(String text, ReadableMap property,Promise promise) { } } + @ReactMethod + public void addTextAlign(int align, Promise promise){ + MyReturnValue res = printer.addTextAlign(align); + if(res.success){ + promise.resolve(null); + }else{ + promise.reject(res.message); + } + } + @ReactMethod public void printColumn(ReadableArray columnWidths, ReadableArray columnAligns, ReadableArray columnTexts, @Nullable ReadableMap options, final Promise promise){ if(columnWidths.size() != columnTexts.size() || columnWidths.size() != columnAligns.size()){ diff --git a/index.js b/index.js index 0813512..be7a8e8 100644 --- a/index.js +++ b/index.js @@ -12,10 +12,15 @@ function CheckPlatformSupport() { return true; } + export default { + RNThermalPrinter, initialize : ()=> { RNThermalPrinter.initilize(); }, + addTextAlign: (align)=>{ + RNThermalPrinter.addTextAlign(align); + }, writeText :(text, property) => { RNThermalPrinter.writeText(text, property); }, diff --git a/package.json b/package.json index ddee284..dd1c8a2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rn-epson-tm82", - "version": "1.0.0", + "version": "1.1.0", "description": "Project Under Development! Do Not Use Until It Launch.", "main": "index.js", "scripts": {