@Override public void onNewShieldFrameReceived(ShieldFrame frame) { if (frame.getShieldId() == UIShield.TERMINAL_SHIELD.getId()) { String outputTxt = null; if (frame.getArguments() != null && frame.getArguments().size() > 0) outputTxt = frame.getArgumentAsString(0); if (outputTxt != null) { String date = terminalPrintedLines.size() == 0 || terminalPrintedLines.get(terminalPrintedLines.size() - 1).isEndedWithNewLine ? TerminalFragment.getTimeAsString() + " [RX] : " : ""; boolean isEndedWithNewLine = outputTxt.length() > 0 && outputTxt.charAt(outputTxt.length() - 1) == '\n'; if (lastItemEndedWithNewLine) { terminalPrintedLines.add( new TerminalPrintedLine( date, outputTxt.substring( 0, isEndedWithNewLine ? outputTxt.length() - 1 : outputTxt.length()), isEndedWithNewLine, true)); tempLines.add( new TerminalPrintedLine( date, getEncodedString( outputTxt.substring( 0, isEndedWithNewLine ? outputTxt.length() - 1 : outputTxt.length())), isEndedWithNewLine, true)); } else if (terminalPrintedLines.size() > 0 && tempLines.size() > 0) { terminalPrintedLines.get(terminalPrintedLines.size() - 1).print = terminalPrintedLines.get(terminalPrintedLines.size() - 1).print + outputTxt.substring( 0, isEndedWithNewLine ? outputTxt.length() - 1 : outputTxt.length()); tempLines.get(tempLines.size() - 1).print = getEncodedString(terminalPrintedLines.get(terminalPrintedLines.size() - 1).print); if (isEndedWithNewLine) terminalPrintedLines.get(terminalPrintedLines.size() - 1).isEndedWithNewLine = true; } lastItemEndedWithNewLine = isEndedWithNewLine; greaterThanThousand = terminalPrintedLines.size() > 1000; if (greaterThanThousand) { // for (int i = 0; i < 1; i++) { terminalPrintedLines.remove(0); tempLines.remove(0); // } } switch (frame.getFunctionId()) { case WRITE: if (eventHandler != null) { eventHandler.onPrint(outputTxt, greaterThanThousand); } break; case PRINT: if (eventHandler != null) { eventHandler.onPrint(outputTxt, greaterThanThousand); } break; default: break; } } // Log.d("internetLog", "Terminal " + outputTxt); } }
public void input(String input) { sf = new ShieldFrame(UIShield.TERMINAL_SHIELD.getId(), DATA_IN); sf.addStringArgument(input); sendShieldFrame(sf, true); }