Skip to main content

tauri_plugin_android_accessibility/
models.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Deserialize, Serialize)]
4#[serde(rename_all = "camelCase")]
5pub struct PingRequest {
6  pub value: Option<String>,
7}
8
9#[derive(Debug, Clone, Default, Deserialize, Serialize)]
10#[serde(rename_all = "camelCase")]
11pub struct PingResponse {
12  pub value: Option<String>,
13}
14
15#[derive(Debug, Clone, Default, Deserialize, Serialize)]
16#[serde(rename_all = "camelCase")]
17pub struct AccessibilityPermissionStatus {
18  pub enabled: bool,
19  pub service_id: String,
20  pub enabled_services: Vec<String>,
21}
22
23#[derive(Debug, Clone, Deserialize, Serialize)]
24#[serde(rename_all = "camelCase")]
25pub struct UiTreeRequest {
26  pub max_depth: Option<u32>,
27  pub max_children_per_node: Option<u32>,
28  pub include_non_clickable: Option<bool>,
29}
30
31impl Default for UiTreeRequest {
32  fn default() -> Self {
33    Self {
34      max_depth: Some(10),
35      max_children_per_node: Some(50),
36      include_non_clickable: Some(true),
37    }
38  }
39}
40
41#[derive(Debug, Clone, Default, Deserialize, Serialize)]
42#[serde(rename_all = "camelCase")]
43pub struct Bounds {
44  pub left: i32,
45  pub top: i32,
46  pub right: i32,
47  pub bottom: i32,
48}
49
50#[derive(Debug, Clone, Default, Deserialize, Serialize)]
51#[serde(rename_all = "camelCase")]
52pub struct UiNode {
53  pub node_id: String,
54  pub class_name: Option<String>,
55  pub text: Option<String>,
56  pub content_description: Option<String>,
57  pub resource_id: Option<String>,
58  pub package_name: Option<String>,
59  pub bounds: Option<Bounds>,
60  pub clickable: bool,
61  pub enabled: bool,
62  pub focusable: bool,
63  pub focused: bool,
64  pub scrollable: bool,
65  pub selected: bool,
66  pub checkable: bool,
67  pub checked: bool,
68  pub long_clickable: bool,
69  pub children: Vec<UiNode>,
70}
71
72#[derive(Debug, Clone, Default, Deserialize, Serialize)]
73#[serde(rename_all = "camelCase")]
74pub struct UiTreeResponse {
75  pub timestamp_ms: u64,
76  pub package_name: Option<String>,
77  pub root: Option<UiNode>,
78}
79
80#[derive(Debug, Clone, Deserialize, Serialize)]
81#[serde(rename_all = "camelCase")]
82pub struct ClickNodeRequest {
83  pub node_id: String,
84  pub action: Option<String>,
85  pub fallback_to_clickable_parent: Option<bool>,
86}
87
88#[derive(Debug, Clone, Default, Deserialize, Serialize)]
89#[serde(rename_all = "camelCase")]
90pub struct ClickNodeResponse {
91  pub success: bool,
92  pub performed_on_node_id: Option<String>,
93  pub message: Option<String>,
94}
95
96#[derive(Debug, Clone, Default, Deserialize, Serialize)]
97#[serde(rename_all = "camelCase")]
98pub struct OpenSettingsResponse {
99  pub opened: bool,
100}
101
102#[derive(Debug, Clone, Deserialize, Serialize)]
103#[serde(rename_all = "camelCase")]
104pub struct GesturePoint {
105  pub x: f32,
106  pub y: f32,
107}
108
109#[derive(Debug, Clone, Deserialize, Serialize)]
110#[serde(rename_all = "camelCase")]
111pub struct GestureStroke {
112  pub points: Vec<GesturePoint>,
113  pub start_time_ms: Option<u64>,
114  pub duration_ms: u64,
115  pub will_continue: Option<bool>,
116}
117
118#[derive(Debug, Clone, Deserialize, Serialize)]
119#[serde(rename_all = "camelCase")]
120pub struct PerformGestureRequest {
121  pub strokes: Vec<GestureStroke>,
122}
123
124#[derive(Debug, Clone, Default, Deserialize, Serialize)]
125#[serde(rename_all = "camelCase")]
126pub struct PerformGestureResponse {
127  pub success: bool,
128  pub message: Option<String>,
129}
130
131#[derive(Debug, Clone, Deserialize, Serialize)]
132#[serde(rename_all = "camelCase")]
133pub struct GlobalActionRequest {
134  pub action: String,
135}
136
137#[derive(Debug, Clone, Default, Deserialize, Serialize)]
138#[serde(rename_all = "camelCase")]
139pub struct GlobalActionResponse {
140  pub success: bool,
141  pub message: Option<String>,
142}
143
144#[derive(Debug, Clone, Deserialize, Serialize)]
145#[serde(rename_all = "camelCase")]
146pub struct NodeActionRequest {
147  pub node_id: String,
148  pub action: String,
149  pub fallback_to_scrollable_parent: Option<bool>,
150}
151
152#[derive(Debug, Clone, Default, Deserialize, Serialize)]
153#[serde(rename_all = "camelCase")]
154pub struct NodeActionResponse {
155  pub success: bool,
156  pub performed_on_node_id: Option<String>,
157  pub message: Option<String>,
158}
159
160#[derive(Debug, Clone, Deserialize, Serialize)]
161#[serde(rename_all = "camelCase")]
162pub struct TypeTextRequest {
163  pub node_id: String,
164  pub text: String,
165}
166
167#[derive(Debug, Clone, Deserialize, Serialize)]
168#[serde(rename_all = "camelCase")]
169pub struct TypeTextResponse {
170  pub success: bool,
171  pub message: Option<String>,
172}