aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2020-02-24 21:26:37 +0100
committerNeels Hofmeyr <neels@hofmeyr.de>2020-02-24 21:31:43 +0100
commitba7a6f22a5c4f1a4fa35f3f55cfb272a6c310ee8 (patch)
treefc97f59c4ea91f18dc4a9005fddcbd5fbba5db86
parentc8e96413cba14292b5311ffee121dec9f3653513 (diff)
return result of user interaction prompts
-rwxr-xr-xsim-applet/src/org/osmocom/IMSIPseudo/IMSIPseudo.java24
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) {