Global FunctionUI and DialogsComing soonv1.0.51

NavigationEditor(value, label)

Adds a button to a Setting dialog that opens this macro’s Navigation setup (map and route). The selection the user saves comes back under the field key and is stored as a Setting unless the key starts with "_".

Documented for app version 1.0.51 (not on Google Play yet)Updated:

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

This is a global function: call it directly, without a table prefix. Requires Macro Handler 1.0.51 or later.

When To Use It

In dialog and HUD flow, validate user input and complete the sequence with close/dispose steps to keep the UI stable.

Parameters and Return

Parameters: value, label. Returns a field to add to a dialog with builder:add(key, field). Fields chain methods such as :required(true), :visibleWhen(field, value, matches) and :helper(text).

Best Combined With

You can combine it with Setting.builder(), Dialog, Checkbox, EditText, Hud, and Console to build richer operator-facing flows.

Example Usage

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

local builder = Setting.builder()
builder:add("route", NavigationEditor("", "Route"))
local result = builder:build():show()

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 = Setting.builder()
builder:add("route", NavigationEditor("", "Route"))
local result = builder:build():show()

Simple

Wraps the base call with minimal flow control.

Simple
local stepOk = true
local builder = Setting.builder()
builder:add("route", NavigationEditor("", "Route"))
local result = builder:build():show()
if stepOk then
  wait(200)
end

Practical Flow

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

Practical Flow
local ok, err = pcall(function()
  local builder = Setting.builder()
  builder:add("route", NavigationEditor("", "Route"))
  local result = builder:build():show()
end)

if not ok then
  print("API step failed: NavigationEditor(value, label): " .. tostring(err))
  requestStop()
end

Detailed

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

Detailed
-- In dialog and HUD flow, validate user input and complete the sequence with close/dispose steps to keep the UI stable.
local function run_navigationeditor_step()
  local builder = Setting.builder()
  builder:add("route", NavigationEditor("", "Route"))
  local result = builder:build():show()
end

local ok, err = pcall(run_navigationeditor_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 dialog = Setting.builder()
dialog:add("delay", EditText("500", 1, "Delay"))
dialog:add("enabled", Checkbox(true, "Enabled"))
Setting.setDialog(dialog:build())
Setting.show()
local builder = Setting.builder()
builder:add("route", NavigationEditor("", "Route"))
local result = builder:build():show()