@Telmo_Cardoso for me it is working as action itself BUT it gives error. In Appium logs i see next tap goes to double coordinates = outside mine screen
Thus for me it is working old way as:
new TouchAction((MobileDriver) driver).press(x,y).waitAction(Duration.ofMillis(50)).release().perform();
new TouchAction((MobileDriver) driver).press(x,y).waitAction(Duration.ofMillis(50)).release().perform();
doubleTapElement(): x - 314, y - 1875
2017-05-18 09:21:34:971 - [HTTP] --> POST /wd/hub/session/d1bba020-175d-473f-a6f4-ee5ece6f1371/touch/perform {"actions":[{"action":"press","options":{"x":314,"y":1875}},{"action":"wait","options":{"ms":50}},{"action":"release","options":{}}]}
2017-05-18 09:21:34:971 - [debug] [MJSONWP] Calling AppiumDriver.performTouch() with args: [[{"action":"press","options":{"x":314,"y":1875}},{"action":"wait","options":{"ms":50}},{"action":"release","options":{}}],"d1bba020-175d-473f-a6f4-ee5ece6f1371"]
2017-05-18 09:21:34:977 - [debug] [AndroidBootstrap] Sending command to android: {"cmd":"action","action":"element:touchDown","params":{"x":314,"y":1875}}
2017-05-18 09:21:34:980 - [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got data from client: {"cmd":"action","action":"element:touchDown","params":{"x":314,"y":1875}}
2017-05-18 09:21:34:981 - [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command of type ACTION
2017-05-18 09:21:34:982 - [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command action: touchDown
2017-05-18 09:21:34:996 - [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Display bounds: [0,0][1440,2392]
2017-05-18 09:21:34:997 - [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Performing TouchDown using element? false x: 314, y: 1875
2017-05-18 09:21:35:025 - [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Returning result: {"status":0,"value":true}
2017-05-18 09:21:35:026 - [debug] [AndroidBootstrap] Received command result from bootstrap
2017-05-18 09:21:35:084 - [debug] [AndroidBootstrap] Sending command to android: {"cmd":"action","action":"element:touchUp","params":{"x":314,"y":1875}}
2017-05-18 09:21:35:089 - [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got data from client: {"cmd":"action","action":"element:touchUp","params":{"x":314,"y":1875}}
2017-05-18 09:21:35:089 - [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command of type ACTION
2017-05-18 09:21:35:089 - [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command action: touchUp
2017-05-18 09:21:35:091 - [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Display bounds: [0,0][1440,2392]
2017-05-18 09:21:35:092 - [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Performing TouchUp using element? false x: 314, y: 1875
2017-05-18 09:21:35:127 - [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Returning result: {"status":0,"value":true}
2017-05-18 09:21:35:129 - [debug] [AndroidBootstrap] Received command result from bootstrap
2017-05-18 09:21:35:130 - [debug] [MJSONWP] Responding to client with driver.performTouch() result: null
2017-05-18 09:21:35:130 - [HTTP] <-- POST /wd/hub/session/d1bba020-175d-473f-a6f4-ee5ece6f1371/touch/perform 200 159 ms - 76
2017-05-18 09:21:35:134 - [HTTP] --> POST /wd/hub/session/d1bba020-175d-473f-a6f4-ee5ece6f1371/touch/perform {"actions":[{"action":"press","options":{"x":314,"y":1875}},{"action":"wait","options":{"ms":50}},{"action":"release","options":{}},{"action":"press","options":{"x":314,"y":1875}},{"action":"wait","options":{"ms":50}},{"action":"release","options":{}}]}
2017-05-18 09:21:35:134 - [debug] [MJSONWP] Calling AppiumDriver.performTouch() with args: [[{"action":"press","options":{"x":314,"y":1875}},{"action":"wait","options":{"ms":50}},{"action":"release","options":{}},{"action":"press","options":{"x":314,"y":1875}},{"action":"wait","options":{"ms":50}},{"action":"release","options":{}}],"d1bba020-175d-473f-a6f4-ee5ece6f1371"]
2017-05-18 09:21:35:136 - [debug] [AndroidBootstrap] Sending command to android: {"cmd":"action","action":"element:touchDown","params":{"x":314,"y":1875}}
2017-05-18 09:21:35:142 - [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got data from client: {"cmd":"action","action":"element:touchDown","params":{"x":314,"y":1875}}
2017-05-18 09:21:35:142 - [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command of type ACTION
2017-05-18 09:21:35:142 - [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command action: touchDown
2017-05-18 09:21:35:145 - [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Display bounds: [0,0][1440,2392]
2017-05-18 09:21:35:147 - [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Performing TouchDown using element? false x: 314, y: 1875
2017-05-18 09:21:35:160 - [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Returning result: {"status":0,"value":true}
2017-05-18 09:21:35:161 - [debug] [AndroidBootstrap] Received command result from bootstrap
2017-05-18 09:21:35:216 - [debug] [AndroidBootstrap] Sending command to android: {"cmd":"action","action":"element:touchUp","params":{"x":314,"y":1875}}
2017-05-18 09:21:35:220 - [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got data from client: {"cmd":"action","action":"element:touchUp","params":{"x":314,"y":1875}}
2017-05-18 09:21:35:220 - [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command of type ACTION
2017-05-18 09:21:35:220 - [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command action: touchUp
2017-05-18 09:21:35:224 - [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Display bounds: [0,0][1440,2392]
2017-05-18 09:21:35:224 - [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Performing TouchUp using element? false x: 314, y: 1875
2017-05-18 09:21:35:255 - [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Returning result: {"status":0,"value":true}
2017-05-18 09:21:35:256 - [debug] [AndroidBootstrap] Received command result from bootstrap
2017-05-18 09:21:35:256 - [debug] [AndroidBootstrap] Sending command to android: {"cmd":"action","action":"element:touchDown","params":{"x":628,"y":3750}}
2017-05-18 09:21:35:260 - [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got data from client: {"cmd":"action","action":"element:touchDown","params":{"x":628,"y":3750}}
2017-05-18 09:21:35:260 - [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command of type ACTION
2017-05-18 09:21:35:261 - [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command action: touchDown
2017-05-18 09:21:35:264 - [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Display bounds: [0,0][1440,2392]
2017-05-18 09:21:35:264 - [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Returning result: {"status":29,"value":"Coordinate [x=628.0, y=3750.0] is outside of element rect: [0,0][1440,2392]"}