Global ObjectTouch and ActionsSingleton Global

MultiGesture

Multi-finger gestures: add each finger path with MultiGesture.builder(), then run them together with build():go().

Documented for app version 1.0.51Updated:

Detailed Explanation

This section explains when to use the API, how to call it, and which structures it works best with in production flow.

How To Call It

MultiGesture is a singleton global table: call its functions with a dot (MultiGesture.<method>(...)).

When To Use It

In automation flow, chain actions with short wait() intervals and use requestStop() or controlled retry on failure paths.

Parameters and Return

MultiGesture offers 5 methods; each method page lists its parameters and return value.

Best Combined With

It works best together with wait(), Point, SwipeParam, ClickParam, and sometimes a Region result.

Example Usage

The snippet below is a starter pattern that can be applied directly in runtime flow.

local builder = MultiGesture.builder()
builder:add({ GesturePoint(Point(300, 1500), 0, 0), GesturePoint(Point(300, 600), 0, 400) })
builder:add({ GesturePoint(Point(780, 1500), 0, 0), GesturePoint(Point(780, 600), 0, 400) })
builder:build():go()

Copyable Progressive Examples

From foundation to combined usage, each level is provided as a separate code block so you can copy the level you need and adapt it directly.

Foundation

Shows the shortest direct way to call the API.

Foundation
local builder = MultiGesture.builder()
builder:add({ GesturePoint(Point(300, 1500), 0, 0), GesturePoint(Point(300, 600), 0, 400) })
builder:add({ GesturePoint(Point(780, 1500), 0, 0), GesturePoint(Point(780, 600), 0, 400) })
builder:build():go()

Simple

Wraps the base call with minimal flow control.

Simple
local builder = MultiGesture.builder()
builder:add({ GesturePoint(Point(300, 1500), 0, 0), GesturePoint(Point(300, 600), 0, 400) })
builder:add({ GesturePoint(Point(780, 1500), 0, 0), GesturePoint(Point(780, 600), 0, 400) })
builder:build():go()

-- Continue with one focused method on the object.

Practical Flow

A practical pattern for real macros with pcall, logging, and guards.

Practical Flow
local builder = MultiGesture.builder()
builder:add({ GesturePoint(Point(300, 1500), 0, 0), GesturePoint(Point(300, 600), 0, 400) })
builder:add({ GesturePoint(Point(780, 1500), 0, 0), GesturePoint(Point(780, 600), 0, 400) })
builder:build():go()
local note = "MultiGesture overview loaded"
print(note)

Detailed

This level packages the API into a reusable helper with error reporting.

Detailed
-- In automation flow, chain actions with short wait() intervals and use requestStop() or controlled retry on failure paths.
local function run_multigesture_step()
  local builder = MultiGesture.builder()
  builder:add({ GesturePoint(Point(300, 1500), 0, 0), GesturePoint(Point(300, 600), 0, 400) })
  builder:add({ GesturePoint(Point(780, 1500), 0, 0), GesturePoint(Point(780, 600), 0, 400) })
  builder:build():go()
end

local ok, err = pcall(run_multigesture_step)
if not ok then
  toast("Step failed")
  print(err)
end

Combined

Combines the API with related structures to form a more realistic workflow.

Combined
local target = Point(540, 960)
quickTap(target)
wait(250)
local builder = MultiGesture.builder()
builder:add({ GesturePoint(Point(300, 1500), 0, 0), GesturePoint(Point(300, 600), 0, 400) })
builder:add({ GesturePoint(Point(780, 1500), 0, 0), GesturePoint(Point(780, 600), 0, 400) })
builder:build():go()
wait(250)
print("Automation chain completed")