diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2020-02-24 21:30:42 +0100 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2020-02-24 21:31:43 +0100 |
commit | 0866f3a036997eb5e0d69d0881008d473dfdba9d (patch) | |
tree | 0055e7a8a7f5280652ac321def26618a1e4102c1 | |
parent | c0c95621ea52f69bdcfbb88963dc732260512a4c (diff) |
add Enter IMSI dialog
-rwxr-xr-x | sim-applet/src/org/osmocom/IMSIPseudo/IMSIPseudo.java | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/sim-applet/src/org/osmocom/IMSIPseudo/IMSIPseudo.java b/sim-applet/src/org/osmocom/IMSIPseudo/IMSIPseudo.java index ac298a5..05a64a7 100755 --- a/sim-applet/src/org/osmocom/IMSIPseudo/IMSIPseudo.java +++ b/sim-applet/src/org/osmocom/IMSIPseudo/IMSIPseudo.java @@ -23,11 +23,12 @@ public class IMSIPseudo extends Applet implements ToolkitInterface, ToolkitConst private final Object[] itemListMain = {title, showLU, showIMSI, changeIMSI}; /* Change IMSI menu */ + private static final byte[] enterIMSI = new byte[] {'E', 'n', 't', 'e', 'r', ' ', 'I', 'M', 'S', 'I' }; private static final byte[] setDigit1 = new byte[] {'S', 'e', 't', ' ', '1', ' ', 'a', 's', ' ', 'l', 'a', 's', 't', ' ', 'd', 'i', 'g', 'i', 't'}; private static final byte[] setDigit2 = new byte[] {'S', 'e', 't', ' ', '2', ' ', 'a', 's', ' ', 'l', 'a', 's', 't', ' ', 'd', 'i', 'g', 'i', 't'}; - private final Object[] itemListChangeIMSI = {changeIMSI, setDigit1, setDigit2}; + private final Object[] itemListChangeIMSI = {changeIMSI, enterIMSI, setDigit1, setDigit2}; private static final byte MI_IMSI = 1; @@ -314,13 +315,32 @@ public class IMSIPseudo extends Applet implements ToolkitInterface, ToolkitConst showIMSI(); break; case 3: /* Change IMSI */ - showMenu(itemListChangeIMSI, (byte)3); + showMenu(itemListChangeIMSI, (byte)4); handleMenuResponseChangeIMSI(); break; } } private void handleMenuResponseChangeIMSI() { - /* TODO */ + ProactiveResponseHandler rspHdlr = ProactiveResponseHandler.getTheHandler(); + switch (rspHdlr.getItemIdentifier()) { + case 1: /* enter IMSI */ + promptIMSI(); + break; + case 2: /* set last digit to 1 */ + promptIMSI(); + break; + case 3: /* set last digit to 2 */ + promptIMSI(); + break; + } + } + + private void promptIMSI() + { + byte[] msg = {'N', 'e', 'w', ' ', 'I', 'M', 'S', 'I', '?'}; + byte imsi[] = prompt(msg, (short)0, (short)15); + byte mi[] = str2mi(imsi, MI_IMSI); + showMsgAndWaitKey(hexdump(mi)); } } |