MCPcopy Index your code
hub / github.com/callstack/agent-device / snapshotAndroid

Function snapshotAndroid

src/platforms/android/snapshot.ts:86–137  ·  view source on GitHub ↗
(
  device: DeviceInfo,
  options: AndroidSnapshotOptions = {},
)

Source from the content-addressed store, hash-verified

84}
85
86export async function snapshotAndroid(
87 device: DeviceInfo,
88 options: AndroidSnapshotOptions = {},
89): Promise<{
90 nodes: RawSnapshotNode[];
91 truncated?: boolean;
92 analysis: AndroidSnapshotAnalysis;
93 androidSnapshot: AndroidSnapshotBackendMetadata;
94}> {
95 const adb = resolveAndroidAdbProvider(device, options.helperAdb).exec;
96 const capture = await captureAndroidUiHierarchy(device, options, adb);
97 const xml = capture.xml;
98 const includeHiddenContentHints = options.includeHiddenContentHints !== false;
99 if (!options.interactiveOnly) {
100 const parsed = parseUiHierarchy(xml, undefined, options);
101 const truncated = mergeAndroidSnapshotTruncation(parsed.truncated, capture.metadata);
102 if (includeHiddenContentHints) {
103 const nativeHints = await deriveScrollableContentHintsIfNeeded(
104 device,
105 parsed.nodes,
106 xml,
107 adb,
108 );
109 applyHiddenContentHintsToNodes(nativeHints, parsed.nodes);
110 }
111 return {
112 ...parsed,
113 ...androidSnapshotTruncationFields(truncated),
114 androidSnapshot: capture.metadata,
115 };
116 }
117
118 const tree = parseUiHierarchyTree(xml);
119 const interactiveSnapshot = buildUiHierarchySnapshot(tree, undefined, options);
120 const truncated = mergeAndroidSnapshotTruncation(interactiveSnapshot.truncated, capture.metadata);
121 if (includeHiddenContentHints) {
122 await applyHiddenContentHintsToInteractiveSnapshot({
123 device,
124 options,
125 tree,
126 xml,
127 adb,
128 interactiveSnapshot,
129 });
130 }
131 const { sourceNodes: _sourceNodes, ...snapshot } = interactiveSnapshot;
132 return {
133 ...snapshot,
134 ...androidSnapshotTruncationFields(truncated),
135 androidSnapshot: capture.metadata,
136 };
137}
138
139function mergeAndroidSnapshotTruncation(
140 snapshotTruncated: boolean | undefined,

Callers 5

createAndroidInteractorFunction · 0.90
readAndroidSnapshotNodesFunction · 0.90
snapshot.test.tsFile · 0.90

Tested by 1