Comment 0 for bug 1662784

Revision history for this message
RaiMan (raimund-hocke) wrote : [1.1.1] Android - ADB: input not working correctly

reported by https://github.com/kainecy
at https://github.com/RaiMan/SikuliX-2014/issues/210#issuecomment-278236117
--------------------------

There is no space between input text and the actual text to be typed.

public void input(String text) {
    try {
        text = text.replaceAll("\\s+", "%s");
      device.executeShell("input text ", text);
      RunTime.pause(text.length() * inputDelay);
    } catch (Exception e) {
      log(-1, "input: %s", e);
    }
  }
Also I'm replacing all the spaces with %s, otherwise adb server will raise an error.

To test them I changed org.sikuli.android.ADBTest.basicTest to the following:

private static void basicTest(ADBScreen adbs) throws FindFailed {
    log(lvl, "**************** running basic test");
    adbs.aSwipeLeft();
    adbs.aSwipeRight();
    adbs.wait(1f);
    ScreenImage sIMg = adbs.userCapture("Android");
    sIMg.save(RunTime.get().fSikulixStore.getAbsolutePath(), "android");
    Image img = new Image(sIMg);
    adbs.aTap(img);
    adbs.wait(1f);
    sIMg = adbs.userCapture("Android");
    sIMg.save(RunTime.get().fSikulixStore.getAbsolutePath(), "android");
    img = new Image(sIMg);
    adbs.aTap(img);
    adbs.wait(1f);
    adbs.aInput("Hello world");
  }