diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2020-02-24 21:26:37 +0100 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2020-02-24 21:31:43 +0100 |
commit | ba7a6f22a5c4f1a4fa35f3f55cfb272a6c310ee8 (patch) | |
tree | fc97f59c4ea91f18dc4a9005fddcbd5fbba5db86 | |
parent | c8e96413cba14292b5311ffee121dec9f3653513 (diff) |
return result of user interaction prompts
-rwxr-xr-x | sim-applet/src/org/osmocom/IMSIPseudo/IMSIPseudo.java | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/sim-applet/src/org/osmocom/IMSIPseudo/IMSIPseudo.java b/sim-applet/src/org/osmocom/IMSIPseudo/IMSIPseudo.java index 78820b2..c7ac999 100755 --- a/sim-applet/src/org/osmocom/IMSIPseudo/IMSIPseudo.java +++ b/sim-applet/src/org/osmocom/IMSIPseudo/IMSIPseudo.java @@ -92,10 +92,32 @@ public class IMSIPseudo extends Applet implements ToolkitInterface, ToolkitConst proHdlr.send(); } - private void showMsgAndWaitKey(byte[] msg) { + private byte[] getResponse() + { + ProactiveResponseHandler rspHdlr = ProactiveResponseHandler.getTheHandler(); + byte[] resp = new byte[rspHdlr.getTextStringLength()]; + rspHdlr.copyTextString(resp, (short)0); + return resp; + } + + private byte[] showMsgAndWaitKey(byte[] msg) { ProactiveHandler proHdlr = ProactiveHandler.getTheHandler(); proHdlr.initGetInkey((byte)0, DCS_8_BIT_DATA, msg, (short)0, (short)(msg.length)); proHdlr.send(); + + return getResponse(); + } + + private byte[] prompt(byte[] msg, short minLen, short maxLen) { + /* if maxLen < 1, the applet crashes */ + if (maxLen < 1) + maxLen = 1; + + ProactiveHandler proHdlr = ProactiveHandler.getTheHandler(); + proHdlr.initGetInput((byte)0, DCS_8_BIT_DATA, msg, (short)0, (short)(msg.length), minLen, maxLen); + proHdlr.send(); + + return getResponse(); } private void showError(short code) { |