MCPcopy Index your code
hub / github.com/NativeScript/SimDeck / perform_back_payload

Function perform_back_payload

packages/server/src/api/action_execution.rs:102–178  ·  view source on GitHub ↗
(
    state: AppState,
    udid: String,
    timeout_ms: Option<u64>,
    poll_ms: Option<u64>,
    fallback_swipe: Option<bool>,
)

Source from the content-addressed store, hash-verified

100}
101
102async fn perform_back_payload(
103 state: AppState,
104 udid: String,
105 timeout_ms: Option<u64>,
106 poll_ms: Option<u64>,
107 fallback_swipe: Option<bool>,
108) -> Result<Value, AppError> {
109 if android::is_android_id(&udid) {
110 run_android_action(state, move |android| android.press_button(&udid, "back", 0)).await?;
111 return Ok(json_value!({ "action": "back", "method": "androidButton" }));
112 }
113
114 let timeout_ms = timeout_ms.unwrap_or(5_000);
115 let poll_ms = poll_ms.unwrap_or(100);
116 let id_timeout_ms = timeout_ms.min(2_000);
117 let id_result = perform_tap_payload(
118 state.clone(),
119 udid.clone(),
120 TapElementPayload {
121 selector: ElementSelectorPayload {
122 id: Some("BackButton".to_owned()),
123 ..Default::default()
124 },
125 source: Some(SOURCE_NATIVE_AX.to_owned()),
126 max_depth: Some(8),
127 include_hidden: Some(false),
128 wait_timeout_ms: Some(id_timeout_ms),
129 poll_ms: Some(poll_ms),
130 duration_ms: Some(20),
131 ..Default::default()
132 },
133 )
134 .await;
135 if id_result.is_ok() {
136 return Ok(json_value!({ "action": "back", "method": "backButtonId" }));
137 }
138
139 let label_result = perform_tap_payload(
140 state.clone(),
141 udid.clone(),
142 TapElementPayload {
143 selector: ElementSelectorPayload {
144 label: Some("Back".to_owned()),
145 ..Default::default()
146 },
147 source: Some(SOURCE_NATIVE_AX.to_owned()),
148 max_depth: Some(8),
149 include_hidden: Some(false),
150 wait_timeout_ms: Some(timeout_ms.saturating_sub(id_timeout_ms)),
151 poll_ms: Some(poll_ms),
152 duration_ms: Some(20),
153 ..Default::default()
154 },
155 )
156 .await;
157 if label_result.is_ok() {
158 return Ok(json_value!({ "action": "back", "method": "backLabel" }));
159 }

Callers 1

run_batch_stepFunction · 0.85

Calls 6

is_android_idFunction · 0.85
run_android_actionFunction · 0.85
perform_tap_payloadFunction · 0.85
perform_scroll_inputFunction · 0.85
cloneMethod · 0.65
press_buttonMethod · 0.45

Tested by

no test coverage detected