diff --git a/.gitattributes b/.gitattributes index b82dbede..24ec62c4 100644 --- a/.gitattributes +++ b/.gitattributes @@ -41,3 +41,6 @@ docs/validation/touch-search/** -text -whitespace # Preserve empty-feedback evidence and raw Android hierarchy CRLF. docs/validation/empty-feedback/** -text -whitespace + +# Preserve keyboard visibility receipts and native XML CRLF. +docs/validation/keyboard-toggle/** -text -whitespace diff --git a/app/src/androidTest/java/dev/tinycast/android/TouchSearchDeviceTest.kt b/app/src/androidTest/java/dev/tinycast/android/TouchSearchDeviceTest.kt index 9f2983d9..94a40dd1 100644 --- a/app/src/androidTest/java/dev/tinycast/android/TouchSearchDeviceTest.kt +++ b/app/src/androidTest/java/dev/tinycast/android/TouchSearchDeviceTest.kt @@ -423,7 +423,7 @@ class TouchSearchDeviceTest { completeFeedbackTarget(node("emoji-filter"), "Emoji category", surface) } if (compose.activity.resources.configuration.screenWidthDp >= 700) - completeFeedbackTarget(compose.onNodeWithContentDescription("Show on-screen keyboard"), "Keyboard", surface) + completeFeedbackTarget(compose.onNodeWithContentDescription(if (visible) "Hide on-screen keyboard" else "Show on-screen keyboard"), "Keyboard", surface) val footer = if(emojiRoute)node("emoji-favorite")else node("palette-menu") feedbackReveal(footer, surface) completeFeedbackTarget(footer, if(emojiRoute)"Emoji favorite"else"Droidcast menu", surface) @@ -445,4 +445,265 @@ class TouchSearchDeviceTest { @Test fun launcherEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable() = feedbackFlow(false) @Test fun emojiEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable() = feedbackFlow(true) + + private fun keyboardControl() = compose.onNode( + hasContentDescription("Show on-screen keyboard") or hasContentDescription("Hide on-screen keyboard")) + + private fun keyboardState(search: String, query: String, range: TextRange, emojiRoute: Boolean, phase: String) { + text(search, query) + node(search).assertIsFocused().assert(SemanticsMatcher.expectValue(SemanticsProperties.TextSelectionRange, range)) + ui { + assertTrue("Keyboard controls need the owned foreground window", it.window.decorView.hasWindowFocus()) + if (emojiRoute) { + assertEquals("emoji", it.store.dialog) + assertEquals("All", it.store.emoji.filter) + assertEquals(query, it.store.emoji.query) + assertEquals(0, it.store.emoji.selected) + } else { + assertNull(it.store.dialog) + assertEquals("Apps", it.store.category) + assertEquals(query, it.store.query) + assertEquals(0, it.store.selected) + } + } + events.put(JSONObject().put("kind", "keyboard-search-state").put("phase", phase) + .put("query", query).put("range", JSONArray(listOf(range.start, range.end))) + .put("focused", true).put("ime_visible", ime()).put("route", if (emojiRoute) "emoji" else "launcher")) + } + + private fun pointerKeyboard(visible: Boolean, search: String, surface: String, phase: String, checkLabel: Boolean = true) { + val before = ime() + assertEquals("Start with the opposite actual IME state", !visible, before) + completeFeedbackTarget(keyboardControl(), "Keyboard", surface) + val label = keyboardControl().fetchSemanticsNode().config[SemanticsProperties.ContentDescription].single() + keyboardControl().performTouchInput { click(center) } + var reached = true + try { compose.waitUntil(6000) { ime() == visible } } + catch (_: ComposeTimeoutException) { reached = false } + settledFeedbackViewport(surface) + // Retain the actual post-tap screen even when the old Show-only action + // leaves the visible IME unchanged. A new label is not the control gate. + capture(phase, search) + events.put(JSONObject().put("kind", "keyboard-pointer-action").put("phase", phase) + .put("label_before", label).put("ime_before", before).put("expected_visible", visible) + .put("ime_after", ime()).put("reached_expected_state", reached)) + assertTrue(if (visible) "Header keyboard action must reopen the IME" else "Header keyboard action must hide the visible IME", reached) + if (checkLabel) keyboardControl().assertContentDescriptionEquals(if (visible) "Hide on-screen keyboard" else "Show on-screen keyboard") + } + + private fun keyboardResultTitle(value: String, surface: String) { + val target = compose.onNodeWithText(value, useUnmergedTree = true) + val layouts = mutableListOf() + target.performSemanticsAction(SemanticsActions.GetTextLayoutResult) { assertTrue(it(layouts)) } + val layout = layouts.single(); val semantics = target.fetchSemanticsNode() + val origin = compose.runOnUiThread { semantics.positionInRoot } + val visible = semantics.boundsInRoot; val palette = node(surface).fetchSemanticsNode().boundsInRoot + assertEquals(value, layout.layoutInput.text.text) + assertEquals(14f, layout.layoutInput.style.fontSize.value, .01f) + for (line in 0 until layout.lineCount) { + val bounds = Rect(origin.x + layout.getLineLeft(line), origin.y + layout.getLineTop(line), + origin.x + layout.getLineRight(line), origin.y + layout.getLineBottom(line)) + val complete = bounds.left >= visible.left - 1 && bounds.right <= visible.right + 1 && + bounds.top >= visible.top - 1 && bounds.bottom <= visible.bottom + 1 && + bounds.left >= palette.left - 1 && bounds.right <= palette.right + 1 && + bounds.top >= palette.top - 1 && bounds.bottom <= palette.bottom + 1 + events.put(JSONObject().put("kind", "keyboard-result-line").put("text", value).put("line", line) + .put("full", json(bounds)).put("visible", json(visible)).put("palette", json(palette)) + .put("complete", complete).put("ellipsized", layout.isLineEllipsized(line))) + assertFalse("Revealed result title must not ellipsize", layout.isLineEllipsized(line)) + assertTrue("Revealed result title line is complete", complete) + } + } + + @OptIn(ExperimentalTestApi::class) + private fun keyboardToggleFlow(emojiRoute: Boolean) { + assumeTrue("This contract exercises the existing wide-screen keyboard slot", compose.activity.resources.configuration.screenWidthDp >= 700) + record.put("scope", "Owned header pointer Hide/Show; editor/range and initial IME setup are controlled. Selected result target, not full list/grid typography or physical typing.") + if (emojiRoute) { emoji(); ui { it.store.emoji.chooseFilter("All") } } + val search = if (emojiRoute) "emoji-search" else "search" + val surface = if (emojiRoute) "emoji-palette" else "palette" + for ((index, query) in listOf(if (emojiRoute) "face" else "settings", "").withIndex()) { + feedbackTop(surface); keyboard(false, search) + node(search).performTextReplacement(query) + settledFeedbackViewport(surface) + // Initial opening is an explicit pointer contract too. Delay the + // new state-label assertion until the old app has attempted Hide. + pointerKeyboard(true, search, surface, "keyboard-$index-initial-show", checkLabel = false) + val range = if (query.isEmpty()) TextRange.Zero else TextRange(1, minOf(5, query.length - 1)) + node(search).performTextInputSelection(range) + keyboardState(search, query, range, emojiRoute, "before-$index") + val origin = rect(search); val beforeSurface = rect(surface) + capture("keyboard-$index-before-hide", search) + pointerKeyboard(false, search, surface, "keyboard-$index-after-hide") + keyboardState(search, query, range, emojiRoute, "hidden-$index") + assertEquals("Hide retains search geometry", origin, rect(search)) + val button = keyboardControl().fetchSemanticsNode().boundsInWindow + assertFalse("Keyboard target and editor do not overlap", button.overlaps(rect(search))) + assertTrue("Editor retains at least 80 dp", rect(search).width >= 80 * context.resources.displayMetrics.density - 1) + if (query.isNotEmpty()) { + if (emojiRoute) { + var id = "" + ui { id = it.store.emoji.results()[it.store.emoji.selected].id } + completeFeedbackTarget(node("emoji-cell-$id"), "Selected Emoji result", surface) + } else { + var id = "" + ui { id = it.store.results()[it.store.selected].id } + completeFeedbackTarget(node("result-$id"), "Selected launcher result", surface) + keyboardResultTitle("Settings", surface) + } + } + events.put(JSONObject().put("kind", "keyboard-result-viewport").put("query", query) + .put("before", json(beforeSurface)).put("after", json(rect(surface)))) + pointerKeyboard(true, search, surface, "keyboard-$index-after-show") + keyboardState(search, query, range, emojiRoute, "shown-$index") + assertEquals("Show retains search geometry", origin, rect(search)) + } + record.put("completed", true) + } + + @Test fun launcherKeyboardToggleRevealsResultsAndPreservesSearch() = keyboardToggleFlow(false) + @Test fun emojiKeyboardToggleRevealsResultsAndPreservesSearch() = keyboardToggleFlow(true) + + private fun rejectedKeyboardCallback( + action: () -> Boolean, expectedVisible: Boolean, search: String, surface: String, phase: String + ) { + var accepted = true + ui { accepted = action() } + compose.waitForIdle(); instrumentation.waitForIdleSync() + settledFeedbackViewport(surface) + capture(phase, search) + assertEquals("Obsolete or obstructed keyboard callback must not change visibility: $phase", expectedVisible, ime()) + assertFalse("The published action must report rejection", accepted) + events.put(JSONObject().put("kind", "keyboard-callback-rejected").put("phase", phase) + .put("visible", expectedVisible).put("accepted", accepted)) + } + + private fun dismissKeyboardMenuByPointer(search: String, surface: String) { + val menu = node("inline-menu").fetchSemanticsNode().boundsInRoot + val editor = node(search).fetchSemanticsNode().boundsInRoot + val palette = node(surface).fetchSemanticsNode().boundsInRoot + val inset = 12 * context.resources.displayMetrics.density + val candidates = listOf( + androidx.compose.ui.geometry.Offset(editor.left + minOf(inset, editor.width / 2), editor.center.y), + androidx.compose.ui.geometry.Offset(editor.right - minOf(inset, editor.width / 2), editor.center.y)) + val point = candidates.firstOrNull { p -> palette.contains(p) && !menu.contains(p) } + assertNotNull("An owned palette backdrop point remains outside the menu", point) + compose.onRoot().performTouchInput { click(requireNotNull(point)) } + node("inline-menu").assertDoesNotExist() + events.put(JSONObject().put("kind", "keyboard-menu-pointer-dismissal") + .put("point", JSONArray(listOf(point!!.x, point.y))).put("menu", json(menu)).put("palette", json(palette))) + } + + private fun keyboardCallbackFlow(emojiRoute: Boolean) { + assumeTrue("Owned wide-screen callback contract", compose.activity.resources.configuration.screenWidthDp >= 700) + record.put("scope", "Controlled retained native callbacks; visibility and menu-backdrop dismissal use actual pointers. Injected system Back failure remains #115; no queued-input or cross-window certification.") + if (emojiRoute) { emoji(); ui { it.store.emoji.chooseFilter("All") } } + val search = if (emojiRoute) "emoji-search" else "search" + val surface = if (emojiRoute) "emoji-palette" else "palette" + val query = if (emojiRoute) "face" else "settings" + keyboard(false, search); node(search).performTextReplacement(query); settledFeedbackViewport(surface) + pointerKeyboard(true, search, surface, "keyboard-guard-first-show") + val oldHide = requireNotNull(keyboardControl().fetchSemanticsNode().config[SemanticsActions.OnClick].action) + pointerKeyboard(false, search, surface, "keyboard-guard-live-hide") + pointerKeyboard(true, search, surface, "keyboard-guard-live-show") + rejectedKeyboardCallback(oldHide, true, search, surface, "keyboard-guard-obsolete-mode") + + // Change the epoch and invoke before Compose can dispose the old owner. + val beforeEpoch = requireNotNull(keyboardControl().fetchSemanticsNode().config[SemanticsActions.OnClick].action) + var epochAccepted = true + ui { it.store.focusEpoch++; epochAccepted = beforeEpoch() } + settledFeedbackViewport(surface) + assertTrue("Changed search epoch rejects Hide before disposal", ime()) + assertFalse("Changed epoch reports rejection before disposal", epochAccepted) + capture("keyboard-guard-epoch", search) + events.put(JSONObject().put("kind", "keyboard-callback-rejected").put("phase", "changed-epoch-before-disposal").put("visible", true).put("accepted", epochAccepted)) + + pointerKeyboard(false, search, surface, "keyboard-guard-before-menu") + val obstructedShow = requireNotNull(keyboardControl().fetchSemanticsNode().config[SemanticsActions.OnClick].action) + // Semantics is deliberate menu setup, not pointer-navigation evidence. + node(if (emojiRoute) "emoji-filter" else "palette-menu").performClick() + node("inline-menu").assertIsDisplayed() + rejectedKeyboardCallback(obstructedShow, false, search, surface, "keyboard-guard-open-menu") + node("inline-menu").assertIsDisplayed() + // Injected system Back cleared Emoji's caller query in the retained #115 + // cohort. This pointer-backdrop protocol earns no Back repair credit. + dismissKeyboardMenuByPointer(search, surface) + node(search).assertIsFocused() + text(search, query) + pointerKeyboard(true, search, surface, "keyboard-guard-after-menu") + pointerKeyboard(false, search, surface, "keyboard-guard-before-replacement") + + val replacedShow = requireNotNull(keyboardControl().fetchSemanticsNode().config[SemanticsActions.OnClick].action) + ui { it.store.dialog = "updates"; replacedShow(); assertEquals("updates", it.store.dialog) } + node("inline-back").assertIsDisplayed().performTouchInput { click(center) } + if (emojiRoute) { emoji(); ui { it.store.emoji.chooseFilter("All") } } + node(search).performTextReplacement(query); keyboard(false, search); settledFeedbackViewport(surface) + rejectedKeyboardCallback(replacedShow, false, search, surface, "keyboard-guard-replaced-route") + pointerKeyboard(true, search, surface, "keyboard-guard-current-replacement-show") + pointerKeyboard(false, search, surface, "keyboard-guard-before-recreation") + val recreatedShow = requireNotNull(keyboardControl().fetchSemanticsNode().config[SemanticsActions.OnClick].action) + compose.activityRule.scenario.recreate() + node(search).performTextReplacement(query); keyboard(false, search); settledFeedbackViewport(surface) + rejectedKeyboardCallback(recreatedShow, false, search, surface, "keyboard-guard-recreated-owner") + pointerKeyboard(true, search, surface, "keyboard-guard-current-recreated-show") + record.put("rejected_callbacks", 5).put("completed", true) + } + + @Test fun launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus() = keyboardCallbackFlow(false) + @Test fun emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus() = keyboardCallbackFlow(true) + + @Test fun currentKeyboardAccessibilityActionsApplyTheirPublishedVisibility() { + assumeTrue("Owned wide-screen accessibility action contract", compose.activity.resources.configuration.screenWidthDp >= 700) + record.put("scope", "Explicit native accessibility action invocation with accepted return and actual IME transition; editor setup is controlled. No TalkBack gesture or physical-typing certification.") + for (emojiRoute in listOf(false, true)) { + if (emojiRoute) { emoji(); ui { it.store.emoji.chooseFilter("All") } } + val search = if (emojiRoute) "emoji-search" else "search" + val surface = if (emojiRoute) "emoji-palette" else "palette" + val query = if (emojiRoute) "face" else "settings" + keyboard(false, search); node(search).performTextReplacement(query); settledFeedbackViewport(surface) + val origin = rect(search) + for ((index, visible) in listOf(true, false, true).withIndex()) { + val semantics = keyboardControl().fetchSemanticsNode() + assertEquals(androidx.compose.ui.semantics.Role.Button, semantics.config[SemanticsProperties.Role]) + val action = requireNotNull(semantics.config[SemanticsActions.OnClick].action) + var accepted = false + ui { accepted = action() } + assertTrue("The current published keyboard action is supported and accepted", accepted) + compose.waitUntil(6000) { ime() == visible } + settledFeedbackViewport(surface) + keyboardState(search, query, TextRange(query.length), emojiRoute, "accessibility-$emojiRoute-$index") + assertEquals(origin, rect(search)) + keyboardControl().assertContentDescriptionEquals(if (visible) "Hide on-screen keyboard" else "Show on-screen keyboard") + events.put(JSONObject().put("kind", "current-keyboard-accessibility-action").put("route", if (emojiRoute) "emoji" else "launcher") + .put("expected_visible", visible).put("actual_visible", ime()).put("accepted", accepted)) + capture("keyboard-accessibility-${if (emojiRoute) "emoji" else "launcher"}-$index", search) + } + } + record.put("completed", true) + } + + @Test fun emojiMenuBackPreservesCallerQueryWithoutKeyboardToggle() { + assumeTrue("Owned wide-screen Back diagnostic", compose.activity.resources.configuration.screenWidthDp >= 700) + record.put("scope", "Injected system Back diagnostic with no header keyboard activation. Editor and epoch setup are controlled; it earns no Back repair, hardware-key or TalkBack certification.") + emoji(); ui { it.store.emoji.chooseFilter("All") } + node("emoji-search").performTextReplacement("face") + keyboard(false, "emoji-search") + ui { val before = it.store.focusEpoch; it.store.focusEpoch++ + events.put(JSONObject().put("kind", "back-probe-epoch-setup").put("before", before).put("after", it.store.focusEpoch)) } + settledFeedbackViewport("emoji-palette") + text("emoji-search", "face"); node("emoji-search").assertIsFocused() + capture("back-probe-before-menu", "emoji-search") + node("emoji-filter").assertIsDisplayed().performTouchInput { click(center) } + node("inline-menu").assertIsDisplayed() + capture("back-probe-menu", "emoji-search") + val injected = device.pressBack() + compose.waitForIdle(); settledFeedbackViewport("emoji-palette") + capture("back-probe-after", "emoji-search") + ui { events.put(JSONObject().put("kind", "back-probe-after-injection").put("injection_accepted", injected) + .put("query", it.store.emoji.query).put("route", it.store.dialog).put("ime_visible", ime())) } + node("inline-menu").assertDoesNotExist() + text("emoji-search", "face") + node("emoji-search").assertIsFocused().assert(SemanticsMatcher.expectValue(SemanticsProperties.TextSelectionRange, TextRange(4))) + record.put("completed", true) + } } diff --git a/app/src/main/java/dev/tinycast/android/EmojiUi.kt b/app/src/main/java/dev/tinycast/android/EmojiUi.kt index 0b23463a..efa4a560 100644 --- a/app/src/main/java/dev/tinycast/android/EmojiUi.kt +++ b/app/src/main/java/dev/tinycast/android/EmojiUi.kt @@ -201,9 +201,9 @@ fun EmojiPicker(store: EmojiStore, searchEpoch: Int, actionCurrent: () -> Boolea copiedName = null queryEditing = false } - if (wide) IconButton(onClick = { keyboardRequested = true; searchFocus.requestFocus(); keyboard?.show() }, modifier = Modifier.size(48.dp).semantics { contentDescription = "Show on-screen keyboard" }) { - Glyph("keyboard", PaletteTheme.tertiary, 16) - } + if (wide) SearchKeyboardButton(imeVisible, Triple(store, searchEpoch, windowFocused), "emoji-keyboard", searchFocus, + current = { actionCurrent() && !menu && !actionsMenu && paletteMenus.current == null }, + requested = { keyboardRequested = it }) Box { // Retain natural scaled text and a 48 dp target without extra // vertical padding shifting this editor below the launcher. diff --git a/app/src/main/java/dev/tinycast/android/PaletteUi.kt b/app/src/main/java/dev/tinycast/android/PaletteUi.kt index a3cce185..999f622a 100644 --- a/app/src/main/java/dev/tinycast/android/PaletteUi.kt +++ b/app/src/main/java/dev/tinycast/android/PaletteUi.kt @@ -291,7 +291,10 @@ fun TinycastApp(store: PaletteStore, globalEnabled: Boolean, run: (Command) -> U searchValue = TextFieldValue("") store.search("") } - if(wide) IconButton(onClick={keyboardRequested=true;focus.requestFocus();keyboard?.show()},modifier=Modifier.size(48.dp).semantics{contentDescription="Show on-screen keyboard"}){Glyph("keyboard",PaletteTheme.tertiary,16)} + if (wide) SearchKeyboardButton(imeVisible, Triple(store, searchEpoch, windowFocused), "search-keyboard", focus, + current = { store.focusEpoch == searchEpoch && store.dialog == null && store.textReview == null && + !store.backupBusy && ShortcutRuntime.recordingOwner == null && !menu && paletteMenus.current == null }, + requested = { keyboardRequested = it }) } if (store.category == "Files") FileSearchToolbar(store, run) LaunchedEffect(store.folderSearch.includeInLauncher) { store.syncFileSearch() } diff --git a/app/src/main/java/dev/tinycast/android/SearchKeyboardButton.kt b/app/src/main/java/dev/tinycast/android/SearchKeyboardButton.kt new file mode 100644 index 00000000..11a6a530 --- /dev/null +++ b/app/src/main/java/dev/tinycast/android/SearchKeyboardButton.kt @@ -0,0 +1,68 @@ +package dev.tinycast.android + +import androidx.compose.foundation.layout.size +import androidx.compose.material3.IconButton +import androidx.compose.runtime.Composable +import androidx.compose.runtime.DisposableEffect +import androidx.compose.runtime.remember +import androidx.compose.ui.Modifier +import androidx.compose.ui.focus.FocusRequester +import androidx.compose.ui.platform.LocalSoftwareKeyboardController +import androidx.compose.ui.platform.LocalView +import androidx.compose.ui.platform.testTag +import androidx.compose.ui.semantics.contentDescription +import androidx.compose.ui.semantics.Role +import androidx.compose.ui.semantics.clearAndSetSemantics +import androidx.compose.ui.semantics.onClick +import androidx.compose.ui.semantics.role +import androidx.compose.ui.unit.dp +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat + +private class SearchKeyboardLifetime { var active = true } + +/** Set an explicit visibility state without replacing the editor's text or focus. */ +@Composable +internal fun SearchKeyboardButton( + imeVisible: Boolean, + owner: Any, + tag: String, + focus: FocusRequester, + current: () -> Boolean, + requested: (Boolean) -> Unit +) { + val view = LocalView.current + val keyboard = LocalSoftwareKeyboardController.current + // A callback from an earlier mode stays obsolete even after visible/hidden + // returns to its former value within the same search owner. + val lifetime = remember(owner, imeVisible) { SearchKeyboardLifetime() } + DisposableEffect(lifetime) { onDispose { lifetime.active = false } } + val activate: () -> Boolean = { + val insets = ViewCompat.getRootWindowInsets(view) + if (lifetime.active && view.hasWindowFocus() && current() && + insets != null && insets.isVisible(WindowInsetsCompat.Type.ime()) == imeVisible) { + val show = !imeVisible + requested(show) + val controller = ViewCompat.getWindowInsetsController(view) + if (show) { + focus.requestFocus() + keyboard?.show() + controller?.show(WindowInsetsCompat.Type.ime()) + } else { + keyboard?.hide() + controller?.hide(WindowInsetsCompat.Type.ime()) + } + true + } else false + } + // Publish the same owned action for accessibility. Foundation's default + // click semantics forwards through a mutable node to its latest callback; + // a retained action must instead keep this visibility/owner snapshot. + IconButton(onClick = { activate() }, modifier = Modifier.size(48.dp).testTag(tag).clearAndSetSemantics { + role = Role.Button + contentDescription = if (imeVisible) "Hide on-screen keyboard" else "Show on-screen keyboard" + onClick { activate() } + }) { + Glyph(if (imeVisible) "keyboard-hide" else "keyboard", PaletteTheme.tertiary, 20) + } +} diff --git a/docs/PARITY-TRACKER.md b/docs/PARITY-TRACKER.md index e5b0e78d..a82a72cd 100644 --- a/docs/PARITY-TRACKER.md +++ b/docs/PARITY-TRACKER.md @@ -228,3 +228,28 @@ The [#111 empty-feedback repair](EMPTY-FEEDBACK-READABILITY.md) now shows one co The frozen `6c5825bf` app/test pair records **25 positive executions / 12 whole cohorts / 186 successful restoration checks**, plus **eight intended old/intermediate failures / zero passes / 68 checks** with the same final instrumentation. Modern landscape/phone/tablet run at both font scales; API26 adds normal-viewport native feedback smoke, with existing Clear/ownership and controlled-input regressions. All **14 separate final-preservation checks** pass, including both original modern APKs, all 573 existing app/evidence files, original legacy package absence and the current four-field IME baselines. Builds pass; JVM343 executed with no failure/error/skip; lint records zero errors / 56 warnings per variant. Python135 per mode retains the exact unchanged Python source from `15eb95c`. The checkpoint binds **478 indexed public files plus itself, 84 actual screenshot sets, 1,121 retained capture hashes and 254 source inputs**. Earlier primary/secondary clipping failures, intermediate passing criteria and the restored whole-cohort orchestration stop remain separate. The complete retained accounting is 59 executions / 39 passes / 20 failures / 471 successful cohort checks. Exact-head hosted CI, both independent sol/high audits and an expected-head merge remain required. Nonempty states are functional smoke, not full result typography; composition through every system-IME transition, Files-toolbar variants, #69/#71/#89, broader parity/accessibility/OEM, original pre-probe IME-history identity and signing/migration remain open or uncertified. No project rename or migration is performed. + + +PR #113 merged reviewed `b74893cd3cafe424558d8ee60f58713abbfe9a70` as `adb41de4281aaae328e2d227064060f8f7495d71`. Both independent gpt-6.1-sol/high full-change audits cleared; root verified exact-head pull_request Android run42078762341 and local/android58176983369 success, recorded COMMENT review5789633960, and used an expected-head merge. Both parents and merged/reviewed tree `c4169d764a10d2b2f8301d5ff874bb39543c8c49` match. #111 is closed within native Apps/Emoji empty-feedback scope; the PR watch is stopped. + +The active [#114](https://github.com/moikdev/droidcast/issues/114) slice adds an app-level Hide/Show action in the existing wide-screen keyboard slot. Actual retained short-landscape nonempty frames show the header while result content is below the viewport; the existing button always requests Show. Matched pointer/actual-IME controls and exact query/range/focus/geometry contracts are under preparation. No implementation or runtime credit is claimed yet. System dismissal/scrolling remain available; full row/grid typography, every system-IME transition, Files/OEM/TalkBack/Store and signing/migration remain outside this slice. + + +The first #114 harness compile failed for a missing explicit experimental-selection API opt-in; the corrected harness built successfully before native execution. Its old-app landscape100 cohort has two intended actual-Hide failures with 17 successful restoration checks. The landscape200 cohort remains a mixed failure: one intended launcher-Hide assertion and an Emoji initial-Show timeout before that assertion, also with 17 checks. The registry remains incomplete and earns no complete 200% control credit. A stronger protocol now captures initial Show as an actual pointer action after settled geometry, then separately checks Hide. This protocol change explains no production cause or repair for the earlier timeout. + + +The stronger #114 baseline protocol completes four intended old-app Hide failures across 100%/200%, with 34 successful restoration checks. Its actual pointer Show succeeds before each Hide attempt; the earlier mixed timeout cohort remains failed and earns no production-cause or repair credit. The implementation reuses the existing fixed 48 dp slot and keyboard/keyboard-hide glyphs, validates actual visibility/foreground/owner state, and invalidates retained callbacks across visibility modes, epochs and disposal. Native candidate and callback regression evidence are pending. + + +Candidate `1355f84c` passed both 200% landscape pointer-toggle cases, then failed both retained-mode callback cases; all 32 cohort restoration checks passed and the rest of that pipeline was not run. Pinned AndroidX 1.7.6 source and cached AAR bytecode establish that the default click semantics stores a node proxy which calls its current `onClick`. Thus the retained semantics reference reached the new current Hide action after the mode cycle, not the original guarded application closure. The next implementation publishes an explicit owned accessibility action, with Button role and the same action used by pointer clicks. It binds the published visibility/owner snapshot and reports rejection accurately. Earlier failures remain bound to their original binaries; no keyboard-Show timeout cause is inferred. + + +Candidate `411b7f73` publishes the owned action and passes the launcher callback case, while Emoji passes the obsolete-mode, epoch and obstructing-menu checks before `UiDevice.pressBack()` clears its query. The whole cohort remains failed 1/2 with 15 successful restoration checks; its later planned cohorts were unrun. [#115](https://github.com/moikdev/droidcast/issues/115) retains the actual Back observation, with cause and historical-app attribution unestablished. The next #114 callback protocol dismisses the menu through a geometry-derived actual pointer on its backdrop and retains the same exact-query assertion. This changes no production sources after `411b7f73` and earns no Back cause/repair credit. + + +The `f30bebd6` driver passed both callback cases and all four wide pointer profiles, with its matched proxy and old Show-only controls failing as intended. It then failed both 100% landscape feedback regressions because their geometry selector still demanded the old constant Show description after the actual IME was shown; the retained primary-line and compact-status checks had passed. The corrected selector requires the expected Hide/Show description for that phase and keeps every text/48 dp geometry assertion. The new driver also adds a supported current accessibility-action positive and a separate injected-system-Back diagnostic on both historical/current apps. No production/build/JVM sources change after `f30bebd6`; all intermediate cohorts remain separate. + + +The [#114 touch keyboard control](TOUCH-KEYBOARD-VISIBILITY.md) now has **24 final positives / 11 whole cohorts / 176 successful restoration checks**, with **six matched intended failures / zero passes / 49 checks**. The executed app is exact `f30bebd6/98da1466…aa5de3`; final `69bd578d/dc22049a…ccdf3d` instrumentation/controller changes only the fixture/allowlist after that app source. All 255 current source hashes, unchanged production/build/JVM inputs, actual app byte equality and all 11 original assets/notices are verified. Current pointer and accepted-accessibility actions preserve query/range/focus/geometry, while obsolete mode/epoch/menu/replacement/recreation actions reject. Tablet/short-landscape run 100%/200%; selected targets, empty feedback, enlarged narrow-phone Clear and modern/API26 controlled input remain scoped whole cohorts. + +All 14 separate final-preservation checks pass, including original modern APKs/all 573 files, legacy absence and both current four-field IME baselines. Fresh fixture builds/lint (0 errors/56 warnings each) and Python 135 per mode pass; JVM 343 is retained from exact unchanged production/build/JVM inputs. The checkpoint binds 536 indexed public files plus itself, 89 actual screenshot sets and 1150 retained capture hashes. Complete retained accounting stays 64 executions / 37 passes / 27 failures / 515 cohort checks, with all earlier incomplete pipelines, initialization/proxy/Back/selector failures separate. The isolated injected-system-Back probe fails on both old/current apps with 30 successful checks; #115 remains open for actual key/dispatcher tracing and earns no cause/repair credit. The raw pressBack return is false and is not key-delivery proof. Exact-head hosted CI, both independent sol / high audits and expected-head merge remain gates. #69/#71/#89, broader row/grid/footer/OEM/TalkBack/Store and signing/migration limits remain open. diff --git a/docs/TOUCH-KEYBOARD-VISIBILITY.md b/docs/TOUCH-KEYBOARD-VISIBILITY.md new file mode 100644 index 00000000..1644408f --- /dev/null +++ b/docs/TOUCH-KEYBOARD-VISIBILITY.md @@ -0,0 +1,77 @@ +# Touch control for search keyboard visibility + +[#114](https://github.com/moikdev/droidcast/issues/114) adds Hide/Show behavior to the existing wide-screen launcher and Emoji keyboard button. The 48 dp slot, editor width and search origin remain fixed. The icon uses the existing keyboard/keyboard-hide glyphs at 20 dp, and the label describes the action for the actual IME state. Requested font scales are preserved. + +Actual pointer Hide reveals the selected launcher result or Emoji cell; pointer Show returns to editing with the exact query, selection range, category/filter, selected result, route and focus intact. Selected launcher text retains 14 sp. This covers the selected target; long rows, the whole grid and every footer line are not certified. The enlarged Emoji footer can still require scrolling after Hide. Narrow phone layouts retain their existing controls. + +## Sources and binary boundaries + +The executed app is the exact archived `f30bebd6c414307a5b5fe690d80dfffe5fc58ccc` binary: + +- App SHA-256: `98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3`. +- Final test SHA-256: `dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d`, fixture/controller source `69bd578d528c42296ef4a10fa24d675a8f635408`. + +[The final identity](validation/keyboard-toggle/identities/final-harness/identity.json) binds all 255 current Android/build/Python inputs. After the app source, only `TouchSearchDeviceTest.kt` and its CLI allowlist change. All production/build and JVM-test inputs remain identical. The fixture-only builds explicitly retain the app's `f30bebd6` build-commit property; their app output also equals the executed APK byte-for-byte. This is a cached-build byte comparison, without clean-runner reproducibility credit. The app manifest embeds its app source; test APKs have no independent source stamp. Compilation receipts, input vectors and APK hashes bind each instrumentation version. Later documentation commits do not change those inputs. + +| Cohort role | Source | App / test hash prefix | +| --- | --- | --- | +| Reviewed pre-toggle app | `6c5825bf` | `66a6965e` / matched harness per receipt | +| First corrected baseline harness | `dfd1b38c` | old app / `ba781590` | +| Explicit initial pointer-Show baseline | `723ecda1` | old app / `b08f6a53` | +| Pointer toggle with default semantics proxy | `1355f84c` | `32e2726d` / `931201bf` | +| Owned accessibility action | `411b7f73` | `1291d061` / `f4925b8c` | +| Pointer-backdrop driver, frozen executed app | `f30bebd6` | `98da1466` / `0b855d72` | +| Final state-label/API/Back fixture | `69bd578d` | exact `98da1466` / `dc22049a` | + +The identities preserve full hashes, source vectors, manifest stamps and actual ZIP payload differences. Candidate app versions differ in their manifests and two DEX entries; no stamp-only reconstruction is inferred. The final test rebuild changes only `classes3.dex` relative to the `f30bebd6` test APK. All 11 original packaged assets/notices remain unchanged, including upstream runtime assets. + +## Visibility and action ownership + +The button validates its search owner, current epoch/route, foreground window, obstruction state and actual native IME visibility before requesting a state. A visibility-mode change or disposal invalidates the captured action, including a visible→hidden→visible cycle. Hide preserves editor focus; Show requests search focus. Neither path replaces the text value. + +The first implementation's default accessibility callback remained a live proxy to the clickable node's current handler. The pinned [Foundation 1.7.6 source](https://dl.google.com/dl/android/maven2/androidx/compose/foundation/foundation/1.7.6/foundation-1.7.6-sources.jar) and cached AAR bytecode both establish that lookup. A retained semantics reference therefore reached the new current Hide action after the mode cycle. This does not show invocation of the original application closure. [The source/binary inspection record](validation/keyboard-toggle/semantics-proxy-inspection.json) retains dependency hashes and the distinction. + +The repaired button publishes an explicit owned accessibility action using [Compose's semantics API](https://dl.google.com/dl/android/maven2/androidx/compose/ui/ui/1.7.6/ui-1.7.6-sources.jar), with Button role and the same guarded activation function as pointer clicks. It returns false on rejection. Current-action positive controls separately require acceptance, actual Show/Hide/Show transitions on both routes, unchanged query/range/focus and matching labels. These are controlled native semantics invocations, without TalkBack gesture certification. + +## Current verification + +[The summary](validation/keyboard-toggle/summary.json) credits **24 final positive executions / 11 whole cohorts / 176 successful restoration checks** on the exact final app/test pair. + +- Owned `Tinycast_Tablet_API_36`, API 36: landscape 2340×1080 / 420 dpi and tablet 1920×1200 / 240 dpi, each at 100% and 200% font. Both routes exercise explicit initial pointer Show, selected-range Hide/Show, empty-query Hide/Show, complete nonoverlapping 48 dp controls and unchanged search geometry. Hide exposes a complete selected target; Settings text has complete natural, non-ellipsized 14 sp lines. No launch or clipboard-copy activation is inferred from geometry. +- Ten controlled retained callbacks reject obsolete modes, epoch changes before disposal, obstructing menus, replacement routes and recreation. Menu opening is labeled semantics setup; dismissal uses an actual pointer at a recorded backdrop point outside the menu. The source and expected query assertions remain mandatory. +- Current published accessibility actions return true and change the actual IME state in six observed transitions across launcher/Emoji, while preserving Button role, text, range and focus. +- Retained empty-feedback cases run both landscape font scales, including complete natural lines and footer reachability. Their target lookup now expects Hide while the IME is shown, retaining all line/font/48 dp assertions. +- Enlarged narrow-phone Clear cases, normal-tablet composition/live-query/stale-owner guards, and two owned-input contracts on both modern phone and `Droidcast_WebView_API26_27caf3` remain separate whole cohorts. The API 26 device retains physical 1080×1920 / 420 dpi geometry. Its silent test IME gives controlled native-input coverage, not legacy WebView extension parity. + +The **6 intended controls / zero passes / 49 restoration checks** use the same final instrumentation as the repaired runs. The pre-toggle app opens the IME, then fails to hide it after tapping its existing Show-only button at both font scales. The intermediate proxy app passes its three initial pointer transitions, then changes visibility when the retained published-mode callback is invoked. [Calibration](validation/keyboard-toggle/final-controls-calibration.json) requires the exact assertions, case events and actual frame IME states. These positive-only runner receipts stay failed. Their PNGs show ordinary app states, without app error banners. + +Editor replacement, range setup, initial IME requests and retained callback invocation are controlled. Pointer credit covers the recorded button/backdrop actions. Capture XML precedes PNG after Compose/UiAutomator idle and cache clearing; XML is diagnostic rather than independent pixel visibility proof. Full target assertions compare complete versus clipped bounds. Natural text checks examine each line, not merely node existence. + +## Separate system-Back failure + +[#115](https://github.com/moikdev/droidcast/issues/115) remains open. An earlier Emoji callback run rejected the obsolete-mode, epoch and menu-obstructed Show actions, then lost the `face` query after `UiDevice.pressBack()` closed its category menu. The complete two-case cohort stays failed 1/2. Its before-menu frame and failure semantics are retained; it has no separate post-Back image. + +A final isolated probe, without header keyboard activation, reproduces query loss on **both the archived pre-toggle app and the current app**, with the same final test APK. Both runner receipts fail 0/1, with 30 successful restoration checks total. Before/menu/after PNG/XML/frame sets show the transition. This establishes the captured historical/current pattern, without a delivery cause or repair. + +In both records, the raw field `injection_accepted` stores only the false return from `UiDevice.pressBack()`. That field name must not be interpreted as proof that no Back input was delivered. Actual DOWN/UP and dispatcher tracing remain future work. The passing pointer-backdrop protocol earns no system-Back cause or repair credit. + +## Retained failures and accounting + +All observations reconcile to **64 executions / 37 raw passes / 27 failures / 515 successful cohort restoration checks**, including the separate Back diagnostic. Historical/intermediate passes earn no final-pair credit. + +- The first harness compile failed for a missing experimental-selection API opt-in; it executed no tests. The corrected baseline's 100% cohort has two intended Hide failures. Its 200% cohort retains one launcher Hide failure and an Emoji initial-Show timeout before the Hide assertion. That registry stays incomplete and earns no complete 200% control credit. +- The stronger initial-pointer-Show harness records four intended Hide failures at 100%/200%. Its successful initial Show observations establish that protocol; they explain no cause or production repair for the older timeout. +- The first candidate passes two critical pointer cases, then fails both retained-proxy cases. The owned-action candidate passes launcher but fails Emoji at the separate Back path. Their later planned work was not run. +- The `f30bebd6` driver passes four pointer profiles and both callback cases, with its intended controls. Its next feedback cohort fails because the selector still requires the old constant Show label while native IME visibility and the actual Hide label agree. Primary-line/compact-status assertions had passed. The final fixture corrects only that expected state label and adds the supported accessibility positive plus isolated Back probe. + +Original registry completion flags, failed logs, distinct harnesses and exact sources remain unchanged. No rerun alone is credited as an app repair. + +## Checks, preservation and limits + +The app-source builds pass, and retained JVM XML records 343 cases with no failures/errors/skips; its task executed at `f30bebd6`. Final fixture debug/test and benchmark/test builds and lint pass. Fresh lint records zero errors / 56 warnings per variant. Fresh Python 135 cases per normal/optimized mode pass at `69bd578d`. JVM reuse is justified by exact unchanged production/build/JVM-test inputs; the fixture-only build does not rerun those JVM cases. Actual exact-head hosted Android CI and both independent sol/high audits remain separate merge gates. + +All **14 final read-only preservation checks** pass, including both original modern APKs, all 573 original app/evidence files, legacy package absence, geometry/raw font settings and both devices' current four-field IME baselines. The collector retains its owner through restoration/verification and releases last. Private archive transport, original data/settings and fingerprints stay private. This certifies the recorded baseline equality, without whole-system/cross-boot or earlier pre-probe IME-history identity certification. + +[The checkpoint](validation/keyboard-toggle/checkpoint.json) binds 536 indexed public files plus itself, 1150 retained capture hashes and **89 selected real PNG/XML/frame sets**. Exact byte transforms and allowlisted projections are recorded. Raw hierarchy CRLF is preserved; all published XML parses with escaped host-path placeholders. Private originals/owners and signing material are excluded. + +Full long-row/grid/footer typography, every system-IME transition, physical typing/queued gestures, actual split-window/OEM/TalkBack, Files-toolbar variants, whole-Store/Raycast parity, #69/#71/#89, #115 and production signing/migration remain open or unverified. No project association/rename/migration occurs. diff --git a/docs/screenshots/keyboard-toggle/back-diagnostic-current/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.png b/docs/screenshots/keyboard-toggle/back-diagnostic-current/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.png new file mode 100644 index 00000000..c52be6fe Binary files /dev/null and b/docs/screenshots/keyboard-toggle/back-diagnostic-current/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.png differ diff --git a/docs/screenshots/keyboard-toggle/back-diagnostic-current/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.png b/docs/screenshots/keyboard-toggle/back-diagnostic-current/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.png new file mode 100644 index 00000000..89997cdf Binary files /dev/null and b/docs/screenshots/keyboard-toggle/back-diagnostic-current/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.png differ diff --git a/docs/screenshots/keyboard-toggle/back-diagnostic-current/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.png b/docs/screenshots/keyboard-toggle/back-diagnostic-current/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.png new file mode 100644 index 00000000..fe4b8f78 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/back-diagnostic-current/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.png differ diff --git a/docs/screenshots/keyboard-toggle/back-diagnostic-old/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.png b/docs/screenshots/keyboard-toggle/back-diagnostic-old/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.png new file mode 100644 index 00000000..a42c3c3b Binary files /dev/null and b/docs/screenshots/keyboard-toggle/back-diagnostic-old/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.png differ diff --git a/docs/screenshots/keyboard-toggle/back-diagnostic-old/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.png b/docs/screenshots/keyboard-toggle/back-diagnostic-old/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.png new file mode 100644 index 00000000..f944fae1 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/back-diagnostic-old/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.png differ diff --git a/docs/screenshots/keyboard-toggle/back-diagnostic-old/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.png b/docs/screenshots/keyboard-toggle/back-diagnostic-old/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.png new file mode 100644 index 00000000..e762f375 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/back-diagnostic-old/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.png differ diff --git a/docs/screenshots/keyboard-toggle/baseline-old-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png b/docs/screenshots/keyboard-toggle/baseline-old-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png new file mode 100644 index 00000000..f1843676 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/baseline-old-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png differ diff --git a/docs/screenshots/keyboard-toggle/baseline-old-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png b/docs/screenshots/keyboard-toggle/baseline-old-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png new file mode 100644 index 00000000..ef363415 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/baseline-old-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png differ diff --git a/docs/screenshots/keyboard-toggle/baseline-old-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png b/docs/screenshots/keyboard-toggle/baseline-old-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png new file mode 100644 index 00000000..614fe36f Binary files /dev/null and b/docs/screenshots/keyboard-toggle/baseline-old-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png differ diff --git a/docs/screenshots/keyboard-toggle/baseline-v3-old-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png b/docs/screenshots/keyboard-toggle/baseline-v3-old-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png new file mode 100644 index 00000000..04af9f40 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/baseline-v3-old-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png differ diff --git a/docs/screenshots/keyboard-toggle/baseline-v3-old-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png b/docs/screenshots/keyboard-toggle/baseline-v3-old-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png new file mode 100644 index 00000000..5ec7ac3b Binary files /dev/null and b/docs/screenshots/keyboard-toggle/baseline-v3-old-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png differ diff --git a/docs/screenshots/keyboard-toggle/baseline-v3-old-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png b/docs/screenshots/keyboard-toggle/baseline-v3-old-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png new file mode 100644 index 00000000..80d8858d Binary files /dev/null and b/docs/screenshots/keyboard-toggle/baseline-v3-old-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png differ diff --git a/docs/screenshots/keyboard-toggle/baseline-v3-old-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png b/docs/screenshots/keyboard-toggle/baseline-v3-old-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png new file mode 100644 index 00000000..c8eafe5b Binary files /dev/null and b/docs/screenshots/keyboard-toggle/baseline-v3-old-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png differ diff --git a/docs/screenshots/keyboard-toggle/candidate-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png b/docs/screenshots/keyboard-toggle/candidate-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png new file mode 100644 index 00000000..0a62a430 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/candidate-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png differ diff --git a/docs/screenshots/keyboard-toggle/candidate-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png b/docs/screenshots/keyboard-toggle/candidate-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png new file mode 100644 index 00000000..90c26fe2 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/candidate-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png differ diff --git a/docs/screenshots/keyboard-toggle/candidate-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png b/docs/screenshots/keyboard-toggle/candidate-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png new file mode 100644 index 00000000..43d00b62 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/candidate-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png differ diff --git a/docs/screenshots/keyboard-toggle/candidate-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png b/docs/screenshots/keyboard-toggle/candidate-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png new file mode 100644 index 00000000..ba0ccf51 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/candidate-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png differ diff --git a/docs/screenshots/keyboard-toggle/candidate-v2-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png b/docs/screenshots/keyboard-toggle/candidate-v2-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png new file mode 100644 index 00000000..bc2e82dd Binary files /dev/null and b/docs/screenshots/keyboard-toggle/candidate-v2-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png differ diff --git a/docs/screenshots/keyboard-toggle/candidate-v2-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png b/docs/screenshots/keyboard-toggle/candidate-v2-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png new file mode 100644 index 00000000..9b678f72 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/candidate-v2-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png differ diff --git a/docs/screenshots/keyboard-toggle/candidate-v2-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png b/docs/screenshots/keyboard-toggle/candidate-v2-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png new file mode 100644 index 00000000..5bb75122 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/candidate-v2-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png differ diff --git a/docs/screenshots/keyboard-toggle/candidate-v2-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png b/docs/screenshots/keyboard-toggle/candidate-v2-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png new file mode 100644 index 00000000..e09f019f Binary files /dev/null and b/docs/screenshots/keyboard-toggle/candidate-v2-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png differ diff --git a/docs/screenshots/keyboard-toggle/candidate-v3-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png b/docs/screenshots/keyboard-toggle/candidate-v3-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png new file mode 100644 index 00000000..d25ac4d5 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/candidate-v3-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png differ diff --git a/docs/screenshots/keyboard-toggle/candidate-v3-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png b/docs/screenshots/keyboard-toggle/candidate-v3-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png new file mode 100644 index 00000000..ce8ccf4f Binary files /dev/null and b/docs/screenshots/keyboard-toggle/candidate-v3-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png differ diff --git a/docs/screenshots/keyboard-toggle/candidate-v3-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png b/docs/screenshots/keyboard-toggle/candidate-v3-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png new file mode 100644 index 00000000..6746f0d9 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/candidate-v3-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png differ diff --git a/docs/screenshots/keyboard-toggle/candidate-v3-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png b/docs/screenshots/keyboard-toggle/candidate-v3-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png new file mode 100644 index 00000000..d07cf56e Binary files /dev/null and b/docs/screenshots/keyboard-toggle/candidate-v3-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png differ diff --git a/docs/screenshots/keyboard-toggle/control-old-final-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png b/docs/screenshots/keyboard-toggle/control-old-final-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png new file mode 100644 index 00000000..1c5d1176 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/control-old-final-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png differ diff --git a/docs/screenshots/keyboard-toggle/control-old-final-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png b/docs/screenshots/keyboard-toggle/control-old-final-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png new file mode 100644 index 00000000..a489edf1 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/control-old-final-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png differ diff --git a/docs/screenshots/keyboard-toggle/control-old-final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png b/docs/screenshots/keyboard-toggle/control-old-final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png new file mode 100644 index 00000000..d748f432 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/control-old-final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png differ diff --git a/docs/screenshots/keyboard-toggle/control-old-final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png b/docs/screenshots/keyboard-toggle/control-old-final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png new file mode 100644 index 00000000..90dab2cf Binary files /dev/null and b/docs/screenshots/keyboard-toggle/control-old-final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png differ diff --git a/docs/screenshots/keyboard-toggle/control-proxy-final-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png b/docs/screenshots/keyboard-toggle/control-proxy-final-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png new file mode 100644 index 00000000..c561b4f5 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/control-proxy-final-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png differ diff --git a/docs/screenshots/keyboard-toggle/control-proxy-final-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png b/docs/screenshots/keyboard-toggle/control-proxy-final-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png new file mode 100644 index 00000000..83d1c868 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/control-proxy-final-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png differ diff --git a/docs/screenshots/keyboard-toggle/final-clear-phone200/emojitouchclearpreservescategorygeometryandkeyboard-shown-after.png b/docs/screenshots/keyboard-toggle/final-clear-phone200/emojitouchclearpreservescategorygeometryandkeyboard-shown-after.png new file mode 100644 index 00000000..6aa7b938 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-clear-phone200/emojitouchclearpreservescategorygeometryandkeyboard-shown-after.png differ diff --git a/docs/screenshots/keyboard-toggle/final-clear-phone200/emojitouchclearpreservescategorygeometryandkeyboard-shown-before.png b/docs/screenshots/keyboard-toggle/final-clear-phone200/emojitouchclearpreservescategorygeometryandkeyboard-shown-before.png new file mode 100644 index 00000000..ff0657d0 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-clear-phone200/emojitouchclearpreservescategorygeometryandkeyboard-shown-before.png differ diff --git a/docs/screenshots/keyboard-toggle/final-clear-phone200/launchertouchclearpreservesfocuscategoryandkeyboard-shown-after.png b/docs/screenshots/keyboard-toggle/final-clear-phone200/launchertouchclearpreservesfocuscategoryandkeyboard-shown-after.png new file mode 100644 index 00000000..c6fe2601 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-clear-phone200/launchertouchclearpreservesfocuscategoryandkeyboard-shown-after.png differ diff --git a/docs/screenshots/keyboard-toggle/final-clear-phone200/launchertouchclearpreservesfocuscategoryandkeyboard-shown-before.png b/docs/screenshots/keyboard-toggle/final-clear-phone200/launchertouchclearpreservesfocuscategoryandkeyboard-shown-before.png new file mode 100644 index 00000000..920bba78 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-clear-phone200/launchertouchclearpreservesfocuscategoryandkeyboard-shown-before.png differ diff --git a/docs/screenshots/keyboard-toggle/final-core-guards-tablet100/pointerclearremovescontrolledcompositionandwhitespace-emoji-cleared.png b/docs/screenshots/keyboard-toggle/final-core-guards-tablet100/pointerclearremovescontrolledcompositionandwhitespace-emoji-cleared.png new file mode 100644 index 00000000..e63b5741 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-core-guards-tablet100/pointerclearremovescontrolledcompositionandwhitespace-emoji-cleared.png differ diff --git a/docs/screenshots/keyboard-toggle/final-core-guards-tablet100/pointerclearremovescontrolledcompositionandwhitespace-emoji-composition.png b/docs/screenshots/keyboard-toggle/final-core-guards-tablet100/pointerclearremovescontrolledcompositionandwhitespace-emoji-composition.png new file mode 100644 index 00000000..6b9136c0 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-core-guards-tablet100/pointerclearremovescontrolledcompositionandwhitespace-emoji-composition.png differ diff --git a/docs/screenshots/keyboard-toggle/final-core-guards-tablet100/pointerclearremovescontrolledcompositionandwhitespace-launcher-cleared.png b/docs/screenshots/keyboard-toggle/final-core-guards-tablet100/pointerclearremovescontrolledcompositionandwhitespace-launcher-cleared.png new file mode 100644 index 00000000..e8edf622 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-core-guards-tablet100/pointerclearremovescontrolledcompositionandwhitespace-launcher-cleared.png differ diff --git a/docs/screenshots/keyboard-toggle/final-core-guards-tablet100/pointerclearremovescontrolledcompositionandwhitespace-launcher-composition.png b/docs/screenshots/keyboard-toggle/final-core-guards-tablet100/pointerclearremovescontrolledcompositionandwhitespace-launcher-composition.png new file mode 100644 index 00000000..a1affaca Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-core-guards-tablet100/pointerclearremovescontrolledcompositionandwhitespace-launcher-composition.png differ diff --git a/docs/screenshots/keyboard-toggle/final-core-guards-tablet100/retainedclearcallbacksrejectreplacedsurfacesandmenus-covered-by-menu.png b/docs/screenshots/keyboard-toggle/final-core-guards-tablet100/retainedclearcallbacksrejectreplacedsurfacesandmenus-covered-by-menu.png new file mode 100644 index 00000000..0197e64d Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-core-guards-tablet100/retainedclearcallbacksrejectreplacedsurfacesandmenus-covered-by-menu.png differ diff --git a/docs/screenshots/keyboard-toggle/final-core-guards-tablet100/retainedclearcallbacksrejectreplacedsurfacesandmenus-replacement-emoji.png b/docs/screenshots/keyboard-toggle/final-core-guards-tablet100/retainedclearcallbacksrejectreplacedsurfacesandmenus-replacement-emoji.png new file mode 100644 index 00000000..6c0e0487 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-core-guards-tablet100/retainedclearcallbacksrejectreplacedsurfacesandmenus-replacement-emoji.png differ diff --git a/docs/screenshots/keyboard-toggle/final-feedback-landscape200/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.png b/docs/screenshots/keyboard-toggle/final-feedback-landscape200/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.png new file mode 100644 index 00000000..c1f1e6d7 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-feedback-landscape200/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.png differ diff --git a/docs/screenshots/keyboard-toggle/final-feedback-landscape200/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.png b/docs/screenshots/keyboard-toggle/final-feedback-landscape200/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.png new file mode 100644 index 00000000..1d5e7849 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-feedback-landscape200/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.png differ diff --git a/docs/screenshots/keyboard-toggle/final-guards-tablet100/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-0.png b/docs/screenshots/keyboard-toggle/final-guards-tablet100/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-0.png new file mode 100644 index 00000000..e197d2f6 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-guards-tablet100/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-0.png differ diff --git a/docs/screenshots/keyboard-toggle/final-guards-tablet100/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-1.png b/docs/screenshots/keyboard-toggle/final-guards-tablet100/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-1.png new file mode 100644 index 00000000..c5d4c8e8 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-guards-tablet100/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-1.png differ diff --git a/docs/screenshots/keyboard-toggle/final-guards-tablet100/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-0.png b/docs/screenshots/keyboard-toggle/final-guards-tablet100/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-0.png new file mode 100644 index 00000000..3db5c0fa Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-guards-tablet100/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-0.png differ diff --git a/docs/screenshots/keyboard-toggle/final-guards-tablet100/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-1.png b/docs/screenshots/keyboard-toggle/final-guards-tablet100/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-1.png new file mode 100644 index 00000000..8c5ade1c Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-guards-tablet100/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-1.png differ diff --git a/docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.png b/docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.png new file mode 100644 index 00000000..1651dd2a Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.png differ diff --git a/docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.png b/docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.png new file mode 100644 index 00000000..076b0ffe Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.png differ diff --git a/docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png b/docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png new file mode 100644 index 00000000..ca75062e Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png differ diff --git a/docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png b/docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png new file mode 100644 index 00000000..1e3e851d Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png differ diff --git a/docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.png b/docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.png new file mode 100644 index 00000000..86c50296 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.png differ diff --git a/docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.png b/docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.png new file mode 100644 index 00000000..4a12b397 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.png differ diff --git a/docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.png b/docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.png new file mode 100644 index 00000000..fdc36c82 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.png differ diff --git a/docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.png b/docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.png new file mode 100644 index 00000000..eea1c6c1 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.png differ diff --git a/docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png b/docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png new file mode 100644 index 00000000..a3065e94 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png differ diff --git a/docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png b/docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png new file mode 100644 index 00000000..e6efc4de Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png differ diff --git a/docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.png b/docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.png new file mode 100644 index 00000000..de7422ad Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.png differ diff --git a/docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.png b/docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.png new file mode 100644 index 00000000..38829595 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.png differ diff --git a/docs/screenshots/keyboard-toggle/final-input-api26100/activemultilingualcompositionkeepsresultselection-active-japanese-composition.png b/docs/screenshots/keyboard-toggle/final-input-api26100/activemultilingualcompositionkeepsresultselection-active-japanese-composition.png new file mode 100644 index 00000000..658d17b7 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-input-api26100/activemultilingualcompositionkeepsresultselection-active-japanese-composition.png differ diff --git a/docs/screenshots/keyboard-toggle/final-input-phone100/activemultilingualcompositionkeepsresultselection-active-japanese-composition.png b/docs/screenshots/keyboard-toggle/final-input-phone100/activemultilingualcompositionkeepsresultselection-active-japanese-composition.png new file mode 100644 index 00000000..17ddafad Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-input-phone100/activemultilingualcompositionkeepsresultselection-active-japanese-composition.png differ diff --git a/docs/screenshots/keyboard-toggle/final-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png b/docs/screenshots/keyboard-toggle/final-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png new file mode 100644 index 00000000..cb032b80 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png differ diff --git a/docs/screenshots/keyboard-toggle/final-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png b/docs/screenshots/keyboard-toggle/final-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png new file mode 100644 index 00000000..3365f0bc Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png differ diff --git a/docs/screenshots/keyboard-toggle/final-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png b/docs/screenshots/keyboard-toggle/final-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png new file mode 100644 index 00000000..5d20759d Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png differ diff --git a/docs/screenshots/keyboard-toggle/final-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png b/docs/screenshots/keyboard-toggle/final-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png new file mode 100644 index 00000000..87a98c44 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png differ diff --git a/docs/screenshots/keyboard-toggle/final-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png b/docs/screenshots/keyboard-toggle/final-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png new file mode 100644 index 00000000..45b9f0f7 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png differ diff --git a/docs/screenshots/keyboard-toggle/final-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png b/docs/screenshots/keyboard-toggle/final-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png new file mode 100644 index 00000000..8fab8a96 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png differ diff --git a/docs/screenshots/keyboard-toggle/final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png b/docs/screenshots/keyboard-toggle/final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png new file mode 100644 index 00000000..29dfb7ea Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png differ diff --git a/docs/screenshots/keyboard-toggle/final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png b/docs/screenshots/keyboard-toggle/final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png new file mode 100644 index 00000000..61c99714 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png differ diff --git a/docs/screenshots/keyboard-toggle/final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png b/docs/screenshots/keyboard-toggle/final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png new file mode 100644 index 00000000..eaa82cbc Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png differ diff --git a/docs/screenshots/keyboard-toggle/final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png b/docs/screenshots/keyboard-toggle/final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png new file mode 100644 index 00000000..ce2a97af Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png differ diff --git a/docs/screenshots/keyboard-toggle/final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png b/docs/screenshots/keyboard-toggle/final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png new file mode 100644 index 00000000..e90cddeb Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png differ diff --git a/docs/screenshots/keyboard-toggle/final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png b/docs/screenshots/keyboard-toggle/final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png new file mode 100644 index 00000000..2e60075d Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png differ diff --git a/docs/screenshots/keyboard-toggle/final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png b/docs/screenshots/keyboard-toggle/final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png new file mode 100644 index 00000000..8b8b364d Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png differ diff --git a/docs/screenshots/keyboard-toggle/final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png b/docs/screenshots/keyboard-toggle/final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png new file mode 100644 index 00000000..8d77aa88 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png differ diff --git a/docs/screenshots/keyboard-toggle/final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png b/docs/screenshots/keyboard-toggle/final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png new file mode 100644 index 00000000..fc5445c2 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png differ diff --git a/docs/screenshots/keyboard-toggle/final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png b/docs/screenshots/keyboard-toggle/final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png new file mode 100644 index 00000000..c3d10d84 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png differ diff --git a/docs/screenshots/keyboard-toggle/final-tablet100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png b/docs/screenshots/keyboard-toggle/final-tablet100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png new file mode 100644 index 00000000..1569d011 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-tablet100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png differ diff --git a/docs/screenshots/keyboard-toggle/final-tablet100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png b/docs/screenshots/keyboard-toggle/final-tablet100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png new file mode 100644 index 00000000..eced68a4 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-tablet100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png differ diff --git a/docs/screenshots/keyboard-toggle/final-tablet100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png b/docs/screenshots/keyboard-toggle/final-tablet100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png new file mode 100644 index 00000000..e63d83fd Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-tablet100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png differ diff --git a/docs/screenshots/keyboard-toggle/final-tablet100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png b/docs/screenshots/keyboard-toggle/final-tablet100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png new file mode 100644 index 00000000..6926a640 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-tablet100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png differ diff --git a/docs/screenshots/keyboard-toggle/final-tablet100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png b/docs/screenshots/keyboard-toggle/final-tablet100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png new file mode 100644 index 00000000..3d5c7ec2 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-tablet100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png differ diff --git a/docs/screenshots/keyboard-toggle/final-tablet100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png b/docs/screenshots/keyboard-toggle/final-tablet100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png new file mode 100644 index 00000000..44877052 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-tablet100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png differ diff --git a/docs/screenshots/keyboard-toggle/final-tablet200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png b/docs/screenshots/keyboard-toggle/final-tablet200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png new file mode 100644 index 00000000..a2cc4486 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-tablet200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png differ diff --git a/docs/screenshots/keyboard-toggle/final-tablet200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png b/docs/screenshots/keyboard-toggle/final-tablet200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png new file mode 100644 index 00000000..6536c010 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-tablet200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png differ diff --git a/docs/screenshots/keyboard-toggle/final-tablet200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png b/docs/screenshots/keyboard-toggle/final-tablet200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png new file mode 100644 index 00000000..4b116a96 Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-tablet200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png differ diff --git a/docs/screenshots/keyboard-toggle/final-tablet200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png b/docs/screenshots/keyboard-toggle/final-tablet200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png new file mode 100644 index 00000000..e5d84ced Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-tablet200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png differ diff --git a/docs/screenshots/keyboard-toggle/final-tablet200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png b/docs/screenshots/keyboard-toggle/final-tablet200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png new file mode 100644 index 00000000..6a66d54f Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-tablet200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png differ diff --git a/docs/screenshots/keyboard-toggle/final-tablet200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png b/docs/screenshots/keyboard-toggle/final-tablet200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png new file mode 100644 index 00000000..dcf4081c Binary files /dev/null and b/docs/screenshots/keyboard-toggle/final-tablet200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png differ diff --git a/docs/validation/keyboard-toggle/checkpoint.json b/docs/validation/keyboard-toggle/checkpoint.json new file mode 100644 index 00000000..37ed1140 --- /dev/null +++ b/docs/validation/keyboard-toggle/checkpoint.json @@ -0,0 +1,5070 @@ +{ + "schema_version": 1, + "source_commit": "69bd578d528c42296ef4a10fa24d675a8f635408", + "app_source": "f30bebd6c414307a5b5fe690d80dfffe5fc58ccc", + "test_source": "69bd578d528c42296ef4a10fa24d675a8f635408", + "bindings": [ + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape100/tests.log", + "original_sha256": "7accde02fe358860469f49d1f956c566648c29cb1a538f96c786ffe5b1401cb4", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/tests.log", + "public_sha256": "7accde02fe358860469f49d1f956c566648c29cb1a538f96c786ffe5b1401cb4", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape100-outer.log", + "original_sha256": "667b003fda8db95bd8593472942ecfe06c0407a1b00e5334b28cac2dbc4d6a86", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/outer.log", + "public_sha256": "f310c0010c77cc49868ff39b9a970280621bdbf2c18e26a31b30fd347d476a09", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "b9a115f99dde7ae29b313b655c4ce490f4544ebdca23f1d1119c3ba8f963b55c", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "b9a115f99dde7ae29b313b655c4ce490f4544ebdca23f1d1119c3ba8f963b55c", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "573b25cbc8263dccaf1962f3945cd197d59f0d330e6fd028a9ec297f92773049", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "573b25cbc8263dccaf1962f3945cd197d59f0d330e6fd028a9ec297f92773049", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "original_sha256": "cc04994989f6967a4974aa70d06db2f74139022b4426656b55726084c28ac497", + "public": "docs/screenshots/keyboard-toggle/baseline-old-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "public_sha256": "cc04994989f6967a4974aa70d06db2f74139022b4426656b55726084c28ac497", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "original_sha256": "6d2eff290e3fa5412bffe578efd48be3b35f51f21e3a0c5eb52f734814a56fec", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "public_sha256": "6d2eff290e3fa5412bffe578efd48be3b35f51f21e3a0c5eb52f734814a56fec", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "original_sha256": "1813955009e7148a125948107b5b471d1cd9fe7ff2334928922aaf9c465b8f39", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "public_sha256": "1813955009e7148a125948107b5b471d1cd9fe7ff2334928922aaf9c465b8f39", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "original_sha256": "d9bf0468c115576e4c655634c7d4993648cebb4a17852b037d76f0c54b7873ae", + "public": "docs/screenshots/keyboard-toggle/baseline-old-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "public_sha256": "d9bf0468c115576e4c655634c7d4993648cebb4a17852b037d76f0c54b7873ae", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "original_sha256": "05fe6f2353e267903463362f06b3c463e712c81fd4b4df849f6913e0990dc61c", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "public_sha256": "05fe6f2353e267903463362f06b3c463e712c81fd4b4df849f6913e0990dc61c", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "original_sha256": "b2050027d7e41ce99f99b847788d96978c631fa132d7c2746ca0de8050e50ca4", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "public_sha256": "b2050027d7e41ce99f99b847788d96978c631fa132d7c2746ca0de8050e50ca4", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape200/tests.log", + "original_sha256": "604de99927639df6bd4aced3fc0c00dfadf766fa93cd70436580f0d6852c7ac3", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/tests.log", + "public_sha256": "604de99927639df6bd4aced3fc0c00dfadf766fa93cd70436580f0d6852c7ac3", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape200-outer.log", + "original_sha256": "667b003fda8db95bd8593472942ecfe06c0407a1b00e5334b28cac2dbc4d6a86", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/outer.log", + "public_sha256": "f310c0010c77cc49868ff39b9a970280621bdbf2c18e26a31b30fd347d476a09", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "294146063f415e6656571427e2f0f2af9204bf6acef679c04f8c5e49388b55e6", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "294146063f415e6656571427e2f0f2af9204bf6acef679c04f8c5e49388b55e6", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "729320903eb68e5598054816520a960f7bd5dfe36c3bfbfba69473ca2c4c750e", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "729320903eb68e5598054816520a960f7bd5dfe36c3bfbfba69473ca2c4c750e", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "original_sha256": "374311ce389a4ad14ab7103680002a087f5b1a6ddc115f1e0d2dc00ea0a7485f", + "public": "docs/screenshots/keyboard-toggle/baseline-old-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "public_sha256": "374311ce389a4ad14ab7103680002a087f5b1a6ddc115f1e0d2dc00ea0a7485f", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "original_sha256": "975b704f979a1b0e1d7880ce1306b36bf4635e09514edc260c273e0570f99ed6", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "public_sha256": "975b704f979a1b0e1d7880ce1306b36bf4635e09514edc260c273e0570f99ed6", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "original_sha256": "ece83da11ff1e600cfe5f07186c5251a1060df6f741c839e0c6e9716a3929fc3", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "public_sha256": "ece83da11ff1e600cfe5f07186c5251a1060df6f741c839e0c6e9716a3929fc3", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200/tests.log", + "original_sha256": "ab1658c1e0b729fb210492b13a9bae1ae1c2912cf8d56e74a4cf16efdfb4dc47", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/tests.log", + "public_sha256": "ab1658c1e0b729fb210492b13a9bae1ae1c2912cf8d56e74a4cf16efdfb4dc47", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200-outer.log", + "original_sha256": "667b003fda8db95bd8593472942ecfe06c0407a1b00e5334b28cac2dbc4d6a86", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/outer.log", + "public_sha256": "f310c0010c77cc49868ff39b9a970280621bdbf2c18e26a31b30fd347d476a09", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "3fb46039ec47f89270b1c0972ec95b4b1c5f8252aea186f34b515872318c529c", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "3fb46039ec47f89270b1c0972ec95b4b1c5f8252aea186f34b515872318c529c", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "55b861597acea563d4881dcf94294c13f7aee4f759f181473e355bd113029545", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "55b861597acea563d4881dcf94294c13f7aee4f759f181473e355bd113029545", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "original_sha256": "abcf3cb8a340b85214f51795fced7901fb14b237d0c44b58387d8a2c4cbd07ac", + "public": "docs/screenshots/keyboard-toggle/baseline-v3-old-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "public_sha256": "abcf3cb8a340b85214f51795fced7901fb14b237d0c44b58387d8a2c4cbd07ac", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "original_sha256": "02aec88e136336bc433d648d3bb3719b935ad6eb9a9f666085806736004321d0", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "public_sha256": "02aec88e136336bc433d648d3bb3719b935ad6eb9a9f666085806736004321d0", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "original_sha256": "03e206efabc8c009a17acc85d24b4d16faa74934e967dd92d18094ab3fb4f772", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "public_sha256": "03e206efabc8c009a17acc85d24b4d16faa74934e967dd92d18094ab3fb4f772", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "original_sha256": "74a618f3947baeb8c15d241b9c9e157f60e72a306ca1bb68109c860eadc627c5", + "public": "docs/screenshots/keyboard-toggle/baseline-v3-old-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "public_sha256": "74a618f3947baeb8c15d241b9c9e157f60e72a306ca1bb68109c860eadc627c5", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "original_sha256": "1f87870a930e9350e9a0d1fbfe68177d3f1f43d2bd7c8a39dd4964e5bbc8710f", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "public_sha256": "1f87870a930e9350e9a0d1fbfe68177d3f1f43d2bd7c8a39dd4964e5bbc8710f", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "original_sha256": "ece83da11ff1e600cfe5f07186c5251a1060df6f741c839e0c6e9716a3929fc3", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "public_sha256": "ece83da11ff1e600cfe5f07186c5251a1060df6f741c839e0c6e9716a3929fc3", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100/tests.log", + "original_sha256": "2ff6d6ade53d714641ba1ff5af47b60886bae7ca0798273419c4e58a88cc3622", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/tests.log", + "public_sha256": "2ff6d6ade53d714641ba1ff5af47b60886bae7ca0798273419c4e58a88cc3622", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100-outer.log", + "original_sha256": "667b003fda8db95bd8593472942ecfe06c0407a1b00e5334b28cac2dbc4d6a86", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/outer.log", + "public_sha256": "f310c0010c77cc49868ff39b9a970280621bdbf2c18e26a31b30fd347d476a09", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "2cad14379782102b85a376eef0f3112f13c780eefd10ad4dcd15fca4c24c4cad", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "2cad14379782102b85a376eef0f3112f13c780eefd10ad4dcd15fca4c24c4cad", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "cd8e6159eaa739cf0c6973350d36b4479016d94d390007626af0385fd679a42f", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "cd8e6159eaa739cf0c6973350d36b4479016d94d390007626af0385fd679a42f", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "original_sha256": "51909b2c90cdd4ee1eb432ffda148abc1b04bdb691245531cc19fc28612ad302", + "public": "docs/screenshots/keyboard-toggle/baseline-v3-old-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "public_sha256": "51909b2c90cdd4ee1eb432ffda148abc1b04bdb691245531cc19fc28612ad302", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "original_sha256": "b885654f67d10039ed78970d9459661795a3ef8afc64e2b8909a98260566e486", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "public_sha256": "b885654f67d10039ed78970d9459661795a3ef8afc64e2b8909a98260566e486", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "original_sha256": "1813955009e7148a125948107b5b471d1cd9fe7ff2334928922aaf9c465b8f39", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "public_sha256": "1813955009e7148a125948107b5b471d1cd9fe7ff2334928922aaf9c465b8f39", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "original_sha256": "735aca8eeb3b66dc168247fc2179ad01a8e4e94865ad43ad4dfd144e309ab45e", + "public": "docs/screenshots/keyboard-toggle/baseline-v3-old-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "public_sha256": "735aca8eeb3b66dc168247fc2179ad01a8e4e94865ad43ad4dfd144e309ab45e", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "original_sha256": "068805831a0a433df2bbd4cfc8d04754e3cce5a325d9e3e3aa9d80db1e74ccbe", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "public_sha256": "068805831a0a433df2bbd4cfc8d04754e3cce5a325d9e3e3aa9d80db1e74ccbe", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "original_sha256": "b2050027d7e41ce99f99b847788d96978c631fa132d7c2746ca0de8050e50ca4", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "public_sha256": "b2050027d7e41ce99f99b847788d96978c631fa132d7c2746ca0de8050e50ca4", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/tests.log", + "original_sha256": "c0b1e2c6734d54bd4147fa10af4af1f233782394b94720b9864cb3e41c78f208", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-landscape200/tests.log", + "public_sha256": "c0b1e2c6734d54bd4147fa10af4af1f233782394b94720b9864cb3e41c78f208", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200-outer.log", + "original_sha256": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-landscape200/outer.log", + "public_sha256": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "6df0e02b2b57bd06b965ccda10c44cdaff97c52d3ab361a74f83b3f0b02906b1", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "6df0e02b2b57bd06b965ccda10c44cdaff97c52d3ab361a74f83b3f0b02906b1", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "ecba92601af22a39d80eac49d76953e214ae8b6ed4936acc52913c8dbec2169c", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "ecba92601af22a39d80eac49d76953e214ae8b6ed4936acc52913c8dbec2169c", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "original_sha256": "39be7639b365e6393083daa323bc4e8eea74b453217ae359396abff6a3443b96", + "public": "docs/screenshots/keyboard-toggle/candidate-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "public_sha256": "39be7639b365e6393083daa323bc4e8eea74b453217ae359396abff6a3443b96", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "original_sha256": "342663802aaae0551cc1bc46f76b534237bc5403cfd5eab4576f962e0cf54b40", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "public_sha256": "342663802aaae0551cc1bc46f76b534237bc5403cfd5eab4576f962e0cf54b40", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "original_sha256": "25eaf8e602a6b519869334b56598c27ac9454f8ea7ab9a05233f41327bac9b2c", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "public_sha256": "25eaf8e602a6b519869334b56598c27ac9454f8ea7ab9a05233f41327bac9b2c", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "original_sha256": "3756d502f9df21f38403973e7f9cbdaab3307f84a47f3086e836576601a3acaa", + "public": "docs/screenshots/keyboard-toggle/candidate-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "public_sha256": "3756d502f9df21f38403973e7f9cbdaab3307f84a47f3086e836576601a3acaa", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "original_sha256": "722cef2872bb2b80799fc33640f94e2e15ee3903e25361163014e0aee4324581", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "public_sha256": "722cef2872bb2b80799fc33640f94e2e15ee3903e25361163014e0aee4324581", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "original_sha256": "1181267a2aebbdf238b8d055342c6e277e328cb3c92b7b609a5f883d6abc1ceb", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "public_sha256": "1181267a2aebbdf238b8d055342c6e277e328cb3c92b7b609a5f883d6abc1ceb", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/tests.log", + "original_sha256": "100b4ca7027d0e3cb813b172b88d65a8bbc69012d41a2d46ec1a838bd072dfa6", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/tests.log", + "public_sha256": "100b4ca7027d0e3cb813b172b88d65a8bbc69012d41a2d46ec1a838bd072dfa6", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100-outer.log", + "original_sha256": "90dc787cf98929d3597ff6ca14a09b8fcab4e3fa84217893e5d83c7f7942a891", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/outer.log", + "public_sha256": "28b91a72ff7543efbcd213dd66722b057a7a2c4e416fcb1c9b9d8a1978bf56e5", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "original_sha256": "08ff6a5a9ee267157e82bd2dc04b38c8cf5b67e40ae6228e471a3f19027f3ab8", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "public_sha256": "08ff6a5a9ee267157e82bd2dc04b38c8cf5b67e40ae6228e471a3f19027f3ab8", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "original_sha256": "bacbb97b3373aafa9cf223c6080197ee96ba9f60b20e4362ba49ef258b04f312", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "public_sha256": "bacbb97b3373aafa9cf223c6080197ee96ba9f60b20e4362ba49ef258b04f312", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "original_sha256": "cdd9e613420ea1bb81e667230705b6cf6b251439e11a3579ab26dd5bbb66073d", + "public": "docs/screenshots/keyboard-toggle/candidate-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "public_sha256": "cdd9e613420ea1bb81e667230705b6cf6b251439e11a3579ab26dd5bbb66073d", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "original_sha256": "ebdb544eae719f91af063a1a6d0494e36b1eed51498c578a4347e654344902dd", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "public_sha256": "ebdb544eae719f91af063a1a6d0494e36b1eed51498c578a4347e654344902dd", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "original_sha256": "11e3c14df5a65af4d01fec89eaad41aac0951525cd8bb618f7e622a5b2f701d0", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "public_sha256": "11e3c14df5a65af4d01fec89eaad41aac0951525cd8bb618f7e622a5b2f701d0", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "original_sha256": "f139e4b14922614750acb8eb0b8702409823bac1833ca629587df297282c1e61", + "public": "docs/screenshots/keyboard-toggle/candidate-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "public_sha256": "f139e4b14922614750acb8eb0b8702409823bac1833ca629587df297282c1e61", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "original_sha256": "2f673828c3776ffd2d6ee034bea0ab8d046ef1a343c63562af560127475b6dfe", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "public_sha256": "2f673828c3776ffd2d6ee034bea0ab8d046ef1a343c63562af560127475b6dfe", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "original_sha256": "cfaa0717cb125ece3527ef23021d187d8582f01abacb0b059ac9c810f9f811b6", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "public_sha256": "cfaa0717cb125ece3527ef23021d187d8582f01abacb0b059ac9c810f9f811b6", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/tests.log", + "original_sha256": "d42a949f17fce884bd2606c7e996b3c45b9bde48533c57631e93441ed9820772", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/tests.log", + "public_sha256": "d42a949f17fce884bd2606c7e996b3c45b9bde48533c57631e93441ed9820772", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100-outer.log", + "original_sha256": "90dc787cf98929d3597ff6ca14a09b8fcab4e3fa84217893e5d83c7f7942a891", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/outer.log", + "public_sha256": "28b91a72ff7543efbcd213dd66722b057a7a2c4e416fcb1c9b9d8a1978bf56e5", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "original_sha256": "ef50ab82456c458a2b4319ac97180184a7762ed2bd8f7acabae8ee347df7ea69", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "public_sha256": "ef50ab82456c458a2b4319ac97180184a7762ed2bd8f7acabae8ee347df7ea69", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "original_sha256": "05a607d2f9f5c989f5c9c85a91729394f362a4c9f4e9b2c096546c8ba5096703", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "public_sha256": "05a607d2f9f5c989f5c9c85a91729394f362a4c9f4e9b2c096546c8ba5096703", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "original_sha256": "2cad7b7fa0b00081325cfb98b4cab4f2743320f3171105245bef1075ec70c69d", + "public": "docs/screenshots/keyboard-toggle/candidate-v2-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "public_sha256": "2cad7b7fa0b00081325cfb98b4cab4f2743320f3171105245bef1075ec70c69d", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "original_sha256": "f3d8d7f8e8ba1d7641e36a338a1118e7a2dc69a93363fe0f40df588db4df38e6", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "public_sha256": "f3d8d7f8e8ba1d7641e36a338a1118e7a2dc69a93363fe0f40df588db4df38e6", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "original_sha256": "d085baee4ca4de246b00a3c5f7e0edb9d28aa1295260947d3d53eea26902106e", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "public_sha256": "d085baee4ca4de246b00a3c5f7e0edb9d28aa1295260947d3d53eea26902106e", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png", + "original_sha256": "fe272866d9f068050cf68e082aeb6d185f4e20d79c2ff515dfc9f66731ba7f3f", + "public": "docs/screenshots/keyboard-toggle/candidate-v2-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png", + "public_sha256": "fe272866d9f068050cf68e082aeb6d185f4e20d79c2ff515dfc9f66731ba7f3f", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml", + "original_sha256": "eb92d4960d48917094b57a11aff545c5c97a7f888f99db820b277404eac8ef0d", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml", + "public_sha256": "eb92d4960d48917094b57a11aff545c5c97a7f888f99db820b277404eac8ef0d", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json", + "original_sha256": "3718e28c22fba4146905c4fde37c5b974b43bd4f5d63d37f5305c9a60a4f19a3", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json", + "public_sha256": "3718e28c22fba4146905c4fde37c5b974b43bd4f5d63d37f5305c9a60a4f19a3", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "original_sha256": "d3af3205ded5781b0c6e669c7b47ccd06b9662a0c69328a2bc6650309122d645", + "public": "docs/screenshots/keyboard-toggle/candidate-v2-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "public_sha256": "d3af3205ded5781b0c6e669c7b47ccd06b9662a0c69328a2bc6650309122d645", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "original_sha256": "897e91a27e1f486680fc82ed11da29bf3a072d8088908291210fc3e271adfc19", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "public_sha256": "897e91a27e1f486680fc82ed11da29bf3a072d8088908291210fc3e271adfc19", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "original_sha256": "09429d975cd9dbdd78e0feb6a418d244f7f146b12609c8f541b811cfa8f00735", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "public_sha256": "09429d975cd9dbdd78e0feb6a418d244f7f146b12609c8f541b811cfa8f00735", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png", + "original_sha256": "3802d473ae4c4f95bb1a477f099c5171b64a27ccec445876c4388feaedfd3a98", + "public": "docs/screenshots/keyboard-toggle/candidate-v2-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png", + "public_sha256": "3802d473ae4c4f95bb1a477f099c5171b64a27ccec445876c4388feaedfd3a98", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml", + "original_sha256": "db535c25cd4ca83ab662a646813958b1eebee56a27e04a52e801184095616e2a", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml", + "public_sha256": "db535c25cd4ca83ab662a646813958b1eebee56a27e04a52e801184095616e2a", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json", + "original_sha256": "9dec30b9f56a16e3d7b36d303d13fcf5f7effe1b673f8cc479be52daae2659e1", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json", + "public_sha256": "9dec30b9f56a16e3d7b36d303d13fcf5f7effe1b673f8cc479be52daae2659e1", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/tests.log", + "original_sha256": "65243600d473ed908e32986e17a9a98b8379eb6ec394da7733445aae184b3bf9", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/tests.log", + "public_sha256": "65243600d473ed908e32986e17a9a98b8379eb6ec394da7733445aae184b3bf9", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100-outer.log", + "original_sha256": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/outer.log", + "public_sha256": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "original_sha256": "7ec3a009d2c9bb73d64b2ea9aef316c7ab40e0aa7ba4abf5aeadf29811f3e234", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "public_sha256": "7ec3a009d2c9bb73d64b2ea9aef316c7ab40e0aa7ba4abf5aeadf29811f3e234", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "original_sha256": "62af77ff5c51ed5f7fe88c7dcf06660e7210d394843e8d9efd7210879d2a5ddb", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "public_sha256": "62af77ff5c51ed5f7fe88c7dcf06660e7210d394843e8d9efd7210879d2a5ddb", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "original_sha256": "b71daa468bee932442e00675e1a8d2add3e50820a044336bfd6fec3bfcae43d4", + "public": "docs/screenshots/keyboard-toggle/candidate-v3-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "public_sha256": "b71daa468bee932442e00675e1a8d2add3e50820a044336bfd6fec3bfcae43d4", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "original_sha256": "96fa92754c736906c91af3ced52af345869197dd6f66fcf2516a4c8e3760471c", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "public_sha256": "96fa92754c736906c91af3ced52af345869197dd6f66fcf2516a4c8e3760471c", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "original_sha256": "49de88fa56e720b346da4841e06a54352fb6c77a7aa3440cf73a360cdebd9d1e", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "public_sha256": "49de88fa56e720b346da4841e06a54352fb6c77a7aa3440cf73a360cdebd9d1e", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png", + "original_sha256": "e20dd394841b824fa3318e3bedf3ff5ca58fa249d77a9923ae6137d18335b9bb", + "public": "docs/screenshots/keyboard-toggle/candidate-v3-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png", + "public_sha256": "e20dd394841b824fa3318e3bedf3ff5ca58fa249d77a9923ae6137d18335b9bb", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml", + "original_sha256": "d1e4c7a08b333dc866e333d10189a0fcb6f871a616e65f889b3127e7292361ef", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml", + "public_sha256": "d1e4c7a08b333dc866e333d10189a0fcb6f871a616e65f889b3127e7292361ef", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json", + "original_sha256": "3723d6f36da6c7ed43ffdb5dcad16f37b86370d58c1e5f70bfdf8d2c6d5c84d7", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json", + "public_sha256": "3723d6f36da6c7ed43ffdb5dcad16f37b86370d58c1e5f70bfdf8d2c6d5c84d7", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "original_sha256": "135ebb78ad4e734cddf8652ce26c7f9e326c6590be9f3950dd60234d55f7cb3d", + "public": "docs/screenshots/keyboard-toggle/candidate-v3-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "public_sha256": "135ebb78ad4e734cddf8652ce26c7f9e326c6590be9f3950dd60234d55f7cb3d", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "original_sha256": "62549f33870545ff887d2a594b5968c96258d2fe550b9e77447eed1c84bbef70", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "public_sha256": "62549f33870545ff887d2a594b5968c96258d2fe550b9e77447eed1c84bbef70", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "original_sha256": "26a272e81174509a59872312e6fc23fef804de86447fd1b6b74b4989ccdb4903", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "public_sha256": "26a272e81174509a59872312e6fc23fef804de86447fd1b6b74b4989ccdb4903", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png", + "original_sha256": "47ed3dc7b27288ede18f83496ba39029842e0dd37c2410caa7380f4347f8b655", + "public": "docs/screenshots/keyboard-toggle/candidate-v3-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png", + "public_sha256": "47ed3dc7b27288ede18f83496ba39029842e0dd37c2410caa7380f4347f8b655", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml", + "original_sha256": "b268918416b34eb427d0472021fa76e23dbeb873a34359464aaa68eda11cf719", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml", + "public_sha256": "b268918416b34eb427d0472021fa76e23dbeb873a34359464aaa68eda11cf719", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json", + "original_sha256": "47eb6d88c2228839ce2e5509435b112678f2e083b981a6506fd2a68b690fcb11", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json", + "public_sha256": "47eb6d88c2228839ce2e5509435b112678f2e083b981a6506fd2a68b690fcb11", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/tests.log", + "original_sha256": "f77a34460e1c7340949013e930f4301b914485fc97b54dfcb128f2ba2304bee3", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape200/tests.log", + "public_sha256": "f77a34460e1c7340949013e930f4301b914485fc97b54dfcb128f2ba2304bee3", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200-outer.log", + "original_sha256": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape200/outer.log", + "public_sha256": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "6df0e02b2b57bd06b965ccda10c44cdaff97c52d3ab361a74f83b3f0b02906b1", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "6df0e02b2b57bd06b965ccda10c44cdaff97c52d3ab361a74f83b3f0b02906b1", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "ecba92601af22a39d80eac49d76953e214ae8b6ed4936acc52913c8dbec2169c", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "ecba92601af22a39d80eac49d76953e214ae8b6ed4936acc52913c8dbec2169c", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100/tests.log", + "original_sha256": "206114769068faff9b5390e35b114562484c55ea027271417e21371ae17213da", + "public": "docs/validation/keyboard-toggle/cohorts/control-proxy-v3-tablet100/tests.log", + "public_sha256": "206114769068faff9b5390e35b114562484c55ea027271417e21371ae17213da", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100-outer.log", + "original_sha256": "90dc787cf98929d3597ff6ca14a09b8fcab4e3fa84217893e5d83c7f7942a891", + "public": "docs/validation/keyboard-toggle/cohorts/control-proxy-v3-tablet100/outer.log", + "public_sha256": "28b91a72ff7543efbcd213dd66722b057a7a2c4e416fcb1c9b9d8a1978bf56e5", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "original_sha256": "d4db51f5fa16832354e68ebb7f26099159aec13486e4c57596acaccdecf35899", + "public": "docs/validation/keyboard-toggle/cohorts/control-proxy-v3-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "public_sha256": "d4db51f5fa16832354e68ebb7f26099159aec13486e4c57596acaccdecf35899", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "original_sha256": "82fe8b90cae7ab2ce65a0fbce90086435529cd57486923ff3ae747006a5e1e8c", + "public": "docs/validation/keyboard-toggle/cohorts/control-proxy-v3-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "public_sha256": "82fe8b90cae7ab2ce65a0fbce90086435529cd57486923ff3ae747006a5e1e8c", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape200/tests.log", + "original_sha256": "24832c30c722c1771909176081165c19f5179289e8b9e2297d3c4d82d4d1b88b", + "public": "docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape200/tests.log", + "public_sha256": "24832c30c722c1771909176081165c19f5179289e8b9e2297d3c4d82d4d1b88b", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape200-outer.log", + "original_sha256": "90dc787cf98929d3597ff6ca14a09b8fcab4e3fa84217893e5d83c7f7942a891", + "public": "docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape200/outer.log", + "public_sha256": "28b91a72ff7543efbcd213dd66722b057a7a2c4e416fcb1c9b9d8a1978bf56e5", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "3fb46039ec47f89270b1c0972ec95b4b1c5f8252aea186f34b515872318c529c", + "public": "docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "3fb46039ec47f89270b1c0972ec95b4b1c5f8252aea186f34b515872318c529c", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "55b861597acea563d4881dcf94294c13f7aee4f759f181473e355bd113029545", + "public": "docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "55b861597acea563d4881dcf94294c13f7aee4f759f181473e355bd113029545", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape100/tests.log", + "original_sha256": "541e4a67c20a3570d257459d0fd8bca476d9aefc513d3fa32a9e5103eb1e1415", + "public": "docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape100/tests.log", + "public_sha256": "541e4a67c20a3570d257459d0fd8bca476d9aefc513d3fa32a9e5103eb1e1415", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape100-outer.log", + "original_sha256": "90dc787cf98929d3597ff6ca14a09b8fcab4e3fa84217893e5d83c7f7942a891", + "public": "docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape100/outer.log", + "public_sha256": "28b91a72ff7543efbcd213dd66722b057a7a2c4e416fcb1c9b9d8a1978bf56e5", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "2cad14379782102b85a376eef0f3112f13c780eefd10ad4dcd15fca4c24c4cad", + "public": "docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "2cad14379782102b85a376eef0f3112f13c780eefd10ad4dcd15fca4c24c4cad", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "cd8e6159eaa739cf0c6973350d36b4479016d94d390007626af0385fd679a42f", + "public": "docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "cd8e6159eaa739cf0c6973350d36b4479016d94d390007626af0385fd679a42f", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/tests.log", + "original_sha256": "d210b1658c1ad9ac0dfdb99cb2852b6fb39df6750c50f713c5e3386667f11136", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape100/tests.log", + "public_sha256": "d210b1658c1ad9ac0dfdb99cb2852b6fb39df6750c50f713c5e3386667f11136", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100-outer.log", + "original_sha256": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape100/outer.log", + "public_sha256": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "7987e463b650cd9a1e347151d003cce87251478cc2ca80b3b9c15ee2f6f1572d", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "7987e463b650cd9a1e347151d003cce87251478cc2ca80b3b9c15ee2f6f1572d", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "0117b62a630b1a45b51dcfa8ef15beccc9b429dc187c0beab943d781eff4fd40", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "0117b62a630b1a45b51dcfa8ef15beccc9b429dc187c0beab943d781eff4fd40", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/tests.log", + "original_sha256": "833aec17d977228cd87b138da58f55d5c55bf4b36b2ee9f050cdb87c777fadfd", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet100/tests.log", + "public_sha256": "833aec17d977228cd87b138da58f55d5c55bf4b36b2ee9f050cdb87c777fadfd", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100-outer.log", + "original_sha256": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet100/outer.log", + "public_sha256": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "e1d1ac0d924c19835708fcc59373fb821eeceb3b4b959c1209a8556f516da3cf", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "e1d1ac0d924c19835708fcc59373fb821eeceb3b4b959c1209a8556f516da3cf", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "fbe11d4898b097e66b35a5ed0d2cd27da2bf336695171f47ef3e2c90e3a28e7d", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "fbe11d4898b097e66b35a5ed0d2cd27da2bf336695171f47ef3e2c90e3a28e7d", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/tests.log", + "original_sha256": "b63381cb014642171c826c65ed490fb213ab5aff05bf5fa7455ce08c400c61ca", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet200/tests.log", + "public_sha256": "b63381cb014642171c826c65ed490fb213ab5aff05bf5fa7455ce08c400c61ca", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200-outer.log", + "original_sha256": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet200/outer.log", + "public_sha256": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "bb6e17fc39462fdf7b037825d3a32967fa59f7388c434aa56c79b06a6c84697e", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "bb6e17fc39462fdf7b037825d3a32967fa59f7388c434aa56c79b06a6c84697e", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "ddfa8cc95708e7886fd94d3cc6840342ddbe827a73af14aa7010ae76fba382de", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "ddfa8cc95708e7886fd94d3cc6840342ddbe827a73af14aa7010ae76fba382de", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/tests.log", + "original_sha256": "84ee1367e2fd1b2f9acecee22c59ac8385a67db361b36298fead1550d059b3dd", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-feedback-landscape100/tests.log", + "public_sha256": "84ee1367e2fd1b2f9acecee22c59ac8385a67db361b36298fead1550d059b3dd", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100-outer.log", + "original_sha256": "90dc787cf98929d3597ff6ca14a09b8fcab4e3fa84217893e5d83c7f7942a891", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-feedback-landscape100/outer.log", + "public_sha256": "28b91a72ff7543efbcd213dd66722b057a7a2c4e416fcb1c9b9d8a1978bf56e5", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json", + "original_sha256": "e517efab9a25e3b8270063afec359a3da42acbb75bf24cb6987681c9d1e642ff", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json", + "public_sha256": "e517efab9a25e3b8270063afec359a3da42acbb75bf24cb6987681c9d1e642ff", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json", + "original_sha256": "b1094e8183dd98165eea9ff81332438a91f5efe97ecbc913fcf7e776f128ed9d", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json", + "public_sha256": "b1094e8183dd98165eea9ff81332438a91f5efe97ecbc913fcf7e776f128ed9d", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-old/tests.log", + "original_sha256": "0991766bf3d4ae686d70dc78bd98d25c6422c49e733be640bca50afa70415691", + "public": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/tests.log", + "public_sha256": "0991766bf3d4ae686d70dc78bd98d25c6422c49e733be640bca50afa70415691", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-old-outer.log", + "original_sha256": "ce1c9212be07925c54595d2975e5be73ea7558db8b08b0e94def64071b611169", + "public": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/outer.log", + "public_sha256": "68f220b258e1a259c82c06d75294a59b4951f85d09bbd5e8a8c353b1cae9294d", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-case.json", + "original_sha256": "fee4474be8e691a56ebc0e87bd452eeef9f556d21779f345cc4ca52642fde7ca", + "public": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-case.json", + "public_sha256": "fee4474be8e691a56ebc0e87bd452eeef9f556d21779f345cc4ca52642fde7ca", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.png", + "original_sha256": "fbc6d89855fcff9d69cc333121fceb9e3d39e64dc1cedea5a412a44ec0d54190", + "public": "docs/screenshots/keyboard-toggle/back-diagnostic-old/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.png", + "public_sha256": "fbc6d89855fcff9d69cc333121fceb9e3d39e64dc1cedea5a412a44ec0d54190", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.xml", + "original_sha256": "514893bdf6891104ac3bb0729f2b704358fdfdda1d95a0640c86db80f120b38d", + "public": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.xml", + "public_sha256": "514893bdf6891104ac3bb0729f2b704358fdfdda1d95a0640c86db80f120b38d", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after-frame.json", + "original_sha256": "3d9890e65b14c452a7bb84a325cbb71d2e0793933809209715d8a95e74ba860b", + "public": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after-frame.json", + "public_sha256": "3d9890e65b14c452a7bb84a325cbb71d2e0793933809209715d8a95e74ba860b", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.png", + "original_sha256": "b39db1c786e6e7c1bcca8205056dc70ae2df1843e245c1b7990ee8578a64e58e", + "public": "docs/screenshots/keyboard-toggle/back-diagnostic-old/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.png", + "public_sha256": "b39db1c786e6e7c1bcca8205056dc70ae2df1843e245c1b7990ee8578a64e58e", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.xml", + "original_sha256": "10034d48eeb1347070ef7ec2311389874059d38150c7e258cce6dc479633e274", + "public": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.xml", + "public_sha256": "10034d48eeb1347070ef7ec2311389874059d38150c7e258cce6dc479633e274", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu-frame.json", + "original_sha256": "1a8b98daf5897621328ff4d246f77ba5f1352eaee3888c215f265a1813e5e9a2", + "public": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu-frame.json", + "public_sha256": "1a8b98daf5897621328ff4d246f77ba5f1352eaee3888c215f265a1813e5e9a2", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.png", + "original_sha256": "ad377de731e11c65b682b474f08b0aef9fb70a89977d900ac7acfff63f1ee7df", + "public": "docs/screenshots/keyboard-toggle/back-diagnostic-old/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.png", + "public_sha256": "ad377de731e11c65b682b474f08b0aef9fb70a89977d900ac7acfff63f1ee7df", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.xml", + "original_sha256": "10b5f5c022e6d3927e822441d5cdbaf1d5a9136fafd49122428427ed150ce130", + "public": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.xml", + "public_sha256": "10b5f5c022e6d3927e822441d5cdbaf1d5a9136fafd49122428427ed150ce130", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu-frame.json", + "original_sha256": "7756ba0720372b4760a77b9e8152fd8046384b4c35579a1fdc540915faf566dd", + "public": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu-frame.json", + "public_sha256": "7756ba0720372b4760a77b9e8152fd8046384b4c35579a1fdc540915faf566dd", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-current/tests.log", + "original_sha256": "c306b50cdd3f99baa178e63098933df9532d2e9ca9f8af366b6c025ed2a90e49", + "public": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/tests.log", + "public_sha256": "c306b50cdd3f99baa178e63098933df9532d2e9ca9f8af366b6c025ed2a90e49", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-current-outer.log", + "original_sha256": "ce1c9212be07925c54595d2975e5be73ea7558db8b08b0e94def64071b611169", + "public": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/outer.log", + "public_sha256": "68f220b258e1a259c82c06d75294a59b4951f85d09bbd5e8a8c353b1cae9294d", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-case.json", + "original_sha256": "fee4474be8e691a56ebc0e87bd452eeef9f556d21779f345cc4ca52642fde7ca", + "public": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-case.json", + "public_sha256": "fee4474be8e691a56ebc0e87bd452eeef9f556d21779f345cc4ca52642fde7ca", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.png", + "original_sha256": "3a0600c45e0ff73b0c84d7194ca061e7f77683c1cce42b5ec5112fdd16a633a6", + "public": "docs/screenshots/keyboard-toggle/back-diagnostic-current/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.png", + "public_sha256": "3a0600c45e0ff73b0c84d7194ca061e7f77683c1cce42b5ec5112fdd16a633a6", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.xml", + "original_sha256": "6971b4d3bd36f6cef938e79b9689165a2bfc9df7d742b50603511cf489b8d3f2", + "public": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.xml", + "public_sha256": "6971b4d3bd36f6cef938e79b9689165a2bfc9df7d742b50603511cf489b8d3f2", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after-frame.json", + "original_sha256": "3d9890e65b14c452a7bb84a325cbb71d2e0793933809209715d8a95e74ba860b", + "public": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after-frame.json", + "public_sha256": "3d9890e65b14c452a7bb84a325cbb71d2e0793933809209715d8a95e74ba860b", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.png", + "original_sha256": "15fb25e6bd90b7e3c3d2922a53befab40bf7fcacd41a6f596f2b70b04e1b8ff2", + "public": "docs/screenshots/keyboard-toggle/back-diagnostic-current/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.png", + "public_sha256": "15fb25e6bd90b7e3c3d2922a53befab40bf7fcacd41a6f596f2b70b04e1b8ff2", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.xml", + "original_sha256": "4a28ba14d20869a26f7f8041fbcd6b928ec0cda9cd555fa2b8418a6df454caae", + "public": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.xml", + "public_sha256": "4a28ba14d20869a26f7f8041fbcd6b928ec0cda9cd555fa2b8418a6df454caae", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu-frame.json", + "original_sha256": "1a8b98daf5897621328ff4d246f77ba5f1352eaee3888c215f265a1813e5e9a2", + "public": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu-frame.json", + "public_sha256": "1a8b98daf5897621328ff4d246f77ba5f1352eaee3888c215f265a1813e5e9a2", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.png", + "original_sha256": "3dc56c25e820beee8f502414f36b58ef200150b88ade3aae6525e31f77076aac", + "public": "docs/screenshots/keyboard-toggle/back-diagnostic-current/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.png", + "public_sha256": "3dc56c25e820beee8f502414f36b58ef200150b88ade3aae6525e31f77076aac", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.xml", + "original_sha256": "b631ce0aefb65c763d38120445bed59c7ca76002cd304a76b8811f335887e69a", + "public": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.xml", + "public_sha256": "b631ce0aefb65c763d38120445bed59c7ca76002cd304a76b8811f335887e69a", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu-frame.json", + "original_sha256": "7756ba0720372b4760a77b9e8152fd8046384b4c35579a1fdc540915faf566dd", + "public": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu-frame.json", + "public_sha256": "7756ba0720372b4760a77b9e8152fd8046384b4c35579a1fdc540915faf566dd", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/tests.log", + "original_sha256": "b023b4a1bbbc2c8ebf0e78edf8232b102583d3479566a4d84b757a93465159a4", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/tests.log", + "public_sha256": "b023b4a1bbbc2c8ebf0e78edf8232b102583d3479566a4d84b757a93465159a4", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100-outer.log", + "original_sha256": "b9580caf6b0f1bb8efa2b7587433c9c887ada106ea761c9ee7231c66ba26905c", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/outer.log", + "public_sha256": "b9580caf6b0f1bb8efa2b7587433c9c887ada106ea761c9ee7231c66ba26905c", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-case.json", + "original_sha256": "a4d2ea1442e881b950547978ce12c3df1e13310cf9072b98f5bd3663d2b67f72", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-case.json", + "public_sha256": "a4d2ea1442e881b950547978ce12c3df1e13310cf9072b98f5bd3663d2b67f72", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "original_sha256": "538bbab99da53f8d3d879b4e385fe086a19c4b598403e72a0450a24b352644c3", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "public_sha256": "538bbab99da53f8d3d879b4e385fe086a19c4b598403e72a0450a24b352644c3", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "original_sha256": "dc66aca81db0b35eadb666dc1679ca0f491ab419df2e6a60df4515bf6b285124", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "public_sha256": "dc66aca81db0b35eadb666dc1679ca0f491ab419df2e6a60df4515bf6b285124", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-0.png", + "original_sha256": "ce6578c82166c69f929921f371c2e37d04277e60c8ae779d7550ebb6f718c7f2", + "public": "docs/screenshots/keyboard-toggle/final-guards-tablet100/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-0.png", + "public_sha256": "ce6578c82166c69f929921f371c2e37d04277e60c8ae779d7550ebb6f718c7f2", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-0.xml", + "original_sha256": "920e97ee22f0745daf72161b87f21bd2e6d34c6b0864f0808fde4bd34ec8b531", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-0.xml", + "public_sha256": "920e97ee22f0745daf72161b87f21bd2e6d34c6b0864f0808fde4bd34ec8b531", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-0-frame.json", + "original_sha256": "814aab371137ef7224b580ad539c4757f586e02be83c0cd21669a80fd9823fe3", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-0-frame.json", + "public_sha256": "814aab371137ef7224b580ad539c4757f586e02be83c0cd21669a80fd9823fe3", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-1.png", + "original_sha256": "f7d77704146f4d29686f97b7d7d22b7aff37d8f28342a4505da90fce7f372114", + "public": "docs/screenshots/keyboard-toggle/final-guards-tablet100/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-1.png", + "public_sha256": "f7d77704146f4d29686f97b7d7d22b7aff37d8f28342a4505da90fce7f372114", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-1.xml", + "original_sha256": "3968b972a26936f4f9ddd772ca683f8665d6df59300256912ae7da94f1e52287", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-1.xml", + "public_sha256": "3968b972a26936f4f9ddd772ca683f8665d6df59300256912ae7da94f1e52287", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-1-frame.json", + "original_sha256": "e31098814b128dab93638e30ad55b2f68ab497e3072828cd0eb4b8b53219f32d", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-1-frame.json", + "public_sha256": "e31098814b128dab93638e30ad55b2f68ab497e3072828cd0eb4b8b53219f32d", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-0.png", + "original_sha256": "72c996d07465f6099f5f021ddd80f9fdf799455c386a52c25dcd7806522d887e", + "public": "docs/screenshots/keyboard-toggle/final-guards-tablet100/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-0.png", + "public_sha256": "72c996d07465f6099f5f021ddd80f9fdf799455c386a52c25dcd7806522d887e", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-0.xml", + "original_sha256": "8d32f675ff720c15191843a9d00d82707018e42ba4eea25fa96932b5c04a1050", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-0.xml", + "public_sha256": "8d32f675ff720c15191843a9d00d82707018e42ba4eea25fa96932b5c04a1050", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-0-frame.json", + "original_sha256": "88022fa4333be54a941400b8c4dd60b4fa36bb77c448b8507a85163a53f6671e", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-0-frame.json", + "public_sha256": "88022fa4333be54a941400b8c4dd60b4fa36bb77c448b8507a85163a53f6671e", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-1.png", + "original_sha256": "683da9641e87e6af9be358f4c06702ceb9415205016b1a1f725842eee2709028", + "public": "docs/screenshots/keyboard-toggle/final-guards-tablet100/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-1.png", + "public_sha256": "683da9641e87e6af9be358f4c06702ceb9415205016b1a1f725842eee2709028", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-1.xml", + "original_sha256": "783b8093347aa1eb1bb2e9b9732fcbafbd88161f7c9f90e71564e10267384a88", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-1.xml", + "public_sha256": "783b8093347aa1eb1bb2e9b9732fcbafbd88161f7c9f90e71564e10267384a88", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-1-frame.json", + "original_sha256": "261d988f8decf2b56733d43e8a56a82a4ce6bd7941e7c3c8d332f46f2e85fcbb", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-1-frame.json", + "public_sha256": "261d988f8decf2b56733d43e8a56a82a4ce6bd7941e7c3c8d332f46f2e85fcbb", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.png", + "original_sha256": "76c443a135c609f68e9ab51254bb42dd3ad891c3866ae9849c0f1bf158b1cc60", + "public": "docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.png", + "public_sha256": "76c443a135c609f68e9ab51254bb42dd3ad891c3866ae9849c0f1bf158b1cc60", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.xml", + "original_sha256": "167dcd3240befb4ace05722f535368d8c73800c407f613532410b1500a403309", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.xml", + "public_sha256": "167dcd3240befb4ace05722f535368d8c73800c407f613532410b1500a403309", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show-frame.json", + "original_sha256": "925990b48fea02e6187d86597be7e657ca974cc679cc72ea3d2842e0adbe191e", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show-frame.json", + "public_sha256": "925990b48fea02e6187d86597be7e657ca974cc679cc72ea3d2842e0adbe191e", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.png", + "original_sha256": "9f997e06fd69cf2d8b84eb19662855271121335d77ac611deec6885474bc4f7d", + "public": "docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.png", + "public_sha256": "9f997e06fd69cf2d8b84eb19662855271121335d77ac611deec6885474bc4f7d", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.xml", + "original_sha256": "167dcd3240befb4ace05722f535368d8c73800c407f613532410b1500a403309", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.xml", + "public_sha256": "167dcd3240befb4ace05722f535368d8c73800c407f613532410b1500a403309", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch-frame.json", + "original_sha256": "87226601975f7853a483a07c7d694c0fd771391b1e7f2a6449b7ecb139ef95bc", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch-frame.json", + "public_sha256": "87226601975f7853a483a07c7d694c0fd771391b1e7f2a6449b7ecb139ef95bc", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "original_sha256": "d09b66269e1451273b39620c9dc53bf657638fcc553eaaa4cb5d2a18f41642d6", + "public": "docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "public_sha256": "d09b66269e1451273b39620c9dc53bf657638fcc553eaaa4cb5d2a18f41642d6", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "original_sha256": "167dcd3240befb4ace05722f535368d8c73800c407f613532410b1500a403309", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "public_sha256": "167dcd3240befb4ace05722f535368d8c73800c407f613532410b1500a403309", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "original_sha256": "48c6dc2b7f9dc8d551893ed1711dd475bdd47470888a6d01ae7fdcb0a378f220", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "public_sha256": "48c6dc2b7f9dc8d551893ed1711dd475bdd47470888a6d01ae7fdcb0a378f220", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png", + "original_sha256": "6adc070dad29a20cf6135fb8041ed28af3ae713fa69cb7287148b12ab16520b8", + "public": "docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png", + "public_sha256": "6adc070dad29a20cf6135fb8041ed28af3ae713fa69cb7287148b12ab16520b8", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml", + "original_sha256": "c82e0a2a70a8be824768fd2e359d6c6dde6cc829071a0cf164d21aa4b7f542a7", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml", + "public_sha256": "c82e0a2a70a8be824768fd2e359d6c6dde6cc829071a0cf164d21aa4b7f542a7", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json", + "original_sha256": "c548ae46776c3d0f74e53cc233479bbdf522a33ed4ba33274758e06439f2dd69", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json", + "public_sha256": "c548ae46776c3d0f74e53cc233479bbdf522a33ed4ba33274758e06439f2dd69", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.png", + "original_sha256": "b79f86010ad2c4e8caef8b6c44c646c192ac768442c6e1376a587276fbfaf13f", + "public": "docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.png", + "public_sha256": "b79f86010ad2c4e8caef8b6c44c646c192ac768442c6e1376a587276fbfaf13f", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.xml", + "original_sha256": "e9132c55f0e6e8486a162c52b8b5755fdd65e5a5ca070755e2b85d1a9c7d8f64", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.xml", + "public_sha256": "e9132c55f0e6e8486a162c52b8b5755fdd65e5a5ca070755e2b85d1a9c7d8f64", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner-frame.json", + "original_sha256": "eb8d0b7ea7c84d00bda951d0214c7eda8f6c3322b25a00e940e23e6e938c8c5a", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner-frame.json", + "public_sha256": "eb8d0b7ea7c84d00bda951d0214c7eda8f6c3322b25a00e940e23e6e938c8c5a", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.png", + "original_sha256": "337abefff7a6acbb55b0deda11a8cf6f313ab3a8b25e065567a0e0c635f2108c", + "public": "docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.png", + "public_sha256": "337abefff7a6acbb55b0deda11a8cf6f313ab3a8b25e065567a0e0c635f2108c", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.xml", + "original_sha256": "8cf3a90f10d6eec7df233378e7daa8b3383984c115382e891dcc2ab4fb3a3bc7", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.xml", + "public_sha256": "8cf3a90f10d6eec7df233378e7daa8b3383984c115382e891dcc2ab4fb3a3bc7", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route-frame.json", + "original_sha256": "0afec2e5b8f08fc51048f5cf6d11f7c7d3bc64c12b6e109be037cfe12b6b1486", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route-frame.json", + "public_sha256": "0afec2e5b8f08fc51048f5cf6d11f7c7d3bc64c12b6e109be037cfe12b6b1486", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.png", + "original_sha256": "5b26029118a9eb43dc400d66f5ccf6ba1c00277c0cb2f08a7d7d804c81c0d1db", + "public": "docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.png", + "public_sha256": "5b26029118a9eb43dc400d66f5ccf6ba1c00277c0cb2f08a7d7d804c81c0d1db", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.xml", + "original_sha256": "495dd35c72bb074c90943500bdcb34c2182a70c4fdfcc4171f1a04812258085b", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.xml", + "public_sha256": "495dd35c72bb074c90943500bdcb34c2182a70c4fdfcc4171f1a04812258085b", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show-frame.json", + "original_sha256": "b225be89cc82c3fdfbc769e7004c38cadc70155d50f4ef354efd34c13d5d8392", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show-frame.json", + "public_sha256": "b225be89cc82c3fdfbc769e7004c38cadc70155d50f4ef354efd34c13d5d8392", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.png", + "original_sha256": "0888837937ec4ef726199ef58d07f15fa0b6581c046e84c27439a774b2c4dfed", + "public": "docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.png", + "public_sha256": "0888837937ec4ef726199ef58d07f15fa0b6581c046e84c27439a774b2c4dfed", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.xml", + "original_sha256": "81f2d687f225eb1c959f51b3693aa3aada1dcd440808571a3f2a38ea3cf1486d", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.xml", + "public_sha256": "81f2d687f225eb1c959f51b3693aa3aada1dcd440808571a3f2a38ea3cf1486d", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch-frame.json", + "original_sha256": "65b05c4f8e0924ea2dc497fef15e685d61b95dab9b90aaca9560bd1f52f3e2cf", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch-frame.json", + "public_sha256": "65b05c4f8e0924ea2dc497fef15e685d61b95dab9b90aaca9560bd1f52f3e2cf", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "original_sha256": "2a5d4a53ad0639238a786050f49bf4b8cb897bd3eebe654c9ecec26f2ea36b7d", + "public": "docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "public_sha256": "2a5d4a53ad0639238a786050f49bf4b8cb897bd3eebe654c9ecec26f2ea36b7d", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "original_sha256": "81f2d687f225eb1c959f51b3693aa3aada1dcd440808571a3f2a38ea3cf1486d", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "public_sha256": "81f2d687f225eb1c959f51b3693aa3aada1dcd440808571a3f2a38ea3cf1486d", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "original_sha256": "e691b0299a9a1c4dffba2df31d0545b9859e644812b7cd4b6cd667912fb27c55", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "public_sha256": "e691b0299a9a1c4dffba2df31d0545b9859e644812b7cd4b6cd667912fb27c55", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png", + "original_sha256": "61139a0f3c7e30887c609206190cead18bde69687171e96ffeb23f1f9ac844ae", + "public": "docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png", + "public_sha256": "61139a0f3c7e30887c609206190cead18bde69687171e96ffeb23f1f9ac844ae", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml", + "original_sha256": "1c1969829c30b837251c0846477eb56290b72ead385c6dfd97b7e5d11d1dde5e", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml", + "public_sha256": "1c1969829c30b837251c0846477eb56290b72ead385c6dfd97b7e5d11d1dde5e", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json", + "original_sha256": "cc42774be675d2c2d1ede544cb6380dde597ce3b06209568ad338f3a9150d1b5", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json", + "public_sha256": "cc42774be675d2c2d1ede544cb6380dde597ce3b06209568ad338f3a9150d1b5", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.png", + "original_sha256": "9ad61fc02daa71ef45a32586f4197b64c9c29676499e575e960e883e26956765", + "public": "docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.png", + "public_sha256": "9ad61fc02daa71ef45a32586f4197b64c9c29676499e575e960e883e26956765", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.xml", + "original_sha256": "70c5fb3d69af14aef7b8a4d449732ff1b6bd5e176962759454c6f9f3ab769299", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.xml", + "public_sha256": "70c5fb3d69af14aef7b8a4d449732ff1b6bd5e176962759454c6f9f3ab769299", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner-frame.json", + "original_sha256": "5523738e4fc2045085cd5735d7eb697568a1df56c00183eb6817deef02b46d6d", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner-frame.json", + "public_sha256": "5523738e4fc2045085cd5735d7eb697568a1df56c00183eb6817deef02b46d6d", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.png", + "original_sha256": "01eea78447471eb716442da3c5b0dfb662d40e8435dc603d9fd0a0e2d2e9782b", + "public": "docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.png", + "public_sha256": "01eea78447471eb716442da3c5b0dfb662d40e8435dc603d9fd0a0e2d2e9782b", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.xml", + "original_sha256": "70c5fb3d69af14aef7b8a4d449732ff1b6bd5e176962759454c6f9f3ab769299", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.xml", + "public_sha256": "70c5fb3d69af14aef7b8a4d449732ff1b6bd5e176962759454c6f9f3ab769299", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route-frame.json", + "original_sha256": "4cb08de0fbd2a9b49001f6623b7534263a8203f9538f85e908f929aae4dba212", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route-frame.json", + "public_sha256": "4cb08de0fbd2a9b49001f6623b7534263a8203f9538f85e908f929aae4dba212", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/tests.log", + "original_sha256": "15c319f7ad358c5a8e481f06ef5a6b2fd3a67a2d996f9e86841bcdfbe96ca942", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape200/tests.log", + "public_sha256": "15c319f7ad358c5a8e481f06ef5a6b2fd3a67a2d996f9e86841bcdfbe96ca942", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200-outer.log", + "original_sha256": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape200/outer.log", + "public_sha256": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "6df0e02b2b57bd06b965ccda10c44cdaff97c52d3ab361a74f83b3f0b02906b1", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "6df0e02b2b57bd06b965ccda10c44cdaff97c52d3ab361a74f83b3f0b02906b1", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "ecba92601af22a39d80eac49d76953e214ae8b6ed4936acc52913c8dbec2169c", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "ecba92601af22a39d80eac49d76953e214ae8b6ed4936acc52913c8dbec2169c", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "original_sha256": "7b3f212babf9e4d0ddd81f56d5717b5253ed91de1ffab270c7b74347c742a594", + "public": "docs/screenshots/keyboard-toggle/final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "public_sha256": "7b3f212babf9e4d0ddd81f56d5717b5253ed91de1ffab270c7b74347c742a594", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "original_sha256": "c785c7cb5dc7489e517bfde3e9cca9031733044937ee9f760c37efe153ab1178", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "public_sha256": "c785c7cb5dc7489e517bfde3e9cca9031733044937ee9f760c37efe153ab1178", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "original_sha256": "25eaf8e602a6b519869334b56598c27ac9454f8ea7ab9a05233f41327bac9b2c", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "public_sha256": "25eaf8e602a6b519869334b56598c27ac9454f8ea7ab9a05233f41327bac9b2c", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "original_sha256": "58f0b5ad3cbc61925b47cd2c31cb49b84524037b146c79062cf2eb8e3895e3f9", + "public": "docs/screenshots/keyboard-toggle/final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "public_sha256": "58f0b5ad3cbc61925b47cd2c31cb49b84524037b146c79062cf2eb8e3895e3f9", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "original_sha256": "6bf9d05ca1734927247a34c2fbcc56ec49445d0f0cd46d498c82f1d5a9c035b1", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "public_sha256": "6bf9d05ca1734927247a34c2fbcc56ec49445d0f0cd46d498c82f1d5a9c035b1", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "original_sha256": "93528d221bffdc7c90bb731b2d842ca5f230c9c19627308ed50a1e0f056f6809", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "public_sha256": "93528d221bffdc7c90bb731b2d842ca5f230c9c19627308ed50a1e0f056f6809", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "original_sha256": "35fa3bd3b6b17c98e44e11902d690162a309361247106611014812c268d87b4a", + "public": "docs/screenshots/keyboard-toggle/final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "public_sha256": "35fa3bd3b6b17c98e44e11902d690162a309361247106611014812c268d87b4a", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "original_sha256": "0e9c9377768ec2f3127e9ff3128f91c76ecb36ff66e6b1527ca52e4cbc29e3c1", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "public_sha256": "0e9c9377768ec2f3127e9ff3128f91c76ecb36ff66e6b1527ca52e4cbc29e3c1", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "original_sha256": "36af18583a084fae09c1c554508c3d1828aa761d6875890b05031c68d36eef28", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "public_sha256": "36af18583a084fae09c1c554508c3d1828aa761d6875890b05031c68d36eef28", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png", + "original_sha256": "61a5fff000c1e99fb787334007679fd6d934bd149f09435922591371d53f27ef", + "public": "docs/screenshots/keyboard-toggle/final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png", + "public_sha256": "61a5fff000c1e99fb787334007679fd6d934bd149f09435922591371d53f27ef", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml", + "original_sha256": "2ff0be54bc0d004a1404d29ba598c076bfa4781518cd7352ab2862082f4d1a00", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml", + "public_sha256": "2ff0be54bc0d004a1404d29ba598c076bfa4781518cd7352ab2862082f4d1a00", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json", + "original_sha256": "08f1fd054e1eedc9e86300146abc600a84e7e5ac53efaa5e87ecacdf9d4cc2ab", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json", + "public_sha256": "08f1fd054e1eedc9e86300146abc600a84e7e5ac53efaa5e87ecacdf9d4cc2ab", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png", + "original_sha256": "2e3d8af2ecb8af876945ac2ae956c6d51c05e3baecf6d0b98e9a3265ff37841e", + "public": "docs/screenshots/keyboard-toggle/final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png", + "public_sha256": "2e3d8af2ecb8af876945ac2ae956c6d51c05e3baecf6d0b98e9a3265ff37841e", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml", + "original_sha256": "9867a8963088c6abb8386880763d05e7796aef1fde9fa08284469e1790c60710", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml", + "public_sha256": "9867a8963088c6abb8386880763d05e7796aef1fde9fa08284469e1790c60710", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json", + "original_sha256": "54ef6e140277418d4da4467ff7f0fc5004fa04532d5d212b55bca34f1c4d5941", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json", + "public_sha256": "54ef6e140277418d4da4467ff7f0fc5004fa04532d5d212b55bca34f1c4d5941", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "original_sha256": "ef05dba85ff199584a25d6f40f5595f5731c9f0875811d60c3d57d0d57869b68", + "public": "docs/screenshots/keyboard-toggle/final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "public_sha256": "ef05dba85ff199584a25d6f40f5595f5731c9f0875811d60c3d57d0d57869b68", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "original_sha256": "a6194ba5c79eb443d5033a103e07966bd13326861c0472e8a2383d5ee2cfa8af", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "public_sha256": "a6194ba5c79eb443d5033a103e07966bd13326861c0472e8a2383d5ee2cfa8af", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "original_sha256": "1181267a2aebbdf238b8d055342c6e277e328cb3c92b7b609a5f883d6abc1ceb", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "public_sha256": "1181267a2aebbdf238b8d055342c6e277e328cb3c92b7b609a5f883d6abc1ceb", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "original_sha256": "9ec2e841267888bba9cf819e05b8021eb7984a19ede3e060068fad0e8a307fe0", + "public": "docs/screenshots/keyboard-toggle/final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "public_sha256": "9ec2e841267888bba9cf819e05b8021eb7984a19ede3e060068fad0e8a307fe0", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "original_sha256": "e499654611dff64f49da1f6c309c0b8b7ff7d7b37f93d8e8554145f95fb03fa9", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "public_sha256": "e499654611dff64f49da1f6c309c0b8b7ff7d7b37f93d8e8554145f95fb03fa9", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "original_sha256": "cd7dc5f93bb3e63c72d8fea055df4a1013ba71817afaadf3daa7e3fdfd1c286b", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "public_sha256": "cd7dc5f93bb3e63c72d8fea055df4a1013ba71817afaadf3daa7e3fdfd1c286b", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "original_sha256": "0c1da1044e3fb09db00a4b044aab283ef2b8f599febd76203fa0cdc6eb3fd3b0", + "public": "docs/screenshots/keyboard-toggle/final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "public_sha256": "0c1da1044e3fb09db00a4b044aab283ef2b8f599febd76203fa0cdc6eb3fd3b0", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "original_sha256": "00663adf15ed40186fc5923398acc0bb6f50bd4927906482d05c9e990805003f", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "public_sha256": "00663adf15ed40186fc5923398acc0bb6f50bd4927906482d05c9e990805003f", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "original_sha256": "3aee75b3c779520e9185f1b51a1c081d1d434e38c15856f3d87264cb2be4699e", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "public_sha256": "3aee75b3c779520e9185f1b51a1c081d1d434e38c15856f3d87264cb2be4699e", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png", + "original_sha256": "fffc26b4c6e47b78ef7dd152c6cb61a666bef61f0d882e9c92ec8eed0a059bd1", + "public": "docs/screenshots/keyboard-toggle/final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png", + "public_sha256": "fffc26b4c6e47b78ef7dd152c6cb61a666bef61f0d882e9c92ec8eed0a059bd1", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml", + "original_sha256": "6d81dbe3e6d3af63469e7574be58983674adc62b0159df620c5d3e8f2cf42f8b", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml", + "public_sha256": "6d81dbe3e6d3af63469e7574be58983674adc62b0159df620c5d3e8f2cf42f8b", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json", + "original_sha256": "6161a81e2bbba64723875ed736d0a45c347898c9312d2ad1c08f6fca9fee928c", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json", + "public_sha256": "6161a81e2bbba64723875ed736d0a45c347898c9312d2ad1c08f6fca9fee928c", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png", + "original_sha256": "eb4610cdf3429e3e803f0b58865c2ba990efb86e27be708dc94b9f26b80222fa", + "public": "docs/screenshots/keyboard-toggle/final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png", + "public_sha256": "eb4610cdf3429e3e803f0b58865c2ba990efb86e27be708dc94b9f26b80222fa", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml", + "original_sha256": "a994836758a00455cc2e924c9374f29325bf649059308c04d9738e1c1c1766db", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml", + "public_sha256": "a994836758a00455cc2e924c9374f29325bf649059308c04d9738e1c1c1766db", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json", + "original_sha256": "141de3e9f6d16c353a164a2aca3722efd3c340d7a05420eaef2d23d57b1f683b", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json", + "public_sha256": "141de3e9f6d16c353a164a2aca3722efd3c340d7a05420eaef2d23d57b1f683b", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/tests.log", + "original_sha256": "062ea82e7e4e49ce35b5adfa173b572fb83f5b11eff0d6d22e76dbb003c06bd9", + "public": "docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/tests.log", + "public_sha256": "062ea82e7e4e49ce35b5adfa173b572fb83f5b11eff0d6d22e76dbb003c06bd9", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100-outer.log", + "original_sha256": "ce1c9212be07925c54595d2975e5be73ea7558db8b08b0e94def64071b611169", + "public": "docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/outer.log", + "public_sha256": "68f220b258e1a259c82c06d75294a59b4951f85d09bbd5e8a8c353b1cae9294d", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "original_sha256": "b338c38dab75f6c1d2f124d5078945bd66bf9d22890a9ad86f7f1ebef50faf68", + "public": "docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "public_sha256": "b338c38dab75f6c1d2f124d5078945bd66bf9d22890a9ad86f7f1ebef50faf68", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "original_sha256": "b97217edde8e460e0573ede2faa0e5cbd937f43026fcf3a282dd445dddea032f", + "public": "docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "public_sha256": "b97217edde8e460e0573ede2faa0e5cbd937f43026fcf3a282dd445dddea032f", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "original_sha256": "cd8ce9376ac29fa6eee37ee6122c8a944d69709434dbabecf7c3040a76069b65", + "public": "docs/screenshots/keyboard-toggle/control-proxy-final-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "public_sha256": "cd8ce9376ac29fa6eee37ee6122c8a944d69709434dbabecf7c3040a76069b65", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "original_sha256": "d18c845e91909af70857f9235f05066f780c3997d2cd073fbe8b6a48ab81eaec", + "public": "docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "public_sha256": "d18c845e91909af70857f9235f05066f780c3997d2cd073fbe8b6a48ab81eaec", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "original_sha256": "7a9c905a232410a42ed73ffa023143c6c237aad8b2be080c0be2419f1fe3cb00", + "public": "docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "public_sha256": "7a9c905a232410a42ed73ffa023143c6c237aad8b2be080c0be2419f1fe3cb00", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "original_sha256": "0bc019d8840abdf43b707150e402686cd8d28b06f1238c4118b3075126554ea2", + "public": "docs/screenshots/keyboard-toggle/control-proxy-final-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "public_sha256": "0bc019d8840abdf43b707150e402686cd8d28b06f1238c4118b3075126554ea2", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "original_sha256": "3d5fc11771146b9ea01c9e3d4290e42d3dc7929ab03bfd7aa4eee63397728414", + "public": "docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "public_sha256": "3d5fc11771146b9ea01c9e3d4290e42d3dc7929ab03bfd7aa4eee63397728414", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "original_sha256": "12de910259e63531209a08d948ed0942a8f9a98f738b8fec5a5d73a56a7e6519", + "public": "docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "public_sha256": "12de910259e63531209a08d948ed0942a8f9a98f738b8fec5a5d73a56a7e6519", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200/tests.log", + "original_sha256": "0b1eb6754efe03dddb65822f196b59f6e37682f33d00c7fb41e9169cdea22cef", + "public": "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/tests.log", + "public_sha256": "0b1eb6754efe03dddb65822f196b59f6e37682f33d00c7fb41e9169cdea22cef", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200-outer.log", + "original_sha256": "ce1c9212be07925c54595d2975e5be73ea7558db8b08b0e94def64071b611169", + "public": "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/outer.log", + "public_sha256": "68f220b258e1a259c82c06d75294a59b4951f85d09bbd5e8a8c353b1cae9294d", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "3fb46039ec47f89270b1c0972ec95b4b1c5f8252aea186f34b515872318c529c", + "public": "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "3fb46039ec47f89270b1c0972ec95b4b1c5f8252aea186f34b515872318c529c", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "55b861597acea563d4881dcf94294c13f7aee4f759f181473e355bd113029545", + "public": "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "55b861597acea563d4881dcf94294c13f7aee4f759f181473e355bd113029545", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "original_sha256": "2fb233cb5617bf98d8c53c51f721488b62c3f72690ca363096a5131dc627195d", + "public": "docs/screenshots/keyboard-toggle/control-old-final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "public_sha256": "2fb233cb5617bf98d8c53c51f721488b62c3f72690ca363096a5131dc627195d", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "original_sha256": "4d26ee304113c9890bb4c9b6ebe420b4ed618d821d73a9b147a56ed3f6b40896", + "public": "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "public_sha256": "4d26ee304113c9890bb4c9b6ebe420b4ed618d821d73a9b147a56ed3f6b40896", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "original_sha256": "03e206efabc8c009a17acc85d24b4d16faa74934e967dd92d18094ab3fb4f772", + "public": "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "public_sha256": "03e206efabc8c009a17acc85d24b4d16faa74934e967dd92d18094ab3fb4f772", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "original_sha256": "5d4a82154e16eab024e91f37af42d0d1ead7d5d608e213a0717d58630f9070e5", + "public": "docs/screenshots/keyboard-toggle/control-old-final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "public_sha256": "5d4a82154e16eab024e91f37af42d0d1ead7d5d608e213a0717d58630f9070e5", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "original_sha256": "0d99d917d664286dbb7cb448e9e4e55335e44080f8cb00159e30bd6c5132375d", + "public": "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "public_sha256": "0d99d917d664286dbb7cb448e9e4e55335e44080f8cb00159e30bd6c5132375d", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "original_sha256": "ece83da11ff1e600cfe5f07186c5251a1060df6f741c839e0c6e9716a3929fc3", + "public": "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "public_sha256": "ece83da11ff1e600cfe5f07186c5251a1060df6f741c839e0c6e9716a3929fc3", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100/tests.log", + "original_sha256": "a799068b81dfec24161c56affe8ab513f715c557283eb9f3ffe4ca6957c911e2", + "public": "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/tests.log", + "public_sha256": "a799068b81dfec24161c56affe8ab513f715c557283eb9f3ffe4ca6957c911e2", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100-outer.log", + "original_sha256": "ce1c9212be07925c54595d2975e5be73ea7558db8b08b0e94def64071b611169", + "public": "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/outer.log", + "public_sha256": "68f220b258e1a259c82c06d75294a59b4951f85d09bbd5e8a8c353b1cae9294d", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "2cad14379782102b85a376eef0f3112f13c780eefd10ad4dcd15fca4c24c4cad", + "public": "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "2cad14379782102b85a376eef0f3112f13c780eefd10ad4dcd15fca4c24c4cad", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "cd8e6159eaa739cf0c6973350d36b4479016d94d390007626af0385fd679a42f", + "public": "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "cd8e6159eaa739cf0c6973350d36b4479016d94d390007626af0385fd679a42f", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "original_sha256": "74f206b6891482a789ee4d35ccd4192342e594238e8dae1843ff2ac92b52f27c", + "public": "docs/screenshots/keyboard-toggle/control-old-final-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "public_sha256": "74f206b6891482a789ee4d35ccd4192342e594238e8dae1843ff2ac92b52f27c", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "original_sha256": "a269b3279e148cd7f8352ed7b6dc1f3423ac4ca52e7c741e056f26f7b948c907", + "public": "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "public_sha256": "a269b3279e148cd7f8352ed7b6dc1f3423ac4ca52e7c741e056f26f7b948c907", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "original_sha256": "1813955009e7148a125948107b5b471d1cd9fe7ff2334928922aaf9c465b8f39", + "public": "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "public_sha256": "1813955009e7148a125948107b5b471d1cd9fe7ff2334928922aaf9c465b8f39", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "original_sha256": "85598917b0367cae1bfa1046a25fba347f0ad32bd4eef5d5a2a32aee2b7adfde", + "public": "docs/screenshots/keyboard-toggle/control-old-final-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "public_sha256": "85598917b0367cae1bfa1046a25fba347f0ad32bd4eef5d5a2a32aee2b7adfde", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "original_sha256": "f467bb3f80c7bf6e54a1f5afe1ad88f7f2b33e38167e2c290ef7e8565a80bd5e", + "public": "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "public_sha256": "f467bb3f80c7bf6e54a1f5afe1ad88f7f2b33e38167e2c290ef7e8565a80bd5e", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "original_sha256": "b2050027d7e41ce99f99b847788d96978c631fa132d7c2746ca0de8050e50ca4", + "public": "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "public_sha256": "b2050027d7e41ce99f99b847788d96978c631fa132d7c2746ca0de8050e50ca4", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/tests.log", + "original_sha256": "f7e1b6434614056d1f49fa9806e3ae49b0983514be573a17204455d1d8e53ea5", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape100/tests.log", + "public_sha256": "f7e1b6434614056d1f49fa9806e3ae49b0983514be573a17204455d1d8e53ea5", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100-outer.log", + "original_sha256": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape100/outer.log", + "public_sha256": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "7987e463b650cd9a1e347151d003cce87251478cc2ca80b3b9c15ee2f6f1572d", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "7987e463b650cd9a1e347151d003cce87251478cc2ca80b3b9c15ee2f6f1572d", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "0117b62a630b1a45b51dcfa8ef15beccc9b429dc187c0beab943d781eff4fd40", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "0117b62a630b1a45b51dcfa8ef15beccc9b429dc187c0beab943d781eff4fd40", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "original_sha256": "a8e789a430914f01971d906502dbfccbeade26777f908d75b6dc17ae84a88ecf", + "public": "docs/screenshots/keyboard-toggle/final-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "public_sha256": "a8e789a430914f01971d906502dbfccbeade26777f908d75b6dc17ae84a88ecf", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "original_sha256": "5a7783df7ed6df2c6962466fe977c374c8f8ec2131919a826e26fbc003f24412", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "public_sha256": "5a7783df7ed6df2c6962466fe977c374c8f8ec2131919a826e26fbc003f24412", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "original_sha256": "a4c281c1d1b6e42acb760c721c016e47755a64ae2fd06315b24a8ddd207c0d8c", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "public_sha256": "a4c281c1d1b6e42acb760c721c016e47755a64ae2fd06315b24a8ddd207c0d8c", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "original_sha256": "bef2db9e10e4658458715a34299f61d4e9c6831e9ed0e1cb925484cf67f3cff0", + "public": "docs/screenshots/keyboard-toggle/final-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "public_sha256": "bef2db9e10e4658458715a34299f61d4e9c6831e9ed0e1cb925484cf67f3cff0", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "original_sha256": "bdcbbd0816ad76e7f2b2e90e4d344b5277cd9456df5cb4cd076c0bf280cdff7a", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "public_sha256": "bdcbbd0816ad76e7f2b2e90e4d344b5277cd9456df5cb4cd076c0bf280cdff7a", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "original_sha256": "31b05faebd8ab820a79e7bc65e5ca03c67c4dc5242a1691466449419cb4ad71f", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "public_sha256": "31b05faebd8ab820a79e7bc65e5ca03c67c4dc5242a1691466449419cb4ad71f", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "original_sha256": "a09ba7924ecc2b2b3147f6489fb150d32f1c36b95c332f7597e7f180dd3573a8", + "public": "docs/screenshots/keyboard-toggle/final-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "public_sha256": "a09ba7924ecc2b2b3147f6489fb150d32f1c36b95c332f7597e7f180dd3573a8", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "original_sha256": "fece238c151cd43c8645dfda7be0f02c8b93cf9f4036f2ebbafae1a3aef465d6", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "public_sha256": "fece238c151cd43c8645dfda7be0f02c8b93cf9f4036f2ebbafae1a3aef465d6", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "original_sha256": "5b9bafd96f811b0cb4b83df751ae0aed3a948cd5b453da1fef483c8610236b86", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "public_sha256": "5b9bafd96f811b0cb4b83df751ae0aed3a948cd5b453da1fef483c8610236b86", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "original_sha256": "6d164e8630b5ceb1d297e9903d1e1d445fbc8fac802cac8957dc3df6e878d3e4", + "public": "docs/screenshots/keyboard-toggle/final-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "public_sha256": "6d164e8630b5ceb1d297e9903d1e1d445fbc8fac802cac8957dc3df6e878d3e4", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "original_sha256": "d14fb962d969ad55a7b54433725b10affa6083a5b9a5a00671843137427056a0", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "public_sha256": "d14fb962d969ad55a7b54433725b10affa6083a5b9a5a00671843137427056a0", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "original_sha256": "07045a076a61eba2bd5d99b5cb324a6f4431595b5341edc1f0234dc8ae9b4bf7", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "public_sha256": "07045a076a61eba2bd5d99b5cb324a6f4431595b5341edc1f0234dc8ae9b4bf7", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "original_sha256": "0a96b8e66d91a551e7d9ba86ac4c92c4ba9d2bdea7573299482f910b6c173692", + "public": "docs/screenshots/keyboard-toggle/final-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "public_sha256": "0a96b8e66d91a551e7d9ba86ac4c92c4ba9d2bdea7573299482f910b6c173692", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "original_sha256": "5ed960b72ef109cdf2ed280bf51e76249d4785abf937b6f24645184aef3a75c7", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "public_sha256": "5ed960b72ef109cdf2ed280bf51e76249d4785abf937b6f24645184aef3a75c7", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "original_sha256": "23c84d4b72caaba22166d5053bfba21da389f68cd0112a507176bbdf2eb17f25", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "public_sha256": "23c84d4b72caaba22166d5053bfba21da389f68cd0112a507176bbdf2eb17f25", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "original_sha256": "55b397fdcc427555d594af27a1abcc0f1c751b8570704fecccd8a208e5faf3fb", + "public": "docs/screenshots/keyboard-toggle/final-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "public_sha256": "55b397fdcc427555d594af27a1abcc0f1c751b8570704fecccd8a208e5faf3fb", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "original_sha256": "6a7120005b53d59c1282241ce0fd511db43dc1bb91b1c8ad2a8ace78669345fa", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "public_sha256": "6a7120005b53d59c1282241ce0fd511db43dc1bb91b1c8ad2a8ace78669345fa", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "original_sha256": "30324492b9b32081f8dbe3393aa8580263fd77079f7fa28dfc5fbbf79271d478", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "public_sha256": "30324492b9b32081f8dbe3393aa8580263fd77079f7fa28dfc5fbbf79271d478", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/tests.log", + "original_sha256": "247a189b24cad5698eb8c057b57357c6bd6082659683c03264ef3c0c9dc479a7", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet100/tests.log", + "public_sha256": "247a189b24cad5698eb8c057b57357c6bd6082659683c03264ef3c0c9dc479a7", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100-outer.log", + "original_sha256": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet100/outer.log", + "public_sha256": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "e1d1ac0d924c19835708fcc59373fb821eeceb3b4b959c1209a8556f516da3cf", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "e1d1ac0d924c19835708fcc59373fb821eeceb3b4b959c1209a8556f516da3cf", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "fbe11d4898b097e66b35a5ed0d2cd27da2bf336695171f47ef3e2c90e3a28e7d", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "fbe11d4898b097e66b35a5ed0d2cd27da2bf336695171f47ef3e2c90e3a28e7d", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "original_sha256": "485b5e60f831d327a99f3f29ecbf4c4ee1f44877041977784e7a048cb82e11a6", + "public": "docs/screenshots/keyboard-toggle/final-tablet100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "public_sha256": "485b5e60f831d327a99f3f29ecbf4c4ee1f44877041977784e7a048cb82e11a6", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "original_sha256": "53b439e101b402bac847e65d1c16eccd667185e49265dd023d8e269d86906b4b", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "public_sha256": "53b439e101b402bac847e65d1c16eccd667185e49265dd023d8e269d86906b4b", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "original_sha256": "b0c20464841fe433312c342bfa43d8c4d7a9b8f6d2fef79d7d00cb591367ff4e", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "public_sha256": "b0c20464841fe433312c342bfa43d8c4d7a9b8f6d2fef79d7d00cb591367ff4e", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "original_sha256": "928862b702fc9ab23cac95d7040c80ac51ecf8aca0f4b91b935046c070a7cf50", + "public": "docs/screenshots/keyboard-toggle/final-tablet100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "public_sha256": "928862b702fc9ab23cac95d7040c80ac51ecf8aca0f4b91b935046c070a7cf50", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "original_sha256": "237583143c9ecdafb51d2d8438388dcb026c3bdebec7859793398bcaf64e490d", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "public_sha256": "237583143c9ecdafb51d2d8438388dcb026c3bdebec7859793398bcaf64e490d", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "original_sha256": "eddf2999ad79fd92ed594516884c4a01ca0f309287a64013605d4b9275071679", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "public_sha256": "eddf2999ad79fd92ed594516884c4a01ca0f309287a64013605d4b9275071679", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "original_sha256": "9fbf0486ab6d9a973004254f8e5f0da0e985b3bb8988385f756a786a46cb15f5", + "public": "docs/screenshots/keyboard-toggle/final-tablet100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "public_sha256": "9fbf0486ab6d9a973004254f8e5f0da0e985b3bb8988385f756a786a46cb15f5", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "original_sha256": "e7657fc4ac690a9bffa49b73d8a17f1a397f7ea94463e1999af072f91dc1af2e", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "public_sha256": "e7657fc4ac690a9bffa49b73d8a17f1a397f7ea94463e1999af072f91dc1af2e", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "original_sha256": "2d9dfca03bd30c2836a510f55746a2dc53c3cc1b8cc9e009004e9137be05285e", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "public_sha256": "2d9dfca03bd30c2836a510f55746a2dc53c3cc1b8cc9e009004e9137be05285e", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "original_sha256": "0429abaa0538ab39340a0ce34fed0663348c8758418b133f637c94131e002d84", + "public": "docs/screenshots/keyboard-toggle/final-tablet100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "public_sha256": "0429abaa0538ab39340a0ce34fed0663348c8758418b133f637c94131e002d84", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "original_sha256": "13f727c63c112dc2cc07d07a6c1e21f8063fc1949f56337247d0772ffc5f4e35", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "public_sha256": "13f727c63c112dc2cc07d07a6c1e21f8063fc1949f56337247d0772ffc5f4e35", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "original_sha256": "b7048eb8b8a384197c54c64a1742c6d142d29caf99b7e2a59951c658fdbca04f", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "public_sha256": "b7048eb8b8a384197c54c64a1742c6d142d29caf99b7e2a59951c658fdbca04f", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "original_sha256": "7bed18d81c0d8576ac0cfdf7c24c318ceb958c5f27f5a95abcf2a20ccce2a1da", + "public": "docs/screenshots/keyboard-toggle/final-tablet100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "public_sha256": "7bed18d81c0d8576ac0cfdf7c24c318ceb958c5f27f5a95abcf2a20ccce2a1da", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "original_sha256": "5dc780798cce533a20300949bae1f8a4d72da2165f9456a4cf58cdd48f97a092", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "public_sha256": "5dc780798cce533a20300949bae1f8a4d72da2165f9456a4cf58cdd48f97a092", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "original_sha256": "6465b9de12b18008bed3d7bd65618f23794d0b7fd7989716d80f1cdc34cb00dd", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "public_sha256": "6465b9de12b18008bed3d7bd65618f23794d0b7fd7989716d80f1cdc34cb00dd", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "original_sha256": "7739e66d208be7babde43228e02e3d9240d52390b9cbdfee5435926a7b4df161", + "public": "docs/screenshots/keyboard-toggle/final-tablet100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "public_sha256": "7739e66d208be7babde43228e02e3d9240d52390b9cbdfee5435926a7b4df161", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "original_sha256": "935b2303386f639162d466e6e833958b573ded6c9f0fd3d2dad05a3a0119d8a3", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "public_sha256": "935b2303386f639162d466e6e833958b573ded6c9f0fd3d2dad05a3a0119d8a3", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "original_sha256": "9e959fef3c96a526d457227890ba17d1d596b951179cee8644c24a25dd0f5334", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "public_sha256": "9e959fef3c96a526d457227890ba17d1d596b951179cee8644c24a25dd0f5334", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/tests.log", + "original_sha256": "02571488be4204fa068bebe377ebef969a97bc2eaedde3aef6bf7dc4c972630b", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet200/tests.log", + "public_sha256": "02571488be4204fa068bebe377ebef969a97bc2eaedde3aef6bf7dc4c972630b", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200-outer.log", + "original_sha256": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet200/outer.log", + "public_sha256": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "bb6e17fc39462fdf7b037825d3a32967fa59f7388c434aa56c79b06a6c84697e", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "bb6e17fc39462fdf7b037825d3a32967fa59f7388c434aa56c79b06a6c84697e", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "original_sha256": "ddfa8cc95708e7886fd94d3cc6840342ddbe827a73af14aa7010ae76fba382de", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "public_sha256": "ddfa8cc95708e7886fd94d3cc6840342ddbe827a73af14aa7010ae76fba382de", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "original_sha256": "f037d7bc46c526b660a2f27acfe6c34d4bd8b2ea22346928f8c577dc40124c83", + "public": "docs/screenshots/keyboard-toggle/final-tablet200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "public_sha256": "f037d7bc46c526b660a2f27acfe6c34d4bd8b2ea22346928f8c577dc40124c83", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "original_sha256": "f67362d1f1deb9e1993f66bd68e95204daf915aa9ee9464bcddcd03f7777d700", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "public_sha256": "f67362d1f1deb9e1993f66bd68e95204daf915aa9ee9464bcddcd03f7777d700", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "original_sha256": "f6b2ce66aef5075c7618d533cfb854c022c0c45a558efd6d22b94f2770c3fd4e", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "public_sha256": "f6b2ce66aef5075c7618d533cfb854c022c0c45a558efd6d22b94f2770c3fd4e", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "original_sha256": "aa054af8f153cc41b228093259455514363a7a642d5207a4e4d472e4036ee42d", + "public": "docs/screenshots/keyboard-toggle/final-tablet200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "public_sha256": "aa054af8f153cc41b228093259455514363a7a642d5207a4e4d472e4036ee42d", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "original_sha256": "63e4443501fdac760acbd4261b700dcc403fb90ac84d287b8e70e84062f9e368", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "public_sha256": "63e4443501fdac760acbd4261b700dcc403fb90ac84d287b8e70e84062f9e368", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "original_sha256": "035e9cb9cfc5c057a012271e1ce3ea74b1a716311282d4d0e0896e7ea17d4eba", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "public_sha256": "035e9cb9cfc5c057a012271e1ce3ea74b1a716311282d4d0e0896e7ea17d4eba", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "original_sha256": "d93facf3a0e8c45c4e33d332ce780af1bda0a846d6eda6e12ba9302589b7f2b8", + "public": "docs/screenshots/keyboard-toggle/final-tablet200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "public_sha256": "d93facf3a0e8c45c4e33d332ce780af1bda0a846d6eda6e12ba9302589b7f2b8", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "original_sha256": "840853200809e044dc2850846972d35ad68ebc45b5a6a4dc845fb0977b188d4d", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "public_sha256": "840853200809e044dc2850846972d35ad68ebc45b5a6a4dc845fb0977b188d4d", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "original_sha256": "8ca421bdc53974151d4dda86d9cdfafaef2563b0d92b8b75411feae0fd25c187", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "public_sha256": "8ca421bdc53974151d4dda86d9cdfafaef2563b0d92b8b75411feae0fd25c187", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "original_sha256": "29a9f25602e62042c318a3c95a56995ae947250646abb0885691316affc1475f", + "public": "docs/screenshots/keyboard-toggle/final-tablet200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "public_sha256": "29a9f25602e62042c318a3c95a56995ae947250646abb0885691316affc1475f", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "original_sha256": "fae4f7040529663186ee231891c2951574b9d50f898d9655b2897fc5856e4996", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "public_sha256": "fae4f7040529663186ee231891c2951574b9d50f898d9655b2897fc5856e4996", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "original_sha256": "47945103e56b434cc58564bdc42902531a0fd72b56ab1318382e9b4e9e700894", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "public_sha256": "47945103e56b434cc58564bdc42902531a0fd72b56ab1318382e9b4e9e700894", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "original_sha256": "1e8b6ba729c8f8546991176ebcc8df11af51d9f8cee8544391f15e9d9f37a676", + "public": "docs/screenshots/keyboard-toggle/final-tablet200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "public_sha256": "1e8b6ba729c8f8546991176ebcc8df11af51d9f8cee8544391f15e9d9f37a676", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "original_sha256": "aab09add3ef3745dd7e07044f27b347fd0644a227af0fc2fd07d74a1bb3dacf5", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "public_sha256": "aab09add3ef3745dd7e07044f27b347fd0644a227af0fc2fd07d74a1bb3dacf5", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "original_sha256": "935e6f3e8488c05f00bba7c473c97655bad1107a89213f6ec104cc6ab04f4d35", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "public_sha256": "935e6f3e8488c05f00bba7c473c97655bad1107a89213f6ec104cc6ab04f4d35", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "original_sha256": "b44bd7a61203585155bd9d8734781d5d37d66abbb9399755b63e769639cf8096", + "public": "docs/screenshots/keyboard-toggle/final-tablet200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "public_sha256": "b44bd7a61203585155bd9d8734781d5d37d66abbb9399755b63e769639cf8096", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "original_sha256": "807b98abf28adcb640e3951800daa2e695729d7d7574c9b8e8e876821e3bf82f", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "public_sha256": "807b98abf28adcb640e3951800daa2e695729d7d7574c9b8e8e876821e3bf82f", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "original_sha256": "b57d14345a5f9e17bbeda8209298c79a1fb4217568efe130fe86a60a6f3c4c4c", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "public_sha256": "b57d14345a5f9e17bbeda8209298c79a1fb4217568efe130fe86a60a6f3c4c4c", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/tests.log", + "original_sha256": "3505f0054508d6880273682cca2edadc04c54317e3d32c16d8a344e5beb2765b", + "public": "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape100/tests.log", + "public_sha256": "3505f0054508d6880273682cca2edadc04c54317e3d32c16d8a344e5beb2765b", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100-outer.log", + "original_sha256": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "public": "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape100/outer.log", + "public_sha256": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json", + "original_sha256": "663e414b13cfbb475135e09a09b7551594bff0b1199a6df87aed1b677c84c72f", + "public": "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json", + "public_sha256": "663e414b13cfbb475135e09a09b7551594bff0b1199a6df87aed1b677c84c72f", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json", + "original_sha256": "c7c5b317fc4f20b32f4a6baad474fa8026aa0bd89f47b7bcb3d4a0eeb7633d26", + "public": "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json", + "public_sha256": "c7c5b317fc4f20b32f4a6baad474fa8026aa0bd89f47b7bcb3d4a0eeb7633d26", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/tests.log", + "original_sha256": "3e4c8dd59e13b609c711381c2f6a437d3881f02e0d07cec3a6bbffce132e8e76", + "public": "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/tests.log", + "public_sha256": "3e4c8dd59e13b609c711381c2f6a437d3881f02e0d07cec3a6bbffce132e8e76", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200-outer.log", + "original_sha256": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "public": "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/outer.log", + "public_sha256": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json", + "original_sha256": "9f81ecc51724a9422137b5cdc7700063944d37bc1733958c2a1af5d18d8fed89", + "public": "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json", + "public_sha256": "9f81ecc51724a9422137b5cdc7700063944d37bc1733958c2a1af5d18d8fed89", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json", + "original_sha256": "f3505d3b75cee76ee1ef80a771501d329a777e50667041b80a4d79d1f08c59cf", + "public": "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json", + "public_sha256": "f3505d3b75cee76ee1ef80a771501d329a777e50667041b80a4d79d1f08c59cf", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.png", + "original_sha256": "c8ef503675e593ce45bc90b7a45e4bd163c8ddba2ca7ec177af2b94efaf7be10", + "public": "docs/screenshots/keyboard-toggle/final-feedback-landscape200/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.png", + "public_sha256": "c8ef503675e593ce45bc90b7a45e4bd163c8ddba2ca7ec177af2b94efaf7be10", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.xml", + "original_sha256": "0c9581854508c803189205540367d751e5abab1c14c1113248ae361d35cfbd33", + "public": "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.xml", + "public_sha256": "0c9581854508c803189205540367d751e5abab1c14c1113248ae361d35cfbd33", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty-frame.json", + "original_sha256": "e64ac758ecd9c2fff77aeb66fe3ff0f7bc73f70b0deec3470ebd30981d3e2bf6", + "public": "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty-frame.json", + "public_sha256": "e64ac758ecd9c2fff77aeb66fe3ff0f7bc73f70b0deec3470ebd30981d3e2bf6", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.png", + "original_sha256": "2b7a29a8011849194d7c84ca2ab18607bf098a202aa0092c17634af4498227a4", + "public": "docs/screenshots/keyboard-toggle/final-feedback-landscape200/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.png", + "public_sha256": "2b7a29a8011849194d7c84ca2ab18607bf098a202aa0092c17634af4498227a4", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.xml", + "original_sha256": "aab4831f979e26b4d9603a5cddb498c28ffffb0e1bd2b9ffc2c997ac07c7679d", + "public": "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.xml", + "public_sha256": "aab4831f979e26b4d9603a5cddb498c28ffffb0e1bd2b9ffc2c997ac07c7679d", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty-frame.json", + "original_sha256": "c88db1ce87e0f6ef6b587ff4976574c27103bec5eec4c3cec4f94736928d94d7", + "public": "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty-frame.json", + "public_sha256": "c88db1ce87e0f6ef6b587ff4976574c27103bec5eec4c3cec4f94736928d94d7", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/tests.log", + "original_sha256": "1298ba044998034e13af23a36e217a81b0682b5e7bc067dee337ccfe03b178eb", + "public": "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/tests.log", + "public_sha256": "1298ba044998034e13af23a36e217a81b0682b5e7bc067dee337ccfe03b178eb", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200-outer.log", + "original_sha256": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "public": "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/outer.log", + "public_sha256": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-case.json", + "original_sha256": "269e213f01488e27c909db97bc3e37c996158aed07ca9474e87eac461cfe0f6c", + "public": "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-case.json", + "public_sha256": "269e213f01488e27c909db97bc3e37c996158aed07ca9474e87eac461cfe0f6c", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-case.json", + "original_sha256": "24b9ae25fd92407a030020da1dbf619093ca88662363f58df55dd696d2a9c9c3", + "public": "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-case.json", + "public_sha256": "24b9ae25fd92407a030020da1dbf619093ca88662363f58df55dd696d2a9c9c3", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-after.png", + "original_sha256": "6543311826623f1a8e13406b78894ae1b6faadd33479f272433c4808dc14ef87", + "public": "docs/screenshots/keyboard-toggle/final-clear-phone200/emojitouchclearpreservescategorygeometryandkeyboard-shown-after.png", + "public_sha256": "6543311826623f1a8e13406b78894ae1b6faadd33479f272433c4808dc14ef87", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-after.xml", + "original_sha256": "5766af98d8e4c9ebf644b3a7100e1abb64723a74c401be0aa03df13d3117be86", + "public": "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-after.xml", + "public_sha256": "5766af98d8e4c9ebf644b3a7100e1abb64723a74c401be0aa03df13d3117be86", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-after-frame.json", + "original_sha256": "01b2db217cd988810a1b2a46a1b6a979aadecaba4c574201a0170a3046e4d427", + "public": "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-after-frame.json", + "public_sha256": "01b2db217cd988810a1b2a46a1b6a979aadecaba4c574201a0170a3046e4d427", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-before.png", + "original_sha256": "31bab622fac5dcf268ed17a4459f18138526cabcbb7bcbd1888d9c0c235eba8e", + "public": "docs/screenshots/keyboard-toggle/final-clear-phone200/emojitouchclearpreservescategorygeometryandkeyboard-shown-before.png", + "public_sha256": "31bab622fac5dcf268ed17a4459f18138526cabcbb7bcbd1888d9c0c235eba8e", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-before.xml", + "original_sha256": "f049869e62d8dd9ac0328468e16ac9ae91dd51f34646c0c78262f0048914e942", + "public": "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-before.xml", + "public_sha256": "f049869e62d8dd9ac0328468e16ac9ae91dd51f34646c0c78262f0048914e942", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-before-frame.json", + "original_sha256": "0f3293bc144373e5be063b22ae87394b759214afbbe8085dc4cb560f9321c3b4", + "public": "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-before-frame.json", + "public_sha256": "0f3293bc144373e5be063b22ae87394b759214afbbe8085dc4cb560f9321c3b4", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-after.png", + "original_sha256": "cd6f76d508903d693748aca984169e78dd0bcca03744223a1c371bf7902a5526", + "public": "docs/screenshots/keyboard-toggle/final-clear-phone200/launchertouchclearpreservesfocuscategoryandkeyboard-shown-after.png", + "public_sha256": "cd6f76d508903d693748aca984169e78dd0bcca03744223a1c371bf7902a5526", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-after.xml", + "original_sha256": "bc31d4558ddabf3d47e96209686ccc46a3f7ab0f731ff6a17b311e2d8131025c", + "public": "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-after.xml", + "public_sha256": "bc31d4558ddabf3d47e96209686ccc46a3f7ab0f731ff6a17b311e2d8131025c", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-after-frame.json", + "original_sha256": "a52d30001f8e99d5aff4a508561d72540a028c9e5504b9d1ec04a60c803204c2", + "public": "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-after-frame.json", + "public_sha256": "a52d30001f8e99d5aff4a508561d72540a028c9e5504b9d1ec04a60c803204c2", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-before.png", + "original_sha256": "02d5f588f7d00783bc2a53d70bb51b5dffb7aa36758151842a8631ba28e05aab", + "public": "docs/screenshots/keyboard-toggle/final-clear-phone200/launchertouchclearpreservesfocuscategoryandkeyboard-shown-before.png", + "public_sha256": "02d5f588f7d00783bc2a53d70bb51b5dffb7aa36758151842a8631ba28e05aab", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-before.xml", + "original_sha256": "6dd5af19dd07be00491c082d2cbf94f6cc5225fb0f972c442c26eeef053ce22e", + "public": "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-before.xml", + "public_sha256": "6dd5af19dd07be00491c082d2cbf94f6cc5225fb0f972c442c26eeef053ce22e", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-before-frame.json", + "original_sha256": "5995d6ab8d94ab7c87eb3694173de90cfa07b96b06fd69eb39810767cba71d1a", + "public": "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-before-frame.json", + "public_sha256": "5995d6ab8d94ab7c87eb3694173de90cfa07b96b06fd69eb39810767cba71d1a", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/tests.log", + "original_sha256": "c68e9a23c8f19a9bccf46a38808545588c7a487f9e9baaa8818986ad115f6bd9", + "public": "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/tests.log", + "public_sha256": "c68e9a23c8f19a9bccf46a38808545588c7a487f9e9baaa8818986ad115f6bd9", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100-outer.log", + "original_sha256": "b9580caf6b0f1bb8efa2b7587433c9c887ada106ea761c9ee7231c66ba26905c", + "public": "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/outer.log", + "public_sha256": "b9580caf6b0f1bb8efa2b7587433c9c887ada106ea761c9ee7231c66ba26905c", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-case.json", + "original_sha256": "9ea55a2780a25f6593038d4c25539b377199d0ec5736dfa1599f474fd2515234", + "public": "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-case.json", + "public_sha256": "9ea55a2780a25f6593038d4c25539b377199d0ec5736dfa1599f474fd2515234", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/currentclearuseslivequeryandrecreationrejectsoldcallback-case.json", + "original_sha256": "1117ca08c1e7c33028d9e680b86a3396458be049a15bb489571954e7b98dcab1", + "public": "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/currentclearuseslivequeryandrecreationrejectsoldcallback-case.json", + "public_sha256": "1117ca08c1e7c33028d9e680b86a3396458be049a15bb489571954e7b98dcab1", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-case.json", + "original_sha256": "7ed88a37502269347c7d2f198849d4d0f65f61461ae277e0f1f406b8cb3e3c8d", + "public": "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-case.json", + "public_sha256": "7ed88a37502269347c7d2f198849d4d0f65f61461ae277e0f1f406b8cb3e3c8d", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-cleared.png", + "original_sha256": "55524d06840dd49241baf0157e9c5ad9a9d4b19d9f68a3309203d710e18dccdc", + "public": "docs/screenshots/keyboard-toggle/final-core-guards-tablet100/pointerclearremovescontrolledcompositionandwhitespace-emoji-cleared.png", + "public_sha256": "55524d06840dd49241baf0157e9c5ad9a9d4b19d9f68a3309203d710e18dccdc", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-cleared.xml", + "original_sha256": "5778d5c1f5c7f12c65cc4a115c40751b77e5127029b1dce305abf38351ac7d0c", + "public": "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-cleared.xml", + "public_sha256": "5778d5c1f5c7f12c65cc4a115c40751b77e5127029b1dce305abf38351ac7d0c", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-cleared-frame.json", + "original_sha256": "86dbc28407cf78d55b5eb919da9e93125b4da909503fa866f730470797c2310a", + "public": "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-cleared-frame.json", + "public_sha256": "86dbc28407cf78d55b5eb919da9e93125b4da909503fa866f730470797c2310a", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-composition.png", + "original_sha256": "2e9f34b90f42f9b01270138957823bc51abd14745dcf625e37944146dacd4287", + "public": "docs/screenshots/keyboard-toggle/final-core-guards-tablet100/pointerclearremovescontrolledcompositionandwhitespace-emoji-composition.png", + "public_sha256": "2e9f34b90f42f9b01270138957823bc51abd14745dcf625e37944146dacd4287", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-composition.xml", + "original_sha256": "d80195ee19f6c1b42a8a440eae66113e5e61f61c0a29ff4810c1e86d433b9670", + "public": "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-composition.xml", + "public_sha256": "d80195ee19f6c1b42a8a440eae66113e5e61f61c0a29ff4810c1e86d433b9670", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-composition-frame.json", + "original_sha256": "3c40f84c15e13d33285ecd1f3398f392ee3fc05c3c25397d62aa3f3ce3302f6f", + "public": "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-composition-frame.json", + "public_sha256": "3c40f84c15e13d33285ecd1f3398f392ee3fc05c3c25397d62aa3f3ce3302f6f", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-cleared.png", + "original_sha256": "daf008863db6622868302f04ea6ca40e8618123e252da575ca99290709d4679c", + "public": "docs/screenshots/keyboard-toggle/final-core-guards-tablet100/pointerclearremovescontrolledcompositionandwhitespace-launcher-cleared.png", + "public_sha256": "daf008863db6622868302f04ea6ca40e8618123e252da575ca99290709d4679c", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-cleared.xml", + "original_sha256": "ccbe0a25739349d71d7af880ce8e00008232f78160b5b5dcc17e52e16955ab5d", + "public": "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-cleared.xml", + "public_sha256": "ccbe0a25739349d71d7af880ce8e00008232f78160b5b5dcc17e52e16955ab5d", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-cleared-frame.json", + "original_sha256": "06b599673f1ca5a9dfa5c5fc3629ea051f09873b4a24bcea0fd8e99fbbb47c41", + "public": "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-cleared-frame.json", + "public_sha256": "06b599673f1ca5a9dfa5c5fc3629ea051f09873b4a24bcea0fd8e99fbbb47c41", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-composition.png", + "original_sha256": "76e892739238852481421c0ad37e89208f601b7fc1cf936313fdcba7c683351c", + "public": "docs/screenshots/keyboard-toggle/final-core-guards-tablet100/pointerclearremovescontrolledcompositionandwhitespace-launcher-composition.png", + "public_sha256": "76e892739238852481421c0ad37e89208f601b7fc1cf936313fdcba7c683351c", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-composition.xml", + "original_sha256": "81e6188282bcc98348f9735423575ea86a219261e3126ea0115605297005b6ad", + "public": "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-composition.xml", + "public_sha256": "81e6188282bcc98348f9735423575ea86a219261e3126ea0115605297005b6ad", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-composition-frame.json", + "original_sha256": "808e5c4701e5e9ccc34d462e7d6b61395bd94eeabfd442d679624e59b6f8a8e5", + "public": "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-composition-frame.json", + "public_sha256": "808e5c4701e5e9ccc34d462e7d6b61395bd94eeabfd442d679624e59b6f8a8e5", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-covered-by-menu.png", + "original_sha256": "cef46bb6a3196d5f9ac024aa491869ff6c69c4badd03994bc5ed990d4eea28a5", + "public": "docs/screenshots/keyboard-toggle/final-core-guards-tablet100/retainedclearcallbacksrejectreplacedsurfacesandmenus-covered-by-menu.png", + "public_sha256": "cef46bb6a3196d5f9ac024aa491869ff6c69c4badd03994bc5ed990d4eea28a5", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-covered-by-menu.xml", + "original_sha256": "9a50321e2f0402265c627a32bd7215c634bf11826fb428ca76485107ac43f8f7", + "public": "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-covered-by-menu.xml", + "public_sha256": "9a50321e2f0402265c627a32bd7215c634bf11826fb428ca76485107ac43f8f7", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-covered-by-menu-frame.json", + "original_sha256": "2048c3531f99b1b6bf46acd04e58c4e66db38f0c621c6262a0606eeb0f818e35", + "public": "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-covered-by-menu-frame.json", + "public_sha256": "2048c3531f99b1b6bf46acd04e58c4e66db38f0c621c6262a0606eeb0f818e35", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-replacement-emoji.png", + "original_sha256": "a78a8a40ed27abe11b968d7a4a2846c1c7d9939d639efc44fde18e9afcedbc26", + "public": "docs/screenshots/keyboard-toggle/final-core-guards-tablet100/retainedclearcallbacksrejectreplacedsurfacesandmenus-replacement-emoji.png", + "public_sha256": "a78a8a40ed27abe11b968d7a4a2846c1c7d9939d639efc44fde18e9afcedbc26", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-replacement-emoji.xml", + "original_sha256": "9b6e64fafa693ab8b77ab9e6b0430b717e62de392946855d6c7e94cb412d18e3", + "public": "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-replacement-emoji.xml", + "public_sha256": "9b6e64fafa693ab8b77ab9e6b0430b717e62de392946855d6c7e94cb412d18e3", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-replacement-emoji-frame.json", + "original_sha256": "2a660eb8464caf6d138b70234b18280ddf4c139c7b027660d11b78777eb718ce", + "public": "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-replacement-emoji-frame.json", + "public_sha256": "2a660eb8464caf6d138b70234b18280ddf4c139c7b027660d11b78777eb718ce", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-input-phone100/tests.log", + "original_sha256": "a1a4412de02e918967917e293cfa8b45bea0b97718b818870fce26629beb81ee", + "public": "docs/validation/keyboard-toggle/cohorts/final-input-phone100/tests.log", + "public_sha256": "a1a4412de02e918967917e293cfa8b45bea0b97718b818870fce26629beb81ee", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-input-phone100-outer.log", + "original_sha256": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "public": "docs/validation/keyboard-toggle/cohorts/final-input-phone100/outer.log", + "public_sha256": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-input-phone100/captures/case-committedemojinavigationandcaretareexact.json", + "original_sha256": "c3bb13bdacd7c620b036c512befafdd3bdf3e31d677a24aa9d6d3c90896694b4", + "public": "docs/validation/keyboard-toggle/cohorts/final-input-phone100/captures/case-committedemojinavigationandcaretareexact.json", + "public_sha256": "c3bb13bdacd7c620b036c512befafdd3bdf3e31d677a24aa9d6d3c90896694b4", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-input-phone100/captures/case-activemultilingualcompositionkeepsresultselection.json", + "original_sha256": "3ed1fb7f1d92527c4f40c666a1910dacaf2e6b299a6240d4fada6327b8d2640c", + "public": "docs/validation/keyboard-toggle/cohorts/final-input-phone100/captures/case-activemultilingualcompositionkeepsresultselection.json", + "public_sha256": "3ed1fb7f1d92527c4f40c666a1910dacaf2e6b299a6240d4fada6327b8d2640c", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-input-phone100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition.png", + "original_sha256": "36f10fc1c21f8b18045336a3c59e21643f2633fde10dfa4b955a2180398670f9", + "public": "docs/screenshots/keyboard-toggle/final-input-phone100/activemultilingualcompositionkeepsresultselection-active-japanese-composition.png", + "public_sha256": "36f10fc1c21f8b18045336a3c59e21643f2633fde10dfa4b955a2180398670f9", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-input-phone100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition.xml", + "original_sha256": "a1373dbb4211f4bb28da2078b350b0e5c5d5621d3caf8f94ce351d1131b7a947", + "public": "docs/validation/keyboard-toggle/cohorts/final-input-phone100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition.xml", + "public_sha256": "a1373dbb4211f4bb28da2078b350b0e5c5d5621d3caf8f94ce351d1131b7a947", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-input-phone100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition-frame.json", + "original_sha256": "386677aeb164b77096876bdad86dffc22a44a3cc7fe72b674be113e87e5280b3", + "public": "docs/validation/keyboard-toggle/cohorts/final-input-phone100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition-frame.json", + "public_sha256": "386677aeb164b77096876bdad86dffc22a44a3cc7fe72b674be113e87e5280b3", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-input-api26100/tests.log", + "original_sha256": "f51f23a2fef8eddf35739df2b663c7307640f1c8abb37af2e82e3c428be5fa83", + "public": "docs/validation/keyboard-toggle/cohorts/final-input-api26100/tests.log", + "public_sha256": "f51f23a2fef8eddf35739df2b663c7307640f1c8abb37af2e82e3c428be5fa83", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-input-api26100-outer.log", + "original_sha256": "b240cb5e56b3832849d0d550db1f90cc6c958bda805275b62cf82f84015a60c9", + "public": "docs/validation/keyboard-toggle/cohorts/final-input-api26100/outer.log", + "public_sha256": "b240cb5e56b3832849d0d550db1f90cc6c958bda805275b62cf82f84015a60c9", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-input-api26100/captures/case-committedemojinavigationandcaretareexact.json", + "original_sha256": "e7bf2b217918d84f3c71ad3d8c97664f3d45f5faf7cae2085b3fa1f4a559aa6d", + "public": "docs/validation/keyboard-toggle/cohorts/final-input-api26100/captures/case-committedemojinavigationandcaretareexact.json", + "public_sha256": "e7bf2b217918d84f3c71ad3d8c97664f3d45f5faf7cae2085b3fa1f4a559aa6d", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-input-api26100/captures/case-activemultilingualcompositionkeepsresultselection.json", + "original_sha256": "5a4261a3bad2e3fbf68f14e10e255fd28334d8af95ae080e0c6e4cdd5b79b165", + "public": "docs/validation/keyboard-toggle/cohorts/final-input-api26100/captures/case-activemultilingualcompositionkeepsresultselection.json", + "public_sha256": "5a4261a3bad2e3fbf68f14e10e255fd28334d8af95ae080e0c6e4cdd5b79b165", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-input-api26100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition.png", + "original_sha256": "48201726e6c03772eb03571fa12ac9eb76dc5ad4e9f10275a473928c124e99c5", + "public": "docs/screenshots/keyboard-toggle/final-input-api26100/activemultilingualcompositionkeepsresultselection-active-japanese-composition.png", + "public_sha256": "48201726e6c03772eb03571fa12ac9eb76dc5ad4e9f10275a473928c124e99c5", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-input-api26100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition.xml", + "original_sha256": "dd0eff05b382486b3a99600ca15892ea179f975d7ce13247fe07bd9c60262c6b", + "public": "docs/validation/keyboard-toggle/cohorts/final-input-api26100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition.xml", + "public_sha256": "dd0eff05b382486b3a99600ca15892ea179f975d7ce13247fe07bd9c60262c6b", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-input-api26100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition-frame.json", + "original_sha256": "386677aeb164b77096876bdad86dffc22a44a3cc7fe72b674be113e87e5280b3", + "public": "docs/validation/keyboard-toggle/cohorts/final-input-api26100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition-frame.json", + "public_sha256": "386677aeb164b77096876bdad86dffc22a44a3cc7fe72b674be113e87e5280b3", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-harness/identity.json", + "original_sha256": "fab10e1b0b0aa139e8b864253186102bc5325f40b466c4a30222a996603296c8", + "public": "docs/validation/keyboard-toggle/identities/baseline-harness/identity.json", + "public_sha256": "fab10e1b0b0aa139e8b864253186102bc5325f40b466c4a30222a996603296c8", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-harness/test-manifest.xml", + "original_sha256": "b467cd75f67ae0336c000708f82d24b5be57bd28f9add3fe3dfedad05d51da7a", + "public": "docs/validation/keyboard-toggle/identities/baseline-harness/test-manifest.xml", + "public_sha256": "b467cd75f67ae0336c000708f82d24b5be57bd28f9add3fe3dfedad05d51da7a", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-harness-v3/identity.json", + "original_sha256": "0233d413c1bcead6aa7592d384032b6d5c379136975c9bed452d46899acc7542", + "public": "docs/validation/keyboard-toggle/identities/baseline-harness-v3/identity.json", + "public_sha256": "0233d413c1bcead6aa7592d384032b6d5c379136975c9bed452d46899acc7542", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-harness-v3/test-manifest.xml", + "original_sha256": "b467cd75f67ae0336c000708f82d24b5be57bd28f9add3fe3dfedad05d51da7a", + "public": "docs/validation/keyboard-toggle/identities/baseline-harness-v3/test-manifest.xml", + "public_sha256": "b467cd75f67ae0336c000708f82d24b5be57bd28f9add3fe3dfedad05d51da7a", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v1/identity.json", + "original_sha256": "22366de743450b0d6628c9fda3fab948defdfae56d6a0779e28eb603a12a8090", + "public": "docs/validation/keyboard-toggle/identities/candidate-v1/identity.json", + "public_sha256": "22366de743450b0d6628c9fda3fab948defdfae56d6a0779e28eb603a12a8090", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v1/app-manifest.xml", + "original_sha256": "87d4277058ab8871f5598c485728fa83d72e64fbae5c971f961a7e0a527d1f83", + "public": "docs/validation/keyboard-toggle/identities/candidate-v1/app-manifest.xml", + "public_sha256": "87d4277058ab8871f5598c485728fa83d72e64fbae5c971f961a7e0a527d1f83", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v1/test-manifest.xml", + "original_sha256": "b467cd75f67ae0336c000708f82d24b5be57bd28f9add3fe3dfedad05d51da7a", + "public": "docs/validation/keyboard-toggle/identities/candidate-v1/test-manifest.xml", + "public_sha256": "b467cd75f67ae0336c000708f82d24b5be57bd28f9add3fe3dfedad05d51da7a", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v1/debug-build.log", + "original_sha256": "36335cab4466ccdf3931c3c38e621b750edb00f059c80c70ba474242fd43db1c", + "public": "docs/validation/keyboard-toggle/checks/candidate-v1/debug-build.log", + "public_sha256": "c2aefe5e9bfb8406431c1bfd4904e996e4e8e9656967363587f6a9bea75951c5", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2/identity.json", + "original_sha256": "44ea7031c7ea2457e3d27242f052566f8a8ff31768cfbdaa2681a1d0529138b4", + "public": "docs/validation/keyboard-toggle/identities/candidate-v2/identity.json", + "public_sha256": "44ea7031c7ea2457e3d27242f052566f8a8ff31768cfbdaa2681a1d0529138b4", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2/app-manifest.xml", + "original_sha256": "42b18e336507424fef0e7638beee5f24f6a86ab60389a0115c8b14354aa66ccc", + "public": "docs/validation/keyboard-toggle/identities/candidate-v2/app-manifest.xml", + "public_sha256": "42b18e336507424fef0e7638beee5f24f6a86ab60389a0115c8b14354aa66ccc", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2/test-manifest.xml", + "original_sha256": "b467cd75f67ae0336c000708f82d24b5be57bd28f9add3fe3dfedad05d51da7a", + "public": "docs/validation/keyboard-toggle/identities/candidate-v2/test-manifest.xml", + "public_sha256": "b467cd75f67ae0336c000708f82d24b5be57bd28f9add3fe3dfedad05d51da7a", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2/debug-build.log", + "original_sha256": "05b7368b7cd86daaf2a7b9c5dd11635f936c666f463438b0381a6f5a368184fe", + "public": "docs/validation/keyboard-toggle/checks/candidate-v2/debug-build.log", + "public_sha256": "71d8449f41e15078c69261634c903dc7e7f86bc7293c1acb55dce495513f631e", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3/identity.json", + "original_sha256": "11e5644287950a8c19f31741984d2657415f32e6d4463f19934ab967cad31fca", + "public": "docs/validation/keyboard-toggle/identities/candidate-v3/identity.json", + "public_sha256": "11e5644287950a8c19f31741984d2657415f32e6d4463f19934ab967cad31fca", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3/app-manifest.xml", + "original_sha256": "57c5171d260356c9a976442856f3d88dff23d5c7a5a4e38f9e92cd96ffa7dc58", + "public": "docs/validation/keyboard-toggle/identities/candidate-v3/app-manifest.xml", + "public_sha256": "57c5171d260356c9a976442856f3d88dff23d5c7a5a4e38f9e92cd96ffa7dc58", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3/test-manifest.xml", + "original_sha256": "b467cd75f67ae0336c000708f82d24b5be57bd28f9add3fe3dfedad05d51da7a", + "public": "docs/validation/keyboard-toggle/identities/candidate-v3/test-manifest.xml", + "public_sha256": "b467cd75f67ae0336c000708f82d24b5be57bd28f9add3fe3dfedad05d51da7a", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3/debug-build.log", + "original_sha256": "f6cb090c40f177dd7c4ca9b6207b46cc568e7efbabb6d6222036176addca9e05", + "public": "docs/validation/keyboard-toggle/checks/candidate-v3/debug-build.log", + "public_sha256": "024815d48a224808fa4d306df8165f5d51795a062d8e62277f1e45131a32bf5b", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/final-harness/identity.json", + "original_sha256": "b156a14619a294585b948005110256f1c9683a82a8c02073b8ecfb9a2adf8de0", + "public": "docs/validation/keyboard-toggle/identities/final-harness/identity.json", + "public_sha256": "b156a14619a294585b948005110256f1c9683a82a8c02073b8ecfb9a2adf8de0", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-harness/app-manifest.xml", + "original_sha256": "57c5171d260356c9a976442856f3d88dff23d5c7a5a4e38f9e92cd96ffa7dc58", + "public": "docs/validation/keyboard-toggle/identities/final-harness/app-manifest.xml", + "public_sha256": "57c5171d260356c9a976442856f3d88dff23d5c7a5a4e38f9e92cd96ffa7dc58", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-harness/test-manifest.xml", + "original_sha256": "b467cd75f67ae0336c000708f82d24b5be57bd28f9add3fe3dfedad05d51da7a", + "public": "docs/validation/keyboard-toggle/identities/final-harness/test-manifest.xml", + "public_sha256": "b467cd75f67ae0336c000708f82d24b5be57bd28f9add3fe3dfedad05d51da7a", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-harness/debug-build.log", + "original_sha256": "3b1a219885cb55759609603a45292fc3883d1e5d7b566447dee82c26d395731d", + "public": "docs/validation/keyboard-toggle/checks/final-harness/debug-build.log", + "public_sha256": "806eeff1871f4233dbddb9ff7abc9a81f4e4a392db9f56380a5a8316bad9412b", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/initial-settings-receipt.json", + "original_sha256": "4d9258649473640a353bdd98c31f9305ba7f94d304ab3e6c54b004457e8483c1", + "public": "docs/validation/keyboard-toggle/initial-settings-receipt.json", + "public_sha256": "4d9258649473640a353bdd98c31f9305ba7f94d304ab3e6c54b004457e8483c1", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-preservation.json", + "original_sha256": "f768c3184be8fbc085a285b1b7988807972cd523ea7985d06f59c3003608cd9f", + "public": "docs/validation/keyboard-toggle/final-preservation.json", + "public_sha256": "f768c3184be8fbc085a285b1b7988807972cd523ea7985d06f59c3003608cd9f", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/frozen-host-verification.json", + "original_sha256": "c0ecf169da107d308eaff67acd9a9e92cfdfce489f54cdc35ba91d9302e35fc0", + "public": "docs/validation/keyboard-toggle/frozen-host-verification.json", + "public_sha256": "c0ecf169da107d308eaff67acd9a9e92cfdfce489f54cdc35ba91d9302e35fc0", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-verification.json", + "original_sha256": "f750cd6a4182c26546d03371568b196a8ef0e757b6832f1aacc281dff07cbb94", + "public": "docs/validation/keyboard-toggle/final-verification.json", + "public_sha256": "f750cd6a4182c26546d03371568b196a8ef0e757b6832f1aacc281dff07cbb94", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/semantics-proxy-inspection.json", + "original_sha256": "9d3bff458f154994dc5bcf00e2902f47e7045b9fa2cd861cd218d9fe2fb99851", + "public": "docs/validation/keyboard-toggle/semantics-proxy-inspection.json", + "public_sha256": "9d3bff458f154994dc5bcf00e2902f47e7045b9fa2cd861cd218d9fe2fb99851", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-controls-calibration.json", + "original_sha256": "5cc0c326d825b7e14d0f21a28d9f0714bd07bc222c2450eb7f6d166f839d0e96", + "public": "docs/validation/keyboard-toggle/final-controls-calibration.json", + "public_sha256": "5cc0c326d825b7e14d0f21a28d9f0714bd07bc222c2450eb7f6d166f839d0e96", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-controls.json", + "original_sha256": "d6ee5685334d050fe2891a804535c9a2674402b57d00ba38e1e49008565e455a", + "public": "docs/validation/keyboard-toggle/pipelines/baseline-controls.json", + "public_sha256": "d6ee5685334d050fe2891a804535c9a2674402b57d00ba38e1e49008565e455a", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/baseline-controls-v3.json", + "original_sha256": "fdcfe76a1bdaeb977eaedada666cef4cb50b5187dbefb71087b0f7c90ab686a4", + "public": "docs/validation/keyboard-toggle/pipelines/baseline-controls-v3.json", + "public_sha256": "fdcfe76a1bdaeb977eaedada666cef4cb50b5187dbefb71087b0f7c90ab686a4", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/native-v1.json", + "original_sha256": "3a7e5ee7b46155d7c3e089e34ec0fbfa8ec7afed2add533e1bc5766e773aa9aa", + "public": "docs/validation/keyboard-toggle/pipelines/native-v1.json", + "public_sha256": "3a7e5ee7b46155d7c3e089e34ec0fbfa8ec7afed2add533e1bc5766e773aa9aa", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/native-v2.json", + "original_sha256": "52930dda1845aa1a9f6bc798c4b903cd494bece129038a6a701264efa1320f4e", + "public": "docs/validation/keyboard-toggle/pipelines/native-v2.json", + "public_sha256": "52930dda1845aa1a9f6bc798c4b903cd494bece129038a6a701264efa1320f4e", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/native-v3.json", + "original_sha256": "760819ee40bafdbb8e87341ab3d30efb912a8a916e9aa14ba1169244e932048f", + "public": "docs/validation/keyboard-toggle/pipelines/native-v3.json", + "public_sha256": "760819ee40bafdbb8e87341ab3d30efb912a8a916e9aa14ba1169244e932048f", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostics.json", + "original_sha256": "ee3a56d4ee9cb2d9528bf025ce67535910bbba37260e3fba8ff303d6f9bbe337", + "public": "docs/validation/keyboard-toggle/pipelines/back-diagnostics.json", + "public_sha256": "ee3a56d4ee9cb2d9528bf025ce67535910bbba37260e3fba8ff303d6f9bbe337", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/native-v4.json", + "original_sha256": "54512c0fe26692f3e30bd4270cbfb796c77196d6f2ed10433a1ba7919f1150ee", + "public": "docs/validation/keyboard-toggle/pipelines/native-v4.json", + "public_sha256": "54512c0fe26692f3e30bd4270cbfb796c77196d6f2ed10433a1ba7919f1150ee", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/build-baseline.log", + "original_sha256": "1278706f0a99815cd700ebf9b94d84a90c3f3b1d509223861eaa26f59c5366ad", + "public": "docs/validation/keyboard-toggle/checks/build-baseline.log", + "public_sha256": "ef47fab1ad3c9df52bc081df5009470e81cd063cb39db2a79583f1e1693b6151", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/build-baseline-v2.log", + "original_sha256": "d22e7b115db6779e4a1d8fd0a0ff4eafdf606b1481386644ec46fe89bb8d28bf", + "public": "docs/validation/keyboard-toggle/checks/build-baseline-v2.log", + "public_sha256": "5eba99743bce436e3644aefe5259b0600df4486a92f2f46bd380b0f7a629b77e", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/build-baseline-v3.log", + "original_sha256": "9f4b0a8604cf6b4f0a824a18fb80a31cfe99fc73d20db184d358274805d549f3", + "public": "docs/validation/keyboard-toggle/checks/build-baseline-v3.log", + "public_sha256": "d3aa01cec4b3e56d7923dc7a1ecc34c9c5aa56a04301cafb15de82107175aa3f", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/host-v1.log", + "original_sha256": "fb40ffa8a459a5e1e7a32c49f1cc33f8227257ce217d743a810b4419c263c719", + "public": "docs/validation/keyboard-toggle/checks/host-v1.log", + "public_sha256": "ff5eab51d7e4c1d355cab1596061e27166049e65862148765d211534e10be670", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/host-v2.log", + "original_sha256": "2a1336e5a5bab35dcc929f6e624b93c21002fda74f2372cf4993159e0ccf0ba7", + "public": "docs/validation/keyboard-toggle/checks/host-v2.log", + "public_sha256": "5a02ea9a91b47bdfa054c5d04d5a31d07880c87d3c150cbea8355cbf85dfb089", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/host-v3.log", + "original_sha256": "834103bba81bcb618953f166e1c0bc148009f89e1ccedc3fb668e32e3b0bda3e", + "public": "docs/validation/keyboard-toggle/checks/host-v3.log", + "public_sha256": "838481ee63bd9d63d484aaa19425475167c49c21e1a1c9603a29f4dd4b8dad95", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/host-final-harness.log", + "original_sha256": "0d6470f62ea5712913d1f6d72cf2f2ca32bdb714980455b7366079f6f5869353", + "public": "docs/validation/keyboard-toggle/checks/host-final-harness.log", + "public_sha256": "494a54a68fff28e70694407bd7c536e12354697c528764a06cb3abc8c8ffd0f0", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/python-v1-normal.log", + "original_sha256": "1316b28e38783e8e019d172ccbbddd33ae3f932a63b3f839ed67088d1692168b", + "public": "docs/validation/keyboard-toggle/checks/python-v1-normal.log", + "public_sha256": "1316b28e38783e8e019d172ccbbddd33ae3f932a63b3f839ed67088d1692168b", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/python-v1-optimized.log", + "original_sha256": "773915088754da34ef9b26ae2e2fa0d4a8f63e157b2924f09922c27d7c34f4df", + "public": "docs/validation/keyboard-toggle/checks/python-v1-optimized.log", + "public_sha256": "773915088754da34ef9b26ae2e2fa0d4a8f63e157b2924f09922c27d7c34f4df", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/python-supplement-normal.log", + "original_sha256": "66c8990686de7321ecbd5c53ed038b72138eaf68991038e996497045c2637639", + "public": "docs/validation/keyboard-toggle/checks/python-supplement-normal.log", + "public_sha256": "66c8990686de7321ecbd5c53ed038b72138eaf68991038e996497045c2637639", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/python-supplement-optimized.log", + "original_sha256": "cc7079ed6bb280c8a803b5fd9ce9df3da32bcf2ca37a0acfc6af8b9e825f0ae4", + "public": "docs/validation/keyboard-toggle/checks/python-supplement-optimized.log", + "public_sha256": "cc7079ed6bb280c8a803b5fd9ce9df3da32bcf2ca37a0acfc6af8b9e825f0ae4", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/python-final-normal.log", + "original_sha256": "d88a3984fec5a5d0bdcbc71f7a3ddd26cc76b057f42309616922115dac276fb5", + "public": "docs/validation/keyboard-toggle/checks/python-final-normal.log", + "public_sha256": "d88a3984fec5a5d0bdcbc71f7a3ddd26cc76b057f42309616922115dac276fb5", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/python-final-optimized.log", + "original_sha256": "1fc320d835261db23adae5bcbf4f7f5bfc3e2c32b20bf48bb7dba064fabeee0d", + "public": "docs/validation/keyboard-toggle/checks/python-final-optimized.log", + "public_sha256": "1fc320d835261db23adae5bcbf4f7f5bfc3e2c32b20bf48bb7dba064fabeee0d", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/capture-initial-settings.py", + "original_sha256": "09e71e1aa9ef192e7d7e09a46669769dd8afd5edbfae7c4170fd1bb7ecaee1f5", + "public": "docs/validation/keyboard-toggle/collection-source/capture-initial-settings.py", + "public_sha256": "ded2c0af0ba60f504462ca823fe9cac7e8430c14633d77c03e2157450a6622b0", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/build-baseline.py", + "original_sha256": "207629187fa81cefd7eb8348841964287f4de722b5ea19eac3e8589831b74ef9", + "public": "docs/validation/keyboard-toggle/collection-source/build-baseline.py", + "public_sha256": "9343afcc6201ab25a2295497ebe9395c9cfa161868460d35409acd9e00dc253a", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/build-baseline-v2.py", + "original_sha256": "50caa264ad4bddfda5a72213a150eb839e7ee407a6c9bd8e03b2417d7bd980e5", + "public": "docs/validation/keyboard-toggle/collection-source/build-baseline-v2.py", + "public_sha256": "2026e565202423c6f33179fb33112f43d40577eb9f0ce3e5425e3b1282393cfa", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/build-baseline-v3.py", + "original_sha256": "350074ff551de13fd55834d353f5461d7b2e77f5558051eda0edca7d70185b4e", + "public": "docs/validation/keyboard-toggle/collection-source/build-baseline-v3.py", + "public_sha256": "94e88187a5b9e21efd4c9b4159b7aa15e0dde7a43a73187cd758a78d7455556a", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/run-baseline.py", + "original_sha256": "228503ef13fb5c2350dcabdc6cb174b529f645c8f9152c05089ebf8fa3cc2e99", + "public": "docs/validation/keyboard-toggle/collection-source/run-baseline.py", + "public_sha256": "073d1e5fba839855a6ca60bc9ae8a76f69b64ec513eb42f6dae407ba53414418", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/run-baseline-v3.py", + "original_sha256": "6a89c802b450f0d188335802ebbb6417ecd8d41188e3244bb72cc7e9c91de9e9", + "public": "docs/validation/keyboard-toggle/collection-source/run-baseline-v3.py", + "public_sha256": "3c0d769ee5caa0b8ac39f39327002ca8070993539af182cd97bb641f5e2cf2dc", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/build-freeze-v1.py", + "original_sha256": "f490b68796af05159abeed6368f217ff4fe8009c6225be2858a279f569a78a4b", + "public": "docs/validation/keyboard-toggle/collection-source/build-freeze-v1.py", + "public_sha256": "ffabbfb50f815c83a348b3c4a51a9425c613a12178cdb89e0f1ce22d342aa94c", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/build-freeze-v2.py", + "original_sha256": "d9a4fae0e200b07ebfbd2feefe72e2bca822a9c813f79bfc883f554c7491bf30", + "public": "docs/validation/keyboard-toggle/collection-source/build-freeze-v2.py", + "public_sha256": "f14fb7941c76da2bf583223a6f6d57598d59e3010e62cc7bd103046e5c7f5b87", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/build-freeze-v3.py", + "original_sha256": "b6cb3b6d38be82fc67838267a15bae66509dbd491a65acd9a2e59df571a12a94", + "public": "docs/validation/keyboard-toggle/collection-source/build-freeze-v3.py", + "public_sha256": "bb2ce0448586fb4ce0c7c3417e358984a8016cf3066e4ae8c63316c50dc76586", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/build-final-harness.py", + "original_sha256": "00ad993328ac5d68cfb20fbb58b660573b9a85a3ec5c2875eb4519f0f97a8c7d", + "public": "docs/validation/keyboard-toggle/collection-source/build-final-harness.py", + "public_sha256": "1bb68639c0f2c0bca6a3ea3564f59703d77121ef47fcda41a0b3b6a28096ec86", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/run-native-v1.py", + "original_sha256": "953157326b3d7b7c3c2d4c1c69b1cea30ed0ef4b65c7383452af57a9d0b1ecd6", + "public": "docs/validation/keyboard-toggle/collection-source/run-native-v1.py", + "public_sha256": "e67cd5d9fe39bf29d14ff7387bc04ee588e24b6e801c927aa878c506aa9f5b96", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/run-native-v2.py", + "original_sha256": "90371a28191b7d2a76b826a17f28e99be551f0ddbb90cb9b2bc9c46552ef0309", + "public": "docs/validation/keyboard-toggle/collection-source/run-native-v2.py", + "public_sha256": "649e92298385b3bee5922ff9a07e5a03b99677a6a12f9c462fe4f9b7722f1a6c", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/run-native-v3.py", + "original_sha256": "9b846b3877a66549c177046790a5f16b60f26369728b2c6956ba4ee532c6768a", + "public": "docs/validation/keyboard-toggle/collection-source/run-native-v3.py", + "public_sha256": "e8b1cf72d6a2eab91452ce19f464ad63c844723aa99f62ab87975c95fa2bfceb", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/run-native-v4.py", + "original_sha256": "b4ac34af50fce2deebaf658cbe8d5f29cea6ac0df9ff358bd96e33a7d169f65a", + "public": "docs/validation/keyboard-toggle/collection-source/run-native-v4.py", + "public_sha256": "cdd0e81d612cbf8fc0a6ac9ae1567f199e3811c248751675e5f7ad092ca8a787", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/run-back-diagnostics.py", + "original_sha256": "c95c5785dbd2b10a6889e2dffd660b9ac8cd1b124491502ba43809319890eef6", + "public": "docs/validation/keyboard-toggle/collection-source/run-back-diagnostics.py", + "public_sha256": "f61976f48de82cf13deff51d34c5b42d67c8304303882a3de00abed4632a2051", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/run-final.py", + "original_sha256": "9763a1a8d83b31c51346369e99ea011e458b23aee1ed5a8d3b3e408ad185fd1b", + "public": "docs/validation/keyboard-toggle/collection-source/run-final.py", + "public_sha256": "9763a1a8d83b31c51346369e99ea011e458b23aee1ed5a8d3b3e408ad185fd1b", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/final-preservation.py", + "original_sha256": "9a18d326147b54ef53993f9487777509ae414b659d32c1daedb3ed625d9380be", + "public": "docs/validation/keyboard-toggle/collection-source/final-preservation.py", + "public_sha256": "6645e7ef98fa246b74056ee917813b9fc63eed9830dc8557cebc122121a6cae6", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/verify-frozen-host.py", + "original_sha256": "3a3666c1420d18dfe5f1671112c9f62d3db872d3d8eb186e44e162bc960357a8", + "public": "docs/validation/keyboard-toggle/collection-source/verify-frozen-host.py", + "public_sha256": "dcf6edbeb20e65f1aab3325ea9d001425c873a189b5e84c0895d357f9e597c86", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/verify-final.py", + "original_sha256": "f4d8fbd2e80559404c96e95760ed9360a52cb44ef78194f5e2df76c647dc948c", + "public": "docs/validation/keyboard-toggle/collection-source/verify-final.py", + "public_sha256": "45f1623327f2049445e4274a1c2fe7832b4e96c2cd6c74c9ec1c300aa42fb02a", + "transformation": "redact-text" + }, + { + "original": "artifacts/keyboard-toggle/calibrate-final-controls.py", + "original_sha256": "beb1a9fca9b2acc77723af9a0f7bb0cdc0401c607dc4404706b90997dff4d169", + "public": "docs/validation/keyboard-toggle/collection-source/calibrate-final-controls.py", + "public_sha256": "beb1a9fca9b2acc77723af9a0f7bb0cdc0401c607dc4404706b90997dff4d169", + "transformation": "identity" + }, + { + "original": "artifacts/keyboard-toggle/publish.py", + "original_sha256": "664d4da77a7f7c211963a654e61eb9542148728bd2e45ec40e8514decf8c15c9", + "public": "docs/validation/keyboard-toggle/collection-source/publish.py", + "public_sha256": "c772b338b4356f11910822d612e6bf8cb49dfdc47f7526c5ccc2527bdbcc6171", + "transformation": "redact-text" + }, + { + "original": "app/build/reports/lint-results-debug.xml", + "original_sha256": "d596d739aa442c4f5287e4cbc16f76ef22fedefe23e096c0a9dd476b6bd55d42", + "public": "docs/validation/keyboard-toggle/checks/lint-results-debug.xml", + "public_sha256": "079d0b3b874e5a9595d9072abd1a8e08fd89119d640d8e40e5377d8e071baa11", + "transformation": "redact-xml" + }, + { + "original": "app/build/reports/lint-results-benchmark.xml", + "original_sha256": "d596d739aa442c4f5287e4cbc16f76ef22fedefe23e096c0a9dd476b6bd55d42", + "public": "docs/validation/keyboard-toggle/checks/lint-results-benchmark.xml", + "public_sha256": "079d0b3b874e5a9595d9072abd1a8e08fd89119d640d8e40e5377d8e071baa11", + "transformation": "redact-xml" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.BackupPlannerTest.xml", + "original_sha256": "c80027ebef7627e2d11315fcfc6b7b5b287c385b14768a70713fda303cc1a626", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.BackupPlannerTest.xml", + "public_sha256": "c80027ebef7627e2d11315fcfc6b7b5b287c385b14768a70713fda303cc1a626", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.CalculatorActionsTest.xml", + "original_sha256": "0af2d4e04da268d1f352e96e40c5ab1f92a30799e65a44ba2606cc70c9953e12", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.CalculatorActionsTest.xml", + "public_sha256": "0af2d4e04da268d1f352e96e40c5ab1f92a30799e65a44ba2606cc70c9953e12", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.CommandEngineTest.xml", + "original_sha256": "51d4930763c8f6fbf37491111696e2807ddfb53dc1206f4cc754ae327afe5617", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.CommandEngineTest.xml", + "public_sha256": "51d4930763c8f6fbf37491111696e2807ddfb53dc1206f4cc754ae327afe5617", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.EmojiCatalogTest.xml", + "original_sha256": "c7af075ba0d661e9d8f3c073c5b0c93ed7780d95a00213518251db84fb7aa8aa", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.EmojiCatalogTest.xml", + "public_sha256": "c7af075ba0d661e9d8f3c073c5b0c93ed7780d95a00213518251db84fb7aa8aa", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.ExtensionCommandLaunchTest.xml", + "original_sha256": "f4cb2a110147c1911ec62b25893c9092b0264dd27dd41274d944d3e7aa4dd8f6", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionCommandLaunchTest.xml", + "public_sha256": "f4cb2a110147c1911ec62b25893c9092b0264dd27dd41274d944d3e7aa4dd8f6", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.ExtensionDetailImageTimeoutTest.xml", + "original_sha256": "bac1adc3f102c9414807fb6d323a6f355fbcc01f715b59c42519c46fcc00fa51", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionDetailImageTimeoutTest.xml", + "public_sha256": "bac1adc3f102c9414807fb6d323a6f355fbcc01f715b59c42519c46fcc00fa51", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.ExtensionEngineCompatibilityTest.xml", + "original_sha256": "81dc279c899648657a88d910c15f7875b76b9102eedbc6904a0833611f3b4e44", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionEngineCompatibilityTest.xml", + "public_sha256": "81dc279c899648657a88d910c15f7875b76b9102eedbc6904a0833611f3b4e44", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.ExtensionFormContractTest.xml", + "original_sha256": "508722a97e0b9071d1a0744192042b423d8d423c4f66e5dfbc246500c7b328a2", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionFormContractTest.xml", + "public_sha256": "508722a97e0b9071d1a0744192042b423d8d423c4f66e5dfbc246500c7b328a2", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.ExtensionFormFileImportTest.xml", + "original_sha256": "ecbeae12ed7962ba8abe0b755db0dfd9c8a76105d72a459bed35e65035dd65d8", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionFormFileImportTest.xml", + "public_sha256": "ecbeae12ed7962ba8abe0b755db0dfd9c8a76105d72a459bed35e65035dd65d8", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.ExtensionFormSubmissionTest.xml", + "original_sha256": "3cfe9cd92660051298641dfeff1195ed5bcd01c481d6e42386e055cc9c30ad73", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionFormSubmissionTest.xml", + "public_sha256": "3cfe9cd92660051298641dfeff1195ed5bcd01c481d6e42386e055cc9c30ad73", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.ExtensionFormTypedValuesTest.xml", + "original_sha256": "2be90de77f8b35c1398ba865c07f93f9e7828767e73bbd346e15a1477a0d2c3d", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionFormTypedValuesTest.xml", + "public_sha256": "2be90de77f8b35c1398ba865c07f93f9e7828767e73bbd346e15a1477a0d2c3d", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.ExtensionFormValuesTest.xml", + "original_sha256": "1a417c589842e259b029486925db36cadbc964b49d3437b040e1017f649c38d9", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionFormValuesTest.xml", + "public_sha256": "1a417c589842e259b029486925db36cadbc964b49d3437b040e1017f649c38d9", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.ExtensionGridContractTest.xml", + "original_sha256": "283e6dbe9f0dd4d54ef304fbf769cd61a17e64888d9268b38ad3af97d755e318", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionGridContractTest.xml", + "public_sha256": "283e6dbe9f0dd4d54ef304fbf769cd61a17e64888d9268b38ad3af97d755e318", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.ExtensionGridNavigationTest.xml", + "original_sha256": "1c7598c95ac76ce195c89068833db49c2be295db771552a41b6d5f39105c01e5", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionGridNavigationTest.xml", + "public_sha256": "1c7598c95ac76ce195c89068833db49c2be295db771552a41b6d5f39105c01e5", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.ExtensionHttpTest.xml", + "original_sha256": "07f54a58772c54efb47815c072365f2216e8212b1dcd516b62eb54f8331d5da9", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionHttpTest.xml", + "public_sha256": "07f54a58772c54efb47815c072365f2216e8212b1dcd516b62eb54f8331d5da9", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.ExtensionMarkdownModelTest.xml", + "original_sha256": "0137105b966f79eeb473ee47f3a8a5ebee79b2224fa3f20b202ff78e183c7be0", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionMarkdownModelTest.xml", + "public_sha256": "0137105b966f79eeb473ee47f3a8a5ebee79b2224fa3f20b202ff78e183c7be0", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.ExtensionMetadataVisualsTest.xml", + "original_sha256": "e42bf2b05342153260c86fa1bf366991949768ec4bab81d166e21f11c70411e0", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionMetadataVisualsTest.xml", + "public_sha256": "e42bf2b05342153260c86fa1bf366991949768ec4bab81d166e21f11c70411e0", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.ExtensionPasteCopyTest.xml", + "original_sha256": "d5f74cb589b732e3cc3b20c6408ab13ee5686af42879792f8c337f63d3c9195a", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionPasteCopyTest.xml", + "public_sha256": "d5f74cb589b732e3cc3b20c6408ab13ee5686af42879792f8c337f63d3c9195a", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.ExtensionPayloadIdentityTest.xml", + "original_sha256": "79f90dff5dcbca62ae0e171250e7434b10d2c92fb95ab11329079347d2942303", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionPayloadIdentityTest.xml", + "public_sha256": "79f90dff5dcbca62ae0e171250e7434b10d2c92fb95ab11329079347d2942303", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.ExtensionSelectionDeliveryTest.xml", + "original_sha256": "0758f546523f24ec625988f68ed9ef29977108c7da30c497a3ae8b71b4e2b634", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionSelectionDeliveryTest.xml", + "public_sha256": "0758f546523f24ec625988f68ed9ef29977108c7da30c497a3ae8b71b4e2b634", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.ExtensionWorkflowEvidenceTest.xml", + "original_sha256": "00b8470d41eef3701936dfb9364eeced90048395260b4912d612cba5005867e2", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionWorkflowEvidenceTest.xml", + "public_sha256": "00b8470d41eef3701936dfb9364eeced90048395260b4912d612cba5005867e2", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.ExtensionWorkflowInspectionTest.xml", + "original_sha256": "2b4871746471cbcfb7d87efba61a965611dbbb8931360a9fae337bab07de1544", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionWorkflowInspectionTest.xml", + "public_sha256": "2b4871746471cbcfb7d87efba61a965611dbbb8931360a9fae337bab07de1544", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.FolderGrantTransactionTest.xml", + "original_sha256": "3e3db0311a00431993ce2d270273830bc741639768075dc6212d6aeb52412219", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.FolderGrantTransactionTest.xml", + "public_sha256": "3e3db0311a00431993ce2d270273830bc741639768075dc6212d6aeb52412219", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.FolderIndexTest.xml", + "original_sha256": "835ffd4d03b533e4a476acb8282a39c29972edd164113cead30a794dd6d8276d", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.FolderIndexTest.xml", + "public_sha256": "835ffd4d03b533e4a476acb8282a39c29972edd164113cead30a794dd6d8276d", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.ModifierTapTest.xml", + "original_sha256": "d1cf3edc1444eb8f153378141b639414cd617f6554d993abbe4668f35e2f45c3", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ModifierTapTest.xml", + "public_sha256": "d1cf3edc1444eb8f153378141b639414cd617f6554d993abbe4668f35e2f45c3", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.PaletteMenuOwnershipTest.xml", + "original_sha256": "c54ff92b0206ccef7aca95abdc07e93515dbe91f00a615aee23fc6bd719e5c6a", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.PaletteMenuOwnershipTest.xml", + "public_sha256": "c54ff92b0206ccef7aca95abdc07e93515dbe91f00a615aee23fc6bd719e5c6a", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.PaletteScrollHistoryTest.xml", + "original_sha256": "8854843fb7fb088c1fdab500ecf54e394fab2e9b0a1678c3f02adf4cc08b0da1", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.PaletteScrollHistoryTest.xml", + "public_sha256": "8854843fb7fb088c1fdab500ecf54e394fab2e9b0a1678c3f02adf4cc08b0da1", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.ReviewedTextInputTest.xml", + "original_sha256": "96bde342b0c3678df8afafb600db19e80944fb3799bb68bfeb9bb0f9742d0f41", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ReviewedTextInputTest.xml", + "public_sha256": "96bde342b0c3678df8afafb600db19e80944fb3799bb68bfeb9bb0f9742d0f41", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.ShortcutReadinessTest.xml", + "original_sha256": "e5aa3cb229d1380878ade3716bac62d987aa6cf351843a87ea54a2cf17e73d5c", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ShortcutReadinessTest.xml", + "public_sha256": "e5aa3cb229d1380878ade3716bac62d987aa6cf351843a87ea54a2cf17e73d5c", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.ShortcutTest.xml", + "original_sha256": "f292b358e3be09268d53f1fb19837b2b9638de4f33b9428e08d2c9da1cac2a79", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ShortcutTest.xml", + "public_sha256": "f292b358e3be09268d53f1fb19837b2b9638de4f33b9428e08d2c9da1cac2a79", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.SystemSettingsTest.xml", + "original_sha256": "4c15ba43916f199f1259eadde548a176695b40e12085fd76979de94c04aa8f3f", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.SystemSettingsTest.xml", + "public_sha256": "4c15ba43916f199f1259eadde548a176695b40e12085fd76979de94c04aa8f3f", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.TinycastGridParityTest.xml", + "original_sha256": "4041f7531728729af9c498397bcdde075425d61d978ac31527f81c76c425ba44", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.TinycastGridParityTest.xml", + "public_sha256": "4041f7531728729af9c498397bcdde075425d61d978ac31527f81c76c425ba44", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.UpdatePolicyTest.xml", + "original_sha256": "491b187b0b5630f892340e15eb50616587e86af563cc487a48f20f7bfa827b4c", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.UpdatePolicyTest.xml", + "public_sha256": "491b187b0b5630f892340e15eb50616587e86af563cc487a48f20f7bfa827b4c", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.WeakValueTokensTest.xml", + "original_sha256": "21319ad9f51c802aa2c52205234bb3782627ad23ccedf2b186c2506f0e6cba66", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.WeakValueTokensTest.xml", + "public_sha256": "21319ad9f51c802aa2c52205234bb3782627ad23ccedf2b186c2506f0e6cba66", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.extensions.CommonMarkPrimaryConformanceTest.xml", + "original_sha256": "76842e0c1397576b3f4d2e924cd4c08c28dff13921d357c53dea01d75521587f", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.extensions.CommonMarkPrimaryConformanceTest.xml", + "public_sha256": "76842e0c1397576b3f4d2e924cd4c08c28dff13921d357c53dea01d75521587f", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.extensions.ExtensionDetailImagePolicyTest.xml", + "original_sha256": "adc42d8166b49d30b7486dbf132c4864b3ad03268022fd056a1bafdae63cb8ec", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.extensions.ExtensionDetailImagePolicyTest.xml", + "public_sha256": "adc42d8166b49d30b7486dbf132c4864b3ad03268022fd056a1bafdae63cb8ec", + "transformation": "identity" + }, + { + "original": "app/build/test-results/testDebugUnitTest/TEST-dev.tinycast.android.extensions.NodeCpuInfoTest.xml", + "original_sha256": "cae424693f6087e6c501155b8583d205919b139dc30c62f9116ce40336b2512d", + "public": "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.extensions.NodeCpuInfoTest.xml", + "public_sha256": "cae424693f6087e6c501155b8583d205919b139dc30c62f9116ce40336b2512d", + "transformation": "identity" + } + ], + "projections": [ + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape100/record.json", + "original_sha256": "ab2012524ecb069331fc382da88db0dbbc6c4e2e444cbe6ef515fd2a5fdaae5c", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/record.json", + "public_sha256": "cc57b6967996f9bb9fc683a128c1875ab4c22eb71cba8b85c6de290c2ccc286e", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count" + ] + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape200/record.json", + "original_sha256": "95daac62fd6c5f54a9344c13b57241f6330abe975ac734c1f66558a3c65fadec", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/record.json", + "public_sha256": "3c61c884c1749532347eeca410cfa1c8ff04b47d55471fab66499c176463ed61", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count" + ] + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200/record.json", + "original_sha256": "ec3153c8dbcbdf95d2956b12d7bfe12b2f3acb0f9b8a941c7a51323fbaadb3ed", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/record.json", + "public_sha256": "09af44e383fa38194df500c059bbf53b7461ee7b5084b25f324dd058a67408ab", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count" + ] + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100/record.json", + "original_sha256": "8af43b1dd5034c1f2860b9fd3329bffe2377fad18fcc9a6e717b1bd97ec0a802", + "public": "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/record.json", + "public_sha256": "06922bdcb1b24e2724aa80f213583cf714338aad8f7616cd1a9f4f24d0a59938", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count" + ] + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/record.json", + "original_sha256": "19853a8baf8b8c9cbd8d18921f31d49a3575c4c6b84ef0cc0d20d674575990ee", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-landscape200/record.json", + "public_sha256": "e96c4f369c948b87ebc5cceed6b238859ba343e30effa5005d022df677741e0a", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count" + ] + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/record.json", + "original_sha256": "38b692cd71a90d08d311fc08d913dde512e480ebb1e7d0514c371cfbc11a8c75", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/record.json", + "public_sha256": "f365100f9c005480aab0f74c56cd65c68f1f3d64840f29ac748f092291636222", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count" + ] + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/record.json", + "original_sha256": "3ac8d5285fe06616f7de4db9b0e45e7fd204d4c50f2c2a4ce0b879a15c4fa474", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/record.json", + "public_sha256": "744de6aa9caf1c76910ae6b6d423f72f1fd19d671d20ba7b0655c6971d5320a3", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count" + ] + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/record.json", + "original_sha256": "d393b426f55398c9b6d1ac6cb0592a8c653f135a50dcd21ca803a5b8d3b325df", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/record.json", + "public_sha256": "c0e4d93329f80dd8a0e5a3181d108257b4321f5dad1605217a095fca62bf61fe", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count" + ] + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/record.json", + "original_sha256": "3b9d4df3c255b938c437368433feaa3bfa3f6d0f811c47d3f6053ee42c45ac37", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape200/record.json", + "public_sha256": "bbfb43c0e977207ea517f5982a6c343002fa07da236425c46c733f0e47b86602", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count" + ] + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100/record.json", + "original_sha256": "41c130e652acd24a0edab9e76107907087704b3c028f08c586786c4038fc83b8", + "public": "docs/validation/keyboard-toggle/cohorts/control-proxy-v3-tablet100/record.json", + "public_sha256": "d974c48a9b9f16808ee6fdf5b5d2c536b8169f2e569050ad46d7f1c2e7c4dfaf", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count" + ] + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape200/record.json", + "original_sha256": "c66b6aa1bf225a0fb2df3cad465d285eeca68ea38a5cf4e85acd1aa34e4eb01a", + "public": "docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape200/record.json", + "public_sha256": "a4cd4fc075d42254ee98d01d3857f4992e2930ecc8da424f0b80aabd44e4161b", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count" + ] + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape100/record.json", + "original_sha256": "7be838511ec8a5cfe14605e59900539f5d103138bcec7f220015abc2e3158f4b", + "public": "docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape100/record.json", + "public_sha256": "fb5b7f3edefb5c25df651dbb0270da33a77d5a23a69bd82dcb7c8fb90f4c0be1", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count" + ] + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/record.json", + "original_sha256": "48272881206535dd01f508b61a17ef7570a874b4b1e78b70d8c97f5a51859532", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape100/record.json", + "public_sha256": "8a36fc5cb4242b0a73e982edd85a83e12cd86ca8f7af08d04480b0b004cf45f9", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count" + ] + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/record.json", + "original_sha256": "0f951c9ed83e45cb3bf91e7de5669bf033e1739dfe2e071a581e03409b585206", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet100/record.json", + "public_sha256": "6d0af9d6c130511b33fbefb5f8c614589f5d2b2ef42acdf8297490bfc689160c", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count" + ] + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/record.json", + "original_sha256": "880088013758894e47349a0ba2c9d15968d43c596130cec5be21b1c7cad1a7ae", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet200/record.json", + "public_sha256": "bb049ee732c48383832955d89b3865dd4a32aebc317e23b1861dc80207945d4b", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count" + ] + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/record.json", + "original_sha256": "b0a18ed3dea1fe26a9a4d1a841eca2a788971ca47a5d8b816c60b2e5ff06fcca", + "public": "docs/validation/keyboard-toggle/cohorts/candidate-v3-feedback-landscape100/record.json", + "public_sha256": "4ab9419f39f9b241bfad56fd4e87be0c16142527ea51ca4397771d546e74e7a4", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count" + ] + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-old/record.json", + "original_sha256": "262574cdf44179eaa0dd87d9a9fbd53fbedcad593c1102b028ef49c2bd17341a", + "public": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/record.json", + "public_sha256": "e9f982c367efc0066f6a50e69696a908ec4217112c665757d05399ebf2dfd4c7", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count" + ] + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-current/record.json", + "original_sha256": "2c9430b1dfe2c5a0e18e0006e0dcc85ce219510e3b98be94e7ea28f31df3a75f", + "public": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/record.json", + "public_sha256": "2edeef202e511dd948e1dc8b67d0b1a5b794dcf38c29c3715c4f3de8eb9de465", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count" + ] + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/record.json", + "original_sha256": "eb074c33f8640ec463fc16c6840f19c0101b8c1f62865d58a89b3070d8752966", + "public": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/record.json", + "public_sha256": "9b1fe763db76f50e73cb192d67cb45b877b51f8d09321c2cf54f3413dfd5ab2a", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count" + ] + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/record.json", + "original_sha256": "6cdc5cabb4df2c8e588b45df75e96443c1038300f7fa5f6d76ddd672ccf60134", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape200/record.json", + "public_sha256": "19a66b7f98687127d97892abf8b9c7eb3a51b3ad255c1b3011603aa08a56447c", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count" + ] + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/record.json", + "original_sha256": "ed0babbe24c55df339b648fad2297022f1287423d84cd126311089fef611084f", + "public": "docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/record.json", + "public_sha256": "e78a89b09600a16e184c72707db9b3cefdcc4cd8613d421da9ddb2ce1d381306", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count" + ] + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200/record.json", + "original_sha256": "db59146e32a44a3b464707a2fa7bbd7bab3d3d71675b357bd8ea678adcc44e42", + "public": "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/record.json", + "public_sha256": "401de50c6ed5050bf7ecb68d4d906f3c81f76320a55530d8cb3fb3078d56ac90", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count" + ] + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100/record.json", + "original_sha256": "ec0dfe1be2b21ab7803afa6726929fa103d10e0c08345d5766c8a71562c9ecb9", + "public": "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/record.json", + "public_sha256": "7d58e667923255dc36e484b9e899568ba5265fd9dc4e0f6084162afb7c748c9a", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count" + ] + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/record.json", + "original_sha256": "565a1e0bcf1e838062c14125681c5b5d9eb7f74c0bfa48b9dee0ef8d16bbf0f5", + "public": "docs/validation/keyboard-toggle/cohorts/final-landscape100/record.json", + "public_sha256": "ac5ddf56dca33abe3703a66530990b27b38a47888a3bb558cf0d74e109649d0c", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count" + ] + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/record.json", + "original_sha256": "bb265de6ea0f137629d6e386362e5c74d464bbd4aefa87de01150972dd6da3c9", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet100/record.json", + "public_sha256": "95ef901dbecacf5bf8d00f179b177e42caf4669a5b42ab099bdb52eb81d2f52c", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count" + ] + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/record.json", + "original_sha256": "c0fc0ac8ec77f6eb2764700d6d8d89ddc8f174b3a2d9b93041311f410d8f2fb1", + "public": "docs/validation/keyboard-toggle/cohorts/final-tablet200/record.json", + "public_sha256": "713907b4b3addda45e0fcbebab0733762d31147bd9644a636944943ddce89e5e", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count" + ] + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/record.json", + "original_sha256": "924f436779043920ac7d595c412771db7e97f6db0bea81fa602d57b68405b3ad", + "public": "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape100/record.json", + "public_sha256": "d2f52ecc3f3e4797637a79e69bc33d6d011b00f16ec9c8b57c7f64949f9b878f", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count" + ] + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/record.json", + "original_sha256": "2858578d8245509f19a57a849320d9119aa6a152c5e70160076504ba3d4503f5", + "public": "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/record.json", + "public_sha256": "6d653c5c377dbf5c7327d3041e0a46affa5c0a13a2753318b783f9b1dbcaf4e4", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count" + ] + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/record.json", + "original_sha256": "080a3cc27dbb4ac74f7cf74b43d99f1208742bcd613ad6a1f31a881684988118", + "public": "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/record.json", + "public_sha256": "4c0f59e4491e3799739cf67e625b9e742b51bde5d8d459ac0b16d303538fae09", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count" + ] + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/record.json", + "original_sha256": "be6429ef834544e6c262b9341041adb1f52fae511c2dfaf0f6a7413a3379b5d0", + "public": "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/record.json", + "public_sha256": "ca827f561cd7ee2d374eeef84394c3d820a5acbdd148d2ac081270c37e89b9fa", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count" + ] + }, + { + "original": "artifacts/keyboard-toggle/final-input-phone100/record.json", + "original_sha256": "71ccb7d93d1628713aa0fbfe8f9fe3727d4e2b90a61f5375b18c2be8e1e82dba", + "public": "docs/validation/keyboard-toggle/cohorts/final-input-phone100/record.json", + "public_sha256": "5c138dad9a379fed994a3b7344126176525ce0ed617ac860819366ec77695f21", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "preserved_file_count", + "ime_restoration_scope", + "ime_restore_observations" + ] + }, + { + "original": "artifacts/keyboard-toggle/final-input-api26100/record.json", + "original_sha256": "a86a8805addb16f3e807a7410270699a926fad494c4665fbb178873353fb5b4f", + "public": "docs/validation/keyboard-toggle/cohorts/final-input-api26100/record.json", + "public_sha256": "8137e05d76b91a8f018ba97620a23f2152224d3a5ad86ed3d4898c4a9449bc8e", + "allowed_fields": [ + "completed", + "expected_negative", + "suite", + "input_mode", + "runner_sha256", + "apk_sha256", + "test_apk_sha256", + "methods", + "api", + "font_scale", + "layout", + "cleanup", + "passes", + "failures", + "native_expected_outcome", + "instrumentation_exit_code", + "initialization_error", + "provider_before", + "original_geometry", + "original_font_scale", + "captures", + "ime_restoration_scope", + "ime_restore_observations" + ] + } + ], + "summary": { + "final_positive_executions": 24, + "final_positive_cohorts": 11, + "final_positive_restoration_checks": 176, + "final_control_failures": 6, + "final_control_passes": 0, + "final_control_cohorts": 3, + "final_control_restoration_checks": 49, + "back_diagnostic_executions": 2, + "back_diagnostic_passes": 0, + "back_diagnostic_failures": 2, + "all_retained_executions": 64, + "all_retained_passes": 37, + "all_retained_failures": 27, + "all_cohort_restoration_checks": 515, + "separate_final_preservation_checks": 14, + "selected_png_xml_frame_sets": 89, + "retained_capture_files": 1150, + "scope": "Only the final frozen app/test pair earns current toggle/callback credit. Earlier driver/candidate failures and incomplete pipelines remain separate; Back observations earn no toggle or Back-repair credit. No unrun work or private-original identity is certified." + }, + "publisher_sha256": "664d4da77a7f7c211963a654e61eb9542148728bd2e45ec40e8514decf8c15c9", + "redaction_prefixes": [ + { + "token": "checkout", + "kind": "declared host prefix" + }, + { + "token": "supplement-checkout", + "kind": "declared host prefix" + }, + { + "token": "previous-checkout", + "kind": "declared host prefix" + }, + { + "token": "java-home", + "kind": "declared host prefix" + }, + { + "token": "android-sdk", + "kind": "declared host prefix" + }, + { + "token": "gradle-cache", + "kind": "declared host prefix" + }, + { + "token": "user-home", + "kind": "declared host prefix" + } + ], + "publication_rules": "Raw identity copies preserve CRLF. Declared host prefixes, temporary directories and isolated32hex owners are redacted; XML placeholders are escaped. Record projections contain only allowlisted fields. Private originals/settings/owners and fingerprints are excluded.", + "public_sha256": { + "docs/screenshots/keyboard-toggle/back-diagnostic-current/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.png": "3a0600c45e0ff73b0c84d7194ca061e7f77683c1cce42b5ec5112fdd16a633a6", + "docs/screenshots/keyboard-toggle/back-diagnostic-current/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.png": "15fb25e6bd90b7e3c3d2922a53befab40bf7fcacd41a6f596f2b70b04e1b8ff2", + "docs/screenshots/keyboard-toggle/back-diagnostic-current/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.png": "3dc56c25e820beee8f502414f36b58ef200150b88ade3aae6525e31f77076aac", + "docs/screenshots/keyboard-toggle/back-diagnostic-old/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.png": "fbc6d89855fcff9d69cc333121fceb9e3d39e64dc1cedea5a412a44ec0d54190", + "docs/screenshots/keyboard-toggle/back-diagnostic-old/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.png": "b39db1c786e6e7c1bcca8205056dc70ae2df1843e245c1b7990ee8578a64e58e", + "docs/screenshots/keyboard-toggle/back-diagnostic-old/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.png": "ad377de731e11c65b682b474f08b0aef9fb70a89977d900ac7acfff63f1ee7df", + "docs/screenshots/keyboard-toggle/baseline-old-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "cc04994989f6967a4974aa70d06db2f74139022b4426656b55726084c28ac497", + "docs/screenshots/keyboard-toggle/baseline-old-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "d9bf0468c115576e4c655634c7d4993648cebb4a17852b037d76f0c54b7873ae", + "docs/screenshots/keyboard-toggle/baseline-old-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "374311ce389a4ad14ab7103680002a087f5b1a6ddc115f1e0d2dc00ea0a7485f", + "docs/screenshots/keyboard-toggle/baseline-v3-old-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "51909b2c90cdd4ee1eb432ffda148abc1b04bdb691245531cc19fc28612ad302", + "docs/screenshots/keyboard-toggle/baseline-v3-old-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "735aca8eeb3b66dc168247fc2179ad01a8e4e94865ad43ad4dfd144e309ab45e", + "docs/screenshots/keyboard-toggle/baseline-v3-old-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "abcf3cb8a340b85214f51795fced7901fb14b237d0c44b58387d8a2c4cbd07ac", + "docs/screenshots/keyboard-toggle/baseline-v3-old-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "74a618f3947baeb8c15d241b9c9e157f60e72a306ca1bb68109c860eadc627c5", + "docs/screenshots/keyboard-toggle/candidate-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png": "cdd9e613420ea1bb81e667230705b6cf6b251439e11a3579ab26dd5bbb66073d", + "docs/screenshots/keyboard-toggle/candidate-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png": "f139e4b14922614750acb8eb0b8702409823bac1833ca629587df297282c1e61", + "docs/screenshots/keyboard-toggle/candidate-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "39be7639b365e6393083daa323bc4e8eea74b453217ae359396abff6a3443b96", + "docs/screenshots/keyboard-toggle/candidate-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "3756d502f9df21f38403973e7f9cbdaab3307f84a47f3086e836576601a3acaa", + "docs/screenshots/keyboard-toggle/candidate-v2-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png": "2cad7b7fa0b00081325cfb98b4cab4f2743320f3171105245bef1075ec70c69d", + "docs/screenshots/keyboard-toggle/candidate-v2-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png": "fe272866d9f068050cf68e082aeb6d185f4e20d79c2ff515dfc9f66731ba7f3f", + "docs/screenshots/keyboard-toggle/candidate-v2-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png": "d3af3205ded5781b0c6e669c7b47ccd06b9662a0c69328a2bc6650309122d645", + "docs/screenshots/keyboard-toggle/candidate-v2-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png": "3802d473ae4c4f95bb1a477f099c5171b64a27ccec445876c4388feaedfd3a98", + "docs/screenshots/keyboard-toggle/candidate-v3-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png": "b71daa468bee932442e00675e1a8d2add3e50820a044336bfd6fec3bfcae43d4", + "docs/screenshots/keyboard-toggle/candidate-v3-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png": "e20dd394841b824fa3318e3bedf3ff5ca58fa249d77a9923ae6137d18335b9bb", + "docs/screenshots/keyboard-toggle/candidate-v3-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png": "135ebb78ad4e734cddf8652ce26c7f9e326c6590be9f3950dd60234d55f7cb3d", + "docs/screenshots/keyboard-toggle/candidate-v3-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png": "47ed3dc7b27288ede18f83496ba39029842e0dd37c2410caa7380f4347f8b655", + "docs/screenshots/keyboard-toggle/control-old-final-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "74f206b6891482a789ee4d35ccd4192342e594238e8dae1843ff2ac92b52f27c", + "docs/screenshots/keyboard-toggle/control-old-final-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "85598917b0367cae1bfa1046a25fba347f0ad32bd4eef5d5a2a32aee2b7adfde", + "docs/screenshots/keyboard-toggle/control-old-final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "2fb233cb5617bf98d8c53c51f721488b62c3f72690ca363096a5131dc627195d", + "docs/screenshots/keyboard-toggle/control-old-final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "5d4a82154e16eab024e91f37af42d0d1ead7d5d608e213a0717d58630f9070e5", + "docs/screenshots/keyboard-toggle/control-proxy-final-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png": "cd8ce9376ac29fa6eee37ee6122c8a944d69709434dbabecf7c3040a76069b65", + "docs/screenshots/keyboard-toggle/control-proxy-final-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png": "0bc019d8840abdf43b707150e402686cd8d28b06f1238c4118b3075126554ea2", + "docs/screenshots/keyboard-toggle/final-clear-phone200/emojitouchclearpreservescategorygeometryandkeyboard-shown-after.png": "6543311826623f1a8e13406b78894ae1b6faadd33479f272433c4808dc14ef87", + "docs/screenshots/keyboard-toggle/final-clear-phone200/emojitouchclearpreservescategorygeometryandkeyboard-shown-before.png": "31bab622fac5dcf268ed17a4459f18138526cabcbb7bcbd1888d9c0c235eba8e", + "docs/screenshots/keyboard-toggle/final-clear-phone200/launchertouchclearpreservesfocuscategoryandkeyboard-shown-after.png": "cd6f76d508903d693748aca984169e78dd0bcca03744223a1c371bf7902a5526", + "docs/screenshots/keyboard-toggle/final-clear-phone200/launchertouchclearpreservesfocuscategoryandkeyboard-shown-before.png": "02d5f588f7d00783bc2a53d70bb51b5dffb7aa36758151842a8631ba28e05aab", + "docs/screenshots/keyboard-toggle/final-core-guards-tablet100/pointerclearremovescontrolledcompositionandwhitespace-emoji-cleared.png": "55524d06840dd49241baf0157e9c5ad9a9d4b19d9f68a3309203d710e18dccdc", + "docs/screenshots/keyboard-toggle/final-core-guards-tablet100/pointerclearremovescontrolledcompositionandwhitespace-emoji-composition.png": "2e9f34b90f42f9b01270138957823bc51abd14745dcf625e37944146dacd4287", + "docs/screenshots/keyboard-toggle/final-core-guards-tablet100/pointerclearremovescontrolledcompositionandwhitespace-launcher-cleared.png": "daf008863db6622868302f04ea6ca40e8618123e252da575ca99290709d4679c", + "docs/screenshots/keyboard-toggle/final-core-guards-tablet100/pointerclearremovescontrolledcompositionandwhitespace-launcher-composition.png": "76e892739238852481421c0ad37e89208f601b7fc1cf936313fdcba7c683351c", + "docs/screenshots/keyboard-toggle/final-core-guards-tablet100/retainedclearcallbacksrejectreplacedsurfacesandmenus-covered-by-menu.png": "cef46bb6a3196d5f9ac024aa491869ff6c69c4badd03994bc5ed990d4eea28a5", + "docs/screenshots/keyboard-toggle/final-core-guards-tablet100/retainedclearcallbacksrejectreplacedsurfacesandmenus-replacement-emoji.png": "a78a8a40ed27abe11b968d7a4a2846c1c7d9939d639efc44fde18e9afcedbc26", + "docs/screenshots/keyboard-toggle/final-feedback-landscape200/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.png": "c8ef503675e593ce45bc90b7a45e4bd163c8ddba2ca7ec177af2b94efaf7be10", + "docs/screenshots/keyboard-toggle/final-feedback-landscape200/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.png": "2b7a29a8011849194d7c84ca2ab18607bf098a202aa0092c17634af4498227a4", + "docs/screenshots/keyboard-toggle/final-guards-tablet100/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-0.png": "ce6578c82166c69f929921f371c2e37d04277e60c8ae779d7550ebb6f718c7f2", + "docs/screenshots/keyboard-toggle/final-guards-tablet100/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-1.png": "f7d77704146f4d29686f97b7d7d22b7aff37d8f28342a4505da90fce7f372114", + "docs/screenshots/keyboard-toggle/final-guards-tablet100/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-0.png": "72c996d07465f6099f5f021ddd80f9fdf799455c386a52c25dcd7806522d887e", + "docs/screenshots/keyboard-toggle/final-guards-tablet100/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-1.png": "683da9641e87e6af9be358f4c06702ceb9415205016b1a1f725842eee2709028", + "docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.png": "76c443a135c609f68e9ab51254bb42dd3ad891c3866ae9849c0f1bf158b1cc60", + "docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.png": "9f997e06fd69cf2d8b84eb19662855271121335d77ac611deec6885474bc4f7d", + "docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png": "d09b66269e1451273b39620c9dc53bf657638fcc553eaaa4cb5d2a18f41642d6", + "docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png": "6adc070dad29a20cf6135fb8041ed28af3ae713fa69cb7287148b12ab16520b8", + "docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.png": "b79f86010ad2c4e8caef8b6c44c646c192ac768442c6e1376a587276fbfaf13f", + "docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.png": "337abefff7a6acbb55b0deda11a8cf6f313ab3a8b25e065567a0e0c635f2108c", + "docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.png": "5b26029118a9eb43dc400d66f5ccf6ba1c00277c0cb2f08a7d7d804c81c0d1db", + "docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.png": "0888837937ec4ef726199ef58d07f15fa0b6581c046e84c27439a774b2c4dfed", + "docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png": "2a5d4a53ad0639238a786050f49bf4b8cb897bd3eebe654c9ecec26f2ea36b7d", + "docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png": "61139a0f3c7e30887c609206190cead18bde69687171e96ffeb23f1f9ac844ae", + "docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.png": "9ad61fc02daa71ef45a32586f4197b64c9c29676499e575e960e883e26956765", + "docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.png": "01eea78447471eb716442da3c5b0dfb662d40e8435dc603d9fd0a0e2d2e9782b", + "docs/screenshots/keyboard-toggle/final-input-api26100/activemultilingualcompositionkeepsresultselection-active-japanese-composition.png": "48201726e6c03772eb03571fa12ac9eb76dc5ad4e9f10275a473928c124e99c5", + "docs/screenshots/keyboard-toggle/final-input-phone100/activemultilingualcompositionkeepsresultselection-active-japanese-composition.png": "36f10fc1c21f8b18045336a3c59e21643f2633fde10dfa4b955a2180398670f9", + "docs/screenshots/keyboard-toggle/final-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "a8e789a430914f01971d906502dbfccbeade26777f908d75b6dc17ae84a88ecf", + "docs/screenshots/keyboard-toggle/final-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png": "bef2db9e10e4658458715a34299f61d4e9c6831e9ed0e1cb925484cf67f3cff0", + "docs/screenshots/keyboard-toggle/final-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "a09ba7924ecc2b2b3147f6489fb150d32f1c36b95c332f7597e7f180dd3573a8", + "docs/screenshots/keyboard-toggle/final-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "6d164e8630b5ceb1d297e9903d1e1d445fbc8fac802cac8957dc3df6e878d3e4", + "docs/screenshots/keyboard-toggle/final-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png": "0a96b8e66d91a551e7d9ba86ac4c92c4ba9d2bdea7573299482f910b6c173692", + "docs/screenshots/keyboard-toggle/final-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "55b397fdcc427555d594af27a1abcc0f1c751b8570704fecccd8a208e5faf3fb", + "docs/screenshots/keyboard-toggle/final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "7b3f212babf9e4d0ddd81f56d5717b5253ed91de1ffab270c7b74347c742a594", + "docs/screenshots/keyboard-toggle/final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png": "58f0b5ad3cbc61925b47cd2c31cb49b84524037b146c79062cf2eb8e3895e3f9", + "docs/screenshots/keyboard-toggle/final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "35fa3bd3b6b17c98e44e11902d690162a309361247106611014812c268d87b4a", + "docs/screenshots/keyboard-toggle/final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png": "61a5fff000c1e99fb787334007679fd6d934bd149f09435922591371d53f27ef", + "docs/screenshots/keyboard-toggle/final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png": "2e3d8af2ecb8af876945ac2ae956c6d51c05e3baecf6d0b98e9a3265ff37841e", + "docs/screenshots/keyboard-toggle/final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "ef05dba85ff199584a25d6f40f5595f5731c9f0875811d60c3d57d0d57869b68", + "docs/screenshots/keyboard-toggle/final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png": "9ec2e841267888bba9cf819e05b8021eb7984a19ede3e060068fad0e8a307fe0", + "docs/screenshots/keyboard-toggle/final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "0c1da1044e3fb09db00a4b044aab283ef2b8f599febd76203fa0cdc6eb3fd3b0", + "docs/screenshots/keyboard-toggle/final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png": "fffc26b4c6e47b78ef7dd152c6cb61a666bef61f0d882e9c92ec8eed0a059bd1", + "docs/screenshots/keyboard-toggle/final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png": "eb4610cdf3429e3e803f0b58865c2ba990efb86e27be708dc94b9f26b80222fa", + "docs/screenshots/keyboard-toggle/final-tablet100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "485b5e60f831d327a99f3f29ecbf4c4ee1f44877041977784e7a048cb82e11a6", + "docs/screenshots/keyboard-toggle/final-tablet100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png": "928862b702fc9ab23cac95d7040c80ac51ecf8aca0f4b91b935046c070a7cf50", + "docs/screenshots/keyboard-toggle/final-tablet100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "9fbf0486ab6d9a973004254f8e5f0da0e985b3bb8988385f756a786a46cb15f5", + "docs/screenshots/keyboard-toggle/final-tablet100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "0429abaa0538ab39340a0ce34fed0663348c8758418b133f637c94131e002d84", + "docs/screenshots/keyboard-toggle/final-tablet100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png": "7bed18d81c0d8576ac0cfdf7c24c318ceb958c5f27f5a95abcf2a20ccce2a1da", + "docs/screenshots/keyboard-toggle/final-tablet100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "7739e66d208be7babde43228e02e3d9240d52390b9cbdfee5435926a7b4df161", + "docs/screenshots/keyboard-toggle/final-tablet200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "f037d7bc46c526b660a2f27acfe6c34d4bd8b2ea22346928f8c577dc40124c83", + "docs/screenshots/keyboard-toggle/final-tablet200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png": "aa054af8f153cc41b228093259455514363a7a642d5207a4e4d472e4036ee42d", + "docs/screenshots/keyboard-toggle/final-tablet200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "d93facf3a0e8c45c4e33d332ce780af1bda0a846d6eda6e12ba9302589b7f2b8", + "docs/screenshots/keyboard-toggle/final-tablet200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "29a9f25602e62042c318a3c95a56995ae947250646abb0885691316affc1475f", + "docs/screenshots/keyboard-toggle/final-tablet200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png": "1e8b6ba729c8f8546991176ebcc8df11af51d9f8cee8544391f15e9d9f37a676", + "docs/screenshots/keyboard-toggle/final-tablet200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "b44bd7a61203585155bd9d8734781d5d37d66abbb9399755b63e769639cf8096", + "docs/validation/keyboard-toggle/checks/build-baseline-v2.log": "5eba99743bce436e3644aefe5259b0600df4486a92f2f46bd380b0f7a629b77e", + "docs/validation/keyboard-toggle/checks/build-baseline-v3.log": "d3aa01cec4b3e56d7923dc7a1ecc34c9c5aa56a04301cafb15de82107175aa3f", + "docs/validation/keyboard-toggle/checks/build-baseline.log": "ef47fab1ad3c9df52bc081df5009470e81cd063cb39db2a79583f1e1693b6151", + "docs/validation/keyboard-toggle/checks/candidate-v1/debug-build.log": "c2aefe5e9bfb8406431c1bfd4904e996e4e8e9656967363587f6a9bea75951c5", + "docs/validation/keyboard-toggle/checks/candidate-v2/debug-build.log": "71d8449f41e15078c69261634c903dc7e7f86bc7293c1acb55dce495513f631e", + "docs/validation/keyboard-toggle/checks/candidate-v3/debug-build.log": "024815d48a224808fa4d306df8165f5d51795a062d8e62277f1e45131a32bf5b", + "docs/validation/keyboard-toggle/checks/final-harness/debug-build.log": "806eeff1871f4233dbddb9ff7abc9a81f4e4a392db9f56380a5a8316bad9412b", + "docs/validation/keyboard-toggle/checks/host-final-harness.log": "494a54a68fff28e70694407bd7c536e12354697c528764a06cb3abc8c8ffd0f0", + "docs/validation/keyboard-toggle/checks/host-v1.log": "ff5eab51d7e4c1d355cab1596061e27166049e65862148765d211534e10be670", + "docs/validation/keyboard-toggle/checks/host-v2.log": "5a02ea9a91b47bdfa054c5d04d5a31d07880c87d3c150cbea8355cbf85dfb089", + "docs/validation/keyboard-toggle/checks/host-v3.log": "838481ee63bd9d63d484aaa19425475167c49c21e1a1c9603a29f4dd4b8dad95", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.BackupPlannerTest.xml": "c80027ebef7627e2d11315fcfc6b7b5b287c385b14768a70713fda303cc1a626", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.CalculatorActionsTest.xml": "0af2d4e04da268d1f352e96e40c5ab1f92a30799e65a44ba2606cc70c9953e12", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.CommandEngineTest.xml": "51d4930763c8f6fbf37491111696e2807ddfb53dc1206f4cc754ae327afe5617", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.EmojiCatalogTest.xml": "c7af075ba0d661e9d8f3c073c5b0c93ed7780d95a00213518251db84fb7aa8aa", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionCommandLaunchTest.xml": "f4cb2a110147c1911ec62b25893c9092b0264dd27dd41274d944d3e7aa4dd8f6", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionDetailImageTimeoutTest.xml": "bac1adc3f102c9414807fb6d323a6f355fbcc01f715b59c42519c46fcc00fa51", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionEngineCompatibilityTest.xml": "81dc279c899648657a88d910c15f7875b76b9102eedbc6904a0833611f3b4e44", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionFormContractTest.xml": "508722a97e0b9071d1a0744192042b423d8d423c4f66e5dfbc246500c7b328a2", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionFormFileImportTest.xml": "ecbeae12ed7962ba8abe0b755db0dfd9c8a76105d72a459bed35e65035dd65d8", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionFormSubmissionTest.xml": "3cfe9cd92660051298641dfeff1195ed5bcd01c481d6e42386e055cc9c30ad73", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionFormTypedValuesTest.xml": "2be90de77f8b35c1398ba865c07f93f9e7828767e73bbd346e15a1477a0d2c3d", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionFormValuesTest.xml": "1a417c589842e259b029486925db36cadbc964b49d3437b040e1017f649c38d9", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionGridContractTest.xml": "283e6dbe9f0dd4d54ef304fbf769cd61a17e64888d9268b38ad3af97d755e318", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionGridNavigationTest.xml": "1c7598c95ac76ce195c89068833db49c2be295db771552a41b6d5f39105c01e5", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionHttpTest.xml": "07f54a58772c54efb47815c072365f2216e8212b1dcd516b62eb54f8331d5da9", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionMarkdownModelTest.xml": "0137105b966f79eeb473ee47f3a8a5ebee79b2224fa3f20b202ff78e183c7be0", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionMetadataVisualsTest.xml": "e42bf2b05342153260c86fa1bf366991949768ec4bab81d166e21f11c70411e0", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionPasteCopyTest.xml": "d5f74cb589b732e3cc3b20c6408ab13ee5686af42879792f8c337f63d3c9195a", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionPayloadIdentityTest.xml": "79f90dff5dcbca62ae0e171250e7434b10d2c92fb95ab11329079347d2942303", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionSelectionDeliveryTest.xml": "0758f546523f24ec625988f68ed9ef29977108c7da30c497a3ae8b71b4e2b634", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionWorkflowEvidenceTest.xml": "00b8470d41eef3701936dfb9364eeced90048395260b4912d612cba5005867e2", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionWorkflowInspectionTest.xml": "2b4871746471cbcfb7d87efba61a965611dbbb8931360a9fae337bab07de1544", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.FolderGrantTransactionTest.xml": "3e3db0311a00431993ce2d270273830bc741639768075dc6212d6aeb52412219", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.FolderIndexTest.xml": "835ffd4d03b533e4a476acb8282a39c29972edd164113cead30a794dd6d8276d", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ModifierTapTest.xml": "d1cf3edc1444eb8f153378141b639414cd617f6554d993abbe4668f35e2f45c3", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.PaletteMenuOwnershipTest.xml": "c54ff92b0206ccef7aca95abdc07e93515dbe91f00a615aee23fc6bd719e5c6a", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.PaletteScrollHistoryTest.xml": "8854843fb7fb088c1fdab500ecf54e394fab2e9b0a1678c3f02adf4cc08b0da1", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ReviewedTextInputTest.xml": "96bde342b0c3678df8afafb600db19e80944fb3799bb68bfeb9bb0f9742d0f41", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ShortcutReadinessTest.xml": "e5aa3cb229d1380878ade3716bac62d987aa6cf351843a87ea54a2cf17e73d5c", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ShortcutTest.xml": "f292b358e3be09268d53f1fb19837b2b9638de4f33b9428e08d2c9da1cac2a79", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.SystemSettingsTest.xml": "4c15ba43916f199f1259eadde548a176695b40e12085fd76979de94c04aa8f3f", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.TinycastGridParityTest.xml": "4041f7531728729af9c498397bcdde075425d61d978ac31527f81c76c425ba44", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.UpdatePolicyTest.xml": "491b187b0b5630f892340e15eb50616587e86af563cc487a48f20f7bfa827b4c", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.WeakValueTokensTest.xml": "21319ad9f51c802aa2c52205234bb3782627ad23ccedf2b186c2506f0e6cba66", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.extensions.CommonMarkPrimaryConformanceTest.xml": "76842e0c1397576b3f4d2e924cd4c08c28dff13921d357c53dea01d75521587f", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.extensions.ExtensionDetailImagePolicyTest.xml": "adc42d8166b49d30b7486dbf132c4864b3ad03268022fd056a1bafdae63cb8ec", + "docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.extensions.NodeCpuInfoTest.xml": "cae424693f6087e6c501155b8583d205919b139dc30c62f9116ce40336b2512d", + "docs/validation/keyboard-toggle/checks/lint-results-benchmark.xml": "079d0b3b874e5a9595d9072abd1a8e08fd89119d640d8e40e5377d8e071baa11", + "docs/validation/keyboard-toggle/checks/lint-results-debug.xml": "079d0b3b874e5a9595d9072abd1a8e08fd89119d640d8e40e5377d8e071baa11", + "docs/validation/keyboard-toggle/checks/python-final-normal.log": "d88a3984fec5a5d0bdcbc71f7a3ddd26cc76b057f42309616922115dac276fb5", + "docs/validation/keyboard-toggle/checks/python-final-optimized.log": "1fc320d835261db23adae5bcbf4f7f5bfc3e2c32b20bf48bb7dba064fabeee0d", + "docs/validation/keyboard-toggle/checks/python-supplement-normal.log": "66c8990686de7321ecbd5c53ed038b72138eaf68991038e996497045c2637639", + "docs/validation/keyboard-toggle/checks/python-supplement-optimized.log": "cc7079ed6bb280c8a803b5fd9ce9df3da32bcf2ca37a0acfc6af8b9e825f0ae4", + "docs/validation/keyboard-toggle/checks/python-v1-normal.log": "1316b28e38783e8e019d172ccbbddd33ae3f932a63b3f839ed67088d1692168b", + "docs/validation/keyboard-toggle/checks/python-v1-optimized.log": "773915088754da34ef9b26ae2e2fa0d4a8f63e157b2924f09922c27d7c34f4df", + "docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after-frame.json": "3d9890e65b14c452a7bb84a325cbb71d2e0793933809209715d8a95e74ba860b", + "docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.xml": "6971b4d3bd36f6cef938e79b9689165a2bfc9df7d742b50603511cf489b8d3f2", + "docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu-frame.json": "1a8b98daf5897621328ff4d246f77ba5f1352eaee3888c215f265a1813e5e9a2", + "docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.xml": "4a28ba14d20869a26f7f8041fbcd6b928ec0cda9cd555fa2b8418a6df454caae", + "docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu-frame.json": "7756ba0720372b4760a77b9e8152fd8046384b4c35579a1fdc540915faf566dd", + "docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.xml": "b631ce0aefb65c763d38120445bed59c7ca76002cd304a76b8811f335887e69a", + "docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-case.json": "fee4474be8e691a56ebc0e87bd452eeef9f556d21779f345cc4ca52642fde7ca", + "docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/outer.log": "68f220b258e1a259c82c06d75294a59b4951f85d09bbd5e8a8c353b1cae9294d", + "docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/record.json": "2edeef202e511dd948e1dc8b67d0b1a5b794dcf38c29c3715c4f3de8eb9de465", + "docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/tests.log": "c306b50cdd3f99baa178e63098933df9532d2e9ca9f8af366b6c025ed2a90e49", + "docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after-frame.json": "3d9890e65b14c452a7bb84a325cbb71d2e0793933809209715d8a95e74ba860b", + "docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.xml": "514893bdf6891104ac3bb0729f2b704358fdfdda1d95a0640c86db80f120b38d", + "docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu-frame.json": "1a8b98daf5897621328ff4d246f77ba5f1352eaee3888c215f265a1813e5e9a2", + "docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.xml": "10034d48eeb1347070ef7ec2311389874059d38150c7e258cce6dc479633e274", + "docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu-frame.json": "7756ba0720372b4760a77b9e8152fd8046384b4c35579a1fdc540915faf566dd", + "docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.xml": "10b5f5c022e6d3927e822441d5cdbaf1d5a9136fafd49122428427ed150ce130", + "docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-case.json": "fee4474be8e691a56ebc0e87bd452eeef9f556d21779f345cc4ca52642fde7ca", + "docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/outer.log": "68f220b258e1a259c82c06d75294a59b4951f85d09bbd5e8a8c353b1cae9294d", + "docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/record.json": "e9f982c367efc0066f6a50e69696a908ec4217112c665757d05399ebf2dfd4c7", + "docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/tests.log": "0991766bf3d4ae686d70dc78bd98d25c6422c49e733be640bca50afa70415691", + "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "b9a115f99dde7ae29b313b655c4ce490f4544ebdca23f1d1119c3ba8f963b55c", + "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "1813955009e7148a125948107b5b471d1cd9fe7ff2334928922aaf9c465b8f39", + "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "6d2eff290e3fa5412bffe578efd48be3b35f51f21e3a0c5eb52f734814a56fec", + "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "573b25cbc8263dccaf1962f3945cd197d59f0d330e6fd028a9ec297f92773049", + "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "b2050027d7e41ce99f99b847788d96978c631fa132d7c2746ca0de8050e50ca4", + "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "05fe6f2353e267903463362f06b3c463e712c81fd4b4df849f6913e0990dc61c", + "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/outer.log": "f310c0010c77cc49868ff39b9a970280621bdbf2c18e26a31b30fd347d476a09", + "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/record.json": "cc57b6967996f9bb9fc683a128c1875ab4c22eb71cba8b85c6de290c2ccc286e", + "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/tests.log": "7accde02fe358860469f49d1f956c566648c29cb1a538f96c786ffe5b1401cb4", + "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "294146063f415e6656571427e2f0f2af9204bf6acef679c04f8c5e49388b55e6", + "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "729320903eb68e5598054816520a960f7bd5dfe36c3bfbfba69473ca2c4c750e", + "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "ece83da11ff1e600cfe5f07186c5251a1060df6f741c839e0c6e9716a3929fc3", + "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "975b704f979a1b0e1d7880ce1306b36bf4635e09514edc260c273e0570f99ed6", + "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/outer.log": "f310c0010c77cc49868ff39b9a970280621bdbf2c18e26a31b30fd347d476a09", + "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/record.json": "3c61c884c1749532347eeca410cfa1c8ff04b47d55471fab66499c176463ed61", + "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/tests.log": "604de99927639df6bd4aced3fc0c00dfadf766fa93cd70436580f0d6852c7ac3", + "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "2cad14379782102b85a376eef0f3112f13c780eefd10ad4dcd15fca4c24c4cad", + "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "1813955009e7148a125948107b5b471d1cd9fe7ff2334928922aaf9c465b8f39", + "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "b885654f67d10039ed78970d9459661795a3ef8afc64e2b8909a98260566e486", + "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "cd8e6159eaa739cf0c6973350d36b4479016d94d390007626af0385fd679a42f", + "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "b2050027d7e41ce99f99b847788d96978c631fa132d7c2746ca0de8050e50ca4", + "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "068805831a0a433df2bbd4cfc8d04754e3cce5a325d9e3e3aa9d80db1e74ccbe", + "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/outer.log": "f310c0010c77cc49868ff39b9a970280621bdbf2c18e26a31b30fd347d476a09", + "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/record.json": "06922bdcb1b24e2724aa80f213583cf714338aad8f7616cd1a9f4f24d0a59938", + "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/tests.log": "2ff6d6ade53d714641ba1ff5af47b60886bae7ca0798273419c4e58a88cc3622", + "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "3fb46039ec47f89270b1c0972ec95b4b1c5f8252aea186f34b515872318c529c", + "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "03e206efabc8c009a17acc85d24b4d16faa74934e967dd92d18094ab3fb4f772", + "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "02aec88e136336bc433d648d3bb3719b935ad6eb9a9f666085806736004321d0", + "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "55b861597acea563d4881dcf94294c13f7aee4f759f181473e355bd113029545", + "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "ece83da11ff1e600cfe5f07186c5251a1060df6f741c839e0c6e9716a3929fc3", + "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "1f87870a930e9350e9a0d1fbfe68177d3f1f43d2bd7c8a39dd4964e5bbc8710f", + "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/outer.log": "f310c0010c77cc49868ff39b9a970280621bdbf2c18e26a31b30fd347d476a09", + "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/record.json": "09af44e383fa38194df500c059bbf53b7461ee7b5084b25f324dd058a67408ab", + "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/tests.log": "ab1658c1e0b729fb210492b13a9bae1ae1c2912cf8d56e74a4cf16efdfb4dc47", + "docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json": "08ff6a5a9ee267157e82bd2dc04b38c8cf5b67e40ae6228e471a3f19027f3ab8", + "docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json": "11e3c14df5a65af4d01fec89eaad41aac0951525cd8bb618f7e622a5b2f701d0", + "docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml": "ebdb544eae719f91af063a1a6d0494e36b1eed51498c578a4347e654344902dd", + "docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json": "bacbb97b3373aafa9cf223c6080197ee96ba9f60b20e4362ba49ef258b04f312", + "docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json": "cfaa0717cb125ece3527ef23021d187d8582f01abacb0b059ac9c810f9f811b6", + "docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml": "2f673828c3776ffd2d6ee034bea0ab8d046ef1a343c63562af560127475b6dfe", + "docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/outer.log": "28b91a72ff7543efbcd213dd66722b057a7a2c4e416fcb1c9b9d8a1978bf56e5", + "docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/record.json": "f365100f9c005480aab0f74c56cd65c68f1f3d64840f29ac748f092291636222", + "docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/tests.log": "100b4ca7027d0e3cb813b172b88d65a8bbc69012d41a2d46ec1a838bd072dfa6", + "docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "6df0e02b2b57bd06b965ccda10c44cdaff97c52d3ab361a74f83b3f0b02906b1", + "docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "25eaf8e602a6b519869334b56598c27ac9454f8ea7ab9a05233f41327bac9b2c", + "docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "342663802aaae0551cc1bc46f76b534237bc5403cfd5eab4576f962e0cf54b40", + "docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "ecba92601af22a39d80eac49d76953e214ae8b6ed4936acc52913c8dbec2169c", + "docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "1181267a2aebbdf238b8d055342c6e277e328cb3c92b7b609a5f883d6abc1ceb", + "docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "722cef2872bb2b80799fc33640f94e2e15ee3903e25361163014e0aee4324581", + "docs/validation/keyboard-toggle/cohorts/candidate-landscape200/outer.log": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "docs/validation/keyboard-toggle/cohorts/candidate-landscape200/record.json": "e96c4f369c948b87ebc5cceed6b238859ba343e30effa5005d022df677741e0a", + "docs/validation/keyboard-toggle/cohorts/candidate-landscape200/tests.log": "c0b1e2c6734d54bd4147fa10af4af1f233782394b94720b9864cb3e41c78f208", + "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json": "ef50ab82456c458a2b4319ac97180184a7762ed2bd8f7acabae8ee347df7ea69", + "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json": "d085baee4ca4de246b00a3c5f7e0edb9d28aa1295260947d3d53eea26902106e", + "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml": "f3d8d7f8e8ba1d7641e36a338a1118e7a2dc69a93363fe0f40df588db4df38e6", + "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json": "3718e28c22fba4146905c4fde37c5b974b43bd4f5d63d37f5305c9a60a4f19a3", + "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml": "eb92d4960d48917094b57a11aff545c5c97a7f888f99db820b277404eac8ef0d", + "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json": "05a607d2f9f5c989f5c9c85a91729394f362a4c9f4e9b2c096546c8ba5096703", + "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json": "09429d975cd9dbdd78e0feb6a418d244f7f146b12609c8f541b811cfa8f00735", + "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml": "897e91a27e1f486680fc82ed11da29bf3a072d8088908291210fc3e271adfc19", + "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json": "9dec30b9f56a16e3d7b36d303d13fcf5f7effe1b673f8cc479be52daae2659e1", + "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml": "db535c25cd4ca83ab662a646813958b1eebee56a27e04a52e801184095616e2a", + "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/outer.log": "28b91a72ff7543efbcd213dd66722b057a7a2c4e416fcb1c9b9d8a1978bf56e5", + "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/record.json": "744de6aa9caf1c76910ae6b6d423f72f1fd19d671d20ba7b0655c6971d5320a3", + "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/tests.log": "d42a949f17fce884bd2606c7e996b3c45b9bde48533c57631e93441ed9820772", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json": "e517efab9a25e3b8270063afec359a3da42acbb75bf24cb6987681c9d1e642ff", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json": "b1094e8183dd98165eea9ff81332438a91f5efe97ecbc913fcf7e776f128ed9d", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-feedback-landscape100/outer.log": "28b91a72ff7543efbcd213dd66722b057a7a2c4e416fcb1c9b9d8a1978bf56e5", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-feedback-landscape100/record.json": "4ab9419f39f9b241bfad56fd4e87be0c16142527ea51ca4397771d546e74e7a4", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-feedback-landscape100/tests.log": "84ee1367e2fd1b2f9acecee22c59ac8385a67db361b36298fead1550d059b3dd", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json": "7ec3a009d2c9bb73d64b2ea9aef316c7ab40e0aa7ba4abf5aeadf29811f3e234", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json": "49de88fa56e720b346da4841e06a54352fb6c77a7aa3440cf73a360cdebd9d1e", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml": "96fa92754c736906c91af3ced52af345869197dd6f66fcf2516a4c8e3760471c", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json": "3723d6f36da6c7ed43ffdb5dcad16f37b86370d58c1e5f70bfdf8d2c6d5c84d7", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml": "d1e4c7a08b333dc866e333d10189a0fcb6f871a616e65f889b3127e7292361ef", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json": "62af77ff5c51ed5f7fe88c7dcf06660e7210d394843e8d9efd7210879d2a5ddb", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json": "26a272e81174509a59872312e6fc23fef804de86447fd1b6b74b4989ccdb4903", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml": "62549f33870545ff887d2a594b5968c96258d2fe550b9e77447eed1c84bbef70", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json": "47eb6d88c2228839ce2e5509435b112678f2e083b981a6506fd2a68b690fcb11", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml": "b268918416b34eb427d0472021fa76e23dbeb873a34359464aaa68eda11cf719", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/outer.log": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/record.json": "c0e4d93329f80dd8a0e5a3181d108257b4321f5dad1605217a095fca62bf61fe", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/tests.log": "65243600d473ed908e32986e17a9a98b8379eb6ec394da7733445aae184b3bf9", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "7987e463b650cd9a1e347151d003cce87251478cc2ca80b3b9c15ee2f6f1572d", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "0117b62a630b1a45b51dcfa8ef15beccc9b429dc187c0beab943d781eff4fd40", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape100/outer.log": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape100/record.json": "8a36fc5cb4242b0a73e982edd85a83e12cd86ca8f7af08d04480b0b004cf45f9", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape100/tests.log": "d210b1658c1ad9ac0dfdb99cb2852b6fb39df6750c50f713c5e3386667f11136", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "6df0e02b2b57bd06b965ccda10c44cdaff97c52d3ab361a74f83b3f0b02906b1", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "ecba92601af22a39d80eac49d76953e214ae8b6ed4936acc52913c8dbec2169c", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape200/outer.log": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape200/record.json": "bbfb43c0e977207ea517f5982a6c343002fa07da236425c46c733f0e47b86602", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape200/tests.log": "f77a34460e1c7340949013e930f4301b914485fc97b54dfcb128f2ba2304bee3", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "e1d1ac0d924c19835708fcc59373fb821eeceb3b4b959c1209a8556f516da3cf", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "fbe11d4898b097e66b35a5ed0d2cd27da2bf336695171f47ef3e2c90e3a28e7d", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet100/outer.log": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet100/record.json": "6d0af9d6c130511b33fbefb5f8c614589f5d2b2ef42acdf8297490bfc689160c", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet100/tests.log": "833aec17d977228cd87b138da58f55d5c55bf4b36b2ee9f050cdb87c777fadfd", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "bb6e17fc39462fdf7b037825d3a32967fa59f7388c434aa56c79b06a6c84697e", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "ddfa8cc95708e7886fd94d3cc6840342ddbe827a73af14aa7010ae76fba382de", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet200/outer.log": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet200/record.json": "bb049ee732c48383832955d89b3865dd4a32aebc317e23b1861dc80207945d4b", + "docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet200/tests.log": "b63381cb014642171c826c65ed490fb213ab5aff05bf5fa7455ce08c400c61ca", + "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "2cad14379782102b85a376eef0f3112f13c780eefd10ad4dcd15fca4c24c4cad", + "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "1813955009e7148a125948107b5b471d1cd9fe7ff2334928922aaf9c465b8f39", + "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "a269b3279e148cd7f8352ed7b6dc1f3423ac4ca52e7c741e056f26f7b948c907", + "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "cd8e6159eaa739cf0c6973350d36b4479016d94d390007626af0385fd679a42f", + "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "b2050027d7e41ce99f99b847788d96978c631fa132d7c2746ca0de8050e50ca4", + "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "f467bb3f80c7bf6e54a1f5afe1ad88f7f2b33e38167e2c290ef7e8565a80bd5e", + "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/outer.log": "68f220b258e1a259c82c06d75294a59b4951f85d09bbd5e8a8c353b1cae9294d", + "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/record.json": "7d58e667923255dc36e484b9e899568ba5265fd9dc4e0f6084162afb7c748c9a", + "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/tests.log": "a799068b81dfec24161c56affe8ab513f715c557283eb9f3ffe4ca6957c911e2", + "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "3fb46039ec47f89270b1c0972ec95b4b1c5f8252aea186f34b515872318c529c", + "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "03e206efabc8c009a17acc85d24b4d16faa74934e967dd92d18094ab3fb4f772", + "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "4d26ee304113c9890bb4c9b6ebe420b4ed618d821d73a9b147a56ed3f6b40896", + "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "55b861597acea563d4881dcf94294c13f7aee4f759f181473e355bd113029545", + "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "ece83da11ff1e600cfe5f07186c5251a1060df6f741c839e0c6e9716a3929fc3", + "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "0d99d917d664286dbb7cb448e9e4e55335e44080f8cb00159e30bd6c5132375d", + "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/outer.log": "68f220b258e1a259c82c06d75294a59b4951f85d09bbd5e8a8c353b1cae9294d", + "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/record.json": "401de50c6ed5050bf7ecb68d4d906f3c81f76320a55530d8cb3fb3078d56ac90", + "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/tests.log": "0b1eb6754efe03dddb65822f196b59f6e37682f33d00c7fb41e9169cdea22cef", + "docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "2cad14379782102b85a376eef0f3112f13c780eefd10ad4dcd15fca4c24c4cad", + "docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "cd8e6159eaa739cf0c6973350d36b4479016d94d390007626af0385fd679a42f", + "docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape100/outer.log": "28b91a72ff7543efbcd213dd66722b057a7a2c4e416fcb1c9b9d8a1978bf56e5", + "docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape100/record.json": "fb5b7f3edefb5c25df651dbb0270da33a77d5a23a69bd82dcb7c8fb90f4c0be1", + "docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape100/tests.log": "541e4a67c20a3570d257459d0fd8bca476d9aefc513d3fa32a9e5103eb1e1415", + "docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "3fb46039ec47f89270b1c0972ec95b4b1c5f8252aea186f34b515872318c529c", + "docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "55b861597acea563d4881dcf94294c13f7aee4f759f181473e355bd113029545", + "docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape200/outer.log": "28b91a72ff7543efbcd213dd66722b057a7a2c4e416fcb1c9b9d8a1978bf56e5", + "docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape200/record.json": "a4cd4fc075d42254ee98d01d3857f4992e2930ecc8da424f0b80aabd44e4161b", + "docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape200/tests.log": "24832c30c722c1771909176081165c19f5179289e8b9e2297d3c4d82d4d1b88b", + "docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json": "b338c38dab75f6c1d2f124d5078945bd66bf9d22890a9ad86f7f1ebef50faf68", + "docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json": "7a9c905a232410a42ed73ffa023143c6c237aad8b2be080c0be2419f1fe3cb00", + "docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml": "d18c845e91909af70857f9235f05066f780c3997d2cd073fbe8b6a48ab81eaec", + "docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json": "b97217edde8e460e0573ede2faa0e5cbd937f43026fcf3a282dd445dddea032f", + "docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json": "12de910259e63531209a08d948ed0942a8f9a98f738b8fec5a5d73a56a7e6519", + "docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml": "3d5fc11771146b9ea01c9e3d4290e42d3dc7929ab03bfd7aa4eee63397728414", + "docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/outer.log": "68f220b258e1a259c82c06d75294a59b4951f85d09bbd5e8a8c353b1cae9294d", + "docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/record.json": "e78a89b09600a16e184c72707db9b3cefdcc4cd8613d421da9ddb2ce1d381306", + "docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/tests.log": "062ea82e7e4e49ce35b5adfa173b572fb83f5b11eff0d6d22e76dbb003c06bd9", + "docs/validation/keyboard-toggle/cohorts/control-proxy-v3-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json": "d4db51f5fa16832354e68ebb7f26099159aec13486e4c57596acaccdecf35899", + "docs/validation/keyboard-toggle/cohorts/control-proxy-v3-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json": "82fe8b90cae7ab2ce65a0fbce90086435529cd57486923ff3ae747006a5e1e8c", + "docs/validation/keyboard-toggle/cohorts/control-proxy-v3-tablet100/outer.log": "28b91a72ff7543efbcd213dd66722b057a7a2c4e416fcb1c9b9d8a1978bf56e5", + "docs/validation/keyboard-toggle/cohorts/control-proxy-v3-tablet100/record.json": "d974c48a9b9f16808ee6fdf5b5d2c536b8169f2e569050ad46d7f1c2e7c4dfaf", + "docs/validation/keyboard-toggle/cohorts/control-proxy-v3-tablet100/tests.log": "206114769068faff9b5390e35b114562484c55ea027271417e21371ae17213da", + "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-case.json": "269e213f01488e27c909db97bc3e37c996158aed07ca9474e87eac461cfe0f6c", + "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-after-frame.json": "01b2db217cd988810a1b2a46a1b6a979aadecaba4c574201a0170a3046e4d427", + "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-after.xml": "5766af98d8e4c9ebf644b3a7100e1abb64723a74c401be0aa03df13d3117be86", + "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-before-frame.json": "0f3293bc144373e5be063b22ae87394b759214afbbe8085dc4cb560f9321c3b4", + "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-before.xml": "f049869e62d8dd9ac0328468e16ac9ae91dd51f34646c0c78262f0048914e942", + "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-case.json": "24b9ae25fd92407a030020da1dbf619093ca88662363f58df55dd696d2a9c9c3", + "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-after-frame.json": "a52d30001f8e99d5aff4a508561d72540a028c9e5504b9d1ec04a60c803204c2", + "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-after.xml": "bc31d4558ddabf3d47e96209686ccc46a3f7ab0f731ff6a17b311e2d8131025c", + "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-before-frame.json": "5995d6ab8d94ab7c87eb3694173de90cfa07b96b06fd69eb39810767cba71d1a", + "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-before.xml": "6dd5af19dd07be00491c082d2cbf94f6cc5225fb0f972c442c26eeef053ce22e", + "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/outer.log": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/record.json": "4c0f59e4491e3799739cf67e625b9e742b51bde5d8d459ac0b16d303538fae09", + "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/tests.log": "1298ba044998034e13af23a36e217a81b0682b5e7bc067dee337ccfe03b178eb", + "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/currentclearuseslivequeryandrecreationrejectsoldcallback-case.json": "1117ca08c1e7c33028d9e680b86a3396458be049a15bb489571954e7b98dcab1", + "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-case.json": "9ea55a2780a25f6593038d4c25539b377199d0ec5736dfa1599f474fd2515234", + "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-cleared-frame.json": "86dbc28407cf78d55b5eb919da9e93125b4da909503fa866f730470797c2310a", + "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-cleared.xml": "5778d5c1f5c7f12c65cc4a115c40751b77e5127029b1dce305abf38351ac7d0c", + "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-composition-frame.json": "3c40f84c15e13d33285ecd1f3398f392ee3fc05c3c25397d62aa3f3ce3302f6f", + "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-composition.xml": "d80195ee19f6c1b42a8a440eae66113e5e61f61c0a29ff4810c1e86d433b9670", + "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-cleared-frame.json": "06b599673f1ca5a9dfa5c5fc3629ea051f09873b4a24bcea0fd8e99fbbb47c41", + "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-cleared.xml": "ccbe0a25739349d71d7af880ce8e00008232f78160b5b5dcc17e52e16955ab5d", + "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-composition-frame.json": "808e5c4701e5e9ccc34d462e7d6b61395bd94eeabfd442d679624e59b6f8a8e5", + "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-composition.xml": "81e6188282bcc98348f9735423575ea86a219261e3126ea0115605297005b6ad", + "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-case.json": "7ed88a37502269347c7d2f198849d4d0f65f61461ae277e0f1f406b8cb3e3c8d", + "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-covered-by-menu-frame.json": "2048c3531f99b1b6bf46acd04e58c4e66db38f0c621c6262a0606eeb0f818e35", + "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-covered-by-menu.xml": "9a50321e2f0402265c627a32bd7215c634bf11826fb428ca76485107ac43f8f7", + "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-replacement-emoji-frame.json": "2a660eb8464caf6d138b70234b18280ddf4c139c7b027660d11b78777eb718ce", + "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-replacement-emoji.xml": "9b6e64fafa693ab8b77ab9e6b0430b717e62de392946855d6c7e94cb412d18e3", + "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/outer.log": "b9580caf6b0f1bb8efa2b7587433c9c887ada106ea761c9ee7231c66ba26905c", + "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/record.json": "ca827f561cd7ee2d374eeef84394c3d820a5acbdd148d2ac081270c37e89b9fa", + "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/tests.log": "c68e9a23c8f19a9bccf46a38808545588c7a487f9e9baaa8818986ad115f6bd9", + "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json": "663e414b13cfbb475135e09a09b7551594bff0b1199a6df87aed1b677c84c72f", + "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json": "c7c5b317fc4f20b32f4a6baad474fa8026aa0bd89f47b7bcb3d4a0eeb7633d26", + "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape100/outer.log": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape100/record.json": "d2f52ecc3f3e4797637a79e69bc33d6d011b00f16ec9c8b57c7f64949f9b878f", + "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape100/tests.log": "3505f0054508d6880273682cca2edadc04c54317e3d32c16d8a344e5beb2765b", + "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json": "9f81ecc51724a9422137b5cdc7700063944d37bc1733958c2a1af5d18d8fed89", + "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty-frame.json": "e64ac758ecd9c2fff77aeb66fe3ff0f7bc73f70b0deec3470ebd30981d3e2bf6", + "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.xml": "0c9581854508c803189205540367d751e5abab1c14c1113248ae361d35cfbd33", + "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json": "f3505d3b75cee76ee1ef80a771501d329a777e50667041b80a4d79d1f08c59cf", + "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty-frame.json": "c88db1ce87e0f6ef6b587ff4976574c27103bec5eec4c3cec4f94736928d94d7", + "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.xml": "aab4831f979e26b4d9603a5cddb498c28ffffb0e1bd2b9ffc2c997ac07c7679d", + "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/outer.log": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/record.json": "6d653c5c377dbf5c7327d3041e0a46affa5c0a13a2753318b783f9b1dbcaf4e4", + "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/tests.log": "3e4c8dd59e13b609c711381c2f6a437d3881f02e0d07cec3a6bbffce132e8e76", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-case.json": "a4d2ea1442e881b950547978ce12c3df1e13310cf9072b98f5bd3663d2b67f72", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-0-frame.json": "814aab371137ef7224b580ad539c4757f586e02be83c0cd21669a80fd9823fe3", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-0.xml": "920e97ee22f0745daf72161b87f21bd2e6d34c6b0864f0808fde4bd34ec8b531", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-1-frame.json": "e31098814b128dab93638e30ad55b2f68ab497e3072828cd0eb4b8b53219f32d", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-1.xml": "3968b972a26936f4f9ddd772ca683f8665d6df59300256912ae7da94f1e52287", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-0-frame.json": "88022fa4333be54a941400b8c4dd60b4fa36bb77c448b8507a85163a53f6671e", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-0.xml": "8d32f675ff720c15191843a9d00d82707018e42ba4eea25fa96932b5c04a1050", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-1-frame.json": "261d988f8decf2b56733d43e8a56a82a4ce6bd7941e7c3c8d332f46f2e85fcbb", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-1.xml": "783b8093347aa1eb1bb2e9b9732fcbafbd88161f7c9f90e71564e10267384a88", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json": "538bbab99da53f8d3d879b4e385fe086a19c4b598403e72a0450a24b352644c3", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show-frame.json": "925990b48fea02e6187d86597be7e657ca974cc679cc72ea3d2842e0adbe191e", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.xml": "167dcd3240befb4ace05722f535368d8c73800c407f613532410b1500a403309", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch-frame.json": "87226601975f7853a483a07c7d694c0fd771391b1e7f2a6449b7ecb139ef95bc", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.xml": "167dcd3240befb4ace05722f535368d8c73800c407f613532410b1500a403309", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json": "48c6dc2b7f9dc8d551893ed1711dd475bdd47470888a6d01ae7fdcb0a378f220", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml": "167dcd3240befb4ace05722f535368d8c73800c407f613532410b1500a403309", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json": "c548ae46776c3d0f74e53cc233479bbdf522a33ed4ba33274758e06439f2dd69", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml": "c82e0a2a70a8be824768fd2e359d6c6dde6cc829071a0cf164d21aa4b7f542a7", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner-frame.json": "eb8d0b7ea7c84d00bda951d0214c7eda8f6c3322b25a00e940e23e6e938c8c5a", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.xml": "e9132c55f0e6e8486a162c52b8b5755fdd65e5a5ca070755e2b85d1a9c7d8f64", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route-frame.json": "0afec2e5b8f08fc51048f5cf6d11f7c7d3bc64c12b6e109be037cfe12b6b1486", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.xml": "8cf3a90f10d6eec7df233378e7daa8b3383984c115382e891dcc2ab4fb3a3bc7", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json": "dc66aca81db0b35eadb666dc1679ca0f491ab419df2e6a60df4515bf6b285124", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show-frame.json": "b225be89cc82c3fdfbc769e7004c38cadc70155d50f4ef354efd34c13d5d8392", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.xml": "495dd35c72bb074c90943500bdcb34c2182a70c4fdfcc4171f1a04812258085b", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch-frame.json": "65b05c4f8e0924ea2dc497fef15e685d61b95dab9b90aaca9560bd1f52f3e2cf", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.xml": "81f2d687f225eb1c959f51b3693aa3aada1dcd440808571a3f2a38ea3cf1486d", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json": "e691b0299a9a1c4dffba2df31d0545b9859e644812b7cd4b6cd667912fb27c55", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml": "81f2d687f225eb1c959f51b3693aa3aada1dcd440808571a3f2a38ea3cf1486d", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json": "cc42774be675d2c2d1ede544cb6380dde597ce3b06209568ad338f3a9150d1b5", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml": "1c1969829c30b837251c0846477eb56290b72ead385c6dfd97b7e5d11d1dde5e", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner-frame.json": "5523738e4fc2045085cd5735d7eb697568a1df56c00183eb6817deef02b46d6d", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.xml": "70c5fb3d69af14aef7b8a4d449732ff1b6bd5e176962759454c6f9f3ab769299", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route-frame.json": "4cb08de0fbd2a9b49001f6623b7534263a8203f9538f85e908f929aae4dba212", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.xml": "70c5fb3d69af14aef7b8a4d449732ff1b6bd5e176962759454c6f9f3ab769299", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/outer.log": "b9580caf6b0f1bb8efa2b7587433c9c887ada106ea761c9ee7231c66ba26905c", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/record.json": "9b1fe763db76f50e73cb192d67cb45b877b51f8d09321c2cf54f3413dfd5ab2a", + "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/tests.log": "b023b4a1bbbc2c8ebf0e78edf8232b102583d3479566a4d84b757a93465159a4", + "docs/validation/keyboard-toggle/cohorts/final-input-api26100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition-frame.json": "386677aeb164b77096876bdad86dffc22a44a3cc7fe72b674be113e87e5280b3", + "docs/validation/keyboard-toggle/cohorts/final-input-api26100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition.xml": "dd0eff05b382486b3a99600ca15892ea179f975d7ce13247fe07bd9c60262c6b", + "docs/validation/keyboard-toggle/cohorts/final-input-api26100/captures/case-activemultilingualcompositionkeepsresultselection.json": "5a4261a3bad2e3fbf68f14e10e255fd28334d8af95ae080e0c6e4cdd5b79b165", + "docs/validation/keyboard-toggle/cohorts/final-input-api26100/captures/case-committedemojinavigationandcaretareexact.json": "e7bf2b217918d84f3c71ad3d8c97664f3d45f5faf7cae2085b3fa1f4a559aa6d", + "docs/validation/keyboard-toggle/cohorts/final-input-api26100/outer.log": "b240cb5e56b3832849d0d550db1f90cc6c958bda805275b62cf82f84015a60c9", + "docs/validation/keyboard-toggle/cohorts/final-input-api26100/record.json": "8137e05d76b91a8f018ba97620a23f2152224d3a5ad86ed3d4898c4a9449bc8e", + "docs/validation/keyboard-toggle/cohorts/final-input-api26100/tests.log": "f51f23a2fef8eddf35739df2b663c7307640f1c8abb37af2e82e3c428be5fa83", + "docs/validation/keyboard-toggle/cohorts/final-input-phone100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition-frame.json": "386677aeb164b77096876bdad86dffc22a44a3cc7fe72b674be113e87e5280b3", + "docs/validation/keyboard-toggle/cohorts/final-input-phone100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition.xml": "a1373dbb4211f4bb28da2078b350b0e5c5d5621d3caf8f94ce351d1131b7a947", + "docs/validation/keyboard-toggle/cohorts/final-input-phone100/captures/case-activemultilingualcompositionkeepsresultselection.json": "3ed1fb7f1d92527c4f40c666a1910dacaf2e6b299a6240d4fada6327b8d2640c", + "docs/validation/keyboard-toggle/cohorts/final-input-phone100/captures/case-committedemojinavigationandcaretareexact.json": "c3bb13bdacd7c620b036c512befafdd3bdf3e31d677a24aa9d6d3c90896694b4", + "docs/validation/keyboard-toggle/cohorts/final-input-phone100/outer.log": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "docs/validation/keyboard-toggle/cohorts/final-input-phone100/record.json": "5c138dad9a379fed994a3b7344126176525ce0ed617ac860819366ec77695f21", + "docs/validation/keyboard-toggle/cohorts/final-input-phone100/tests.log": "a1a4412de02e918967917e293cfa8b45bea0b97718b818870fce26629beb81ee", + "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "7987e463b650cd9a1e347151d003cce87251478cc2ca80b3b9c15ee2f6f1572d", + "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "a4c281c1d1b6e42acb760c721c016e47755a64ae2fd06315b24a8ddd207c0d8c", + "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "5a7783df7ed6df2c6962466fe977c374c8f8ec2131919a826e26fbc003f24412", + "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json": "31b05faebd8ab820a79e7bc65e5ca03c67c4dc5242a1691466449419cb4ad71f", + "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml": "bdcbbd0816ad76e7f2b2e90e4d344b5277cd9456df5cb4cd076c0bf280cdff7a", + "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "5b9bafd96f811b0cb4b83df751ae0aed3a948cd5b453da1fef483c8610236b86", + "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "fece238c151cd43c8645dfda7be0f02c8b93cf9f4036f2ebbafae1a3aef465d6", + "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "0117b62a630b1a45b51dcfa8ef15beccc9b429dc187c0beab943d781eff4fd40", + "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "07045a076a61eba2bd5d99b5cb324a6f4431595b5341edc1f0234dc8ae9b4bf7", + "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "d14fb962d969ad55a7b54433725b10affa6083a5b9a5a00671843137427056a0", + "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json": "23c84d4b72caaba22166d5053bfba21da389f68cd0112a507176bbdf2eb17f25", + "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml": "5ed960b72ef109cdf2ed280bf51e76249d4785abf937b6f24645184aef3a75c7", + "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "30324492b9b32081f8dbe3393aa8580263fd77079f7fa28dfc5fbbf79271d478", + "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "6a7120005b53d59c1282241ce0fd511db43dc1bb91b1c8ad2a8ace78669345fa", + "docs/validation/keyboard-toggle/cohorts/final-landscape100/outer.log": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "docs/validation/keyboard-toggle/cohorts/final-landscape100/record.json": "ac5ddf56dca33abe3703a66530990b27b38a47888a3bb558cf0d74e109649d0c", + "docs/validation/keyboard-toggle/cohorts/final-landscape100/tests.log": "f7e1b6434614056d1f49fa9806e3ae49b0983514be573a17204455d1d8e53ea5", + "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "6df0e02b2b57bd06b965ccda10c44cdaff97c52d3ab361a74f83b3f0b02906b1", + "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "25eaf8e602a6b519869334b56598c27ac9454f8ea7ab9a05233f41327bac9b2c", + "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "c785c7cb5dc7489e517bfde3e9cca9031733044937ee9f760c37efe153ab1178", + "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json": "93528d221bffdc7c90bb731b2d842ca5f230c9c19627308ed50a1e0f056f6809", + "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml": "6bf9d05ca1734927247a34c2fbcc56ec49445d0f0cd46d498c82f1d5a9c035b1", + "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "36af18583a084fae09c1c554508c3d1828aa761d6875890b05031c68d36eef28", + "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "0e9c9377768ec2f3127e9ff3128f91c76ecb36ff66e6b1527ca52e4cbc29e3c1", + "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json": "08f1fd054e1eedc9e86300146abc600a84e7e5ac53efaa5e87ecacdf9d4cc2ab", + "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml": "2ff0be54bc0d004a1404d29ba598c076bfa4781518cd7352ab2862082f4d1a00", + "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json": "54ef6e140277418d4da4467ff7f0fc5004fa04532d5d212b55bca34f1c4d5941", + "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml": "9867a8963088c6abb8386880763d05e7796aef1fde9fa08284469e1790c60710", + "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "ecba92601af22a39d80eac49d76953e214ae8b6ed4936acc52913c8dbec2169c", + "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "1181267a2aebbdf238b8d055342c6e277e328cb3c92b7b609a5f883d6abc1ceb", + "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "a6194ba5c79eb443d5033a103e07966bd13326861c0472e8a2383d5ee2cfa8af", + "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json": "cd7dc5f93bb3e63c72d8fea055df4a1013ba71817afaadf3daa7e3fdfd1c286b", + "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml": "e499654611dff64f49da1f6c309c0b8b7ff7d7b37f93d8e8554145f95fb03fa9", + "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "3aee75b3c779520e9185f1b51a1c081d1d434e38c15856f3d87264cb2be4699e", + "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "00663adf15ed40186fc5923398acc0bb6f50bd4927906482d05c9e990805003f", + "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json": "6161a81e2bbba64723875ed736d0a45c347898c9312d2ad1c08f6fca9fee928c", + "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml": "6d81dbe3e6d3af63469e7574be58983674adc62b0159df620c5d3e8f2cf42f8b", + "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json": "141de3e9f6d16c353a164a2aca3722efd3c340d7a05420eaef2d23d57b1f683b", + "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml": "a994836758a00455cc2e924c9374f29325bf649059308c04d9738e1c1c1766db", + "docs/validation/keyboard-toggle/cohorts/final-landscape200/outer.log": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "docs/validation/keyboard-toggle/cohorts/final-landscape200/record.json": "19a66b7f98687127d97892abf8b9c7eb3a51b3ad255c1b3011603aa08a56447c", + "docs/validation/keyboard-toggle/cohorts/final-landscape200/tests.log": "15c319f7ad358c5a8e481f06ef5a6b2fd3a67a2d996f9e86841bcdfbe96ca942", + "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "e1d1ac0d924c19835708fcc59373fb821eeceb3b4b959c1209a8556f516da3cf", + "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "b0c20464841fe433312c342bfa43d8c4d7a9b8f6d2fef79d7d00cb591367ff4e", + "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "53b439e101b402bac847e65d1c16eccd667185e49265dd023d8e269d86906b4b", + "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json": "eddf2999ad79fd92ed594516884c4a01ca0f309287a64013605d4b9275071679", + "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml": "237583143c9ecdafb51d2d8438388dcb026c3bdebec7859793398bcaf64e490d", + "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "2d9dfca03bd30c2836a510f55746a2dc53c3cc1b8cc9e009004e9137be05285e", + "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "e7657fc4ac690a9bffa49b73d8a17f1a397f7ea94463e1999af072f91dc1af2e", + "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "fbe11d4898b097e66b35a5ed0d2cd27da2bf336695171f47ef3e2c90e3a28e7d", + "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "b7048eb8b8a384197c54c64a1742c6d142d29caf99b7e2a59951c658fdbca04f", + "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "13f727c63c112dc2cc07d07a6c1e21f8063fc1949f56337247d0772ffc5f4e35", + "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json": "6465b9de12b18008bed3d7bd65618f23794d0b7fd7989716d80f1cdc34cb00dd", + "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml": "5dc780798cce533a20300949bae1f8a4d72da2165f9456a4cf58cdd48f97a092", + "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "9e959fef3c96a526d457227890ba17d1d596b951179cee8644c24a25dd0f5334", + "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "935b2303386f639162d466e6e833958b573ded6c9f0fd3d2dad05a3a0119d8a3", + "docs/validation/keyboard-toggle/cohorts/final-tablet100/outer.log": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "docs/validation/keyboard-toggle/cohorts/final-tablet100/record.json": "95ef901dbecacf5bf8d00f179b177e42caf4669a5b42ab099bdb52eb81d2f52c", + "docs/validation/keyboard-toggle/cohorts/final-tablet100/tests.log": "247a189b24cad5698eb8c057b57357c6bd6082659683c03264ef3c0c9dc479a7", + "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "bb6e17fc39462fdf7b037825d3a32967fa59f7388c434aa56c79b06a6c84697e", + "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "f6b2ce66aef5075c7618d533cfb854c022c0c45a558efd6d22b94f2770c3fd4e", + "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "f67362d1f1deb9e1993f66bd68e95204daf915aa9ee9464bcddcd03f7777d700", + "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json": "035e9cb9cfc5c057a012271e1ce3ea74b1a716311282d4d0e0896e7ea17d4eba", + "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml": "63e4443501fdac760acbd4261b700dcc403fb90ac84d287b8e70e84062f9e368", + "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "8ca421bdc53974151d4dda86d9cdfafaef2563b0d92b8b75411feae0fd25c187", + "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "840853200809e044dc2850846972d35ad68ebc45b5a6a4dc845fb0977b188d4d", + "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "ddfa8cc95708e7886fd94d3cc6840342ddbe827a73af14aa7010ae76fba382de", + "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "47945103e56b434cc58564bdc42902531a0fd72b56ab1318382e9b4e9e700894", + "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "fae4f7040529663186ee231891c2951574b9d50f898d9655b2897fc5856e4996", + "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json": "935e6f3e8488c05f00bba7c473c97655bad1107a89213f6ec104cc6ab04f4d35", + "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml": "aab09add3ef3745dd7e07044f27b347fd0644a227af0fc2fd07d74a1bb3dacf5", + "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "b57d14345a5f9e17bbeda8209298c79a1fb4217568efe130fe86a60a6f3c4c4c", + "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "807b98abf28adcb640e3951800daa2e695729d7d7574c9b8e8e876821e3bf82f", + "docs/validation/keyboard-toggle/cohorts/final-tablet200/outer.log": "eba4ab2675572b86139733750a7bc373a8dd5267256ec77b993d6822df8e25c2", + "docs/validation/keyboard-toggle/cohorts/final-tablet200/record.json": "713907b4b3addda45e0fcbebab0733762d31147bd9644a636944943ddce89e5e", + "docs/validation/keyboard-toggle/cohorts/final-tablet200/tests.log": "02571488be4204fa068bebe377ebef969a97bc2eaedde3aef6bf7dc4c972630b", + "docs/validation/keyboard-toggle/collection-source/build-baseline-v2.py": "2026e565202423c6f33179fb33112f43d40577eb9f0ce3e5425e3b1282393cfa", + "docs/validation/keyboard-toggle/collection-source/build-baseline-v3.py": "94e88187a5b9e21efd4c9b4159b7aa15e0dde7a43a73187cd758a78d7455556a", + "docs/validation/keyboard-toggle/collection-source/build-baseline.py": "9343afcc6201ab25a2295497ebe9395c9cfa161868460d35409acd9e00dc253a", + "docs/validation/keyboard-toggle/collection-source/build-final-harness.py": "1bb68639c0f2c0bca6a3ea3564f59703d77121ef47fcda41a0b3b6a28096ec86", + "docs/validation/keyboard-toggle/collection-source/build-freeze-v1.py": "ffabbfb50f815c83a348b3c4a51a9425c613a12178cdb89e0f1ce22d342aa94c", + "docs/validation/keyboard-toggle/collection-source/build-freeze-v2.py": "f14fb7941c76da2bf583223a6f6d57598d59e3010e62cc7bd103046e5c7f5b87", + "docs/validation/keyboard-toggle/collection-source/build-freeze-v3.py": "bb2ce0448586fb4ce0c7c3417e358984a8016cf3066e4ae8c63316c50dc76586", + "docs/validation/keyboard-toggle/collection-source/calibrate-final-controls.py": "beb1a9fca9b2acc77723af9a0f7bb0cdc0401c607dc4404706b90997dff4d169", + "docs/validation/keyboard-toggle/collection-source/capture-initial-settings.py": "ded2c0af0ba60f504462ca823fe9cac7e8430c14633d77c03e2157450a6622b0", + "docs/validation/keyboard-toggle/collection-source/final-preservation.py": "6645e7ef98fa246b74056ee917813b9fc63eed9830dc8557cebc122121a6cae6", + "docs/validation/keyboard-toggle/collection-source/publish.py": "c772b338b4356f11910822d612e6bf8cb49dfdc47f7526c5ccc2527bdbcc6171", + "docs/validation/keyboard-toggle/collection-source/run-back-diagnostics.py": "f61976f48de82cf13deff51d34c5b42d67c8304303882a3de00abed4632a2051", + "docs/validation/keyboard-toggle/collection-source/run-baseline-v3.py": "3c0d769ee5caa0b8ac39f39327002ca8070993539af182cd97bb641f5e2cf2dc", + "docs/validation/keyboard-toggle/collection-source/run-baseline.py": "073d1e5fba839855a6ca60bc9ae8a76f69b64ec513eb42f6dae407ba53414418", + "docs/validation/keyboard-toggle/collection-source/run-final.py": "9763a1a8d83b31c51346369e99ea011e458b23aee1ed5a8d3b3e408ad185fd1b", + "docs/validation/keyboard-toggle/collection-source/run-native-v1.py": "e67cd5d9fe39bf29d14ff7387bc04ee588e24b6e801c927aa878c506aa9f5b96", + "docs/validation/keyboard-toggle/collection-source/run-native-v2.py": "649e92298385b3bee5922ff9a07e5a03b99677a6a12f9c462fe4f9b7722f1a6c", + "docs/validation/keyboard-toggle/collection-source/run-native-v3.py": "e8b1cf72d6a2eab91452ce19f464ad63c844723aa99f62ab87975c95fa2bfceb", + "docs/validation/keyboard-toggle/collection-source/run-native-v4.py": "cdd0e81d612cbf8fc0a6ac9ae1567f199e3811c248751675e5f7ad092ca8a787", + "docs/validation/keyboard-toggle/collection-source/verify-final.py": "45f1623327f2049445e4274a1c2fe7832b4e96c2cd6c74c9ec1c300aa42fb02a", + "docs/validation/keyboard-toggle/collection-source/verify-frozen-host.py": "dcf6edbeb20e65f1aab3325ea9d001425c873a189b5e84c0895d357f9e597c86", + "docs/validation/keyboard-toggle/final-controls-calibration.json": "5cc0c326d825b7e14d0f21a28d9f0714bd07bc222c2450eb7f6d166f839d0e96", + "docs/validation/keyboard-toggle/final-preservation.json": "f768c3184be8fbc085a285b1b7988807972cd523ea7985d06f59c3003608cd9f", + "docs/validation/keyboard-toggle/final-verification.json": "f750cd6a4182c26546d03371568b196a8ef0e757b6832f1aacc281dff07cbb94", + "docs/validation/keyboard-toggle/frozen-host-verification.json": "c0ecf169da107d308eaff67acd9a9e92cfdfce489f54cdc35ba91d9302e35fc0", + "docs/validation/keyboard-toggle/identities/baseline-harness/identity.json": "fab10e1b0b0aa139e8b864253186102bc5325f40b466c4a30222a996603296c8", + "docs/validation/keyboard-toggle/identities/baseline-harness/test-manifest.xml": "b467cd75f67ae0336c000708f82d24b5be57bd28f9add3fe3dfedad05d51da7a", + "docs/validation/keyboard-toggle/identities/baseline-harness-v3/identity.json": "0233d413c1bcead6aa7592d384032b6d5c379136975c9bed452d46899acc7542", + "docs/validation/keyboard-toggle/identities/baseline-harness-v3/test-manifest.xml": "b467cd75f67ae0336c000708f82d24b5be57bd28f9add3fe3dfedad05d51da7a", + "docs/validation/keyboard-toggle/identities/candidate-v1/app-manifest.xml": "87d4277058ab8871f5598c485728fa83d72e64fbae5c971f961a7e0a527d1f83", + "docs/validation/keyboard-toggle/identities/candidate-v1/identity.json": "22366de743450b0d6628c9fda3fab948defdfae56d6a0779e28eb603a12a8090", + "docs/validation/keyboard-toggle/identities/candidate-v1/test-manifest.xml": "b467cd75f67ae0336c000708f82d24b5be57bd28f9add3fe3dfedad05d51da7a", + "docs/validation/keyboard-toggle/identities/candidate-v2/app-manifest.xml": "42b18e336507424fef0e7638beee5f24f6a86ab60389a0115c8b14354aa66ccc", + "docs/validation/keyboard-toggle/identities/candidate-v2/identity.json": "44ea7031c7ea2457e3d27242f052566f8a8ff31768cfbdaa2681a1d0529138b4", + "docs/validation/keyboard-toggle/identities/candidate-v2/test-manifest.xml": "b467cd75f67ae0336c000708f82d24b5be57bd28f9add3fe3dfedad05d51da7a", + "docs/validation/keyboard-toggle/identities/candidate-v3/app-manifest.xml": "57c5171d260356c9a976442856f3d88dff23d5c7a5a4e38f9e92cd96ffa7dc58", + "docs/validation/keyboard-toggle/identities/candidate-v3/identity.json": "11e5644287950a8c19f31741984d2657415f32e6d4463f19934ab967cad31fca", + "docs/validation/keyboard-toggle/identities/candidate-v3/test-manifest.xml": "b467cd75f67ae0336c000708f82d24b5be57bd28f9add3fe3dfedad05d51da7a", + "docs/validation/keyboard-toggle/identities/final-harness/app-manifest.xml": "57c5171d260356c9a976442856f3d88dff23d5c7a5a4e38f9e92cd96ffa7dc58", + "docs/validation/keyboard-toggle/identities/final-harness/identity.json": "b156a14619a294585b948005110256f1c9683a82a8c02073b8ecfb9a2adf8de0", + "docs/validation/keyboard-toggle/identities/final-harness/test-manifest.xml": "b467cd75f67ae0336c000708f82d24b5be57bd28f9add3fe3dfedad05d51da7a", + "docs/validation/keyboard-toggle/initial-settings-receipt.json": "4d9258649473640a353bdd98c31f9305ba7f94d304ab3e6c54b004457e8483c1", + "docs/validation/keyboard-toggle/pipelines/back-diagnostics.json": "ee3a56d4ee9cb2d9528bf025ce67535910bbba37260e3fba8ff303d6f9bbe337", + "docs/validation/keyboard-toggle/pipelines/baseline-controls-v3.json": "fdcfe76a1bdaeb977eaedada666cef4cb50b5187dbefb71087b0f7c90ab686a4", + "docs/validation/keyboard-toggle/pipelines/baseline-controls.json": "d6ee5685334d050fe2891a804535c9a2674402b57d00ba38e1e49008565e455a", + "docs/validation/keyboard-toggle/pipelines/native-v1.json": "3a7e5ee7b46155d7c3e089e34ec0fbfa8ec7afed2add533e1bc5766e773aa9aa", + "docs/validation/keyboard-toggle/pipelines/native-v2.json": "52930dda1845aa1a9f6bc798c4b903cd494bece129038a6a701264efa1320f4e", + "docs/validation/keyboard-toggle/pipelines/native-v3.json": "760819ee40bafdbb8e87341ab3d30efb912a8a916e9aa14ba1169244e932048f", + "docs/validation/keyboard-toggle/pipelines/native-v4.json": "54512c0fe26692f3e30bd4270cbfb796c77196d6f2ed10433a1ba7919f1150ee", + "docs/validation/keyboard-toggle/retained-captures.json": "52bca269aa9d378c3509ce98163d030450089352ae4a806eca6e28d8870f050a", + "docs/validation/keyboard-toggle/selected-captures.json": "c9cf86dc50d5e20c2f3fc54018aa02f3dedcbcbf1cac6cfde1c640c156e7d991", + "docs/validation/keyboard-toggle/semantics-proxy-inspection.json": "9d3bff458f154994dc5bcf00e2902f47e7045b9fa2cd861cd218d9fe2fb99851", + "docs/validation/keyboard-toggle/summary.json": "bd63a60abd2916ecec068cc891185609d385a2e62365a23334629e2f7d8a7769" + } +} diff --git a/docs/validation/keyboard-toggle/checks/build-baseline-v2.log b/docs/validation/keyboard-toggle/checks/build-baseline-v2.log new file mode 100644 index 00000000..586ffc0c --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/build-baseline-v2.log @@ -0,0 +1,119 @@ +To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/9.4.1/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation. +Daemon will be stopped at the end of the build +> Task :app:preBuild UP-TO-DATE +> Task :app:preDebugBuild UP-TO-DATE +> Task :app:mergeDebugNativeDebugMetadata NO-SOURCE +> Task :app:generateDebugBuildConfig +> Task :app:generateDebugResources UP-TO-DATE +> Task :app:packageDebugResources UP-TO-DATE +> Task :app:processDebugNavigationResources +> Task :app:parseDebugLocalResources UP-TO-DATE +> Task :app:generateDebugRFile UP-TO-DATE + +> Task :app:compileDebugKotlin +w: file:///app/src/main/java/dev/tinycast/android/CalculatorActions.kt:13:46 Non-public primary constructor is exposed via the generated 'copy()' method of the 'data' class. + +The generated 'copy()' will change its visibility in future releases. + +To suppress the warning do one of the following: +- Annotate the data class with the '@ConsistentCopyVisibility' annotation. +- Use the '-Xconsistent-data-class-copy-visibility' compiler flag. +- Annotate the data class with the '@ExposedCopyVisibility' annotation + (Discouraged, but can be used to keep binary compatibility). + +To learn more, see the documentation of the '@ConsistentCopyVisibility' and '@ExposedCopyVisibility' annotations. + +This will become an error in language version 2.3. +w: file:///app/src/main/java/dev/tinycast/android/EmojiUi.kt:100:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteMenus.kt:325:43 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteMenus.kt:389:63 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteUi.kt:185:51 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteUi.kt:263:51 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/SettingsActivity.kt:50:205 'static field SOFT_INPUT_ADJUST_RESIZE: Int' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionFormPickerBackdrop.kt:25:128 'static field SOFT_INPUT_ADJUST_RESIZE: Int' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionGridImages.kt:30:118 Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type 'Any?'. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt:215:43 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt:229:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. + +> Task :app:javaPreCompileDebug UP-TO-DATE +> Task :app:compileDebugJavaWithJavac +> Task :app:generateDebugAssets UP-TO-DATE +> Task :app:mergeDebugAssets UP-TO-DATE +> Task :app:compressDebugAssets UP-TO-DATE +> Task :app:generateDebugGlobalSynthetics UP-TO-DATE +> Task :app:processDebugJavaRes UP-TO-DATE +> Task :app:mergeDebugJavaResource UP-TO-DATE +> Task :app:checkDebugDuplicateClasses UP-TO-DATE +> Task :app:desugarDebugFileDependencies UP-TO-DATE +> Task :app:mergeExtDexDebug UP-TO-DATE +> Task :app:mergeLibDexDebug UP-TO-DATE +> Task :app:checkDebugAarMetadata UP-TO-DATE +> Task :app:mapDebugSourceSetPaths UP-TO-DATE +> Task :app:compileDebugNavigationResources UP-TO-DATE +> Task :app:mergeDebugResources UP-TO-DATE +> Task :app:createDebugCompatibleScreenManifests UP-TO-DATE +> Task :app:extractDeepLinksDebug +> Task :app:processDebugMainManifest +> Task :app:processDebugManifest +> Task :app:processDebugManifestForPackage +> Task :app:processDebugResources +> Task :app:dexBuilderDebug +> Task :app:mergeProjectDexDebug +> Task :app:mergeDebugJniLibFolders UP-TO-DATE +> Task :app:mergeDebugNativeLibs UP-TO-DATE +> Task :app:stripDebugDebugSymbols UP-TO-DATE +> Task :app:validateSigningDebug UP-TO-DATE +> Task :app:writeDebugAppMetadata UP-TO-DATE +> Task :app:writeDebugSigningConfigVersions UP-TO-DATE +> Task :app:packageDebug +> Task :app:createDebugApkListingFileRedirect UP-TO-DATE +> Task :app:assembleDebug +> Task :app:bundleDebugClassesToCompileJar +> Task :app:preDebugAndroidTestBuild SKIPPED +> Task :app:processDebugAndroidTestManifest +> Task :app:generateDebugAndroidTestBuildConfig +> Task :app:generateDebugAndroidTestResources UP-TO-DATE +> Task :app:packageDebugAndroidTestResources UP-TO-DATE +> Task :app:processDebugAndroidTestNavigationResources +> Task :app:parseDebugAndroidTestLocalResources UP-TO-DATE +> Task :app:generateDebugAndroidTestRFile UP-TO-DATE + +> Task :app:compileDebugAndroidTestKotlin +w: file:///app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt:171:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt:176:48 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/ExtensionGridDeviceTest.kt:544:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/FrozenBundleWorkflowDeviceTest.kt:261:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/ReviewedTextDeviceTest.kt:629:60 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/TouchSearchDeviceTest.kt:83:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. + +> Task :app:javaPreCompileDebugAndroidTest +> Task :app:compileDebugAndroidTestJavaWithJavac +> Task :app:generateDebugAndroidTestAssets UP-TO-DATE +> Task :app:mergeDebugAndroidTestAssets +> Task :app:compressDebugAndroidTestAssets +> Task :app:generateDebugAndroidTestGlobalSynthetics +> Task :app:processDebugAndroidTestJavaRes +> Task :app:mergeDebugAndroidTestJavaResource +> Task :app:checkDebugAndroidTestDuplicateClasses +> Task :app:desugarDebugAndroidTestFileDependencies +> Task :app:mergeExtDexDebugAndroidTest +> Task :app:mergeLibDexDebugAndroidTest +> Task :app:checkDebugAndroidTestAarMetadata +> Task :app:mapDebugAndroidTestSourceSetPaths +> Task :app:compileDebugAndroidTestNavigationResources +> Task :app:mergeDebugAndroidTestResources +> Task :app:processDebugAndroidTestResources +> Task :app:dexBuilderDebugAndroidTest +> Task :app:mergeProjectDexDebugAndroidTest +> Task :app:mergeDebugAndroidTestJniLibFolders +> Task :app:mergeDebugAndroidTestNativeLibs NO-SOURCE +> Task :app:stripDebugAndroidTestDebugSymbols NO-SOURCE +> Task :app:validateSigningDebugAndroidTest +> Task :app:writeDebugAndroidTestSigningConfigVersions +> Task :app:packageDebugAndroidTest +> Task :app:createDebugAndroidTestApkListingFileRedirect +> Task :app:assembleDebugAndroidTest + +BUILD SUCCESSFUL in 1m 6s +70 actionable tasks: 40 executed, 30 up-to-date +Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.4.1/userguide/configuration_cache_enabling.html diff --git a/docs/validation/keyboard-toggle/checks/build-baseline-v3.log b/docs/validation/keyboard-toggle/checks/build-baseline-v3.log new file mode 100644 index 00000000..ffe78dd1 --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/build-baseline-v3.log @@ -0,0 +1,119 @@ +To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/9.4.1/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation. +Daemon will be stopped at the end of the build +> Task :app:preBuild UP-TO-DATE +> Task :app:preDebugBuild UP-TO-DATE +> Task :app:mergeDebugNativeDebugMetadata NO-SOURCE +> Task :app:generateDebugBuildConfig +> Task :app:generateDebugResources UP-TO-DATE +> Task :app:packageDebugResources UP-TO-DATE +> Task :app:processDebugNavigationResources +> Task :app:parseDebugLocalResources UP-TO-DATE +> Task :app:generateDebugRFile UP-TO-DATE + +> Task :app:compileDebugKotlin +w: file:///app/src/main/java/dev/tinycast/android/CalculatorActions.kt:13:46 Non-public primary constructor is exposed via the generated 'copy()' method of the 'data' class. + +The generated 'copy()' will change its visibility in future releases. + +To suppress the warning do one of the following: +- Annotate the data class with the '@ConsistentCopyVisibility' annotation. +- Use the '-Xconsistent-data-class-copy-visibility' compiler flag. +- Annotate the data class with the '@ExposedCopyVisibility' annotation + (Discouraged, but can be used to keep binary compatibility). + +To learn more, see the documentation of the '@ConsistentCopyVisibility' and '@ExposedCopyVisibility' annotations. + +This will become an error in language version 2.3. +w: file:///app/src/main/java/dev/tinycast/android/EmojiUi.kt:100:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteMenus.kt:325:43 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteMenus.kt:389:63 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteUi.kt:185:51 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteUi.kt:263:51 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/SettingsActivity.kt:50:205 'static field SOFT_INPUT_ADJUST_RESIZE: Int' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionFormPickerBackdrop.kt:25:128 'static field SOFT_INPUT_ADJUST_RESIZE: Int' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionGridImages.kt:30:118 Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type 'Any?'. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt:215:43 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt:229:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. + +> Task :app:javaPreCompileDebug UP-TO-DATE +> Task :app:compileDebugJavaWithJavac +> Task :app:generateDebugAssets UP-TO-DATE +> Task :app:mergeDebugAssets UP-TO-DATE +> Task :app:compressDebugAssets UP-TO-DATE +> Task :app:generateDebugGlobalSynthetics UP-TO-DATE +> Task :app:processDebugJavaRes UP-TO-DATE +> Task :app:mergeDebugJavaResource UP-TO-DATE +> Task :app:checkDebugDuplicateClasses UP-TO-DATE +> Task :app:desugarDebugFileDependencies UP-TO-DATE +> Task :app:mergeExtDexDebug UP-TO-DATE +> Task :app:mergeLibDexDebug UP-TO-DATE +> Task :app:checkDebugAarMetadata UP-TO-DATE +> Task :app:mapDebugSourceSetPaths UP-TO-DATE +> Task :app:compileDebugNavigationResources UP-TO-DATE +> Task :app:mergeDebugResources UP-TO-DATE +> Task :app:createDebugCompatibleScreenManifests UP-TO-DATE +> Task :app:extractDeepLinksDebug +> Task :app:processDebugMainManifest +> Task :app:processDebugManifest +> Task :app:processDebugManifestForPackage +> Task :app:processDebugResources +> Task :app:dexBuilderDebug +> Task :app:mergeProjectDexDebug +> Task :app:mergeDebugJniLibFolders UP-TO-DATE +> Task :app:mergeDebugNativeLibs UP-TO-DATE +> Task :app:stripDebugDebugSymbols UP-TO-DATE +> Task :app:validateSigningDebug UP-TO-DATE +> Task :app:writeDebugAppMetadata UP-TO-DATE +> Task :app:writeDebugSigningConfigVersions UP-TO-DATE +> Task :app:packageDebug +> Task :app:createDebugApkListingFileRedirect UP-TO-DATE +> Task :app:assembleDebug +> Task :app:bundleDebugClassesToCompileJar +> Task :app:preDebugAndroidTestBuild SKIPPED +> Task :app:processDebugAndroidTestManifest +> Task :app:generateDebugAndroidTestBuildConfig +> Task :app:generateDebugAndroidTestResources UP-TO-DATE +> Task :app:packageDebugAndroidTestResources UP-TO-DATE +> Task :app:processDebugAndroidTestNavigationResources +> Task :app:parseDebugAndroidTestLocalResources UP-TO-DATE +> Task :app:generateDebugAndroidTestRFile UP-TO-DATE + +> Task :app:compileDebugAndroidTestKotlin +w: file:///app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt:171:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt:176:48 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/ExtensionGridDeviceTest.kt:544:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/FrozenBundleWorkflowDeviceTest.kt:261:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/ReviewedTextDeviceTest.kt:629:60 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/TouchSearchDeviceTest.kt:83:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. + +> Task :app:javaPreCompileDebugAndroidTest UP-TO-DATE +> Task :app:compileDebugAndroidTestJavaWithJavac +> Task :app:generateDebugAndroidTestAssets UP-TO-DATE +> Task :app:mergeDebugAndroidTestAssets UP-TO-DATE +> Task :app:compressDebugAndroidTestAssets UP-TO-DATE +> Task :app:generateDebugAndroidTestGlobalSynthetics UP-TO-DATE +> Task :app:processDebugAndroidTestJavaRes UP-TO-DATE +> Task :app:mergeDebugAndroidTestJavaResource UP-TO-DATE +> Task :app:checkDebugAndroidTestDuplicateClasses UP-TO-DATE +> Task :app:desugarDebugAndroidTestFileDependencies UP-TO-DATE +> Task :app:mergeExtDexDebugAndroidTest UP-TO-DATE +> Task :app:mergeLibDexDebugAndroidTest UP-TO-DATE +> Task :app:checkDebugAndroidTestAarMetadata UP-TO-DATE +> Task :app:mapDebugAndroidTestSourceSetPaths UP-TO-DATE +> Task :app:compileDebugAndroidTestNavigationResources UP-TO-DATE +> Task :app:mergeDebugAndroidTestResources UP-TO-DATE +> Task :app:processDebugAndroidTestResources UP-TO-DATE +> Task :app:dexBuilderDebugAndroidTest +> Task :app:mergeProjectDexDebugAndroidTest +> Task :app:mergeDebugAndroidTestJniLibFolders UP-TO-DATE +> Task :app:mergeDebugAndroidTestNativeLibs NO-SOURCE +> Task :app:stripDebugAndroidTestDebugSymbols NO-SOURCE +> Task :app:validateSigningDebugAndroidTest UP-TO-DATE +> Task :app:writeDebugAndroidTestSigningConfigVersions UP-TO-DATE +> Task :app:packageDebugAndroidTest +> Task :app:createDebugAndroidTestApkListingFileRedirect UP-TO-DATE +> Task :app:assembleDebugAndroidTest + +BUILD SUCCESSFUL in 59s +70 actionable tasks: 21 executed, 49 up-to-date +Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.4.1/userguide/configuration_cache_enabling.html diff --git a/docs/validation/keyboard-toggle/checks/build-baseline.log b/docs/validation/keyboard-toggle/checks/build-baseline.log new file mode 100644 index 00000000..441e2485 --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/build-baseline.log @@ -0,0 +1,101 @@ +To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/9.4.1/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation. +Daemon will be stopped at the end of the build +> Task :app:preBuild UP-TO-DATE +> Task :app:preDebugBuild UP-TO-DATE +> Task :app:mergeDebugNativeDebugMetadata NO-SOURCE +> Task :app:generateDebugBuildConfig +> Task :app:generateDebugResources +> Task :app:packageDebugResources +> Task :app:processDebugNavigationResources +> Task :app:parseDebugLocalResources +> Task :app:generateDebugRFile + +> Task :app:compileDebugKotlin +w: file:///app/src/main/java/dev/tinycast/android/CalculatorActions.kt:13:46 Non-public primary constructor is exposed via the generated 'copy()' method of the 'data' class. + +The generated 'copy()' will change its visibility in future releases. + +To suppress the warning do one of the following: +- Annotate the data class with the '@ConsistentCopyVisibility' annotation. +- Use the '-Xconsistent-data-class-copy-visibility' compiler flag. +- Annotate the data class with the '@ExposedCopyVisibility' annotation + (Discouraged, but can be used to keep binary compatibility). + +To learn more, see the documentation of the '@ConsistentCopyVisibility' and '@ExposedCopyVisibility' annotations. + +This will become an error in language version 2.3. +w: file:///app/src/main/java/dev/tinycast/android/EmojiUi.kt:100:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteMenus.kt:325:43 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteMenus.kt:389:63 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteUi.kt:185:51 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteUi.kt:263:51 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/SettingsActivity.kt:50:205 'static field SOFT_INPUT_ADJUST_RESIZE: Int' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionFormPickerBackdrop.kt:25:128 'static field SOFT_INPUT_ADJUST_RESIZE: Int' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionGridImages.kt:30:118 Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type 'Any?'. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt:215:43 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt:229:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. + +> Task :app:javaPreCompileDebug +> Task :app:compileDebugJavaWithJavac +> Task :app:generateDebugAssets UP-TO-DATE +> Task :app:mergeDebugAssets +> Task :app:compressDebugAssets +> Task :app:generateDebugGlobalSynthetics +> Task :app:processDebugJavaRes +> Task :app:mergeDebugJavaResource +> Task :app:checkDebugDuplicateClasses +> Task :app:desugarDebugFileDependencies +> Task :app:mergeExtDexDebug +> Task :app:mergeLibDexDebug +> Task :app:checkDebugAarMetadata +> Task :app:mapDebugSourceSetPaths +> Task :app:compileDebugNavigationResources +> Task :app:mergeDebugResources +> Task :app:createDebugCompatibleScreenManifests +> Task :app:extractDeepLinksDebug +> Task :app:processDebugMainManifest +> Task :app:processDebugManifest +> Task :app:processDebugManifestForPackage +> Task :app:processDebugResources +> Task :app:dexBuilderDebug +> Task :app:mergeProjectDexDebug +> Task :app:mergeDebugJniLibFolders +> Task :app:mergeDebugNativeLibs + +> Task :app:stripDebugDebugSymbols +Unable to strip the following libraries, packaging them as they are: libandroidx.graphics.path.so. Run with --info option to learn more. + +> Task :app:validateSigningDebug +> Task :app:writeDebugAppMetadata +> Task :app:writeDebugSigningConfigVersions +> Task :app:packageDebug +> Task :app:createDebugApkListingFileRedirect +> Task :app:assembleDebug +> Task :app:bundleDebugClassesToCompileJar +> Task :app:preDebugAndroidTestBuild SKIPPED +> Task :app:processDebugAndroidTestManifest +> Task :app:generateDebugAndroidTestBuildConfig +> Task :app:generateDebugAndroidTestResources +> Task :app:packageDebugAndroidTestResources +> Task :app:processDebugAndroidTestNavigationResources +> Task :app:parseDebugAndroidTestLocalResources +> Task :app:generateDebugAndroidTestRFile + +> Task :app:compileDebugAndroidTestKotlin FAILED +e: file:///app/src/androidTest/java/dev/tinycast/android/TouchSearchDeviceTest.kt:529:26 This testing API is experimental and is likely to be changed or removed entirely + +FAILURE: Build failed with an exception. + +* What went wrong: +Execution failed for task ':app:compileDebugAndroidTestKotlin'. +> A failure occurred while executing org.jetbrains.kotlin.compilerRunner.GradleCompilerRunnerWithWorkers$GradleKotlinCompilerWorkAction + > Compilation error. See log for more details + +* Try: +> Run with --stacktrace option to get the stack trace. +> Run with --info or --debug option to get more log output. +> Run with --scan to get full insights from a Build Scan (powered by Develocity). +> Get more help at https://help.gradle.org. + +BUILD FAILED in 1m 3s +47 actionable tasks: 47 executed diff --git a/docs/validation/keyboard-toggle/checks/candidate-v1/debug-build.log b/docs/validation/keyboard-toggle/checks/candidate-v1/debug-build.log new file mode 100644 index 00000000..e271e232 --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/candidate-v1/debug-build.log @@ -0,0 +1,139 @@ +To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/9.4.1/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation. +Daemon will be stopped at the end of the build +> Task :app:preBuild UP-TO-DATE +> Task :app:preDebugBuild UP-TO-DATE +> Task :app:mergeDebugNativeDebugMetadata NO-SOURCE +> Task :app:generateDebugBuildConfig +> Task :app:generateDebugResources UP-TO-DATE +> Task :app:packageDebugResources UP-TO-DATE +> Task :app:processDebugNavigationResources +> Task :app:parseDebugLocalResources UP-TO-DATE +> Task :app:generateDebugRFile UP-TO-DATE + +> Task :app:compileDebugKotlin +w: file:///app/src/main/java/dev/tinycast/android/CalculatorActions.kt:13:46 Non-public primary constructor is exposed via the generated 'copy()' method of the 'data' class. + +The generated 'copy()' will change its visibility in future releases. + +To suppress the warning do one of the following: +- Annotate the data class with the '@ConsistentCopyVisibility' annotation. +- Use the '-Xconsistent-data-class-copy-visibility' compiler flag. +- Annotate the data class with the '@ExposedCopyVisibility' annotation + (Discouraged, but can be used to keep binary compatibility). + +To learn more, see the documentation of the '@ConsistentCopyVisibility' and '@ExposedCopyVisibility' annotations. + +This will become an error in language version 2.3. +w: file:///app/src/main/java/dev/tinycast/android/EmojiUi.kt:100:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteMenus.kt:325:43 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteMenus.kt:389:63 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteUi.kt:185:51 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteUi.kt:263:51 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/SearchKeyboardButton.kt:43:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/SettingsActivity.kt:50:205 'static field SOFT_INPUT_ADJUST_RESIZE: Int' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionFormPickerBackdrop.kt:25:128 'static field SOFT_INPUT_ADJUST_RESIZE: Int' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionGridImages.kt:30:118 Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type 'Any?'. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt:215:43 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt:229:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. + +> Task :app:javaPreCompileDebug UP-TO-DATE +> Task :app:compileDebugJavaWithJavac +> Task :app:generateDebugAssets UP-TO-DATE +> Task :app:mergeDebugAssets UP-TO-DATE +> Task :app:compressDebugAssets UP-TO-DATE +> Task :app:generateDebugGlobalSynthetics UP-TO-DATE +> Task :app:processDebugJavaRes +> Task :app:mergeDebugJavaResource +> Task :app:checkDebugDuplicateClasses UP-TO-DATE +> Task :app:desugarDebugFileDependencies UP-TO-DATE +> Task :app:mergeExtDexDebug UP-TO-DATE +> Task :app:mergeLibDexDebug UP-TO-DATE +> Task :app:checkDebugAarMetadata UP-TO-DATE +> Task :app:mapDebugSourceSetPaths UP-TO-DATE +> Task :app:compileDebugNavigationResources UP-TO-DATE +> Task :app:mergeDebugResources UP-TO-DATE +> Task :app:createDebugCompatibleScreenManifests UP-TO-DATE +> Task :app:extractDeepLinksDebug +> Task :app:processDebugMainManifest +> Task :app:processDebugManifest +> Task :app:processDebugManifestForPackage +> Task :app:processDebugResources +> Task :app:dexBuilderDebug +> Task :app:mergeProjectDexDebug +> Task :app:mergeDebugJniLibFolders UP-TO-DATE +> Task :app:mergeDebugNativeLibs UP-TO-DATE +> Task :app:stripDebugDebugSymbols UP-TO-DATE +> Task :app:validateSigningDebug UP-TO-DATE +> Task :app:writeDebugAppMetadata UP-TO-DATE +> Task :app:writeDebugSigningConfigVersions UP-TO-DATE +> Task :app:packageDebug +> Task :app:createDebugApkListingFileRedirect UP-TO-DATE +> Task :app:assembleDebug +> Task :app:bundleDebugClassesToCompileJar +> Task :app:preDebugAndroidTestBuild SKIPPED +> Task :app:processDebugAndroidTestManifest +> Task :app:generateDebugAndroidTestBuildConfig +> Task :app:generateDebugAndroidTestResources UP-TO-DATE +> Task :app:packageDebugAndroidTestResources UP-TO-DATE +> Task :app:processDebugAndroidTestNavigationResources +> Task :app:parseDebugAndroidTestLocalResources UP-TO-DATE +> Task :app:generateDebugAndroidTestRFile UP-TO-DATE + +> Task :app:compileDebugAndroidTestKotlin +w: file:///app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt:171:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt:176:48 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/ExtensionGridDeviceTest.kt:544:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/FrozenBundleWorkflowDeviceTest.kt:261:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/ReviewedTextDeviceTest.kt:629:60 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/TouchSearchDeviceTest.kt:83:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. + +> Task :app:javaPreCompileDebugAndroidTest UP-TO-DATE +> Task :app:compileDebugAndroidTestJavaWithJavac +> Task :app:generateDebugAndroidTestAssets UP-TO-DATE +> Task :app:mergeDebugAndroidTestAssets UP-TO-DATE +> Task :app:compressDebugAndroidTestAssets UP-TO-DATE +> Task :app:generateDebugAndroidTestGlobalSynthetics UP-TO-DATE +> Task :app:processDebugAndroidTestJavaRes UP-TO-DATE +> Task :app:mergeDebugAndroidTestJavaResource UP-TO-DATE +> Task :app:checkDebugAndroidTestDuplicateClasses UP-TO-DATE +> Task :app:desugarDebugAndroidTestFileDependencies UP-TO-DATE +> Task :app:mergeExtDexDebugAndroidTest UP-TO-DATE +> Task :app:mergeLibDexDebugAndroidTest UP-TO-DATE +> Task :app:checkDebugAndroidTestAarMetadata UP-TO-DATE +> Task :app:mapDebugAndroidTestSourceSetPaths UP-TO-DATE +> Task :app:compileDebugAndroidTestNavigationResources UP-TO-DATE +> Task :app:mergeDebugAndroidTestResources UP-TO-DATE +> Task :app:processDebugAndroidTestResources UP-TO-DATE +> Task :app:dexBuilderDebugAndroidTest +> Task :app:mergeProjectDexDebugAndroidTest +> Task :app:mergeDebugAndroidTestJniLibFolders UP-TO-DATE +> Task :app:mergeDebugAndroidTestNativeLibs NO-SOURCE +> Task :app:stripDebugAndroidTestDebugSymbols NO-SOURCE +> Task :app:validateSigningDebugAndroidTest UP-TO-DATE +> Task :app:writeDebugAndroidTestSigningConfigVersions UP-TO-DATE +> Task :app:packageDebugAndroidTest +> Task :app:createDebugAndroidTestApkListingFileRedirect UP-TO-DATE +> Task :app:assembleDebugAndroidTest +> Task :app:bundleDebugClassesToRuntimeJar +> Task :app:preDebugUnitTestBuild UP-TO-DATE +> Task :app:compileDebugUnitTestKotlin +> Task :app:javaPreCompileDebugUnitTest +> Task :app:compileDebugUnitTestJavaWithJavac NO-SOURCE +> Task :app:processDebugUnitTestJavaRes +> Task :app:testDebugUnitTest +> Task :app:generateDebugAndroidTestLintModel +> Task :app:extractProguardFiles +> Task :app:generateDebugLintReportModel +> Task :app:generateDebugUnitTestLintModel +> Task :app:lintAnalyzeDebug +> Task :app:lintAnalyzeDebugAndroidTest +> Task :app:lintAnalyzeDebugUnitTest + +> Task :app:lintReportDebug +Wrote HTML report to file:///app/build/reports/lint-results-debug.html + +> Task :app:lintDebug + +BUILD SUCCESSFUL in 2m 33s +84 actionable tasks: 37 executed, 47 up-to-date +Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.4.1/userguide/configuration_cache_enabling.html diff --git a/docs/validation/keyboard-toggle/checks/candidate-v2/debug-build.log b/docs/validation/keyboard-toggle/checks/candidate-v2/debug-build.log new file mode 100644 index 00000000..7a78364c --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/candidate-v2/debug-build.log @@ -0,0 +1,139 @@ +To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/9.4.1/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation. +Daemon will be stopped at the end of the build +> Task :app:preBuild UP-TO-DATE +> Task :app:preDebugBuild UP-TO-DATE +> Task :app:mergeDebugNativeDebugMetadata NO-SOURCE +> Task :app:generateDebugBuildConfig +> Task :app:generateDebugResources UP-TO-DATE +> Task :app:packageDebugResources UP-TO-DATE +> Task :app:processDebugNavigationResources +> Task :app:parseDebugLocalResources UP-TO-DATE +> Task :app:generateDebugRFile UP-TO-DATE + +> Task :app:compileDebugKotlin +w: file:///app/src/main/java/dev/tinycast/android/CalculatorActions.kt:13:46 Non-public primary constructor is exposed via the generated 'copy()' method of the 'data' class. + +The generated 'copy()' will change its visibility in future releases. + +To suppress the warning do one of the following: +- Annotate the data class with the '@ConsistentCopyVisibility' annotation. +- Use the '-Xconsistent-data-class-copy-visibility' compiler flag. +- Annotate the data class with the '@ExposedCopyVisibility' annotation + (Discouraged, but can be used to keep binary compatibility). + +To learn more, see the documentation of the '@ConsistentCopyVisibility' and '@ExposedCopyVisibility' annotations. + +This will become an error in language version 2.3. +w: file:///app/src/main/java/dev/tinycast/android/EmojiUi.kt:100:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteMenus.kt:325:43 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteMenus.kt:389:63 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteUi.kt:185:51 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteUi.kt:263:51 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/SearchKeyboardButton.kt:46:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/SettingsActivity.kt:50:205 'static field SOFT_INPUT_ADJUST_RESIZE: Int' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionFormPickerBackdrop.kt:25:128 'static field SOFT_INPUT_ADJUST_RESIZE: Int' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionGridImages.kt:30:118 Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type 'Any?'. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt:215:43 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt:229:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. + +> Task :app:javaPreCompileDebug UP-TO-DATE +> Task :app:compileDebugJavaWithJavac +> Task :app:generateDebugAssets UP-TO-DATE +> Task :app:mergeDebugAssets UP-TO-DATE +> Task :app:compressDebugAssets UP-TO-DATE +> Task :app:generateDebugGlobalSynthetics UP-TO-DATE +> Task :app:processDebugJavaRes UP-TO-DATE +> Task :app:mergeDebugJavaResource UP-TO-DATE +> Task :app:checkDebugDuplicateClasses UP-TO-DATE +> Task :app:desugarDebugFileDependencies UP-TO-DATE +> Task :app:mergeExtDexDebug UP-TO-DATE +> Task :app:mergeLibDexDebug UP-TO-DATE +> Task :app:checkDebugAarMetadata UP-TO-DATE +> Task :app:mapDebugSourceSetPaths UP-TO-DATE +> Task :app:compileDebugNavigationResources UP-TO-DATE +> Task :app:mergeDebugResources UP-TO-DATE +> Task :app:createDebugCompatibleScreenManifests UP-TO-DATE +> Task :app:extractDeepLinksDebug +> Task :app:processDebugMainManifest +> Task :app:processDebugManifest +> Task :app:processDebugManifestForPackage +> Task :app:processDebugResources +> Task :app:dexBuilderDebug +> Task :app:mergeProjectDexDebug +> Task :app:mergeDebugJniLibFolders UP-TO-DATE +> Task :app:mergeDebugNativeLibs UP-TO-DATE +> Task :app:stripDebugDebugSymbols UP-TO-DATE +> Task :app:validateSigningDebug UP-TO-DATE +> Task :app:writeDebugAppMetadata UP-TO-DATE +> Task :app:writeDebugSigningConfigVersions UP-TO-DATE +> Task :app:packageDebug +> Task :app:createDebugApkListingFileRedirect UP-TO-DATE +> Task :app:assembleDebug +> Task :app:bundleDebugClassesToCompileJar +> Task :app:preDebugAndroidTestBuild SKIPPED +> Task :app:processDebugAndroidTestManifest +> Task :app:generateDebugAndroidTestBuildConfig +> Task :app:generateDebugAndroidTestResources UP-TO-DATE +> Task :app:packageDebugAndroidTestResources UP-TO-DATE +> Task :app:processDebugAndroidTestNavigationResources +> Task :app:parseDebugAndroidTestLocalResources UP-TO-DATE +> Task :app:generateDebugAndroidTestRFile UP-TO-DATE + +> Task :app:compileDebugAndroidTestKotlin +w: file:///app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt:171:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt:176:48 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/ExtensionGridDeviceTest.kt:544:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/FrozenBundleWorkflowDeviceTest.kt:261:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/ReviewedTextDeviceTest.kt:629:60 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/TouchSearchDeviceTest.kt:83:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. + +> Task :app:javaPreCompileDebugAndroidTest UP-TO-DATE +> Task :app:compileDebugAndroidTestJavaWithJavac +> Task :app:generateDebugAndroidTestAssets UP-TO-DATE +> Task :app:mergeDebugAndroidTestAssets UP-TO-DATE +> Task :app:compressDebugAndroidTestAssets UP-TO-DATE +> Task :app:generateDebugAndroidTestGlobalSynthetics UP-TO-DATE +> Task :app:processDebugAndroidTestJavaRes UP-TO-DATE +> Task :app:mergeDebugAndroidTestJavaResource UP-TO-DATE +> Task :app:checkDebugAndroidTestDuplicateClasses UP-TO-DATE +> Task :app:desugarDebugAndroidTestFileDependencies UP-TO-DATE +> Task :app:mergeExtDexDebugAndroidTest UP-TO-DATE +> Task :app:mergeLibDexDebugAndroidTest UP-TO-DATE +> Task :app:checkDebugAndroidTestAarMetadata UP-TO-DATE +> Task :app:mapDebugAndroidTestSourceSetPaths UP-TO-DATE +> Task :app:compileDebugAndroidTestNavigationResources UP-TO-DATE +> Task :app:mergeDebugAndroidTestResources UP-TO-DATE +> Task :app:processDebugAndroidTestResources UP-TO-DATE +> Task :app:dexBuilderDebugAndroidTest +> Task :app:mergeProjectDexDebugAndroidTest +> Task :app:mergeDebugAndroidTestJniLibFolders UP-TO-DATE +> Task :app:mergeDebugAndroidTestNativeLibs NO-SOURCE +> Task :app:stripDebugAndroidTestDebugSymbols NO-SOURCE +> Task :app:validateSigningDebugAndroidTest UP-TO-DATE +> Task :app:writeDebugAndroidTestSigningConfigVersions UP-TO-DATE +> Task :app:packageDebugAndroidTest +> Task :app:createDebugAndroidTestApkListingFileRedirect UP-TO-DATE +> Task :app:assembleDebugAndroidTest +> Task :app:bundleDebugClassesToRuntimeJar +> Task :app:preDebugUnitTestBuild UP-TO-DATE +> Task :app:compileDebugUnitTestKotlin +> Task :app:javaPreCompileDebugUnitTest UP-TO-DATE +> Task :app:compileDebugUnitTestJavaWithJavac NO-SOURCE +> Task :app:processDebugUnitTestJavaRes UP-TO-DATE +> Task :app:testDebugUnitTest +> Task :app:generateDebugAndroidTestLintModel +> Task :app:extractProguardFiles UP-TO-DATE +> Task :app:generateDebugLintReportModel +> Task :app:generateDebugUnitTestLintModel +> Task :app:lintAnalyzeDebug +> Task :app:lintAnalyzeDebugAndroidTest +> Task :app:lintAnalyzeDebugUnitTest + +> Task :app:lintReportDebug +Wrote HTML report to file:///app/build/reports/lint-results-debug.html + +> Task :app:lintDebug + +BUILD SUCCESSFUL in 2m 19s +84 actionable tasks: 32 executed, 52 up-to-date +Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.4.1/userguide/configuration_cache_enabling.html diff --git a/docs/validation/keyboard-toggle/checks/candidate-v3/debug-build.log b/docs/validation/keyboard-toggle/checks/candidate-v3/debug-build.log new file mode 100644 index 00000000..02ccf682 --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/candidate-v3/debug-build.log @@ -0,0 +1,139 @@ +To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/9.4.1/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation. +Daemon will be stopped at the end of the build +> Task :app:preBuild UP-TO-DATE +> Task :app:preDebugBuild UP-TO-DATE +> Task :app:mergeDebugNativeDebugMetadata NO-SOURCE +> Task :app:generateDebugBuildConfig +> Task :app:generateDebugResources UP-TO-DATE +> Task :app:packageDebugResources UP-TO-DATE +> Task :app:processDebugNavigationResources +> Task :app:parseDebugLocalResources UP-TO-DATE +> Task :app:generateDebugRFile UP-TO-DATE + +> Task :app:compileDebugKotlin +w: file:///app/src/main/java/dev/tinycast/android/CalculatorActions.kt:13:46 Non-public primary constructor is exposed via the generated 'copy()' method of the 'data' class. + +The generated 'copy()' will change its visibility in future releases. + +To suppress the warning do one of the following: +- Annotate the data class with the '@ConsistentCopyVisibility' annotation. +- Use the '-Xconsistent-data-class-copy-visibility' compiler flag. +- Annotate the data class with the '@ExposedCopyVisibility' annotation + (Discouraged, but can be used to keep binary compatibility). + +To learn more, see the documentation of the '@ConsistentCopyVisibility' and '@ExposedCopyVisibility' annotations. + +This will become an error in language version 2.3. +w: file:///app/src/main/java/dev/tinycast/android/EmojiUi.kt:100:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteMenus.kt:325:43 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteMenus.kt:389:63 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteUi.kt:185:51 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteUi.kt:263:51 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/SearchKeyboardButton.kt:46:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/SettingsActivity.kt:50:205 'static field SOFT_INPUT_ADJUST_RESIZE: Int' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionFormPickerBackdrop.kt:25:128 'static field SOFT_INPUT_ADJUST_RESIZE: Int' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionGridImages.kt:30:118 Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type 'Any?'. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt:215:43 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt:229:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. + +> Task :app:javaPreCompileDebug UP-TO-DATE +> Task :app:compileDebugJavaWithJavac +> Task :app:generateDebugAssets UP-TO-DATE +> Task :app:mergeDebugAssets UP-TO-DATE +> Task :app:compressDebugAssets UP-TO-DATE +> Task :app:generateDebugGlobalSynthetics UP-TO-DATE +> Task :app:processDebugJavaRes UP-TO-DATE +> Task :app:mergeDebugJavaResource UP-TO-DATE +> Task :app:checkDebugDuplicateClasses UP-TO-DATE +> Task :app:desugarDebugFileDependencies UP-TO-DATE +> Task :app:mergeExtDexDebug UP-TO-DATE +> Task :app:mergeLibDexDebug UP-TO-DATE +> Task :app:checkDebugAarMetadata UP-TO-DATE +> Task :app:mapDebugSourceSetPaths UP-TO-DATE +> Task :app:compileDebugNavigationResources UP-TO-DATE +> Task :app:mergeDebugResources UP-TO-DATE +> Task :app:createDebugCompatibleScreenManifests UP-TO-DATE +> Task :app:extractDeepLinksDebug +> Task :app:processDebugMainManifest +> Task :app:processDebugManifest +> Task :app:processDebugManifestForPackage +> Task :app:processDebugResources +> Task :app:dexBuilderDebug +> Task :app:mergeProjectDexDebug +> Task :app:mergeDebugJniLibFolders UP-TO-DATE +> Task :app:mergeDebugNativeLibs UP-TO-DATE +> Task :app:stripDebugDebugSymbols UP-TO-DATE +> Task :app:validateSigningDebug UP-TO-DATE +> Task :app:writeDebugAppMetadata UP-TO-DATE +> Task :app:writeDebugSigningConfigVersions UP-TO-DATE +> Task :app:packageDebug +> Task :app:createDebugApkListingFileRedirect UP-TO-DATE +> Task :app:assembleDebug +> Task :app:bundleDebugClassesToCompileJar +> Task :app:preDebugAndroidTestBuild SKIPPED +> Task :app:processDebugAndroidTestManifest +> Task :app:generateDebugAndroidTestBuildConfig +> Task :app:generateDebugAndroidTestResources UP-TO-DATE +> Task :app:packageDebugAndroidTestResources UP-TO-DATE +> Task :app:processDebugAndroidTestNavigationResources +> Task :app:parseDebugAndroidTestLocalResources UP-TO-DATE +> Task :app:generateDebugAndroidTestRFile UP-TO-DATE + +> Task :app:compileDebugAndroidTestKotlin +w: file:///app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt:171:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt:176:48 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/ExtensionGridDeviceTest.kt:544:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/FrozenBundleWorkflowDeviceTest.kt:261:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/ReviewedTextDeviceTest.kt:629:60 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/TouchSearchDeviceTest.kt:83:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. + +> Task :app:javaPreCompileDebugAndroidTest UP-TO-DATE +> Task :app:compileDebugAndroidTestJavaWithJavac +> Task :app:generateDebugAndroidTestAssets UP-TO-DATE +> Task :app:mergeDebugAndroidTestAssets UP-TO-DATE +> Task :app:compressDebugAndroidTestAssets UP-TO-DATE +> Task :app:generateDebugAndroidTestGlobalSynthetics UP-TO-DATE +> Task :app:processDebugAndroidTestJavaRes UP-TO-DATE +> Task :app:mergeDebugAndroidTestJavaResource UP-TO-DATE +> Task :app:checkDebugAndroidTestDuplicateClasses UP-TO-DATE +> Task :app:desugarDebugAndroidTestFileDependencies UP-TO-DATE +> Task :app:mergeExtDexDebugAndroidTest UP-TO-DATE +> Task :app:mergeLibDexDebugAndroidTest UP-TO-DATE +> Task :app:checkDebugAndroidTestAarMetadata UP-TO-DATE +> Task :app:mapDebugAndroidTestSourceSetPaths UP-TO-DATE +> Task :app:compileDebugAndroidTestNavigationResources UP-TO-DATE +> Task :app:mergeDebugAndroidTestResources UP-TO-DATE +> Task :app:processDebugAndroidTestResources UP-TO-DATE +> Task :app:dexBuilderDebugAndroidTest +> Task :app:mergeProjectDexDebugAndroidTest +> Task :app:mergeDebugAndroidTestJniLibFolders UP-TO-DATE +> Task :app:mergeDebugAndroidTestNativeLibs NO-SOURCE +> Task :app:stripDebugAndroidTestDebugSymbols NO-SOURCE +> Task :app:validateSigningDebugAndroidTest UP-TO-DATE +> Task :app:writeDebugAndroidTestSigningConfigVersions UP-TO-DATE +> Task :app:packageDebugAndroidTest +> Task :app:createDebugAndroidTestApkListingFileRedirect UP-TO-DATE +> Task :app:assembleDebugAndroidTest +> Task :app:bundleDebugClassesToRuntimeJar +> Task :app:preDebugUnitTestBuild UP-TO-DATE +> Task :app:compileDebugUnitTestKotlin +> Task :app:javaPreCompileDebugUnitTest UP-TO-DATE +> Task :app:compileDebugUnitTestJavaWithJavac NO-SOURCE +> Task :app:processDebugUnitTestJavaRes UP-TO-DATE +> Task :app:testDebugUnitTest +> Task :app:generateDebugAndroidTestLintModel +> Task :app:extractProguardFiles UP-TO-DATE +> Task :app:generateDebugLintReportModel +> Task :app:generateDebugUnitTestLintModel +> Task :app:lintAnalyzeDebug +> Task :app:lintAnalyzeDebugAndroidTest +> Task :app:lintAnalyzeDebugUnitTest + +> Task :app:lintReportDebug +Wrote HTML report to file:///app/build/reports/lint-results-debug.html + +> Task :app:lintDebug + +BUILD SUCCESSFUL in 2m 17s +84 actionable tasks: 32 executed, 52 up-to-date +Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.4.1/userguide/configuration_cache_enabling.html diff --git a/docs/validation/keyboard-toggle/checks/final-harness/debug-build.log b/docs/validation/keyboard-toggle/checks/final-harness/debug-build.log new file mode 100644 index 00000000..928e266e --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/final-harness/debug-build.log @@ -0,0 +1,104 @@ +To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/9.4.1/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation. +Daemon will be stopped at the end of the build +> Task :app:preBuild UP-TO-DATE +> Task :app:preDebugBuild UP-TO-DATE +> Task :app:mergeDebugNativeDebugMetadata NO-SOURCE +> Task :app:generateDebugBuildConfig UP-TO-DATE +> Task :app:generateDebugResources UP-TO-DATE +> Task :app:packageDebugResources UP-TO-DATE +> Task :app:processDebugNavigationResources UP-TO-DATE +> Task :app:parseDebugLocalResources UP-TO-DATE +> Task :app:generateDebugRFile UP-TO-DATE +> Task :app:compileDebugKotlin UP-TO-DATE +> Task :app:javaPreCompileDebug UP-TO-DATE +> Task :app:compileDebugJavaWithJavac UP-TO-DATE +> Task :app:generateDebugAssets UP-TO-DATE +> Task :app:mergeDebugAssets UP-TO-DATE +> Task :app:compressDebugAssets UP-TO-DATE +> Task :app:generateDebugGlobalSynthetics UP-TO-DATE +> Task :app:processDebugJavaRes UP-TO-DATE +> Task :app:mergeDebugJavaResource UP-TO-DATE +> Task :app:checkDebugDuplicateClasses UP-TO-DATE +> Task :app:desugarDebugFileDependencies UP-TO-DATE +> Task :app:mergeExtDexDebug UP-TO-DATE +> Task :app:mergeLibDexDebug UP-TO-DATE +> Task :app:checkDebugAarMetadata UP-TO-DATE +> Task :app:mapDebugSourceSetPaths UP-TO-DATE +> Task :app:compileDebugNavigationResources UP-TO-DATE +> Task :app:mergeDebugResources UP-TO-DATE +> Task :app:createDebugCompatibleScreenManifests UP-TO-DATE +> Task :app:extractDeepLinksDebug UP-TO-DATE +> Task :app:processDebugMainManifest UP-TO-DATE +> Task :app:processDebugManifest UP-TO-DATE +> Task :app:processDebugManifestForPackage UP-TO-DATE +> Task :app:processDebugResources UP-TO-DATE +> Task :app:dexBuilderDebug UP-TO-DATE +> Task :app:mergeProjectDexDebug UP-TO-DATE +> Task :app:mergeDebugJniLibFolders UP-TO-DATE +> Task :app:mergeDebugNativeLibs UP-TO-DATE +> Task :app:stripDebugDebugSymbols UP-TO-DATE +> Task :app:validateSigningDebug UP-TO-DATE +> Task :app:writeDebugAppMetadata UP-TO-DATE +> Task :app:writeDebugSigningConfigVersions UP-TO-DATE +> Task :app:packageDebug UP-TO-DATE +> Task :app:createDebugApkListingFileRedirect UP-TO-DATE +> Task :app:assembleDebug UP-TO-DATE +> Task :app:bundleDebugClassesToCompileJar UP-TO-DATE +> Task :app:preDebugAndroidTestBuild SKIPPED +> Task :app:processDebugAndroidTestManifest UP-TO-DATE +> Task :app:generateDebugAndroidTestBuildConfig UP-TO-DATE +> Task :app:generateDebugAndroidTestResources UP-TO-DATE +> Task :app:packageDebugAndroidTestResources UP-TO-DATE +> Task :app:processDebugAndroidTestNavigationResources UP-TO-DATE +> Task :app:parseDebugAndroidTestLocalResources UP-TO-DATE +> Task :app:generateDebugAndroidTestRFile UP-TO-DATE + +> Task :app:compileDebugAndroidTestKotlin +w: file:///app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt:171:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt:176:48 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/ExtensionGridDeviceTest.kt:544:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/FrozenBundleWorkflowDeviceTest.kt:261:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/ReviewedTextDeviceTest.kt:629:60 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/TouchSearchDeviceTest.kt:83:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. + +> Task :app:javaPreCompileDebugAndroidTest UP-TO-DATE +> Task :app:compileDebugAndroidTestJavaWithJavac UP-TO-DATE +> Task :app:generateDebugAndroidTestAssets UP-TO-DATE +> Task :app:mergeDebugAndroidTestAssets UP-TO-DATE +> Task :app:compressDebugAndroidTestAssets UP-TO-DATE +> Task :app:generateDebugAndroidTestGlobalSynthetics UP-TO-DATE +> Task :app:processDebugAndroidTestJavaRes UP-TO-DATE +> Task :app:mergeDebugAndroidTestJavaResource UP-TO-DATE +> Task :app:checkDebugAndroidTestDuplicateClasses UP-TO-DATE +> Task :app:desugarDebugAndroidTestFileDependencies UP-TO-DATE +> Task :app:mergeExtDexDebugAndroidTest UP-TO-DATE +> Task :app:mergeLibDexDebugAndroidTest UP-TO-DATE +> Task :app:checkDebugAndroidTestAarMetadata UP-TO-DATE +> Task :app:mapDebugAndroidTestSourceSetPaths UP-TO-DATE +> Task :app:compileDebugAndroidTestNavigationResources UP-TO-DATE +> Task :app:mergeDebugAndroidTestResources UP-TO-DATE +> Task :app:processDebugAndroidTestResources UP-TO-DATE +> Task :app:dexBuilderDebugAndroidTest +> Task :app:mergeProjectDexDebugAndroidTest +> Task :app:mergeDebugAndroidTestJniLibFolders UP-TO-DATE +> Task :app:mergeDebugAndroidTestNativeLibs NO-SOURCE +> Task :app:stripDebugAndroidTestDebugSymbols NO-SOURCE +> Task :app:validateSigningDebugAndroidTest UP-TO-DATE +> Task :app:writeDebugAndroidTestSigningConfigVersions UP-TO-DATE +> Task :app:packageDebugAndroidTest +> Task :app:createDebugAndroidTestApkListingFileRedirect UP-TO-DATE +> Task :app:assembleDebugAndroidTest +> Task :app:generateDebugAndroidTestLintModel +> Task :app:extractProguardFiles UP-TO-DATE +> Task :app:generateDebugLintReportModel UP-TO-DATE +> Task :app:preDebugUnitTestBuild UP-TO-DATE +> Task :app:generateDebugUnitTestLintModel UP-TO-DATE +> Task :app:lintAnalyzeDebug UP-TO-DATE +> Task :app:lintAnalyzeDebugAndroidTest +> Task :app:lintAnalyzeDebugUnitTest UP-TO-DATE +> Task :app:lintReportDebug UP-TO-DATE +> Task :app:lintDebug + +BUILD SUCCESSFUL in 1m 9s +79 actionable tasks: 7 executed, 72 up-to-date +Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.4.1/userguide/configuration_cache_enabling.html diff --git a/docs/validation/keyboard-toggle/checks/host-final-harness.log b/docs/validation/keyboard-toggle/checks/host-final-harness.log new file mode 100644 index 00000000..95ede2fc --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/host-final-harness.log @@ -0,0 +1,218 @@ +To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/9.4.1/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation. +Daemon will be stopped at the end of the build +> Task :app:preBuild UP-TO-DATE +> Task :app:preDebugBuild UP-TO-DATE +> Task :app:mergeDebugNativeDebugMetadata NO-SOURCE +> Task :app:generateDebugBuildConfig UP-TO-DATE +> Task :app:generateDebugResources UP-TO-DATE +> Task :app:packageDebugResources UP-TO-DATE +> Task :app:processDebugNavigationResources UP-TO-DATE +> Task :app:parseDebugLocalResources UP-TO-DATE +> Task :app:generateDebugRFile UP-TO-DATE +> Task :app:compileDebugKotlin UP-TO-DATE +> Task :app:javaPreCompileDebug UP-TO-DATE +> Task :app:compileDebugJavaWithJavac UP-TO-DATE +> Task :app:generateDebugAssets UP-TO-DATE +> Task :app:mergeDebugAssets UP-TO-DATE +> Task :app:compressDebugAssets UP-TO-DATE +> Task :app:generateDebugGlobalSynthetics UP-TO-DATE +> Task :app:processDebugJavaRes UP-TO-DATE +> Task :app:mergeDebugJavaResource UP-TO-DATE +> Task :app:checkDebugDuplicateClasses UP-TO-DATE +> Task :app:desugarDebugFileDependencies UP-TO-DATE +> Task :app:mergeExtDexDebug UP-TO-DATE +> Task :app:mergeLibDexDebug UP-TO-DATE +> Task :app:checkDebugAarMetadata UP-TO-DATE +> Task :app:mapDebugSourceSetPaths UP-TO-DATE +> Task :app:compileDebugNavigationResources UP-TO-DATE +> Task :app:mergeDebugResources UP-TO-DATE +> Task :app:createDebugCompatibleScreenManifests UP-TO-DATE +> Task :app:extractDeepLinksDebug UP-TO-DATE +> Task :app:processDebugMainManifest UP-TO-DATE +> Task :app:processDebugManifest UP-TO-DATE +> Task :app:processDebugManifestForPackage UP-TO-DATE +> Task :app:processDebugResources UP-TO-DATE +> Task :app:dexBuilderDebug UP-TO-DATE +> Task :app:mergeProjectDexDebug UP-TO-DATE +> Task :app:mergeDebugJniLibFolders UP-TO-DATE +> Task :app:mergeDebugNativeLibs UP-TO-DATE +> Task :app:stripDebugDebugSymbols UP-TO-DATE +> Task :app:validateSigningDebug UP-TO-DATE +> Task :app:writeDebugAppMetadata UP-TO-DATE +> Task :app:writeDebugSigningConfigVersions UP-TO-DATE +> Task :app:packageDebug UP-TO-DATE +> Task :app:createDebugApkListingFileRedirect UP-TO-DATE +> Task :app:assembleDebug UP-TO-DATE +> Task :app:bundleDebugClassesToCompileJar UP-TO-DATE +> Task :app:preDebugAndroidTestBuild SKIPPED +> Task :app:processDebugAndroidTestManifest UP-TO-DATE +> Task :app:generateDebugAndroidTestBuildConfig UP-TO-DATE +> Task :app:generateDebugAndroidTestResources UP-TO-DATE +> Task :app:packageDebugAndroidTestResources UP-TO-DATE +> Task :app:processDebugAndroidTestNavigationResources UP-TO-DATE +> Task :app:parseDebugAndroidTestLocalResources UP-TO-DATE +> Task :app:generateDebugAndroidTestRFile UP-TO-DATE + +> Task :app:compileDebugAndroidTestKotlin +w: file:///app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt:171:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt:176:48 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/ExtensionGridDeviceTest.kt:544:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/FrozenBundleWorkflowDeviceTest.kt:261:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/ReviewedTextDeviceTest.kt:629:60 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/TouchSearchDeviceTest.kt:83:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. + +> Task :app:javaPreCompileDebugAndroidTest UP-TO-DATE +> Task :app:compileDebugAndroidTestJavaWithJavac UP-TO-DATE +> Task :app:generateDebugAndroidTestAssets UP-TO-DATE +> Task :app:mergeDebugAndroidTestAssets UP-TO-DATE +> Task :app:compressDebugAndroidTestAssets UP-TO-DATE +> Task :app:generateDebugAndroidTestGlobalSynthetics UP-TO-DATE +> Task :app:processDebugAndroidTestJavaRes UP-TO-DATE +> Task :app:mergeDebugAndroidTestJavaResource UP-TO-DATE +> Task :app:checkDebugAndroidTestDuplicateClasses UP-TO-DATE +> Task :app:desugarDebugAndroidTestFileDependencies UP-TO-DATE +> Task :app:mergeExtDexDebugAndroidTest UP-TO-DATE +> Task :app:mergeLibDexDebugAndroidTest UP-TO-DATE +> Task :app:checkDebugAndroidTestAarMetadata UP-TO-DATE +> Task :app:mapDebugAndroidTestSourceSetPaths UP-TO-DATE +> Task :app:compileDebugAndroidTestNavigationResources UP-TO-DATE +> Task :app:mergeDebugAndroidTestResources UP-TO-DATE +> Task :app:processDebugAndroidTestResources UP-TO-DATE +> Task :app:dexBuilderDebugAndroidTest +> Task :app:mergeProjectDexDebugAndroidTest +> Task :app:mergeDebugAndroidTestJniLibFolders UP-TO-DATE +> Task :app:mergeDebugAndroidTestNativeLibs NO-SOURCE +> Task :app:stripDebugAndroidTestDebugSymbols NO-SOURCE +> Task :app:validateSigningDebugAndroidTest UP-TO-DATE +> Task :app:writeDebugAndroidTestSigningConfigVersions UP-TO-DATE +> Task :app:packageDebugAndroidTest +> Task :app:createDebugAndroidTestApkListingFileRedirect UP-TO-DATE +> Task :app:assembleDebugAndroidTest +> Task :app:generateDebugAndroidTestLintModel +> Task :app:extractProguardFiles UP-TO-DATE +> Task :app:generateDebugLintReportModel UP-TO-DATE +> Task :app:preDebugUnitTestBuild UP-TO-DATE +> Task :app:generateDebugUnitTestLintModel UP-TO-DATE +> Task :app:lintAnalyzeDebug UP-TO-DATE +> Task :app:lintAnalyzeDebugAndroidTest +> Task :app:lintAnalyzeDebugUnitTest UP-TO-DATE +> Task :app:lintReportDebug UP-TO-DATE +> Task :app:lintDebug + +BUILD SUCCESSFUL in 1m 9s +79 actionable tasks: 7 executed, 72 up-to-date +Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.4.1/userguide/configuration_cache_enabling.html +To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/9.4.1/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation. +Daemon will be stopped at the end of the build +> Task :app:preBuild UP-TO-DATE +> Task :app:preBenchmarkBuild UP-TO-DATE +> Task :app:mergeBenchmarkJniLibFolders UP-TO-DATE +> Task :app:mergeBenchmarkNativeLibs UP-TO-DATE +> Task :app:stripBenchmarkDebugSymbols UP-TO-DATE +> Task :app:extractBenchmarkNativeSymbolTables UP-TO-DATE +> Task :app:mergeBenchmarkNativeDebugMetadata NO-SOURCE +> Task :app:mergeBenchmarkArtProfile UP-TO-DATE +> Task :app:desugarBenchmarkFileDependencies UP-TO-DATE +> Task :app:generateBenchmarkBuildConfig UP-TO-DATE +> Task :app:generateBenchmarkResources UP-TO-DATE +> Task :app:packageBenchmarkResources UP-TO-DATE +> Task :app:processBenchmarkNavigationResources UP-TO-DATE +> Task :app:parseBenchmarkLocalResources UP-TO-DATE +> Task :app:generateBenchmarkRFile UP-TO-DATE +> Task :app:compileBenchmarkKotlin UP-TO-DATE +> Task :app:javaPreCompileBenchmark UP-TO-DATE +> Task :app:compileBenchmarkJavaWithJavac UP-TO-DATE +> Task :app:checkBenchmarkAarMetadata UP-TO-DATE +> Task :app:mapBenchmarkSourceSetPaths UP-TO-DATE +> Task :app:compileBenchmarkNavigationResources UP-TO-DATE +> Task :app:mergeBenchmarkResources UP-TO-DATE +> Task :app:createBenchmarkCompatibleScreenManifests UP-TO-DATE +> Task :app:extractDeepLinksBenchmark UP-TO-DATE +> Task :app:processBenchmarkMainManifest UP-TO-DATE +> Task :app:processBenchmarkManifest UP-TO-DATE +> Task :app:processBenchmarkManifestForPackage UP-TO-DATE +> Task :app:processBenchmarkResources UP-TO-DATE +> Task :app:dexBuilderBenchmark UP-TO-DATE +> Task :app:mergeBenchmarkGlobalSynthetics UP-TO-DATE +> Task :app:checkBenchmarkDuplicateClasses UP-TO-DATE +> Task :app:mergeBenchmarkStartupProfile UP-TO-DATE +> Task :app:mergeExtDexBenchmark UP-TO-DATE +> Task :app:mergeDexBenchmark UP-TO-DATE +> Task :app:compileBenchmarkArtProfile UP-TO-DATE +> Task :app:generateBenchmarkAssets UP-TO-DATE +> Task :app:mergeBenchmarkAssets UP-TO-DATE +> Task :app:compressBenchmarkAssets UP-TO-DATE +> Task :app:extractBenchmarkVersionControlInfo UP-TO-DATE +> Task :app:extractProguardFiles UP-TO-DATE +> Task :app:generateBenchmarkLintVitalReportModel UP-TO-DATE +> Task :app:lintVitalAnalyzeBenchmark UP-TO-DATE +> Task :app:lintVitalReportBenchmark SKIPPED +> Task :app:lintVitalBenchmark SKIPPED +> Task :app:processBenchmarkJavaRes UP-TO-DATE +> Task :app:mergeBenchmarkJavaResource UP-TO-DATE +> Task :app:optimizeBenchmarkResources UP-TO-DATE +> Task :app:collectBenchmarkDependencies UP-TO-DATE +> Task :app:sdkBenchmarkDependencyData UP-TO-DATE +> Task :app:validateSigningBenchmark UP-TO-DATE +> Task :app:writeBenchmarkAppMetadata UP-TO-DATE +> Task :app:writeBenchmarkSigningConfigVersions UP-TO-DATE +> Task :app:packageBenchmark UP-TO-DATE +> Task :app:createBenchmarkApkListingFileRedirect UP-TO-DATE +> Task :app:assembleBenchmark UP-TO-DATE +> Task :app:bundleBenchmarkClassesToCompileJar UP-TO-DATE +> Task :app:preBenchmarkAndroidTestBuild SKIPPED +> Task :app:processBenchmarkAndroidTestManifest UP-TO-DATE +> Task :app:generateBenchmarkAndroidTestBuildConfig UP-TO-DATE +> Task :app:generateBenchmarkAndroidTestResources UP-TO-DATE +> Task :app:packageBenchmarkAndroidTestResources UP-TO-DATE +> Task :app:processBenchmarkAndroidTestNavigationResources UP-TO-DATE +> Task :app:parseBenchmarkAndroidTestLocalResources UP-TO-DATE +> Task :app:generateBenchmarkAndroidTestRFile UP-TO-DATE + +> Task :app:compileBenchmarkAndroidTestKotlin +w: file:///app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt:171:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt:176:48 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/ExtensionGridDeviceTest.kt:544:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/FrozenBundleWorkflowDeviceTest.kt:261:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/ReviewedTextDeviceTest.kt:629:60 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/TouchSearchDeviceTest.kt:83:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. + +> Task :app:javaPreCompileBenchmarkAndroidTest UP-TO-DATE +> Task :app:compileBenchmarkAndroidTestJavaWithJavac UP-TO-DATE +> Task :app:generateBenchmarkAndroidTestAssets UP-TO-DATE +> Task :app:mergeBenchmarkAndroidTestAssets UP-TO-DATE +> Task :app:compressBenchmarkAndroidTestAssets UP-TO-DATE +> Task :app:desugarBenchmarkAndroidTestFileDependencies UP-TO-DATE +> Task :app:checkBenchmarkAndroidTestAarMetadata UP-TO-DATE +> Task :app:mapBenchmarkAndroidTestSourceSetPaths UP-TO-DATE +> Task :app:compileBenchmarkAndroidTestNavigationResources UP-TO-DATE +> Task :app:mergeBenchmarkAndroidTestResources UP-TO-DATE +> Task :app:processBenchmarkAndroidTestResources UP-TO-DATE +> Task :app:dexBuilderBenchmarkAndroidTest +> Task :app:mergeBenchmarkAndroidTestGlobalSynthetics UP-TO-DATE +> Task :app:processBenchmarkAndroidTestJavaRes UP-TO-DATE +> Task :app:mergeBenchmarkAndroidTestJavaResource UP-TO-DATE +> Task :app:checkBenchmarkAndroidTestDuplicateClasses UP-TO-DATE +> Task :app:mergeExtDexBenchmarkAndroidTest UP-TO-DATE +> Task :app:mergeDexBenchmarkAndroidTest +> Task :app:mergeBenchmarkAndroidTestJniLibFolders UP-TO-DATE +> Task :app:mergeBenchmarkAndroidTestNativeLibs NO-SOURCE +> Task :app:stripBenchmarkAndroidTestDebugSymbols NO-SOURCE +> Task :app:validateSigningBenchmarkAndroidTest UP-TO-DATE +> Task :app:writeBenchmarkAndroidTestSigningConfigVersions UP-TO-DATE +> Task :app:packageBenchmarkAndroidTest +> Task :app:createBenchmarkAndroidTestApkListingFileRedirect UP-TO-DATE +> Task :app:assembleBenchmarkAndroidTest +> Task :app:generateBenchmarkAndroidTestLintModel +> Task :app:generateBenchmarkLintReportModel UP-TO-DATE +> Task :app:preBenchmarkUnitTestBuild UP-TO-DATE +> Task :app:generateBenchmarkUnitTestLintModel UP-TO-DATE +> Task :app:lintAnalyzeBenchmark UP-TO-DATE +> Task :app:lintAnalyzeBenchmarkAndroidTest +> Task :app:lintAnalyzeBenchmarkUnitTest UP-TO-DATE +> Task :app:lintReportBenchmark UP-TO-DATE +> Task :app:lintBenchmark + +BUILD SUCCESSFUL in 1m 2s +87 actionable tasks: 7 executed, 80 up-to-date +Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.4.1/userguide/configuration_cache_enabling.html diff --git a/docs/validation/keyboard-toggle/checks/host-v1.log b/docs/validation/keyboard-toggle/checks/host-v1.log new file mode 100644 index 00000000..86c99f72 --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/host-v1.log @@ -0,0 +1,285 @@ +To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/9.4.1/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation. +Daemon will be stopped at the end of the build +> Task :app:preBuild UP-TO-DATE +> Task :app:preDebugBuild UP-TO-DATE +> Task :app:mergeDebugNativeDebugMetadata NO-SOURCE +> Task :app:generateDebugBuildConfig +> Task :app:generateDebugResources UP-TO-DATE +> Task :app:packageDebugResources UP-TO-DATE +> Task :app:processDebugNavigationResources +> Task :app:parseDebugLocalResources UP-TO-DATE +> Task :app:generateDebugRFile UP-TO-DATE + +> Task :app:compileDebugKotlin +w: file:///app/src/main/java/dev/tinycast/android/CalculatorActions.kt:13:46 Non-public primary constructor is exposed via the generated 'copy()' method of the 'data' class. + +The generated 'copy()' will change its visibility in future releases. + +To suppress the warning do one of the following: +- Annotate the data class with the '@ConsistentCopyVisibility' annotation. +- Use the '-Xconsistent-data-class-copy-visibility' compiler flag. +- Annotate the data class with the '@ExposedCopyVisibility' annotation + (Discouraged, but can be used to keep binary compatibility). + +To learn more, see the documentation of the '@ConsistentCopyVisibility' and '@ExposedCopyVisibility' annotations. + +This will become an error in language version 2.3. +w: file:///app/src/main/java/dev/tinycast/android/EmojiUi.kt:100:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteMenus.kt:325:43 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteMenus.kt:389:63 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteUi.kt:185:51 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteUi.kt:263:51 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/SearchKeyboardButton.kt:43:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/SettingsActivity.kt:50:205 'static field SOFT_INPUT_ADJUST_RESIZE: Int' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionFormPickerBackdrop.kt:25:128 'static field SOFT_INPUT_ADJUST_RESIZE: Int' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionGridImages.kt:30:118 Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type 'Any?'. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt:215:43 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt:229:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. + +> Task :app:javaPreCompileDebug UP-TO-DATE +> Task :app:compileDebugJavaWithJavac +> Task :app:generateDebugAssets UP-TO-DATE +> Task :app:mergeDebugAssets UP-TO-DATE +> Task :app:compressDebugAssets UP-TO-DATE +> Task :app:generateDebugGlobalSynthetics UP-TO-DATE +> Task :app:processDebugJavaRes +> Task :app:mergeDebugJavaResource +> Task :app:checkDebugDuplicateClasses UP-TO-DATE +> Task :app:desugarDebugFileDependencies UP-TO-DATE +> Task :app:mergeExtDexDebug UP-TO-DATE +> Task :app:mergeLibDexDebug UP-TO-DATE +> Task :app:checkDebugAarMetadata UP-TO-DATE +> Task :app:mapDebugSourceSetPaths UP-TO-DATE +> Task :app:compileDebugNavigationResources UP-TO-DATE +> Task :app:mergeDebugResources UP-TO-DATE +> Task :app:createDebugCompatibleScreenManifests UP-TO-DATE +> Task :app:extractDeepLinksDebug +> Task :app:processDebugMainManifest +> Task :app:processDebugManifest +> Task :app:processDebugManifestForPackage +> Task :app:processDebugResources +> Task :app:dexBuilderDebug +> Task :app:mergeProjectDexDebug +> Task :app:mergeDebugJniLibFolders UP-TO-DATE +> Task :app:mergeDebugNativeLibs UP-TO-DATE +> Task :app:stripDebugDebugSymbols UP-TO-DATE +> Task :app:validateSigningDebug UP-TO-DATE +> Task :app:writeDebugAppMetadata UP-TO-DATE +> Task :app:writeDebugSigningConfigVersions UP-TO-DATE +> Task :app:packageDebug +> Task :app:createDebugApkListingFileRedirect UP-TO-DATE +> Task :app:assembleDebug +> Task :app:bundleDebugClassesToCompileJar +> Task :app:preDebugAndroidTestBuild SKIPPED +> Task :app:processDebugAndroidTestManifest +> Task :app:generateDebugAndroidTestBuildConfig +> Task :app:generateDebugAndroidTestResources UP-TO-DATE +> Task :app:packageDebugAndroidTestResources UP-TO-DATE +> Task :app:processDebugAndroidTestNavigationResources +> Task :app:parseDebugAndroidTestLocalResources UP-TO-DATE +> Task :app:generateDebugAndroidTestRFile UP-TO-DATE + +> Task :app:compileDebugAndroidTestKotlin +w: file:///app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt:171:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt:176:48 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/ExtensionGridDeviceTest.kt:544:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/FrozenBundleWorkflowDeviceTest.kt:261:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/ReviewedTextDeviceTest.kt:629:60 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/TouchSearchDeviceTest.kt:83:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. + +> Task :app:javaPreCompileDebugAndroidTest UP-TO-DATE +> Task :app:compileDebugAndroidTestJavaWithJavac +> Task :app:generateDebugAndroidTestAssets UP-TO-DATE +> Task :app:mergeDebugAndroidTestAssets UP-TO-DATE +> Task :app:compressDebugAndroidTestAssets UP-TO-DATE +> Task :app:generateDebugAndroidTestGlobalSynthetics UP-TO-DATE +> Task :app:processDebugAndroidTestJavaRes UP-TO-DATE +> Task :app:mergeDebugAndroidTestJavaResource UP-TO-DATE +> Task :app:checkDebugAndroidTestDuplicateClasses UP-TO-DATE +> Task :app:desugarDebugAndroidTestFileDependencies UP-TO-DATE +> Task :app:mergeExtDexDebugAndroidTest UP-TO-DATE +> Task :app:mergeLibDexDebugAndroidTest UP-TO-DATE +> Task :app:checkDebugAndroidTestAarMetadata UP-TO-DATE +> Task :app:mapDebugAndroidTestSourceSetPaths UP-TO-DATE +> Task :app:compileDebugAndroidTestNavigationResources UP-TO-DATE +> Task :app:mergeDebugAndroidTestResources UP-TO-DATE +> Task :app:processDebugAndroidTestResources UP-TO-DATE +> Task :app:dexBuilderDebugAndroidTest +> Task :app:mergeProjectDexDebugAndroidTest +> Task :app:mergeDebugAndroidTestJniLibFolders UP-TO-DATE +> Task :app:mergeDebugAndroidTestNativeLibs NO-SOURCE +> Task :app:stripDebugAndroidTestDebugSymbols NO-SOURCE +> Task :app:validateSigningDebugAndroidTest UP-TO-DATE +> Task :app:writeDebugAndroidTestSigningConfigVersions UP-TO-DATE +> Task :app:packageDebugAndroidTest +> Task :app:createDebugAndroidTestApkListingFileRedirect UP-TO-DATE +> Task :app:assembleDebugAndroidTest +> Task :app:bundleDebugClassesToRuntimeJar +> Task :app:preDebugUnitTestBuild UP-TO-DATE +> Task :app:compileDebugUnitTestKotlin +> Task :app:javaPreCompileDebugUnitTest +> Task :app:compileDebugUnitTestJavaWithJavac NO-SOURCE +> Task :app:processDebugUnitTestJavaRes +> Task :app:testDebugUnitTest +> Task :app:generateDebugAndroidTestLintModel +> Task :app:extractProguardFiles +> Task :app:generateDebugLintReportModel +> Task :app:generateDebugUnitTestLintModel +> Task :app:lintAnalyzeDebug +> Task :app:lintAnalyzeDebugAndroidTest +> Task :app:lintAnalyzeDebugUnitTest + +> Task :app:lintReportDebug +Wrote HTML report to file:///app/build/reports/lint-results-debug.html + +> Task :app:lintDebug + +BUILD SUCCESSFUL in 2m 33s +84 actionable tasks: 37 executed, 47 up-to-date +Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.4.1/userguide/configuration_cache_enabling.html +To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/9.4.1/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation. +Daemon will be stopped at the end of the build +> Task :app:preBuild UP-TO-DATE +> Task :app:preBenchmarkBuild UP-TO-DATE +> Task :app:mergeBenchmarkJniLibFolders +> Task :app:mergeBenchmarkNativeLibs + +> Task :app:stripBenchmarkDebugSymbols +Unable to strip the following libraries, packaging them as they are: libandroidx.graphics.path.so. Run with --info option to learn more. + +> Task :app:extractBenchmarkNativeSymbolTables +> Task :app:mergeBenchmarkNativeDebugMetadata NO-SOURCE +> Task :app:mergeBenchmarkArtProfile +> Task :app:desugarBenchmarkFileDependencies +> Task :app:generateBenchmarkBuildConfig +> Task :app:generateBenchmarkResources +> Task :app:packageBenchmarkResources +> Task :app:processBenchmarkNavigationResources +> Task :app:parseBenchmarkLocalResources +> Task :app:generateBenchmarkRFile + +> Task :app:compileBenchmarkKotlin +w: file:///app/src/main/java/dev/tinycast/android/CalculatorActions.kt:13:46 Non-public primary constructor is exposed via the generated 'copy()' method of the 'data' class. + +The generated 'copy()' will change its visibility in future releases. + +To suppress the warning do one of the following: +- Annotate the data class with the '@ConsistentCopyVisibility' annotation. +- Use the '-Xconsistent-data-class-copy-visibility' compiler flag. +- Annotate the data class with the '@ExposedCopyVisibility' annotation + (Discouraged, but can be used to keep binary compatibility). + +To learn more, see the documentation of the '@ConsistentCopyVisibility' and '@ExposedCopyVisibility' annotations. + +This will become an error in language version 2.3. +w: file:///app/src/main/java/dev/tinycast/android/EmojiUi.kt:100:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteMenus.kt:325:43 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteMenus.kt:389:63 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteUi.kt:185:51 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteUi.kt:263:51 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/SearchKeyboardButton.kt:43:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/SettingsActivity.kt:50:205 'static field SOFT_INPUT_ADJUST_RESIZE: Int' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionFormPickerBackdrop.kt:25:128 'static field SOFT_INPUT_ADJUST_RESIZE: Int' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionGridImages.kt:30:118 Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type 'Any?'. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt:215:43 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt:229:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. + +> Task :app:javaPreCompileBenchmark +> Task :app:compileBenchmarkJavaWithJavac +> Task :app:checkBenchmarkAarMetadata +> Task :app:mapBenchmarkSourceSetPaths +> Task :app:compileBenchmarkNavigationResources +> Task :app:mergeBenchmarkResources +> Task :app:createBenchmarkCompatibleScreenManifests +> Task :app:extractDeepLinksBenchmark +> Task :app:processBenchmarkMainManifest +> Task :app:processBenchmarkManifest +> Task :app:processBenchmarkManifestForPackage +> Task :app:processBenchmarkResources +> Task :app:dexBuilderBenchmark +> Task :app:mergeBenchmarkGlobalSynthetics +> Task :app:checkBenchmarkDuplicateClasses +> Task :app:mergeBenchmarkStartupProfile +> Task :app:mergeExtDexBenchmark +> Task :app:mergeDexBenchmark +> Task :app:compileBenchmarkArtProfile +> Task :app:generateBenchmarkAssets UP-TO-DATE +> Task :app:mergeBenchmarkAssets +> Task :app:compressBenchmarkAssets +> Task :app:extractBenchmarkVersionControlInfo +> Task :app:extractProguardFiles UP-TO-DATE +> Task :app:generateBenchmarkLintVitalReportModel +> Task :app:lintVitalAnalyzeBenchmark +> Task :app:lintVitalReportBenchmark SKIPPED +> Task :app:lintVitalBenchmark SKIPPED +> Task :app:processBenchmarkJavaRes +> Task :app:mergeBenchmarkJavaResource +> Task :app:optimizeBenchmarkResources +> Task :app:collectBenchmarkDependencies +> Task :app:sdkBenchmarkDependencyData +> Task :app:validateSigningBenchmark +> Task :app:writeBenchmarkAppMetadata +> Task :app:writeBenchmarkSigningConfigVersions +> Task :app:packageBenchmark +> Task :app:createBenchmarkApkListingFileRedirect +> Task :app:assembleBenchmark +> Task :app:bundleBenchmarkClassesToCompileJar +> Task :app:preBenchmarkAndroidTestBuild SKIPPED +> Task :app:processBenchmarkAndroidTestManifest +> Task :app:generateBenchmarkAndroidTestBuildConfig +> Task :app:generateBenchmarkAndroidTestResources +> Task :app:packageBenchmarkAndroidTestResources +> Task :app:processBenchmarkAndroidTestNavigationResources +> Task :app:parseBenchmarkAndroidTestLocalResources +> Task :app:generateBenchmarkAndroidTestRFile + +> Task :app:compileBenchmarkAndroidTestKotlin +w: file:///app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt:171:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt:176:48 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/ExtensionGridDeviceTest.kt:544:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/FrozenBundleWorkflowDeviceTest.kt:261:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/ReviewedTextDeviceTest.kt:629:60 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/TouchSearchDeviceTest.kt:83:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. + +> Task :app:javaPreCompileBenchmarkAndroidTest +> Task :app:compileBenchmarkAndroidTestJavaWithJavac +> Task :app:generateBenchmarkAndroidTestAssets UP-TO-DATE +> Task :app:mergeBenchmarkAndroidTestAssets +> Task :app:compressBenchmarkAndroidTestAssets +> Task :app:desugarBenchmarkAndroidTestFileDependencies +> Task :app:checkBenchmarkAndroidTestAarMetadata +> Task :app:mapBenchmarkAndroidTestSourceSetPaths +> Task :app:compileBenchmarkAndroidTestNavigationResources +> Task :app:mergeBenchmarkAndroidTestResources +> Task :app:processBenchmarkAndroidTestResources +> Task :app:dexBuilderBenchmarkAndroidTest +> Task :app:mergeBenchmarkAndroidTestGlobalSynthetics +> Task :app:processBenchmarkAndroidTestJavaRes +> Task :app:mergeBenchmarkAndroidTestJavaResource +> Task :app:checkBenchmarkAndroidTestDuplicateClasses +> Task :app:mergeExtDexBenchmarkAndroidTest +> Task :app:mergeDexBenchmarkAndroidTest +> Task :app:mergeBenchmarkAndroidTestJniLibFolders +> Task :app:mergeBenchmarkAndroidTestNativeLibs NO-SOURCE +> Task :app:stripBenchmarkAndroidTestDebugSymbols NO-SOURCE +> Task :app:validateSigningBenchmarkAndroidTest +> Task :app:writeBenchmarkAndroidTestSigningConfigVersions +> Task :app:packageBenchmarkAndroidTest +> Task :app:createBenchmarkAndroidTestApkListingFileRedirect +> Task :app:assembleBenchmarkAndroidTest +> Task :app:generateBenchmarkAndroidTestLintModel +> Task :app:generateBenchmarkLintReportModel +> Task :app:preBenchmarkUnitTestBuild UP-TO-DATE +> Task :app:generateBenchmarkUnitTestLintModel +> Task :app:lintAnalyzeBenchmark +> Task :app:lintAnalyzeBenchmarkAndroidTest +> Task :app:lintAnalyzeBenchmarkUnitTest + +> Task :app:lintReportBenchmark +Wrote HTML report to file:///app/build/reports/lint-results-benchmark.html + +> Task :app:lintBenchmark + +BUILD SUCCESSFUL in 3m 16s +87 actionable tasks: 86 executed, 1 up-to-date +Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.4.1/userguide/configuration_cache_enabling.html diff --git a/docs/validation/keyboard-toggle/checks/host-v2.log b/docs/validation/keyboard-toggle/checks/host-v2.log new file mode 100644 index 00000000..fd5ab7b2 --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/host-v2.log @@ -0,0 +1,282 @@ +To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/9.4.1/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation. +Daemon will be stopped at the end of the build +> Task :app:preBuild UP-TO-DATE +> Task :app:preDebugBuild UP-TO-DATE +> Task :app:mergeDebugNativeDebugMetadata NO-SOURCE +> Task :app:generateDebugBuildConfig +> Task :app:generateDebugResources UP-TO-DATE +> Task :app:packageDebugResources UP-TO-DATE +> Task :app:processDebugNavigationResources +> Task :app:parseDebugLocalResources UP-TO-DATE +> Task :app:generateDebugRFile UP-TO-DATE + +> Task :app:compileDebugKotlin +w: file:///app/src/main/java/dev/tinycast/android/CalculatorActions.kt:13:46 Non-public primary constructor is exposed via the generated 'copy()' method of the 'data' class. + +The generated 'copy()' will change its visibility in future releases. + +To suppress the warning do one of the following: +- Annotate the data class with the '@ConsistentCopyVisibility' annotation. +- Use the '-Xconsistent-data-class-copy-visibility' compiler flag. +- Annotate the data class with the '@ExposedCopyVisibility' annotation + (Discouraged, but can be used to keep binary compatibility). + +To learn more, see the documentation of the '@ConsistentCopyVisibility' and '@ExposedCopyVisibility' annotations. + +This will become an error in language version 2.3. +w: file:///app/src/main/java/dev/tinycast/android/EmojiUi.kt:100:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteMenus.kt:325:43 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteMenus.kt:389:63 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteUi.kt:185:51 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteUi.kt:263:51 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/SearchKeyboardButton.kt:46:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/SettingsActivity.kt:50:205 'static field SOFT_INPUT_ADJUST_RESIZE: Int' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionFormPickerBackdrop.kt:25:128 'static field SOFT_INPUT_ADJUST_RESIZE: Int' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionGridImages.kt:30:118 Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type 'Any?'. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt:215:43 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt:229:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. + +> Task :app:javaPreCompileDebug UP-TO-DATE +> Task :app:compileDebugJavaWithJavac +> Task :app:generateDebugAssets UP-TO-DATE +> Task :app:mergeDebugAssets UP-TO-DATE +> Task :app:compressDebugAssets UP-TO-DATE +> Task :app:generateDebugGlobalSynthetics UP-TO-DATE +> Task :app:processDebugJavaRes UP-TO-DATE +> Task :app:mergeDebugJavaResource UP-TO-DATE +> Task :app:checkDebugDuplicateClasses UP-TO-DATE +> Task :app:desugarDebugFileDependencies UP-TO-DATE +> Task :app:mergeExtDexDebug UP-TO-DATE +> Task :app:mergeLibDexDebug UP-TO-DATE +> Task :app:checkDebugAarMetadata UP-TO-DATE +> Task :app:mapDebugSourceSetPaths UP-TO-DATE +> Task :app:compileDebugNavigationResources UP-TO-DATE +> Task :app:mergeDebugResources UP-TO-DATE +> Task :app:createDebugCompatibleScreenManifests UP-TO-DATE +> Task :app:extractDeepLinksDebug +> Task :app:processDebugMainManifest +> Task :app:processDebugManifest +> Task :app:processDebugManifestForPackage +> Task :app:processDebugResources +> Task :app:dexBuilderDebug +> Task :app:mergeProjectDexDebug +> Task :app:mergeDebugJniLibFolders UP-TO-DATE +> Task :app:mergeDebugNativeLibs UP-TO-DATE +> Task :app:stripDebugDebugSymbols UP-TO-DATE +> Task :app:validateSigningDebug UP-TO-DATE +> Task :app:writeDebugAppMetadata UP-TO-DATE +> Task :app:writeDebugSigningConfigVersions UP-TO-DATE +> Task :app:packageDebug +> Task :app:createDebugApkListingFileRedirect UP-TO-DATE +> Task :app:assembleDebug +> Task :app:bundleDebugClassesToCompileJar +> Task :app:preDebugAndroidTestBuild SKIPPED +> Task :app:processDebugAndroidTestManifest +> Task :app:generateDebugAndroidTestBuildConfig +> Task :app:generateDebugAndroidTestResources UP-TO-DATE +> Task :app:packageDebugAndroidTestResources UP-TO-DATE +> Task :app:processDebugAndroidTestNavigationResources +> Task :app:parseDebugAndroidTestLocalResources UP-TO-DATE +> Task :app:generateDebugAndroidTestRFile UP-TO-DATE + +> Task :app:compileDebugAndroidTestKotlin +w: file:///app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt:171:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt:176:48 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/ExtensionGridDeviceTest.kt:544:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/FrozenBundleWorkflowDeviceTest.kt:261:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/ReviewedTextDeviceTest.kt:629:60 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/TouchSearchDeviceTest.kt:83:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. + +> Task :app:javaPreCompileDebugAndroidTest UP-TO-DATE +> Task :app:compileDebugAndroidTestJavaWithJavac +> Task :app:generateDebugAndroidTestAssets UP-TO-DATE +> Task :app:mergeDebugAndroidTestAssets UP-TO-DATE +> Task :app:compressDebugAndroidTestAssets UP-TO-DATE +> Task :app:generateDebugAndroidTestGlobalSynthetics UP-TO-DATE +> Task :app:processDebugAndroidTestJavaRes UP-TO-DATE +> Task :app:mergeDebugAndroidTestJavaResource UP-TO-DATE +> Task :app:checkDebugAndroidTestDuplicateClasses UP-TO-DATE +> Task :app:desugarDebugAndroidTestFileDependencies UP-TO-DATE +> Task :app:mergeExtDexDebugAndroidTest UP-TO-DATE +> Task :app:mergeLibDexDebugAndroidTest UP-TO-DATE +> Task :app:checkDebugAndroidTestAarMetadata UP-TO-DATE +> Task :app:mapDebugAndroidTestSourceSetPaths UP-TO-DATE +> Task :app:compileDebugAndroidTestNavigationResources UP-TO-DATE +> Task :app:mergeDebugAndroidTestResources UP-TO-DATE +> Task :app:processDebugAndroidTestResources UP-TO-DATE +> Task :app:dexBuilderDebugAndroidTest +> Task :app:mergeProjectDexDebugAndroidTest +> Task :app:mergeDebugAndroidTestJniLibFolders UP-TO-DATE +> Task :app:mergeDebugAndroidTestNativeLibs NO-SOURCE +> Task :app:stripDebugAndroidTestDebugSymbols NO-SOURCE +> Task :app:validateSigningDebugAndroidTest UP-TO-DATE +> Task :app:writeDebugAndroidTestSigningConfigVersions UP-TO-DATE +> Task :app:packageDebugAndroidTest +> Task :app:createDebugAndroidTestApkListingFileRedirect UP-TO-DATE +> Task :app:assembleDebugAndroidTest +> Task :app:bundleDebugClassesToRuntimeJar +> Task :app:preDebugUnitTestBuild UP-TO-DATE +> Task :app:compileDebugUnitTestKotlin +> Task :app:javaPreCompileDebugUnitTest UP-TO-DATE +> Task :app:compileDebugUnitTestJavaWithJavac NO-SOURCE +> Task :app:processDebugUnitTestJavaRes UP-TO-DATE +> Task :app:testDebugUnitTest +> Task :app:generateDebugAndroidTestLintModel +> Task :app:extractProguardFiles UP-TO-DATE +> Task :app:generateDebugLintReportModel +> Task :app:generateDebugUnitTestLintModel +> Task :app:lintAnalyzeDebug +> Task :app:lintAnalyzeDebugAndroidTest +> Task :app:lintAnalyzeDebugUnitTest + +> Task :app:lintReportDebug +Wrote HTML report to file:///app/build/reports/lint-results-debug.html + +> Task :app:lintDebug + +BUILD SUCCESSFUL in 2m 19s +84 actionable tasks: 32 executed, 52 up-to-date +Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.4.1/userguide/configuration_cache_enabling.html +To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/9.4.1/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation. +Daemon will be stopped at the end of the build +> Task :app:preBuild UP-TO-DATE +> Task :app:preBenchmarkBuild UP-TO-DATE +> Task :app:mergeBenchmarkJniLibFolders UP-TO-DATE +> Task :app:mergeBenchmarkNativeLibs UP-TO-DATE +> Task :app:stripBenchmarkDebugSymbols UP-TO-DATE +> Task :app:extractBenchmarkNativeSymbolTables UP-TO-DATE +> Task :app:mergeBenchmarkNativeDebugMetadata NO-SOURCE +> Task :app:mergeBenchmarkArtProfile UP-TO-DATE +> Task :app:desugarBenchmarkFileDependencies UP-TO-DATE +> Task :app:generateBenchmarkBuildConfig +> Task :app:generateBenchmarkResources UP-TO-DATE +> Task :app:packageBenchmarkResources UP-TO-DATE +> Task :app:processBenchmarkNavigationResources +> Task :app:parseBenchmarkLocalResources UP-TO-DATE +> Task :app:generateBenchmarkRFile UP-TO-DATE + +> Task :app:compileBenchmarkKotlin +w: file:///app/src/main/java/dev/tinycast/android/CalculatorActions.kt:13:46 Non-public primary constructor is exposed via the generated 'copy()' method of the 'data' class. + +The generated 'copy()' will change its visibility in future releases. + +To suppress the warning do one of the following: +- Annotate the data class with the '@ConsistentCopyVisibility' annotation. +- Use the '-Xconsistent-data-class-copy-visibility' compiler flag. +- Annotate the data class with the '@ExposedCopyVisibility' annotation + (Discouraged, but can be used to keep binary compatibility). + +To learn more, see the documentation of the '@ConsistentCopyVisibility' and '@ExposedCopyVisibility' annotations. + +This will become an error in language version 2.3. +w: file:///app/src/main/java/dev/tinycast/android/EmojiUi.kt:100:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteMenus.kt:325:43 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteMenus.kt:389:63 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteUi.kt:185:51 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteUi.kt:263:51 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/SearchKeyboardButton.kt:46:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/SettingsActivity.kt:50:205 'static field SOFT_INPUT_ADJUST_RESIZE: Int' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionFormPickerBackdrop.kt:25:128 'static field SOFT_INPUT_ADJUST_RESIZE: Int' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionGridImages.kt:30:118 Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type 'Any?'. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt:215:43 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt:229:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. + +> Task :app:javaPreCompileBenchmark UP-TO-DATE +> Task :app:compileBenchmarkJavaWithJavac +> Task :app:checkBenchmarkAarMetadata UP-TO-DATE +> Task :app:mapBenchmarkSourceSetPaths UP-TO-DATE +> Task :app:compileBenchmarkNavigationResources UP-TO-DATE +> Task :app:mergeBenchmarkResources UP-TO-DATE +> Task :app:createBenchmarkCompatibleScreenManifests UP-TO-DATE +> Task :app:extractDeepLinksBenchmark +> Task :app:processBenchmarkMainManifest +> Task :app:processBenchmarkManifest +> Task :app:processBenchmarkManifestForPackage +> Task :app:processBenchmarkResources +> Task :app:dexBuilderBenchmark +> Task :app:mergeBenchmarkGlobalSynthetics UP-TO-DATE +> Task :app:checkBenchmarkDuplicateClasses UP-TO-DATE +> Task :app:mergeBenchmarkStartupProfile UP-TO-DATE +> Task :app:mergeExtDexBenchmark UP-TO-DATE +> Task :app:mergeDexBenchmark +> Task :app:compileBenchmarkArtProfile +> Task :app:generateBenchmarkAssets UP-TO-DATE +> Task :app:mergeBenchmarkAssets UP-TO-DATE +> Task :app:compressBenchmarkAssets UP-TO-DATE +> Task :app:extractBenchmarkVersionControlInfo UP-TO-DATE +> Task :app:extractProguardFiles UP-TO-DATE +> Task :app:generateBenchmarkLintVitalReportModel +> Task :app:lintVitalAnalyzeBenchmark +> Task :app:lintVitalReportBenchmark SKIPPED +> Task :app:lintVitalBenchmark SKIPPED +> Task :app:processBenchmarkJavaRes UP-TO-DATE +> Task :app:mergeBenchmarkJavaResource UP-TO-DATE +> Task :app:optimizeBenchmarkResources +> Task :app:collectBenchmarkDependencies UP-TO-DATE +> Task :app:sdkBenchmarkDependencyData UP-TO-DATE +> Task :app:validateSigningBenchmark UP-TO-DATE +> Task :app:writeBenchmarkAppMetadata UP-TO-DATE +> Task :app:writeBenchmarkSigningConfigVersions UP-TO-DATE +> Task :app:packageBenchmark +> Task :app:createBenchmarkApkListingFileRedirect UP-TO-DATE +> Task :app:assembleBenchmark +> Task :app:bundleBenchmarkClassesToCompileJar +> Task :app:preBenchmarkAndroidTestBuild SKIPPED +> Task :app:processBenchmarkAndroidTestManifest +> Task :app:generateBenchmarkAndroidTestBuildConfig +> Task :app:generateBenchmarkAndroidTestResources UP-TO-DATE +> Task :app:packageBenchmarkAndroidTestResources UP-TO-DATE +> Task :app:processBenchmarkAndroidTestNavigationResources +> Task :app:parseBenchmarkAndroidTestLocalResources UP-TO-DATE +> Task :app:generateBenchmarkAndroidTestRFile UP-TO-DATE + +> Task :app:compileBenchmarkAndroidTestKotlin +w: file:///app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt:171:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt:176:48 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/ExtensionGridDeviceTest.kt:544:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/FrozenBundleWorkflowDeviceTest.kt:261:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/ReviewedTextDeviceTest.kt:629:60 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/TouchSearchDeviceTest.kt:83:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. + +> Task :app:javaPreCompileBenchmarkAndroidTest UP-TO-DATE +> Task :app:compileBenchmarkAndroidTestJavaWithJavac +> Task :app:generateBenchmarkAndroidTestAssets UP-TO-DATE +> Task :app:mergeBenchmarkAndroidTestAssets UP-TO-DATE +> Task :app:compressBenchmarkAndroidTestAssets UP-TO-DATE +> Task :app:desugarBenchmarkAndroidTestFileDependencies UP-TO-DATE +> Task :app:checkBenchmarkAndroidTestAarMetadata UP-TO-DATE +> Task :app:mapBenchmarkAndroidTestSourceSetPaths UP-TO-DATE +> Task :app:compileBenchmarkAndroidTestNavigationResources UP-TO-DATE +> Task :app:mergeBenchmarkAndroidTestResources UP-TO-DATE +> Task :app:processBenchmarkAndroidTestResources UP-TO-DATE +> Task :app:dexBuilderBenchmarkAndroidTest +> Task :app:mergeBenchmarkAndroidTestGlobalSynthetics UP-TO-DATE +> Task :app:processBenchmarkAndroidTestJavaRes UP-TO-DATE +> Task :app:mergeBenchmarkAndroidTestJavaResource UP-TO-DATE +> Task :app:checkBenchmarkAndroidTestDuplicateClasses UP-TO-DATE +> Task :app:mergeExtDexBenchmarkAndroidTest UP-TO-DATE +> Task :app:mergeDexBenchmarkAndroidTest +> Task :app:mergeBenchmarkAndroidTestJniLibFolders UP-TO-DATE +> Task :app:mergeBenchmarkAndroidTestNativeLibs NO-SOURCE +> Task :app:stripBenchmarkAndroidTestDebugSymbols NO-SOURCE +> Task :app:validateSigningBenchmarkAndroidTest UP-TO-DATE +> Task :app:writeBenchmarkAndroidTestSigningConfigVersions UP-TO-DATE +> Task :app:packageBenchmarkAndroidTest +> Task :app:createBenchmarkAndroidTestApkListingFileRedirect UP-TO-DATE +> Task :app:assembleBenchmarkAndroidTest +> Task :app:generateBenchmarkAndroidTestLintModel +> Task :app:generateBenchmarkLintReportModel +> Task :app:preBenchmarkUnitTestBuild UP-TO-DATE +> Task :app:generateBenchmarkUnitTestLintModel +> Task :app:lintAnalyzeBenchmark +> Task :app:lintAnalyzeBenchmarkAndroidTest +> Task :app:lintAnalyzeBenchmarkUnitTest + +> Task :app:lintReportBenchmark +Wrote HTML report to file:///app/build/reports/lint-results-benchmark.html + +> Task :app:lintBenchmark + +BUILD SUCCESSFUL in 2m 49s +87 actionable tasks: 33 executed, 54 up-to-date +Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.4.1/userguide/configuration_cache_enabling.html diff --git a/docs/validation/keyboard-toggle/checks/host-v3.log b/docs/validation/keyboard-toggle/checks/host-v3.log new file mode 100644 index 00000000..33ee348c --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/host-v3.log @@ -0,0 +1,282 @@ +To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/9.4.1/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation. +Daemon will be stopped at the end of the build +> Task :app:preBuild UP-TO-DATE +> Task :app:preDebugBuild UP-TO-DATE +> Task :app:mergeDebugNativeDebugMetadata NO-SOURCE +> Task :app:generateDebugBuildConfig +> Task :app:generateDebugResources UP-TO-DATE +> Task :app:packageDebugResources UP-TO-DATE +> Task :app:processDebugNavigationResources +> Task :app:parseDebugLocalResources UP-TO-DATE +> Task :app:generateDebugRFile UP-TO-DATE + +> Task :app:compileDebugKotlin +w: file:///app/src/main/java/dev/tinycast/android/CalculatorActions.kt:13:46 Non-public primary constructor is exposed via the generated 'copy()' method of the 'data' class. + +The generated 'copy()' will change its visibility in future releases. + +To suppress the warning do one of the following: +- Annotate the data class with the '@ConsistentCopyVisibility' annotation. +- Use the '-Xconsistent-data-class-copy-visibility' compiler flag. +- Annotate the data class with the '@ExposedCopyVisibility' annotation + (Discouraged, but can be used to keep binary compatibility). + +To learn more, see the documentation of the '@ConsistentCopyVisibility' and '@ExposedCopyVisibility' annotations. + +This will become an error in language version 2.3. +w: file:///app/src/main/java/dev/tinycast/android/EmojiUi.kt:100:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteMenus.kt:325:43 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteMenus.kt:389:63 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteUi.kt:185:51 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteUi.kt:263:51 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/SearchKeyboardButton.kt:46:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/SettingsActivity.kt:50:205 'static field SOFT_INPUT_ADJUST_RESIZE: Int' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionFormPickerBackdrop.kt:25:128 'static field SOFT_INPUT_ADJUST_RESIZE: Int' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionGridImages.kt:30:118 Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type 'Any?'. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt:215:43 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt:229:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. + +> Task :app:javaPreCompileDebug UP-TO-DATE +> Task :app:compileDebugJavaWithJavac +> Task :app:generateDebugAssets UP-TO-DATE +> Task :app:mergeDebugAssets UP-TO-DATE +> Task :app:compressDebugAssets UP-TO-DATE +> Task :app:generateDebugGlobalSynthetics UP-TO-DATE +> Task :app:processDebugJavaRes UP-TO-DATE +> Task :app:mergeDebugJavaResource UP-TO-DATE +> Task :app:checkDebugDuplicateClasses UP-TO-DATE +> Task :app:desugarDebugFileDependencies UP-TO-DATE +> Task :app:mergeExtDexDebug UP-TO-DATE +> Task :app:mergeLibDexDebug UP-TO-DATE +> Task :app:checkDebugAarMetadata UP-TO-DATE +> Task :app:mapDebugSourceSetPaths UP-TO-DATE +> Task :app:compileDebugNavigationResources UP-TO-DATE +> Task :app:mergeDebugResources UP-TO-DATE +> Task :app:createDebugCompatibleScreenManifests UP-TO-DATE +> Task :app:extractDeepLinksDebug +> Task :app:processDebugMainManifest +> Task :app:processDebugManifest +> Task :app:processDebugManifestForPackage +> Task :app:processDebugResources +> Task :app:dexBuilderDebug +> Task :app:mergeProjectDexDebug +> Task :app:mergeDebugJniLibFolders UP-TO-DATE +> Task :app:mergeDebugNativeLibs UP-TO-DATE +> Task :app:stripDebugDebugSymbols UP-TO-DATE +> Task :app:validateSigningDebug UP-TO-DATE +> Task :app:writeDebugAppMetadata UP-TO-DATE +> Task :app:writeDebugSigningConfigVersions UP-TO-DATE +> Task :app:packageDebug +> Task :app:createDebugApkListingFileRedirect UP-TO-DATE +> Task :app:assembleDebug +> Task :app:bundleDebugClassesToCompileJar +> Task :app:preDebugAndroidTestBuild SKIPPED +> Task :app:processDebugAndroidTestManifest +> Task :app:generateDebugAndroidTestBuildConfig +> Task :app:generateDebugAndroidTestResources UP-TO-DATE +> Task :app:packageDebugAndroidTestResources UP-TO-DATE +> Task :app:processDebugAndroidTestNavigationResources +> Task :app:parseDebugAndroidTestLocalResources UP-TO-DATE +> Task :app:generateDebugAndroidTestRFile UP-TO-DATE + +> Task :app:compileDebugAndroidTestKotlin +w: file:///app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt:171:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt:176:48 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/ExtensionGridDeviceTest.kt:544:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/FrozenBundleWorkflowDeviceTest.kt:261:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/ReviewedTextDeviceTest.kt:629:60 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/TouchSearchDeviceTest.kt:83:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. + +> Task :app:javaPreCompileDebugAndroidTest UP-TO-DATE +> Task :app:compileDebugAndroidTestJavaWithJavac +> Task :app:generateDebugAndroidTestAssets UP-TO-DATE +> Task :app:mergeDebugAndroidTestAssets UP-TO-DATE +> Task :app:compressDebugAndroidTestAssets UP-TO-DATE +> Task :app:generateDebugAndroidTestGlobalSynthetics UP-TO-DATE +> Task :app:processDebugAndroidTestJavaRes UP-TO-DATE +> Task :app:mergeDebugAndroidTestJavaResource UP-TO-DATE +> Task :app:checkDebugAndroidTestDuplicateClasses UP-TO-DATE +> Task :app:desugarDebugAndroidTestFileDependencies UP-TO-DATE +> Task :app:mergeExtDexDebugAndroidTest UP-TO-DATE +> Task :app:mergeLibDexDebugAndroidTest UP-TO-DATE +> Task :app:checkDebugAndroidTestAarMetadata UP-TO-DATE +> Task :app:mapDebugAndroidTestSourceSetPaths UP-TO-DATE +> Task :app:compileDebugAndroidTestNavigationResources UP-TO-DATE +> Task :app:mergeDebugAndroidTestResources UP-TO-DATE +> Task :app:processDebugAndroidTestResources UP-TO-DATE +> Task :app:dexBuilderDebugAndroidTest +> Task :app:mergeProjectDexDebugAndroidTest +> Task :app:mergeDebugAndroidTestJniLibFolders UP-TO-DATE +> Task :app:mergeDebugAndroidTestNativeLibs NO-SOURCE +> Task :app:stripDebugAndroidTestDebugSymbols NO-SOURCE +> Task :app:validateSigningDebugAndroidTest UP-TO-DATE +> Task :app:writeDebugAndroidTestSigningConfigVersions UP-TO-DATE +> Task :app:packageDebugAndroidTest +> Task :app:createDebugAndroidTestApkListingFileRedirect UP-TO-DATE +> Task :app:assembleDebugAndroidTest +> Task :app:bundleDebugClassesToRuntimeJar +> Task :app:preDebugUnitTestBuild UP-TO-DATE +> Task :app:compileDebugUnitTestKotlin +> Task :app:javaPreCompileDebugUnitTest UP-TO-DATE +> Task :app:compileDebugUnitTestJavaWithJavac NO-SOURCE +> Task :app:processDebugUnitTestJavaRes UP-TO-DATE +> Task :app:testDebugUnitTest +> Task :app:generateDebugAndroidTestLintModel +> Task :app:extractProguardFiles UP-TO-DATE +> Task :app:generateDebugLintReportModel +> Task :app:generateDebugUnitTestLintModel +> Task :app:lintAnalyzeDebug +> Task :app:lintAnalyzeDebugAndroidTest +> Task :app:lintAnalyzeDebugUnitTest + +> Task :app:lintReportDebug +Wrote HTML report to file:///app/build/reports/lint-results-debug.html + +> Task :app:lintDebug + +BUILD SUCCESSFUL in 2m 17s +84 actionable tasks: 32 executed, 52 up-to-date +Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.4.1/userguide/configuration_cache_enabling.html +To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/9.4.1/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation. +Daemon will be stopped at the end of the build +> Task :app:preBuild UP-TO-DATE +> Task :app:preBenchmarkBuild UP-TO-DATE +> Task :app:mergeBenchmarkJniLibFolders UP-TO-DATE +> Task :app:mergeBenchmarkNativeLibs UP-TO-DATE +> Task :app:stripBenchmarkDebugSymbols UP-TO-DATE +> Task :app:extractBenchmarkNativeSymbolTables UP-TO-DATE +> Task :app:mergeBenchmarkNativeDebugMetadata NO-SOURCE +> Task :app:mergeBenchmarkArtProfile UP-TO-DATE +> Task :app:desugarBenchmarkFileDependencies UP-TO-DATE +> Task :app:generateBenchmarkBuildConfig +> Task :app:generateBenchmarkResources UP-TO-DATE +> Task :app:packageBenchmarkResources UP-TO-DATE +> Task :app:processBenchmarkNavigationResources +> Task :app:parseBenchmarkLocalResources UP-TO-DATE +> Task :app:generateBenchmarkRFile UP-TO-DATE + +> Task :app:compileBenchmarkKotlin +w: file:///app/src/main/java/dev/tinycast/android/CalculatorActions.kt:13:46 Non-public primary constructor is exposed via the generated 'copy()' method of the 'data' class. + +The generated 'copy()' will change its visibility in future releases. + +To suppress the warning do one of the following: +- Annotate the data class with the '@ConsistentCopyVisibility' annotation. +- Use the '-Xconsistent-data-class-copy-visibility' compiler flag. +- Annotate the data class with the '@ExposedCopyVisibility' annotation + (Discouraged, but can be used to keep binary compatibility). + +To learn more, see the documentation of the '@ConsistentCopyVisibility' and '@ExposedCopyVisibility' annotations. + +This will become an error in language version 2.3. +w: file:///app/src/main/java/dev/tinycast/android/EmojiUi.kt:100:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteMenus.kt:325:43 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteMenus.kt:389:63 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteUi.kt:185:51 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/PaletteUi.kt:263:51 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/SearchKeyboardButton.kt:46:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/SettingsActivity.kt:50:205 'static field SOFT_INPUT_ADJUST_RESIZE: Int' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionFormPickerBackdrop.kt:25:128 'static field SOFT_INPUT_ADJUST_RESIZE: Int' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionGridImages.kt:30:118 Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type 'Any?'. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt:215:43 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt:229:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. + +> Task :app:javaPreCompileBenchmark UP-TO-DATE +> Task :app:compileBenchmarkJavaWithJavac +> Task :app:checkBenchmarkAarMetadata UP-TO-DATE +> Task :app:mapBenchmarkSourceSetPaths UP-TO-DATE +> Task :app:compileBenchmarkNavigationResources UP-TO-DATE +> Task :app:mergeBenchmarkResources UP-TO-DATE +> Task :app:createBenchmarkCompatibleScreenManifests UP-TO-DATE +> Task :app:extractDeepLinksBenchmark +> Task :app:processBenchmarkMainManifest +> Task :app:processBenchmarkManifest +> Task :app:processBenchmarkManifestForPackage +> Task :app:processBenchmarkResources +> Task :app:dexBuilderBenchmark +> Task :app:mergeBenchmarkGlobalSynthetics UP-TO-DATE +> Task :app:checkBenchmarkDuplicateClasses UP-TO-DATE +> Task :app:mergeBenchmarkStartupProfile UP-TO-DATE +> Task :app:mergeExtDexBenchmark UP-TO-DATE +> Task :app:mergeDexBenchmark +> Task :app:compileBenchmarkArtProfile +> Task :app:generateBenchmarkAssets UP-TO-DATE +> Task :app:mergeBenchmarkAssets UP-TO-DATE +> Task :app:compressBenchmarkAssets UP-TO-DATE +> Task :app:extractBenchmarkVersionControlInfo UP-TO-DATE +> Task :app:extractProguardFiles UP-TO-DATE +> Task :app:generateBenchmarkLintVitalReportModel +> Task :app:lintVitalAnalyzeBenchmark +> Task :app:lintVitalReportBenchmark SKIPPED +> Task :app:lintVitalBenchmark SKIPPED +> Task :app:processBenchmarkJavaRes UP-TO-DATE +> Task :app:mergeBenchmarkJavaResource UP-TO-DATE +> Task :app:optimizeBenchmarkResources +> Task :app:collectBenchmarkDependencies UP-TO-DATE +> Task :app:sdkBenchmarkDependencyData UP-TO-DATE +> Task :app:validateSigningBenchmark UP-TO-DATE +> Task :app:writeBenchmarkAppMetadata UP-TO-DATE +> Task :app:writeBenchmarkSigningConfigVersions UP-TO-DATE +> Task :app:packageBenchmark +> Task :app:createBenchmarkApkListingFileRedirect UP-TO-DATE +> Task :app:assembleBenchmark +> Task :app:bundleBenchmarkClassesToCompileJar +> Task :app:preBenchmarkAndroidTestBuild SKIPPED +> Task :app:processBenchmarkAndroidTestManifest +> Task :app:generateBenchmarkAndroidTestBuildConfig +> Task :app:generateBenchmarkAndroidTestResources UP-TO-DATE +> Task :app:packageBenchmarkAndroidTestResources UP-TO-DATE +> Task :app:processBenchmarkAndroidTestNavigationResources +> Task :app:parseBenchmarkAndroidTestLocalResources UP-TO-DATE +> Task :app:generateBenchmarkAndroidTestRFile UP-TO-DATE + +> Task :app:compileBenchmarkAndroidTestKotlin +w: file:///app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt:171:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt:176:48 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/ExtensionGridDeviceTest.kt:544:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/FrozenBundleWorkflowDeviceTest.kt:261:47 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/ReviewedTextDeviceTest.kt:629:60 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. +w: file:///app/src/androidTest/java/dev/tinycast/android/TouchSearchDeviceTest.kt:83:41 'static fun getWindowInsetsController(p0: View): WindowInsetsControllerCompat?' is deprecated. Deprecated in Java. + +> Task :app:javaPreCompileBenchmarkAndroidTest UP-TO-DATE +> Task :app:compileBenchmarkAndroidTestJavaWithJavac +> Task :app:generateBenchmarkAndroidTestAssets UP-TO-DATE +> Task :app:mergeBenchmarkAndroidTestAssets UP-TO-DATE +> Task :app:compressBenchmarkAndroidTestAssets UP-TO-DATE +> Task :app:desugarBenchmarkAndroidTestFileDependencies UP-TO-DATE +> Task :app:checkBenchmarkAndroidTestAarMetadata UP-TO-DATE +> Task :app:mapBenchmarkAndroidTestSourceSetPaths UP-TO-DATE +> Task :app:compileBenchmarkAndroidTestNavigationResources UP-TO-DATE +> Task :app:mergeBenchmarkAndroidTestResources UP-TO-DATE +> Task :app:processBenchmarkAndroidTestResources UP-TO-DATE +> Task :app:dexBuilderBenchmarkAndroidTest +> Task :app:mergeBenchmarkAndroidTestGlobalSynthetics UP-TO-DATE +> Task :app:processBenchmarkAndroidTestJavaRes UP-TO-DATE +> Task :app:mergeBenchmarkAndroidTestJavaResource UP-TO-DATE +> Task :app:checkBenchmarkAndroidTestDuplicateClasses UP-TO-DATE +> Task :app:mergeExtDexBenchmarkAndroidTest UP-TO-DATE +> Task :app:mergeDexBenchmarkAndroidTest +> Task :app:mergeBenchmarkAndroidTestJniLibFolders UP-TO-DATE +> Task :app:mergeBenchmarkAndroidTestNativeLibs NO-SOURCE +> Task :app:stripBenchmarkAndroidTestDebugSymbols NO-SOURCE +> Task :app:validateSigningBenchmarkAndroidTest UP-TO-DATE +> Task :app:writeBenchmarkAndroidTestSigningConfigVersions UP-TO-DATE +> Task :app:packageBenchmarkAndroidTest +> Task :app:createBenchmarkAndroidTestApkListingFileRedirect UP-TO-DATE +> Task :app:assembleBenchmarkAndroidTest +> Task :app:generateBenchmarkAndroidTestLintModel +> Task :app:generateBenchmarkLintReportModel +> Task :app:preBenchmarkUnitTestBuild UP-TO-DATE +> Task :app:generateBenchmarkUnitTestLintModel +> Task :app:lintAnalyzeBenchmark +> Task :app:lintAnalyzeBenchmarkAndroidTest +> Task :app:lintAnalyzeBenchmarkUnitTest + +> Task :app:lintReportBenchmark +Wrote HTML report to file:///app/build/reports/lint-results-benchmark.html + +> Task :app:lintBenchmark + +BUILD SUCCESSFUL in 2m 46s +87 actionable tasks: 33 executed, 54 up-to-date +Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.4.1/userguide/configuration_cache_enabling.html diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.BackupPlannerTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.BackupPlannerTest.xml new file mode 100644 index 00000000..1922cee1 --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.BackupPlannerTest.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.CalculatorActionsTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.CalculatorActionsTest.xml new file mode 100644 index 00000000..1bf91d43 --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.CalculatorActionsTest.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.CommandEngineTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.CommandEngineTest.xml new file mode 100644 index 00000000..f58d582d --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.CommandEngineTest.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.EmojiCatalogTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.EmojiCatalogTest.xml new file mode 100644 index 00000000..a9a91255 --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.EmojiCatalogTest.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionCommandLaunchTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionCommandLaunchTest.xml new file mode 100644 index 00000000..c88d9dd0 --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionCommandLaunchTest.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionDetailImageTimeoutTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionDetailImageTimeoutTest.xml new file mode 100644 index 00000000..dd5f4774 --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionDetailImageTimeoutTest.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionEngineCompatibilityTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionEngineCompatibilityTest.xml new file mode 100644 index 00000000..93e7d97c --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionEngineCompatibilityTest.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionFormContractTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionFormContractTest.xml new file mode 100644 index 00000000..60d7c6bd --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionFormContractTest.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionFormFileImportTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionFormFileImportTest.xml new file mode 100644 index 00000000..40ebb796 --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionFormFileImportTest.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionFormSubmissionTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionFormSubmissionTest.xml new file mode 100644 index 00000000..a6f7caba --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionFormSubmissionTest.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionFormTypedValuesTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionFormTypedValuesTest.xml new file mode 100644 index 00000000..73ea5b3e --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionFormTypedValuesTest.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionFormValuesTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionFormValuesTest.xml new file mode 100644 index 00000000..ac796caf --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionFormValuesTest.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionGridContractTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionGridContractTest.xml new file mode 100644 index 00000000..6e5bcf51 --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionGridContractTest.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionGridNavigationTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionGridNavigationTest.xml new file mode 100644 index 00000000..cbfc647b --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionGridNavigationTest.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionHttpTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionHttpTest.xml new file mode 100644 index 00000000..8d3433e1 --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionHttpTest.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionMarkdownModelTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionMarkdownModelTest.xml new file mode 100644 index 00000000..11b11c67 --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionMarkdownModelTest.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionMetadataVisualsTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionMetadataVisualsTest.xml new file mode 100644 index 00000000..acd343f9 --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionMetadataVisualsTest.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionPasteCopyTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionPasteCopyTest.xml new file mode 100644 index 00000000..90f384ea --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionPasteCopyTest.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionPayloadIdentityTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionPayloadIdentityTest.xml new file mode 100644 index 00000000..157e434f --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionPayloadIdentityTest.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionSelectionDeliveryTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionSelectionDeliveryTest.xml new file mode 100644 index 00000000..8d8a8a13 --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionSelectionDeliveryTest.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionWorkflowEvidenceTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionWorkflowEvidenceTest.xml new file mode 100644 index 00000000..3c2f023c --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionWorkflowEvidenceTest.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionWorkflowInspectionTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionWorkflowInspectionTest.xml new file mode 100644 index 00000000..a33ed1d0 --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ExtensionWorkflowInspectionTest.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.FolderGrantTransactionTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.FolderGrantTransactionTest.xml new file mode 100644 index 00000000..5f647484 --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.FolderGrantTransactionTest.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.FolderIndexTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.FolderIndexTest.xml new file mode 100644 index 00000000..8f33deea --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.FolderIndexTest.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ModifierTapTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ModifierTapTest.xml new file mode 100644 index 00000000..d91af50f --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ModifierTapTest.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.PaletteMenuOwnershipTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.PaletteMenuOwnershipTest.xml new file mode 100644 index 00000000..e3a47a88 --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.PaletteMenuOwnershipTest.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.PaletteScrollHistoryTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.PaletteScrollHistoryTest.xml new file mode 100644 index 00000000..eda23c5a --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.PaletteScrollHistoryTest.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ReviewedTextInputTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ReviewedTextInputTest.xml new file mode 100644 index 00000000..cd89a310 --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ReviewedTextInputTest.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ShortcutReadinessTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ShortcutReadinessTest.xml new file mode 100644 index 00000000..01d1e615 --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ShortcutReadinessTest.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ShortcutTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ShortcutTest.xml new file mode 100644 index 00000000..a74a09da --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.ShortcutTest.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.SystemSettingsTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.SystemSettingsTest.xml new file mode 100644 index 00000000..9f5054ac --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.SystemSettingsTest.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.TinycastGridParityTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.TinycastGridParityTest.xml new file mode 100644 index 00000000..7e8c6a9c --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.TinycastGridParityTest.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.UpdatePolicyTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.UpdatePolicyTest.xml new file mode 100644 index 00000000..7962e7b0 --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.UpdatePolicyTest.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.WeakValueTokensTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.WeakValueTokensTest.xml new file mode 100644 index 00000000..6d0399ef --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.WeakValueTokensTest.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.extensions.CommonMarkPrimaryConformanceTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.extensions.CommonMarkPrimaryConformanceTest.xml new file mode 100644 index 00000000..5f21c83a --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.extensions.CommonMarkPrimaryConformanceTest.xml @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.extensions.ExtensionDetailImagePolicyTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.extensions.ExtensionDetailImagePolicyTest.xml new file mode 100644 index 00000000..c9a3cc5e --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.extensions.ExtensionDetailImagePolicyTest.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.extensions.NodeCpuInfoTest.xml b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.extensions.NodeCpuInfoTest.xml new file mode 100644 index 00000000..707b8b37 --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/jvm/TEST-dev.tinycast.android.extensions.NodeCpuInfoTest.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/lint-results-benchmark.xml b/docs/validation/keyboard-toggle/checks/lint-results-benchmark.xml new file mode 100644 index 00000000..1b9a2e38 --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/lint-results-benchmark.xml @@ -0,0 +1,902 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/lint-results-debug.xml b/docs/validation/keyboard-toggle/checks/lint-results-debug.xml new file mode 100644 index 00000000..1b9a2e38 --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/lint-results-debug.xml @@ -0,0 +1,902 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/checks/python-final-normal.log b/docs/validation/keyboard-toggle/checks/python-final-normal.log new file mode 100644 index 00000000..b8a7e183 --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/python-final-normal.log @@ -0,0 +1,6 @@ +....................................................................................................................................... +---------------------------------------------------------------------- +Ran 135 tests in 21.679s + +OK +{"all_directories_attempted": false, "declared_commands": 0, "directory_count": 2, "independently_anchored_manifests": 0, "manifest_discovery_complete": false, "manifests_read": 0, "not_yet_inspected": 2, "retrieval_or_manifest_errors": 0, "runtime_tested_commands": 0, "runtime_untested_commands": 0} diff --git a/docs/validation/keyboard-toggle/checks/python-final-optimized.log b/docs/validation/keyboard-toggle/checks/python-final-optimized.log new file mode 100644 index 00000000..1e657324 --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/python-final-optimized.log @@ -0,0 +1,6 @@ +....................................................................................................................................... +---------------------------------------------------------------------- +Ran 135 tests in 21.441s + +OK +{"all_directories_attempted": false, "declared_commands": 0, "directory_count": 2, "independently_anchored_manifests": 0, "manifest_discovery_complete": false, "manifests_read": 0, "not_yet_inspected": 2, "retrieval_or_manifest_errors": 0, "runtime_tested_commands": 0, "runtime_untested_commands": 0} diff --git a/docs/validation/keyboard-toggle/checks/python-supplement-normal.log b/docs/validation/keyboard-toggle/checks/python-supplement-normal.log new file mode 100644 index 00000000..f5751efa --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/python-supplement-normal.log @@ -0,0 +1,6 @@ +....................................................................................................................................... +---------------------------------------------------------------------- +Ran 135 tests in 19.120s + +OK +{"all_directories_attempted": false, "declared_commands": 0, "directory_count": 2, "independently_anchored_manifests": 0, "manifest_discovery_complete": false, "manifests_read": 0, "not_yet_inspected": 2, "retrieval_or_manifest_errors": 0, "runtime_tested_commands": 0, "runtime_untested_commands": 0} diff --git a/docs/validation/keyboard-toggle/checks/python-supplement-optimized.log b/docs/validation/keyboard-toggle/checks/python-supplement-optimized.log new file mode 100644 index 00000000..720a3504 --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/python-supplement-optimized.log @@ -0,0 +1,6 @@ +....................................................................................................................................... +---------------------------------------------------------------------- +Ran 135 tests in 18.683s + +OK +{"all_directories_attempted": false, "declared_commands": 0, "directory_count": 2, "independently_anchored_manifests": 0, "manifest_discovery_complete": false, "manifests_read": 0, "not_yet_inspected": 2, "retrieval_or_manifest_errors": 0, "runtime_tested_commands": 0, "runtime_untested_commands": 0} diff --git a/docs/validation/keyboard-toggle/checks/python-v1-normal.log b/docs/validation/keyboard-toggle/checks/python-v1-normal.log new file mode 100644 index 00000000..e934a54e --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/python-v1-normal.log @@ -0,0 +1,6 @@ +....................................................................................................................................... +---------------------------------------------------------------------- +Ran 135 tests in 22.433s + +OK +{"all_directories_attempted": false, "declared_commands": 0, "directory_count": 2, "independently_anchored_manifests": 0, "manifest_discovery_complete": false, "manifests_read": 0, "not_yet_inspected": 2, "retrieval_or_manifest_errors": 0, "runtime_tested_commands": 0, "runtime_untested_commands": 0} diff --git a/docs/validation/keyboard-toggle/checks/python-v1-optimized.log b/docs/validation/keyboard-toggle/checks/python-v1-optimized.log new file mode 100644 index 00000000..44f9a3a3 --- /dev/null +++ b/docs/validation/keyboard-toggle/checks/python-v1-optimized.log @@ -0,0 +1,6 @@ +....................................................................................................................................... +---------------------------------------------------------------------- +Ran 135 tests in 22.723s + +OK +{"all_directories_attempted": false, "declared_commands": 0, "directory_count": 2, "independently_anchored_manifests": 0, "manifest_discovery_complete": false, "manifests_read": 0, "not_yet_inspected": 2, "retrieval_or_manifest_errors": 0, "runtime_tested_commands": 0, "runtime_untested_commands": 0} diff --git a/docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after-frame.json b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after-frame.json new file mode 100644 index 00000000..a8c9b230 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "back-probe-after", + "search": [ + 473, + 243, + 1280, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Injected system Back diagnostic with no header keyboard activation. Editor and epoch setup are controlled; it earns no Back repair, hardware-key or TalkBack certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.xml b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.xml new file mode 100644 index 00000000..838270d6 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.xml @@ -0,0 +1,340 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu-frame.json b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu-frame.json new file mode 100644 index 00000000..3a5fbf96 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "back-probe-before-menu", + "search": [ + 473, + 243, + 1280, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Injected system Back diagnostic with no header keyboard activation. Editor and epoch setup are controlled; it earns no Back repair, hardware-key or TalkBack certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.xml b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.xml new file mode 100644 index 00000000..3e04fdc5 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.xml @@ -0,0 +1,340 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu-frame.json b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu-frame.json new file mode 100644 index 00000000..2e63dc2c --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "back-probe-menu", + "search": [ + 473, + 243, + 1280, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Injected system Back diagnostic with no header keyboard activation. Editor and epoch setup are controlled; it earns no Back repair, hardware-key or TalkBack certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.xml b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.xml new file mode 100644 index 00000000..ec922ecd --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.xml @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-case.json b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-case.json new file mode 100644 index 00000000..14dcc7be --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-case.json @@ -0,0 +1,24 @@ +{ + "scope": "Injected system Back diagnostic with no header keyboard activation. Editor and epoch setup are controlled; it earns no Back repair, hardware-key or TalkBack certification.", + "case": "emojiMenuBackPreservesCallerQueryWithoutKeyboardToggle", + "api": 36, + "font_scale": 1, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "back-probe-epoch-setup", + "before": 2, + "after": 3 + }, + { + "kind": "back-probe-after-injection", + "injection_accepted": false, + "query": "", + "route": "emoji", + "ime_visible": false + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/outer.log b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/outer.log new file mode 100644 index 00000000..d339a987 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/outer.log @@ -0,0 +1,10 @@ +Traceback (most recent call last): + File "/scripts/test-webview-engine.py", line 432, in + main() + ~~~~^^ + File "/scripts/test-webview-engine.py", line 427, in main + require(r['completed'], 'Native outcome failed; inspect retained receipts') + ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/scripts/test-webview-engine.py", line 62, in require + raise ValueError(message) +ValueError: Native outcome failed; inspect retained receipts diff --git a/docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/record.json b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/record.json new file mode 100644 index 00000000..0b98eb84 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/record.json @@ -0,0 +1,88 @@ +{ + "completed": false, + "expected_negative": false, + "suite": "touch-search", + "input_mode": "system", + "runner_sha256": "775233d14eb064bf6636071d89ade59f8a596c518beeb5f6844ea788c613cb7a", + "apk_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d", + "methods": [ + "emojiMenuBackPreservesCallerQueryWithoutKeyboardToggle" + ], + "api": 36, + "font_scale": 1.0, + "layout": "tablet", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 0, + "failures": 1, + "native_expected_outcome": false, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.xml": "4a28ba14d20869a26f7f8041fbcd6b928ec0cda9cd555fa2b8418a6df454caae", + "emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.png": "15fb25e6bd90b7e3c3d2922a53befab40bf7fcacd41a6f596f2b70b04e1b8ff2", + "emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu-frame.json": "1a8b98daf5897621328ff4d246f77ba5f1352eaee3888c215f265a1813e5e9a2", + "emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.xml": "b631ce0aefb65c763d38120445bed59c7ca76002cd304a76b8811f335887e69a", + "emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.png": "3dc56c25e820beee8f502414f36b58ef200150b88ade3aae6525e31f77076aac", + "emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu-frame.json": "7756ba0720372b4760a77b9e8152fd8046384b4c35579a1fdc540915faf566dd", + "emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.xml": "6971b4d3bd36f6cef938e79b9689165a2bfc9df7d742b50603511cf489b8d3f2", + "emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.png": "3a0600c45e0ff73b0c84d7194ca061e7f77683c1cce42b5ec5112fdd16a633a6", + "emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after-frame.json": "3d9890e65b14c452a7bb84a325cbb71d2e0793933809209715d8a95e74ba860b", + "emojimenubackpreservescallerquerywithoutkeyboardtoggle-case.json": "fee4474be8e691a56ebc0e87bd452eeef9f556d21779f345cc4ca52642fde7ca" + }, + "preserved_file_count": 573 +} diff --git a/docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/tests.log b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/tests.log new file mode 100644 index 00000000..ca80de01 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/tests.log @@ -0,0 +1,83 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=1 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.TouchSearchDeviceTest: +INSTRUMENTATION_STATUS: test=emojiMenuBackPreservesCallerQueryWithoutKeyboardToggle +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=1 +INSTRUMENTATION_STATUS: stack=java.lang.AssertionError: Failed to assert the following: (EditableText has exactly 4 UTF-16 units and matching characters) +Semantics of the node: +Node #82 at (l=473.0, t=243.0, r=1280.0, b=315.0)px, Tag: 'emoji-search' +EditableText = '' +TextSelectionRange = 'TextRange(0, 0)' +IsEditable = 'true' +ImeAction = 'Search' +Focused = 'true' +Text = '[Search Emoji & Symbols…]' +Actions = [GetTextLayoutResult, SetText, InsertTextAtCursor, SetSelection, PerformImeAction, OnClick, OnLongClick, PasteText, RequestFocus, SetTextSubstitution, ShowTextSubstitution, ClearTextSubstitution, MagnifierPositionInRoot] +MergeDescendants = 'true' +Has 7 siblings +Selector used: (TestTag = 'emoji-search') + + at androidx.compose.ui.test.AssertionsKt.assert(Assertions.kt:265) + at androidx.compose.ui.test.AssertionsKt.assert$default(Assertions.kt:255) + at dev.tinycast.android.TouchSearchDeviceTest.text(TouchSearchDeviceTest.kt:94) + at dev.tinycast.android.TouchSearchDeviceTest.emojiMenuBackPreservesCallerQueryWithoutKeyboardToggle(TouchSearchDeviceTest.kt:705) + +INSTRUMENTATION_STATUS: stream= +Error in emojiMenuBackPreservesCallerQueryWithoutKeyboardToggle(dev.tinycast.android.TouchSearchDeviceTest): +java.lang.AssertionError: Failed to assert the following: (EditableText has exactly 4 UTF-16 units and matching characters) +Semantics of the node: +Node #82 at (l=473.0, t=243.0, r=1280.0, b=315.0)px, Tag: 'emoji-search' +EditableText = '' +TextSelectionRange = 'TextRange(0, 0)' +IsEditable = 'true' +ImeAction = 'Search' +Focused = 'true' +Text = '[Search Emoji & Symbols…]' +Actions = [GetTextLayoutResult, SetText, InsertTextAtCursor, SetSelection, PerformImeAction, OnClick, OnLongClick, PasteText, RequestFocus, SetTextSubstitution, ShowTextSubstitution, ClearTextSubstitution, MagnifierPositionInRoot] +MergeDescendants = 'true' +Has 7 siblings +Selector used: (TestTag = 'emoji-search') + + at androidx.compose.ui.test.AssertionsKt.assert(Assertions.kt:265) + at androidx.compose.ui.test.AssertionsKt.assert$default(Assertions.kt:255) + at dev.tinycast.android.TouchSearchDeviceTest.text(TouchSearchDeviceTest.kt:94) + at dev.tinycast.android.TouchSearchDeviceTest.emojiMenuBackPreservesCallerQueryWithoutKeyboardToggle(TouchSearchDeviceTest.kt:705) + +INSTRUMENTATION_STATUS: test=emojiMenuBackPreservesCallerQueryWithoutKeyboardToggle +INSTRUMENTATION_STATUS_CODE: -2 +INSTRUMENTATION_RESULT: stream= + +Time: 9.774 +There was 1 failure: +1) emojiMenuBackPreservesCallerQueryWithoutKeyboardToggle(dev.tinycast.android.TouchSearchDeviceTest) +java.lang.AssertionError: Failed to assert the following: (EditableText has exactly 4 UTF-16 units and matching characters) +Semantics of the node: +Node #82 at (l=473.0, t=243.0, r=1280.0, b=315.0)px, Tag: 'emoji-search' +EditableText = '' +TextSelectionRange = 'TextRange(0, 0)' +IsEditable = 'true' +ImeAction = 'Search' +Focused = 'true' +Text = '[Search Emoji & Symbols…]' +Actions = [GetTextLayoutResult, SetText, InsertTextAtCursor, SetSelection, PerformImeAction, OnClick, OnLongClick, PasteText, RequestFocus, SetTextSubstitution, ShowTextSubstitution, ClearTextSubstitution, MagnifierPositionInRoot] +MergeDescendants = 'true' +Has 7 siblings +Selector used: (TestTag = 'emoji-search') + + at androidx.compose.ui.test.AssertionsKt.assert(Assertions.kt:265) + at androidx.compose.ui.test.AssertionsKt.assert$default(Assertions.kt:255) + at dev.tinycast.android.TouchSearchDeviceTest.text(TouchSearchDeviceTest.kt:94) + at dev.tinycast.android.TouchSearchDeviceTest.emojiMenuBackPreservesCallerQueryWithoutKeyboardToggle(TouchSearchDeviceTest.kt:705) + +FAILURES!!! +Tests run: 1, Failures: 1 + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after-frame.json b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after-frame.json new file mode 100644 index 00000000..a8c9b230 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "back-probe-after", + "search": [ + 473, + 243, + 1280, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Injected system Back diagnostic with no header keyboard activation. Editor and epoch setup are controlled; it earns no Back repair, hardware-key or TalkBack certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.xml b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.xml new file mode 100644 index 00000000..945c58b0 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.xml @@ -0,0 +1,340 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu-frame.json b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu-frame.json new file mode 100644 index 00000000..3a5fbf96 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "back-probe-before-menu", + "search": [ + 473, + 243, + 1280, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Injected system Back diagnostic with no header keyboard activation. Editor and epoch setup are controlled; it earns no Back repair, hardware-key or TalkBack certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.xml b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.xml new file mode 100644 index 00000000..c410d961 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.xml @@ -0,0 +1,340 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu-frame.json b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu-frame.json new file mode 100644 index 00000000..2e63dc2c --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "back-probe-menu", + "search": [ + 473, + 243, + 1280, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Injected system Back diagnostic with no header keyboard activation. Editor and epoch setup are controlled; it earns no Back repair, hardware-key or TalkBack certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.xml b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.xml new file mode 100644 index 00000000..12972280 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.xml @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-case.json b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-case.json new file mode 100644 index 00000000..14dcc7be --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-case.json @@ -0,0 +1,24 @@ +{ + "scope": "Injected system Back diagnostic with no header keyboard activation. Editor and epoch setup are controlled; it earns no Back repair, hardware-key or TalkBack certification.", + "case": "emojiMenuBackPreservesCallerQueryWithoutKeyboardToggle", + "api": 36, + "font_scale": 1, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "back-probe-epoch-setup", + "before": 2, + "after": 3 + }, + { + "kind": "back-probe-after-injection", + "injection_accepted": false, + "query": "", + "route": "emoji", + "ime_visible": false + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/outer.log b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/outer.log new file mode 100644 index 00000000..d339a987 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/outer.log @@ -0,0 +1,10 @@ +Traceback (most recent call last): + File "/scripts/test-webview-engine.py", line 432, in + main() + ~~~~^^ + File "/scripts/test-webview-engine.py", line 427, in main + require(r['completed'], 'Native outcome failed; inspect retained receipts') + ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/scripts/test-webview-engine.py", line 62, in require + raise ValueError(message) +ValueError: Native outcome failed; inspect retained receipts diff --git a/docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/record.json b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/record.json new file mode 100644 index 00000000..9703a63f --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/record.json @@ -0,0 +1,88 @@ +{ + "completed": false, + "expected_negative": false, + "suite": "touch-search", + "input_mode": "system", + "runner_sha256": "775233d14eb064bf6636071d89ade59f8a596c518beeb5f6844ea788c613cb7a", + "apk_sha256": "66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d", + "methods": [ + "emojiMenuBackPreservesCallerQueryWithoutKeyboardToggle" + ], + "api": 36, + "font_scale": 1.0, + "layout": "tablet", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 0, + "failures": 1, + "native_expected_outcome": false, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.xml": "10034d48eeb1347070ef7ec2311389874059d38150c7e258cce6dc479633e274", + "emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.png": "b39db1c786e6e7c1bcca8205056dc70ae2df1843e245c1b7990ee8578a64e58e", + "emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu-frame.json": "1a8b98daf5897621328ff4d246f77ba5f1352eaee3888c215f265a1813e5e9a2", + "emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.xml": "10b5f5c022e6d3927e822441d5cdbaf1d5a9136fafd49122428427ed150ce130", + "emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.png": "ad377de731e11c65b682b474f08b0aef9fb70a89977d900ac7acfff63f1ee7df", + "emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu-frame.json": "7756ba0720372b4760a77b9e8152fd8046384b4c35579a1fdc540915faf566dd", + "emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.xml": "514893bdf6891104ac3bb0729f2b704358fdfdda1d95a0640c86db80f120b38d", + "emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.png": "fbc6d89855fcff9d69cc333121fceb9e3d39e64dc1cedea5a412a44ec0d54190", + "emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after-frame.json": "3d9890e65b14c452a7bb84a325cbb71d2e0793933809209715d8a95e74ba860b", + "emojimenubackpreservescallerquerywithoutkeyboardtoggle-case.json": "fee4474be8e691a56ebc0e87bd452eeef9f556d21779f345cc4ca52642fde7ca" + }, + "preserved_file_count": 573 +} diff --git a/docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/tests.log b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/tests.log new file mode 100644 index 00000000..0a334ba9 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/tests.log @@ -0,0 +1,83 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=1 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.TouchSearchDeviceTest: +INSTRUMENTATION_STATUS: test=emojiMenuBackPreservesCallerQueryWithoutKeyboardToggle +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=1 +INSTRUMENTATION_STATUS: stack=java.lang.AssertionError: Failed to assert the following: (EditableText has exactly 4 UTF-16 units and matching characters) +Semantics of the node: +Node #82 at (l=473.0, t=243.0, r=1280.0, b=315.0)px, Tag: 'emoji-search' +EditableText = '' +TextSelectionRange = 'TextRange(0, 0)' +IsEditable = 'true' +ImeAction = 'Search' +Focused = 'true' +Text = '[Search Emoji & Symbols…]' +Actions = [GetTextLayoutResult, SetText, InsertTextAtCursor, SetSelection, PerformImeAction, OnClick, OnLongClick, PasteText, RequestFocus, SetTextSubstitution, ShowTextSubstitution, ClearTextSubstitution, MagnifierPositionInRoot] +MergeDescendants = 'true' +Has 7 siblings +Selector used: (TestTag = 'emoji-search') + + at androidx.compose.ui.test.AssertionsKt.assert(Assertions.kt:265) + at androidx.compose.ui.test.AssertionsKt.assert$default(Assertions.kt:255) + at dev.tinycast.android.TouchSearchDeviceTest.text(TouchSearchDeviceTest.kt:94) + at dev.tinycast.android.TouchSearchDeviceTest.emojiMenuBackPreservesCallerQueryWithoutKeyboardToggle(TouchSearchDeviceTest.kt:705) + +INSTRUMENTATION_STATUS: stream= +Error in emojiMenuBackPreservesCallerQueryWithoutKeyboardToggle(dev.tinycast.android.TouchSearchDeviceTest): +java.lang.AssertionError: Failed to assert the following: (EditableText has exactly 4 UTF-16 units and matching characters) +Semantics of the node: +Node #82 at (l=473.0, t=243.0, r=1280.0, b=315.0)px, Tag: 'emoji-search' +EditableText = '' +TextSelectionRange = 'TextRange(0, 0)' +IsEditable = 'true' +ImeAction = 'Search' +Focused = 'true' +Text = '[Search Emoji & Symbols…]' +Actions = [GetTextLayoutResult, SetText, InsertTextAtCursor, SetSelection, PerformImeAction, OnClick, OnLongClick, PasteText, RequestFocus, SetTextSubstitution, ShowTextSubstitution, ClearTextSubstitution, MagnifierPositionInRoot] +MergeDescendants = 'true' +Has 7 siblings +Selector used: (TestTag = 'emoji-search') + + at androidx.compose.ui.test.AssertionsKt.assert(Assertions.kt:265) + at androidx.compose.ui.test.AssertionsKt.assert$default(Assertions.kt:255) + at dev.tinycast.android.TouchSearchDeviceTest.text(TouchSearchDeviceTest.kt:94) + at dev.tinycast.android.TouchSearchDeviceTest.emojiMenuBackPreservesCallerQueryWithoutKeyboardToggle(TouchSearchDeviceTest.kt:705) + +INSTRUMENTATION_STATUS: test=emojiMenuBackPreservesCallerQueryWithoutKeyboardToggle +INSTRUMENTATION_STATUS_CODE: -2 +INSTRUMENTATION_RESULT: stream= + +Time: 10.472 +There was 1 failure: +1) emojiMenuBackPreservesCallerQueryWithoutKeyboardToggle(dev.tinycast.android.TouchSearchDeviceTest) +java.lang.AssertionError: Failed to assert the following: (EditableText has exactly 4 UTF-16 units and matching characters) +Semantics of the node: +Node #82 at (l=473.0, t=243.0, r=1280.0, b=315.0)px, Tag: 'emoji-search' +EditableText = '' +TextSelectionRange = 'TextRange(0, 0)' +IsEditable = 'true' +ImeAction = 'Search' +Focused = 'true' +Text = '[Search Emoji & Symbols…]' +Actions = [GetTextLayoutResult, SetText, InsertTextAtCursor, SetSelection, PerformImeAction, OnClick, OnLongClick, PasteText, RequestFocus, SetTextSubstitution, ShowTextSubstitution, ClearTextSubstitution, MagnifierPositionInRoot] +MergeDescendants = 'true' +Has 7 siblings +Selector used: (TestTag = 'emoji-search') + + at androidx.compose.ui.test.AssertionsKt.assert(Assertions.kt:265) + at androidx.compose.ui.test.AssertionsKt.assert$default(Assertions.kt:255) + at dev.tinycast.android.TouchSearchDeviceTest.text(TouchSearchDeviceTest.kt:94) + at dev.tinycast.android.TouchSearchDeviceTest.emojiMenuBackPreservesCallerQueryWithoutKeyboardToggle(TouchSearchDeviceTest.kt:705) + +FAILURES!!! +Tests run: 1, Failures: 1 + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..8a441086 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,59 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "emojiKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 1, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1856, + 106, + 1982, + 232 + ], + "visible": [ + 1856, + 106, + 1982, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Show on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": true, + "reached_expected_state": false + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json new file mode 100644 index 00000000..5295b9ee --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-after-hide", + "search": [ + 317, + 106, + 1730, + 232 + ], + "ime_visible": true, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml new file mode 100644 index 00000000..634a20d3 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml @@ -0,0 +1,356 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..0b6373c2 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,59 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 1, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Show on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": true, + "reached_expected_state": false + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json new file mode 100644 index 00000000..e14bd500 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-after-hide", + "search": [ + 318, + 106, + 1861, + 232 + ], + "ime_visible": true, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml new file mode 100644 index 00000000..56d4288a --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml @@ -0,0 +1,354 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/outer.log b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/outer.log new file mode 100644 index 00000000..3afa601d --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/outer.log @@ -0,0 +1,10 @@ +Traceback (most recent call last): + File "/scripts/test-webview-engine.py", line 428, in + main() + ~~~~^^ + File "/scripts/test-webview-engine.py", line 423, in main + require(r['completed'], 'Native outcome failed; inspect retained receipts') + ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/scripts/test-webview-engine.py", line 58, in require + raise ValueError(message) +ValueError: Native outcome failed; inspect retained receipts diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/record.json b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/record.json new file mode 100644 index 00000000..a5a66fc5 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/record.json @@ -0,0 +1,99 @@ +{ + "completed": false, + "expected_negative": false, + "suite": "touch-search", + "input_mode": "system", + "runner_sha256": "e02a804be8040b5d6ec5b00c09eaa1492b4f702fbbfbcd491099bd5226c4edea", + "apk_sha256": "66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c", + "test_apk_sha256": "ba781590ada744782b7ccfa9d055db96bd3810a303e50f6e18bb2672c5305062", + "methods": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "api": 36, + "font_scale": 1.0, + "layout": "landscape", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 0, + "failures": 2, + "native_expected_outcome": false, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "6d2eff290e3fa5412bffe578efd48be3b35f51f21e3a0c5eb52f734814a56fec", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "58e10391cc2948bb77ecea86d2a91e8eff218badb932cf35bf5fea885d830c63", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "5b9bafd96f811b0cb4b83df751ae0aed3a948cd5b453da1fef483c8610236b86", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "6d2eff290e3fa5412bffe578efd48be3b35f51f21e3a0c5eb52f734814a56fec", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "cc04994989f6967a4974aa70d06db2f74139022b4426656b55726084c28ac497", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "1813955009e7148a125948107b5b471d1cd9fe7ff2334928922aaf9c465b8f39", + "emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "b9a115f99dde7ae29b313b655c4ce490f4544ebdca23f1d1119c3ba8f963b55c", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "efcb49e90f78cc62002e06615da8ae1058a88faca61f7be8945234516360d58e", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "380ff17c463dffe3fa10faef493c4030ccdbeb085a22a625d08f7b0456e6889c", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "30324492b9b32081f8dbe3393aa8580263fd77079f7fa28dfc5fbbf79271d478", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "05fe6f2353e267903463362f06b3c463e712c81fd4b4df849f6913e0990dc61c", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "d9bf0468c115576e4c655634c7d4993648cebb4a17852b037d76f0c54b7873ae", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "b2050027d7e41ce99f99b847788d96978c631fa132d7c2746ca0de8050e50ca4", + "launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "573b25cbc8263dccaf1962f3945cd197d59f0d330e6fd028a9ec297f92773049" + }, + "preserved_file_count": 573 +} diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/tests.log b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/tests.log new file mode 100644 index 00000000..6ab77683 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/tests.log @@ -0,0 +1,83 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.TouchSearchDeviceTest: +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stack=java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:534) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:562) + +INSTRUMENTATION_STATUS: stream= +Error in emojiKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest): +java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:534) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:562) + +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: -2 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stack=java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:534) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:561) + +INSTRUMENTATION_STATUS: stream= +Error in launcherKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest): +java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:534) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:561) + +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: -2 +INSTRUMENTATION_RESULT: stream= + +Time: 24.709 +There were 2 failures: +1) emojiKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest) +java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:534) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:562) +2) launcherKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest) +java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:534) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:561) + +FAILURES!!! +Tests run: 2, Failures: 2 + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..672c11f7 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,12 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "emojiKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 2, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..893fa99a --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,59 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 2, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Show on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": true, + "reached_expected_state": false + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json new file mode 100644 index 00000000..79f7194a --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-after-hide", + "search": [ + 318, + 106, + 1861, + 232 + ], + "ime_visible": true, + "api": 36, + "font_scale": 2, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml new file mode 100644 index 00000000..f4d918a0 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml @@ -0,0 +1,353 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/outer.log b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/outer.log new file mode 100644 index 00000000..3afa601d --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/outer.log @@ -0,0 +1,10 @@ +Traceback (most recent call last): + File "/scripts/test-webview-engine.py", line 428, in + main() + ~~~~^^ + File "/scripts/test-webview-engine.py", line 423, in main + require(r['completed'], 'Native outcome failed; inspect retained receipts') + ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/scripts/test-webview-engine.py", line 58, in require + raise ValueError(message) +ValueError: Native outcome failed; inspect retained receipts diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/record.json b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/record.json new file mode 100644 index 00000000..7b1da9cd --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/record.json @@ -0,0 +1,93 @@ +{ + "completed": false, + "expected_negative": false, + "suite": "touch-search", + "input_mode": "system", + "runner_sha256": "e02a804be8040b5d6ec5b00c09eaa1492b4f702fbbfbcd491099bd5226c4edea", + "apk_sha256": "66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c", + "test_apk_sha256": "ba781590ada744782b7ccfa9d055db96bd3810a303e50f6e18bb2672c5305062", + "methods": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "api": 36, + "font_scale": 2.0, + "layout": "landscape", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 0, + "failures": 2, + "native_expected_outcome": false, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "294146063f415e6656571427e2f0f2af9204bf6acef679c04f8c5e49388b55e6", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "3dde55fd435b237087a6f856949b9b7e63837f87ec52502000eb4b96bc98ca92", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "c88312f9329c5fe887f93e45ff69b7f8cba5c41c01adc5f9dff9ecf4620da87a", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "3aee75b3c779520e9185f1b51a1c081d1d434e38c15856f3d87264cb2be4699e", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "975b704f979a1b0e1d7880ce1306b36bf4635e09514edc260c273e0570f99ed6", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "374311ce389a4ad14ab7103680002a087f5b1a6ddc115f1e0d2dc00ea0a7485f", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "ece83da11ff1e600cfe5f07186c5251a1060df6f741c839e0c6e9716a3929fc3", + "launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "729320903eb68e5598054816520a960f7bd5dfe36c3bfbfba69473ca2c4c750e" + }, + "preserved_file_count": 573 +} diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/tests.log b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/tests.log new file mode 100644 index 00000000..b6794cd7 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/tests.log @@ -0,0 +1,83 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.TouchSearchDeviceTest: +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stack=androidx.compose.ui.test.ComposeTimeoutException: Condition still not satisfied after 10000 ms + at androidx.compose.ui.test.AndroidComposeUiTestEnvironment$AndroidComposeUiTestImpl.waitUntil(ComposeUiTest.android.kt:441) + at androidx.compose.ui.test.junit4.AndroidComposeTestRule.waitUntil(AndroidComposeTestRule.android.kt:306) + at dev.tinycast.android.TouchSearchDeviceTest.keyboard(TouchSearchDeviceTest.kt:88) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:528) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:562) + +INSTRUMENTATION_STATUS: stream= +Error in emojiKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest): +androidx.compose.ui.test.ComposeTimeoutException: Condition still not satisfied after 10000 ms + at androidx.compose.ui.test.AndroidComposeUiTestEnvironment$AndroidComposeUiTestImpl.waitUntil(ComposeUiTest.android.kt:441) + at androidx.compose.ui.test.junit4.AndroidComposeTestRule.waitUntil(AndroidComposeTestRule.android.kt:306) + at dev.tinycast.android.TouchSearchDeviceTest.keyboard(TouchSearchDeviceTest.kt:88) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:528) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:562) + +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: -2 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stack=java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:534) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:561) + +INSTRUMENTATION_STATUS: stream= +Error in launcherKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest): +java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:534) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:561) + +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: -2 +INSTRUMENTATION_RESULT: stream= + +Time: 25.478 +There were 2 failures: +1) emojiKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest) +androidx.compose.ui.test.ComposeTimeoutException: Condition still not satisfied after 10000 ms + at androidx.compose.ui.test.AndroidComposeUiTestEnvironment$AndroidComposeUiTestImpl.waitUntil(ComposeUiTest.android.kt:441) + at androidx.compose.ui.test.junit4.AndroidComposeTestRule.waitUntil(AndroidComposeTestRule.android.kt:306) + at dev.tinycast.android.TouchSearchDeviceTest.keyboard(TouchSearchDeviceTest.kt:88) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:528) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:562) +2) launcherKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest) +java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:534) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:561) + +FAILURES!!! +Tests run: 2, Failures: 2 + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..03d07fe4 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,86 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "emojiKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 1, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1856, + 106, + 1982, + 232 + ], + "visible": [ + 1856, + 106, + 1982, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1856, + 106, + 1982, + 232 + ], + "visible": [ + 1856, + 106, + 1982, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Show on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": true, + "reached_expected_state": false + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json new file mode 100644 index 00000000..5295b9ee --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-after-hide", + "search": [ + 317, + 106, + 1730, + 232 + ], + "ime_visible": true, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml new file mode 100644 index 00000000..2b594692 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml @@ -0,0 +1,356 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..26f41f9d --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,86 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 1, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Show on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": true, + "reached_expected_state": false + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json new file mode 100644 index 00000000..e14bd500 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-after-hide", + "search": [ + 318, + 106, + 1861, + 232 + ], + "ime_visible": true, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml new file mode 100644 index 00000000..49d96e3b --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml @@ -0,0 +1,354 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/outer.log b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/outer.log new file mode 100644 index 00000000..3afa601d --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/outer.log @@ -0,0 +1,10 @@ +Traceback (most recent call last): + File "/scripts/test-webview-engine.py", line 428, in + main() + ~~~~^^ + File "/scripts/test-webview-engine.py", line 423, in main + require(r['completed'], 'Native outcome failed; inspect retained receipts') + ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/scripts/test-webview-engine.py", line 58, in require + raise ValueError(message) +ValueError: Native outcome failed; inspect retained receipts diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/record.json b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/record.json new file mode 100644 index 00000000..b5193dbf --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/record.json @@ -0,0 +1,105 @@ +{ + "completed": false, + "expected_negative": false, + "suite": "touch-search", + "input_mode": "system", + "runner_sha256": "e02a804be8040b5d6ec5b00c09eaa1492b4f702fbbfbcd491099bd5226c4edea", + "apk_sha256": "66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c", + "test_apk_sha256": "b08f6a53b8b1ba5fe1bbc5309395c6f877aeb6ef1e01e843caabf939cb8aa28c", + "methods": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "api": 36, + "font_scale": 1.0, + "layout": "landscape", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 0, + "failures": 2, + "native_expected_outcome": false, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml": "6bcf5b687f251971103374a4882bf973a3630b6b9cfb035c3bb707f1ff48507a", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png": "bde1e9566031c59ff2572c76f3636bb8df782518363ceb11e9e058a83f9bd7f4", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json": "9a3eadc4b50cceb0886feb0af9d1758b3c613cfb8295bd969b9606c0178b9c55", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "6bcf5b687f251971103374a4882bf973a3630b6b9cfb035c3bb707f1ff48507a", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "af3efc6946d8bb571a534030f1b2147df83e347cecb0f018d5c291010f50586b", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "5b9bafd96f811b0cb4b83df751ae0aed3a948cd5b453da1fef483c8610236b86", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "b885654f67d10039ed78970d9459661795a3ef8afc64e2b8909a98260566e486", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "51909b2c90cdd4ee1eb432ffda148abc1b04bdb691245531cc19fc28612ad302", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "1813955009e7148a125948107b5b471d1cd9fe7ff2334928922aaf9c465b8f39", + "emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "2cad14379782102b85a376eef0f3112f13c780eefd10ad4dcd15fca4c24c4cad", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml": "bdd02edfed5e1d5e7d0e86ff1f9ee40e0ca42fe00cf76e7b0fbbd6e9de66988f", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png": "8dc13933dcd28108bf59736c3702ca7fd395f8d533665c4dc695127fe36637c5", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json": "73a1acba609037c73ccf5bd54de8011f86a8861e3f0f4d08f2f45123768e53eb", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "7692e749a3a0c84eaa3b07c1df853c7fd52709dbe0ff8ce9aab8e0b6e19d89f7", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "ec3d8e27b8373a9905ec2f7205a6221cb6300f688f14dc31246914b644672bb0", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "30324492b9b32081f8dbe3393aa8580263fd77079f7fa28dfc5fbbf79271d478", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "068805831a0a433df2bbd4cfc8d04754e3cce5a325d9e3e3aa9d80db1e74ccbe", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "735aca8eeb3b66dc168247fc2179ad01a8e4e94865ad43ad4dfd144e309ab45e", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "b2050027d7e41ce99f99b847788d96978c631fa132d7c2746ca0de8050e50ca4", + "launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "cd8e6159eaa739cf0c6973350d36b4479016d94d390007626af0385fd679a42f" + }, + "preserved_file_count": 573 +} diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/tests.log b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/tests.log new file mode 100644 index 00000000..8a52ab70 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/tests.log @@ -0,0 +1,89 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.TouchSearchDeviceTest: +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stack=java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:565) + +INSTRUMENTATION_STATUS: stream= +Error in emojiKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest): +java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:565) + +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: -2 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stack=java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:564) + +INSTRUMENTATION_STATUS: stream= +Error in launcherKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest): +java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:564) + +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: -2 +INSTRUMENTATION_RESULT: stream= + +Time: 24.566 +There were 2 failures: +1) emojiKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest) +java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:565) +2) launcherKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest) +java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:564) + +FAILURES!!! +Tests run: 2, Failures: 2 + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..545a2db1 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,86 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "emojiKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 2, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1824, + 107, + 1950, + 233 + ], + "visible": [ + 1824, + 107, + 1950, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1824, + 107, + 1950, + 233 + ], + "visible": [ + 1824, + 107, + 1950, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Show on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": true, + "reached_expected_state": false + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json new file mode 100644 index 00000000..b80e6660 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-after-hide", + "search": [ + 317, + 107, + 1698, + 233 + ], + "ime_visible": true, + "api": 36, + "font_scale": 2, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml new file mode 100644 index 00000000..2214c050 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml @@ -0,0 +1,356 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..ecbff2ca --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,86 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 2, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Show on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": true, + "reached_expected_state": false + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json new file mode 100644 index 00000000..79f7194a --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-after-hide", + "search": [ + 318, + 106, + 1861, + 232 + ], + "ime_visible": true, + "api": 36, + "font_scale": 2, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml new file mode 100644 index 00000000..492fe2c7 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml @@ -0,0 +1,353 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/outer.log b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/outer.log new file mode 100644 index 00000000..3afa601d --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/outer.log @@ -0,0 +1,10 @@ +Traceback (most recent call last): + File "/scripts/test-webview-engine.py", line 428, in + main() + ~~~~^^ + File "/scripts/test-webview-engine.py", line 423, in main + require(r['completed'], 'Native outcome failed; inspect retained receipts') + ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/scripts/test-webview-engine.py", line 58, in require + raise ValueError(message) +ValueError: Native outcome failed; inspect retained receipts diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/record.json b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/record.json new file mode 100644 index 00000000..d6637d2c --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/record.json @@ -0,0 +1,105 @@ +{ + "completed": false, + "expected_negative": false, + "suite": "touch-search", + "input_mode": "system", + "runner_sha256": "e02a804be8040b5d6ec5b00c09eaa1492b4f702fbbfbcd491099bd5226c4edea", + "apk_sha256": "66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c", + "test_apk_sha256": "b08f6a53b8b1ba5fe1bbc5309395c6f877aeb6ef1e01e843caabf939cb8aa28c", + "methods": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "api": 36, + "font_scale": 2.0, + "layout": "landscape", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 0, + "failures": 2, + "native_expected_outcome": false, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml": "5e108961a8aba37fb4436990f645d128c32c77af13c7ef02d1500e4a24b4a60b", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png": "5cc66455d715901a81cad4b8634c0ee1945bf425bb612556955a550267137bdd", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json": "fd010edfb5b7df9e4c92988af191a61b1e047821d894459fb6f1b4beaba0e03c", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "5e108961a8aba37fb4436990f645d128c32c77af13c7ef02d1500e4a24b4a60b", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "95ec90283366d4258413bfba41fd95299cedb0dcf0f1c715d0ef434cfada2bf8", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "36af18583a084fae09c1c554508c3d1828aa761d6875890b05031c68d36eef28", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "02aec88e136336bc433d648d3bb3719b935ad6eb9a9f666085806736004321d0", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "abcf3cb8a340b85214f51795fced7901fb14b237d0c44b58387d8a2c4cbd07ac", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "03e206efabc8c009a17acc85d24b4d16faa74934e967dd92d18094ab3fb4f772", + "emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "3fb46039ec47f89270b1c0972ec95b4b1c5f8252aea186f34b515872318c529c", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml": "d0e2f1543412ec295670332b1464edfc088d5e06a2dbae4f5786178519068d4d", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png": "db4a67929ab002506bd44f69e0e0a21e22aabe4a493a5371f2bc8af70e084a1a", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json": "e5b6554c76db6c95fff540693e774594a8179427e385d3d7a9a469044652a567", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "5b0238aba4982c006023503cebb7c3edc9719976a080a3f8e9275534f190d117", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "967dea786a85edb688797b7f099e9ac50f1d7eb499b302cc29fc169f9cbbc915", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "3aee75b3c779520e9185f1b51a1c081d1d434e38c15856f3d87264cb2be4699e", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "1f87870a930e9350e9a0d1fbfe68177d3f1f43d2bd7c8a39dd4964e5bbc8710f", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "74a618f3947baeb8c15d241b9c9e157f60e72a306ca1bb68109c860eadc627c5", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "ece83da11ff1e600cfe5f07186c5251a1060df6f741c839e0c6e9716a3929fc3", + "launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "55b861597acea563d4881dcf94294c13f7aee4f759f181473e355bd113029545" + }, + "preserved_file_count": 573 +} diff --git a/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/tests.log b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/tests.log new file mode 100644 index 00000000..424ce36d --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/tests.log @@ -0,0 +1,89 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.TouchSearchDeviceTest: +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stack=java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:565) + +INSTRUMENTATION_STATUS: stream= +Error in emojiKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest): +java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:565) + +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: -2 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stack=java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:564) + +INSTRUMENTATION_STATUS: stream= +Error in launcherKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest): +java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:564) + +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: -2 +INSTRUMENTATION_RESULT: stream= + +Time: 25.271 +There were 2 failures: +1) emojiKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest) +java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:565) +2) launcherKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest) +java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:564) + +FAILURES!!! +Tests run: 2, Failures: 2 + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json b/docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json new file mode 100644 index 00000000..9f698d62 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json @@ -0,0 +1,105 @@ +{ + "scope": "Controlled retained native callbacks; live visibility transitions use actual pointer actions. No physical queued-input or cross-window certification.", + "case": "emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "api": 36, + "font_scale": 1, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-first-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-live-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-live-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json b/docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json new file mode 100644 index 00000000..15402b9b --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-guard-obsolete-mode", + "search": [ + 473, + 243, + 1280, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Controlled retained native callbacks; live visibility transitions use actual pointer actions. No physical queued-input or cross-window certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml b/docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml new file mode 100644 index 00000000..f0c72ae1 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml @@ -0,0 +1,340 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json b/docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json new file mode 100644 index 00000000..d04d71d0 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json @@ -0,0 +1,105 @@ +{ + "scope": "Controlled retained native callbacks; live visibility transitions use actual pointer actions. No physical queued-input or cross-window certification.", + "case": "launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "api": 36, + "font_scale": 1, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-first-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-live-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-live-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json b/docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json new file mode 100644 index 00000000..7804d457 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-guard-obsolete-mode", + "search": [ + 473, + 243, + 1355, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Controlled retained native callbacks; live visibility transitions use actual pointer actions. No physical queued-input or cross-window certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml b/docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml new file mode 100644 index 00000000..dcee6e37 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/outer.log b/docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/outer.log new file mode 100644 index 00000000..7c1878e9 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/outer.log @@ -0,0 +1,10 @@ +Traceback (most recent call last): + File "/scripts/test-webview-engine.py", line 430, in + main() + ~~~~^^ + File "/scripts/test-webview-engine.py", line 425, in main + require(r['completed'], 'Native outcome failed; inspect retained receipts') + ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/scripts/test-webview-engine.py", line 60, in require + raise ValueError(message) +ValueError: Native outcome failed; inspect retained receipts diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/record.json b/docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/record.json new file mode 100644 index 00000000..7c3fbfb0 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/record.json @@ -0,0 +1,105 @@ +{ + "completed": false, + "expected_negative": false, + "suite": "touch-search", + "input_mode": "system", + "runner_sha256": "d7fc4bccc15eca35d2af00fcb7a9cda594a3c5fe5fb336785b3a2efea4745c1a", + "apk_sha256": "32e2726d35d1c01fe488aa0781a3a0d67d99498699f7121ab4ad2f1be95e5286", + "test_apk_sha256": "931201bf4e68fbe15577ab310d4cc829cb8c4c9d1809a67f919cf93b01d2f14c", + "methods": [ + "launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus" + ], + "api": 36, + "font_scale": 1.0, + "layout": "tablet", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 0, + "failures": 2, + "native_expected_outcome": false, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.xml": "b52f0752d9b0df763500c3eddac923947f7c12fd7928bd9d34e41323b20a0491", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.png": "70ce56cebd7ac93a9504952ff91faa3ba4f5b0220fe4748ccffac5e1a2c8cb09", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show-frame.json": "4bda7f266af8cd34912cb251fb98f307c9831a9b8e950951ce80fece74ce434b", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.xml": "ebdb544eae719f91af063a1a6d0494e36b1eed51498c578a4347e654344902dd", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.png": "9ed3b4b5d301ca916e6cbe90b1191f140939547a0103cbd2143f5d8aae06961c", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide-frame.json": "0853b17700b2db730dd78459caa6b0ecb1411e92cc902e069b383603a16a57d7", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.xml": "b52f0752d9b0df763500c3eddac923947f7c12fd7928bd9d34e41323b20a0491", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.png": "3df836d388f2442632a49ea6fec7b0d00a1c86c3712e8c8eee83cffb7071ddca", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show-frame.json": "2bf3a286716d1fd8c7790feeb262a49f6792eb19cf2feb370895fc30252ea277", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml": "ebdb544eae719f91af063a1a6d0494e36b1eed51498c578a4347e654344902dd", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png": "cdd9e613420ea1bb81e667230705b6cf6b251439e11a3579ab26dd5bbb66073d", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json": "11e3c14df5a65af4d01fec89eaad41aac0951525cd8bb618f7e622a5b2f701d0", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json": "08ff6a5a9ee267157e82bd2dc04b38c8cf5b67e40ae6228e471a3f19027f3ab8", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.xml": "71f74f5af570f6c009b8d2ba96642261b788be1bc1b58be33c02690d5fb22f3c", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.png": "8c9866745b079b69be506eb2f5bffef15eee55a9b5034e8c2f45947ccc535ef4", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show-frame.json": "d7c4bd0549724e1d28c9e9facfc67ee9ee0b6276fd3863ce8ea55ea6dff84fa7", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.xml": "2f673828c3776ffd2d6ee034bea0ab8d046ef1a343c63562af560127475b6dfe", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.png": "cd4f7368eb484deada1647c55747b6b0646821e9b8061c99d56590ed05247d4c", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide-frame.json": "6d97a7f5ff9365643b33ed2059aa72345dd1265c28fd0466ec0c0e99e348582c", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.xml": "71f74f5af570f6c009b8d2ba96642261b788be1bc1b58be33c02690d5fb22f3c", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.png": "2cd9495ca3635c8eb9d6fd0b33b58371b01fecb1e4db9b40b10307519b577f26", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show-frame.json": "76cba8f2c6975ed77555a10612ae2265615e3ea786af16751bc33d8fd5b295e9", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml": "2f673828c3776ffd2d6ee034bea0ab8d046ef1a343c63562af560127475b6dfe", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png": "f139e4b14922614750acb8eb0b8702409823bac1833ca629587df297282c1e61", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json": "cfaa0717cb125ece3527ef23021d187d8582f01abacb0b059ac9c810f9f811b6", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json": "bacbb97b3373aafa9cf223c6080197ee96ba9f60b20e4362ba49ef258b04f312" + }, + "preserved_file_count": 573 +} diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/tests.log b/docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/tests.log new file mode 100644 index 00000000..f1593c0b --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/tests.log @@ -0,0 +1,89 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.TouchSearchDeviceTest: +INSTRUMENTATION_STATUS: test=emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stack=java.lang.AssertionError: Obsolete or obstructed keyboard callback must not change visibility: keyboard-guard-obsolete-mode expected: but was: + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.failNotEquals(Assert.java:835) + at org.junit.Assert.assertEquals(Assert.java:120) + at dev.tinycast.android.TouchSearchDeviceTest.rejectedKeyboardCallback(TouchSearchDeviceTest.kt:574) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardCallbackFlow(TouchSearchDeviceTest.kt:591) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(TouchSearchDeviceTest.kt:631) + +INSTRUMENTATION_STATUS: stream= +Error in emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(dev.tinycast.android.TouchSearchDeviceTest): +java.lang.AssertionError: Obsolete or obstructed keyboard callback must not change visibility: keyboard-guard-obsolete-mode expected: but was: + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.failNotEquals(Assert.java:835) + at org.junit.Assert.assertEquals(Assert.java:120) + at dev.tinycast.android.TouchSearchDeviceTest.rejectedKeyboardCallback(TouchSearchDeviceTest.kt:574) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardCallbackFlow(TouchSearchDeviceTest.kt:591) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(TouchSearchDeviceTest.kt:631) + +INSTRUMENTATION_STATUS: test=emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus +INSTRUMENTATION_STATUS_CODE: -2 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stack=java.lang.AssertionError: Obsolete or obstructed keyboard callback must not change visibility: keyboard-guard-obsolete-mode expected: but was: + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.failNotEquals(Assert.java:835) + at org.junit.Assert.assertEquals(Assert.java:120) + at dev.tinycast.android.TouchSearchDeviceTest.rejectedKeyboardCallback(TouchSearchDeviceTest.kt:574) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardCallbackFlow(TouchSearchDeviceTest.kt:591) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(TouchSearchDeviceTest.kt:630) + +INSTRUMENTATION_STATUS: stream= +Error in launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(dev.tinycast.android.TouchSearchDeviceTest): +java.lang.AssertionError: Obsolete or obstructed keyboard callback must not change visibility: keyboard-guard-obsolete-mode expected: but was: + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.failNotEquals(Assert.java:835) + at org.junit.Assert.assertEquals(Assert.java:120) + at dev.tinycast.android.TouchSearchDeviceTest.rejectedKeyboardCallback(TouchSearchDeviceTest.kt:574) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardCallbackFlow(TouchSearchDeviceTest.kt:591) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(TouchSearchDeviceTest.kt:630) + +INSTRUMENTATION_STATUS: test=launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus +INSTRUMENTATION_STATUS_CODE: -2 +INSTRUMENTATION_RESULT: stream= + +Time: 26.651 +There were 2 failures: +1) emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(dev.tinycast.android.TouchSearchDeviceTest) +java.lang.AssertionError: Obsolete or obstructed keyboard callback must not change visibility: keyboard-guard-obsolete-mode expected: but was: + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.failNotEquals(Assert.java:835) + at org.junit.Assert.assertEquals(Assert.java:120) + at dev.tinycast.android.TouchSearchDeviceTest.rejectedKeyboardCallback(TouchSearchDeviceTest.kt:574) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardCallbackFlow(TouchSearchDeviceTest.kt:591) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(TouchSearchDeviceTest.kt:631) +2) launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(dev.tinycast.android.TouchSearchDeviceTest) +java.lang.AssertionError: Obsolete or obstructed keyboard callback must not change visibility: keyboard-guard-obsolete-mode expected: but was: + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.failNotEquals(Assert.java:835) + at org.junit.Assert.assertEquals(Assert.java:120) + at dev.tinycast.android.TouchSearchDeviceTest.rejectedKeyboardCallback(TouchSearchDeviceTest.kt:574) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardCallbackFlow(TouchSearchDeviceTest.kt:591) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(TouchSearchDeviceTest.kt:630) + +FAILURES!!! +Tests run: 2, Failures: 2 + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..143b0e58 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,329 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "emojiKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 2, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1824, + 107, + 1950, + 233 + ], + "visible": [ + 1824, + 107, + 1950, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1824, + 107, + 1950, + 233 + ], + "visible": [ + 1824, + 107, + 1950, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": false, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Selected Emoji result", + "full": [ + 218, + 409, + 399, + 556 + ], + "visible": [ + 218, + 409, + 399, + 556 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-result-viewport", + "query": "face", + "before": [ + 186, + 95, + 2155, + 313 + ], + "after": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1824, + 107, + 1950, + 233 + ], + "visible": [ + 1824, + 107, + 1950, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1824, + 107, + 1950, + 233 + ], + "visible": [ + 1824, + 107, + 1950, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1824, + 107, + 1950, + 233 + ], + "visible": [ + 1824, + 107, + 1950, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": false, + "route": "emoji" + }, + { + "kind": "keyboard-result-viewport", + "query": "", + "before": [ + 186, + 95, + 2155, + 313 + ], + "after": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1824, + 107, + 1950, + 233 + ], + "visible": [ + 1824, + 107, + 1950, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json new file mode 100644 index 00000000..4da383ff --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-after-hide", + "search": [ + 317, + 107, + 1698, + 233 + ], + "ime_visible": false, + "api": 36, + "font_scale": 2, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml b/docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml new file mode 100644 index 00000000..dec9fe53 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..270bb78e --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,354 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 2, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": false, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Selected launcher result", + "full": [ + 207, + 402, + 2134, + 621 + ], + "visible": [ + 207, + 402, + 2134, + 621 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-result-line", + "text": "Settings", + "line": 0, + "full": [ + 322, + 418, + 588.30774, + 516 + ], + "visible": [ + 322, + 418, + 590, + 516 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ], + "complete": true, + "ellipsized": false + }, + { + "kind": "keyboard-result-viewport", + "query": "settings", + "before": [ + 186, + 95, + 2155, + 313 + ], + "after": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": false, + "route": "launcher" + }, + { + "kind": "keyboard-result-viewport", + "query": "", + "before": [ + 186, + 95, + 2155, + 313 + ], + "after": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json new file mode 100644 index 00000000..992a65e7 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-after-hide", + "search": [ + 318, + 106, + 1861, + 232 + ], + "ime_visible": false, + "api": 36, + "font_scale": 2, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml b/docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml new file mode 100644 index 00000000..b988a2b4 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-landscape200/outer.log b/docs/validation/keyboard-toggle/cohorts/candidate-landscape200/outer.log new file mode 100644 index 00000000..bcb1de14 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-landscape200/outer.log @@ -0,0 +1 @@ +{"completed": true, "passes": 2, "failures": 0, "expected_negative": false, "preserved_file_count": 573} diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-landscape200/record.json b/docs/validation/keyboard-toggle/cohorts/candidate-landscape200/record.json new file mode 100644 index 00000000..f78387ce --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-landscape200/record.json @@ -0,0 +1,135 @@ +{ + "completed": true, + "expected_negative": false, + "suite": "touch-search", + "input_mode": "system", + "runner_sha256": "d7fc4bccc15eca35d2af00fcb7a9cda594a3c5fe5fb336785b3a2efea4745c1a", + "apk_sha256": "32e2726d35d1c01fe488aa0781a3a0d67d99498699f7121ab4ad2f1be95e5286", + "test_apk_sha256": "931201bf4e68fbe15577ab310d4cc829cb8c4c9d1809a67f919cf93b01d2f14c", + "methods": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "api": 36, + "font_scale": 2.0, + "layout": "landscape", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 2, + "failures": 0, + "native_expected_outcome": true, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml": "f2a3e86dbd35b67558c9d940a9e15a7e88a234e07156de883d6c9348003742ad", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png": "e05e1552ad76e657b23c1422e72915a5bf97663a499e0421d37bae6dcff5e204", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json": "fd010edfb5b7df9e4c92988af191a61b1e047821d894459fb6f1b4beaba0e03c", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "f2a3e86dbd35b67558c9d940a9e15a7e88a234e07156de883d6c9348003742ad", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "50b90623a4941d835750b3d39f57d7e8700c361b6bf031c050c925b611f75812", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "36af18583a084fae09c1c554508c3d1828aa761d6875890b05031c68d36eef28", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "342663802aaae0551cc1bc46f76b534237bc5403cfd5eab4576f962e0cf54b40", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "39be7639b365e6393083daa323bc4e8eea74b453217ae359396abff6a3443b96", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "25eaf8e602a6b519869334b56598c27ac9454f8ea7ab9a05233f41327bac9b2c", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml": "a8365241bad377c0133cbb40e94946df4d0e10d9fa9f9bdac215cb87a3c10935", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png": "16b721158b8204c4d5aca787ed2f5f6963531870ac0f8c3942adf8470dfb9c37", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json": "93528d221bffdc7c90bb731b2d842ca5f230c9c19627308ed50a1e0f056f6809", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml": "669287e7866e5a806d9026acacf8df1fb3c6912b7bdd7ab695d7ca10a8605eb4", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png": "6d2478360b0559a7d7fe40594ecf5b1c7f2d2d3937c2e1fabd91f9dda00c1858", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json": "b1acff232c2b7974a9c4ccad7fabc55581a164bce9016b2e28ec9d7910c3c2bc", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml": "669287e7866e5a806d9026acacf8df1fb3c6912b7bdd7ab695d7ca10a8605eb4", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png": "6d2478360b0559a7d7fe40594ecf5b1c7f2d2d3937c2e1fabd91f9dda00c1858", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json": "8c6c7303a2bf50c6c96136022b68305dd228931e97360868670ebc835f70a125", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml": "df63a5a7b6ab4cf270726b80aaa92de362b4b21e908181f9f5ffd2bf69fabc58", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png": "72cbe5ac29584ee08fe68e2c900a919a141fc588e97e1d135a9c78cc71b58714", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json": "08f1fd054e1eedc9e86300146abc600a84e7e5ac53efaa5e87ecacdf9d4cc2ab", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml": "669287e7866e5a806d9026acacf8df1fb3c6912b7bdd7ab695d7ca10a8605eb4", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png": "6080c7f45c2f5b4ef0812701496ed8d046ccb4959d84810e3cca9e13fd453d7b", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json": "54ef6e140277418d4da4467ff7f0fc5004fa04532d5d212b55bca34f1c4d5941", + "emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "6df0e02b2b57bd06b965ccda10c44cdaff97c52d3ab361a74f83b3f0b02906b1", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml": "44ebcab8b0812b9452db065ac0033aeddef8f646a6f2f9cbfcd1ff9d119fa50f", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png": "df11664aa3daa1c71c192d1e143e9f6e71d3d043fc58cb095ee449f0324ae897", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json": "e5b6554c76db6c95fff540693e774594a8179427e385d3d7a9a469044652a567", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "44ebcab8b0812b9452db065ac0033aeddef8f646a6f2f9cbfcd1ff9d119fa50f", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "c5ae577ed383d1ccadd7f30fa6b8ed35fbc134251998ebfe7f36a8f3b0b80d05", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "3aee75b3c779520e9185f1b51a1c081d1d434e38c15856f3d87264cb2be4699e", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "722cef2872bb2b80799fc33640f94e2e15ee3903e25361163014e0aee4324581", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "3756d502f9df21f38403973e7f9cbdaab3307f84a47f3086e836576601a3acaa", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "1181267a2aebbdf238b8d055342c6e277e328cb3c92b7b609a5f883d6abc1ceb", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml": "fdeab8051dbe2badba6d33e63d554d467453a78ff1b3b86c19504f06af5d9ae0", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png": "cbd176a219faeb054cff07f05918c6ac834be2f1dbb7b62728990d9b18f50b1a", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json": "cd7dc5f93bb3e63c72d8fea055df4a1013ba71817afaadf3daa7e3fdfd1c286b", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml": "e029771c339c426f41ce1d8800796a0cb96d184940bd103ccc7e3da757a05d37", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png": "8b841a785c65775a16eb65bb31b31a87c6e67e4a0debad1d915f08cc73b1c18f", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json": "a7aa7882a7e06e559deb0f6b51f3ac38c0e42fabdcb1bf46d1684ac8f16a4987", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml": "e029771c339c426f41ce1d8800796a0cb96d184940bd103ccc7e3da757a05d37", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png": "9e7780b296b3c227f5f1d1d376a2fc8e3360aa9a89f6f3215d56ce7eb98ce6cf", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json": "417b704268cfa46cc1f5a2706903c8d73fef73984ee54cc57f6fca2dba2892f8", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml": "d5224dcf37884ecc2f347149aaf2a00d39beb93924c7f8db53f0d46973c43ee4", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png": "271babbc9e69a7c239186cdf4bc8069d3470b69dc54339e3d4dd3d23627db17a", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json": "6161a81e2bbba64723875ed736d0a45c347898c9312d2ad1c08f6fca9fee928c", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml": "e029771c339c426f41ce1d8800796a0cb96d184940bd103ccc7e3da757a05d37", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png": "deec65211e73016c73b387469f5d5b0aa81c3950b217fd1eab82e061500a0641", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json": "141de3e9f6d16c353a164a2aca3722efd3c340d7a05420eaef2d23d57b1f683b", + "launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "ecba92601af22a39d80eac49d76953e214ae8b6ed4936acc52913c8dbec2169c" + }, + "preserved_file_count": 573 +} diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-landscape200/tests.log b/docs/validation/keyboard-toggle/cohorts/candidate-landscape200/tests.log new file mode 100644 index 00000000..793d141d --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-landscape200/tests.log @@ -0,0 +1,37 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.TouchSearchDeviceTest: +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_RESULT: stream= + +Time: 43.497 + +OK (2 tests) + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json b/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json new file mode 100644 index 00000000..0911bd80 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json @@ -0,0 +1,154 @@ +{ + "scope": "Controlled retained native callbacks; live visibility transitions use actual pointer actions. No physical queued-input or cross-window certification.", + "case": "emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "api": 36, + "font_scale": 1, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-first-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-live-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-live-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-callback-rejected", + "phase": "keyboard-guard-obsolete-mode", + "visible": true, + "accepted": false + }, + { + "kind": "keyboard-callback-rejected", + "phase": "changed-epoch-before-disposal", + "visible": true, + "accepted": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-before-menu", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-callback-rejected", + "phase": "keyboard-guard-open-menu", + "visible": false, + "accepted": false + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json b/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json new file mode 100644 index 00000000..3b142066 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-guard-obsolete-mode", + "search": [ + 473, + 243, + 1280, + 315 + ], + "ime_visible": true, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Controlled retained native callbacks; live visibility transitions use actual pointer actions. No physical queued-input or cross-window certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml b/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml new file mode 100644 index 00000000..cbda418e --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml @@ -0,0 +1,456 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json b/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json new file mode 100644 index 00000000..f58689e1 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-guard-open-menu", + "search": [ + 473, + 243, + 1280, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Controlled retained native callbacks; live visibility transitions use actual pointer actions. No physical queued-input or cross-window certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml b/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml new file mode 100644 index 00000000..f791164f --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json b/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json new file mode 100644 index 00000000..6a36b676 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json @@ -0,0 +1,331 @@ +{ + "scope": "Controlled retained native callbacks; live visibility transitions use actual pointer actions. No physical queued-input or cross-window certification.", + "case": "launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "api": 36, + "font_scale": 1, + "rejected_callbacks": 5, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-first-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-live-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-live-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-callback-rejected", + "phase": "keyboard-guard-obsolete-mode", + "visible": true, + "accepted": false + }, + { + "kind": "keyboard-callback-rejected", + "phase": "changed-epoch-before-disposal", + "visible": true, + "accepted": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-before-menu", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-callback-rejected", + "phase": "keyboard-guard-open-menu", + "visible": false, + "accepted": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-after-menu", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-before-replacement", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "keyboard-callback-rejected", + "phase": "keyboard-guard-replaced-route", + "visible": false, + "accepted": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-current-replacement-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-before-recreation", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "keyboard-callback-rejected", + "phase": "keyboard-guard-recreated-owner", + "visible": false, + "accepted": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-current-recreated-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json b/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json new file mode 100644 index 00000000..9c463f0d --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-guard-obsolete-mode", + "search": [ + 473, + 243, + 1355, + 315 + ], + "ime_visible": true, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Controlled retained native callbacks; live visibility transitions use actual pointer actions. No physical queued-input or cross-window certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml b/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml new file mode 100644 index 00000000..35c4e737 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml @@ -0,0 +1,367 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json b/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json new file mode 100644 index 00000000..09d16f7b --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-guard-open-menu", + "search": [ + 473, + 243, + 1355, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Controlled retained native callbacks; live visibility transitions use actual pointer actions. No physical queued-input or cross-window certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml b/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml new file mode 100644 index 00000000..e6a6c281 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/outer.log b/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/outer.log new file mode 100644 index 00000000..7c1878e9 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/outer.log @@ -0,0 +1,10 @@ +Traceback (most recent call last): + File "/scripts/test-webview-engine.py", line 430, in + main() + ~~~~^^ + File "/scripts/test-webview-engine.py", line 425, in main + require(r['completed'], 'Native outcome failed; inspect retained receipts') + ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/scripts/test-webview-engine.py", line 60, in require + raise ValueError(message) +ValueError: Native outcome failed; inspect retained receipts diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/record.json b/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/record.json new file mode 100644 index 00000000..0417832c --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/record.json @@ -0,0 +1,144 @@ +{ + "completed": false, + "expected_negative": false, + "suite": "touch-search", + "input_mode": "system", + "runner_sha256": "d7fc4bccc15eca35d2af00fcb7a9cda594a3c5fe5fb336785b3a2efea4745c1a", + "apk_sha256": "1291d0619b6f70ae90c4d25f759a444fbf32827ffa3ee36233f91006fdf8b2ac", + "test_apk_sha256": "f4925b8c25e900ed336a48f9bfdabd0358bf158818938fd4cdbd47b57b58e1a9", + "methods": [ + "launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus" + ], + "api": 36, + "font_scale": 1.0, + "layout": "tablet", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 1, + "failures": 1, + "native_expected_outcome": false, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.xml": "f3d8d7f8e8ba1d7641e36a338a1118e7a2dc69a93363fe0f40df588db4df38e6", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.png": "6066b963369e9f860b49c15866bd66c1859e115a458670a9c8f727d8e15dc427", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show-frame.json": "4bda7f266af8cd34912cb251fb98f307c9831a9b8e950951ce80fece74ce434b", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.xml": "fda53cd261fe2cd448c46b9a4f80e202a231321fc5a1c1eaae5aa241ccccb35f", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.png": "a8f28cbc6cafb42131a9a3edf50aaae2953dd1cd46ef14eca005d437445364e8", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide-frame.json": "0853b17700b2db730dd78459caa6b0ecb1411e92cc902e069b383603a16a57d7", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.xml": "f3d8d7f8e8ba1d7641e36a338a1118e7a2dc69a93363fe0f40df588db4df38e6", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.png": "be41821370a160a277c1e05cc90db76b7c124c0a44865de9e5f70580a8b00d0d", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show-frame.json": "2bf3a286716d1fd8c7790feeb262a49f6792eb19cf2feb370895fc30252ea277", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml": "f3d8d7f8e8ba1d7641e36a338a1118e7a2dc69a93363fe0f40df588db4df38e6", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png": "2cad7b7fa0b00081325cfb98b4cab4f2743320f3171105245bef1075ec70c69d", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json": "d085baee4ca4de246b00a3c5f7e0edb9d28aa1295260947d3d53eea26902106e", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.xml": "f3d8d7f8e8ba1d7641e36a338a1118e7a2dc69a93363fe0f40df588db4df38e6", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.png": "a5691176b4c78e22fd3bf1067015c7e06399796917794951b4c07459f6a249f0", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch-frame.json": "8b3552ba6e3d425d809f9f75527e3c5dacd95074904b85904409032977f5731e", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu.xml": "fda53cd261fe2cd448c46b9a4f80e202a231321fc5a1c1eaae5aa241ccccb35f", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu.png": "5c2685895f1b26e2d8c23754f87e234b6691fc5f9cb000e3bf181b5944459b05", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu-frame.json": "0900e6869da64acd29a89edc4571ed38fc4754c6c326e540baf2b8f47e437fa4", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml": "eb92d4960d48917094b57a11aff545c5c97a7f888f99db820b277404eac8ef0d", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png": "fe272866d9f068050cf68e082aeb6d185f4e20d79c2ff515dfc9f66731ba7f3f", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json": "3718e28c22fba4146905c4fde37c5b974b43bd4f5d63d37f5305c9a60a4f19a3", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json": "ef50ab82456c458a2b4319ac97180184a7762ed2bd8f7acabae8ee347df7ea69", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.xml": "a36f10ff298a227a9710e4f166ce5b3c380ab62e06a20067684aff3361a2c8a4", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.png": "c5d44de2be00c52d1155ac1008a612fa41ef54d54181e5b398cfd5a45cf85c61", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show-frame.json": "d7c4bd0549724e1d28c9e9facfc67ee9ee0b6276fd3863ce8ea55ea6dff84fa7", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.xml": "3271920737a6b32c9e131ca622128ba6b9d64063202ec5f99381bcec32973f71", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.png": "a42b3152970ee12c51e5ec5e9dc44bd1b4c850587e94e47edd0fffd5ad126779", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide-frame.json": "6d97a7f5ff9365643b33ed2059aa72345dd1265c28fd0466ec0c0e99e348582c", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.xml": "a36f10ff298a227a9710e4f166ce5b3c380ab62e06a20067684aff3361a2c8a4", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.png": "898316187b32af78cdc45b18720565b8c303bf46a72da08a4009bc36b61873b4", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show-frame.json": "76cba8f2c6975ed77555a10612ae2265615e3ea786af16751bc33d8fd5b295e9", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml": "897e91a27e1f486680fc82ed11da29bf3a072d8088908291210fc3e271adfc19", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png": "d3af3205ded5781b0c6e669c7b47ccd06b9662a0c69328a2bc6650309122d645", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json": "09429d975cd9dbdd78e0feb6a418d244f7f146b12609c8f541b811cfa8f00735", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.xml": "897e91a27e1f486680fc82ed11da29bf3a072d8088908291210fc3e271adfc19", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.png": "be35511792eedfba26605a8fbd4752335f5f86aec7dae7369a9469a3b14ce5fc", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch-frame.json": "8cc8ff837409f2a42eb647567d2d603a1c286b38593ce0a40ec5dace31a5b241", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu.xml": "3fade7b9fa22cdbc95f13f6ff920f1f64dd6f68aa10c6eb312d4f61c7cf0741c", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu.png": "0d941fc27aef2fea742a82168166718dc3a47d25bff751de8331492d2385dd05", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu-frame.json": "0d8041ecaf2c5577053896ac693e3c8e17c330d9d45ae02ffd98ecd0d818cea2", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml": "db535c25cd4ca83ab662a646813958b1eebee56a27e04a52e801184095616e2a", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png": "3802d473ae4c4f95bb1a477f099c5171b64a27ccec445876c4388feaedfd3a98", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json": "9dec30b9f56a16e3d7b36d303d13fcf5f7effe1b673f8cc479be52daae2659e1", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-after-menu.xml": "897e91a27e1f486680fc82ed11da29bf3a072d8088908291210fc3e271adfc19", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-after-menu.png": "a07095af2e3b95357dd84bd46ba8993f586014ffacbfa62b6ad6fbb5b1ca8221", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-after-menu-frame.json": "4a7663cb567527f7b66801e9f2db42bf3a45d39ceb4dca3ffcb7f2b14195dea4", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-replacement.xml": "3fade7b9fa22cdbc95f13f6ff920f1f64dd6f68aa10c6eb312d4f61c7cf0741c", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-replacement.png": "168b979f8e9261509c8f8d2dc44a28243645f5d7718d16900783e46d0304abb2", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-replacement-frame.json": "c8a54d9c3417e45f5aca1b29aa95b8cb11263da710094b728fd3cb7ff2b1eb7c", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.xml": "3fade7b9fa22cdbc95f13f6ff920f1f64dd6f68aa10c6eb312d4f61c7cf0741c", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.png": "1864b2293f3ca3f6750cca55e3227534dd8f62e823837565986900bb7195f842", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route-frame.json": "3837ce197f7ab34199d967f6e262c1c49fe3370c41c3d7885b2925e05f70a94a", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-replacement-show.xml": "897e91a27e1f486680fc82ed11da29bf3a072d8088908291210fc3e271adfc19", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-replacement-show.png": "84a0b75e56032a99f72e3b843652e4fc4feac48ed7fbc914c78d9bde3b64be27", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-replacement-show-frame.json": "fb174dffca1fb576c534887dcb8ee29b9e63ea50b1bf310cf2d586ce6cd533f6", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-recreation.xml": "3fade7b9fa22cdbc95f13f6ff920f1f64dd6f68aa10c6eb312d4f61c7cf0741c", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-recreation.png": "1205f1b9b2309e743df6475a61c799f0ecc82b8f834cfe0c3732325a4a74af4c", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-recreation-frame.json": "ebb7e2adf59fc237d4182431d9cf043e55f018c25ca5d1d5cc525b9ef32a7563", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.xml": "3fade7b9fa22cdbc95f13f6ff920f1f64dd6f68aa10c6eb312d4f61c7cf0741c", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.png": "8e70019330f1d84cb2f833baa27871dd41c08fb4fcda26da886956b60509827b", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner-frame.json": "8ff3b67629b4ea269132bbb2cc0c0c71d35360029a7238bf859632b92bfc470f", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.xml": "897e91a27e1f486680fc82ed11da29bf3a072d8088908291210fc3e271adfc19", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.png": "200b28446273de5ff5648029c1f39aa48a5a9ccbdee634c520902739ec1a1638", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show-frame.json": "8c1c5c8e4f62f217d1e2a95ccc2fe9c399c1ef00c5fd6343a2185ca4636945a0", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json": "05a607d2f9f5c989f5c9c85a91729394f362a4c9f4e9b2c096546c8ba5096703" + }, + "preserved_file_count": 573 +} diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/tests.log b/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/tests.log new file mode 100644 index 00000000..082be45b --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/tests.log @@ -0,0 +1,100 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.TouchSearchDeviceTest: +INSTRUMENTATION_STATUS: test=emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stack=java.lang.AssertionError: Failed to assert the following: (EditableText has exactly 4 UTF-16 units and matching characters) +Semantics of the node: +Node #82 at (l=473.0, t=243.0, r=1280.0, b=315.0)px, Tag: 'emoji-search' +EditableText = '' +TextSelectionRange = 'TextRange(0, 0)' +IsEditable = 'true' +ImeAction = 'Search' +Focused = 'true' +Text = '[Search Emoji & Symbols…]' +Actions = [GetTextLayoutResult, SetText, InsertTextAtCursor, SetSelection, PerformImeAction, OnClick, OnLongClick, PasteText, RequestFocus, SetTextSubstitution, ShowTextSubstitution, ClearTextSubstitution, MagnifierPositionInRoot] +MergeDescendants = 'true' +Has 7 siblings +Selector used: (TestTag = 'emoji-search') + + at androidx.compose.ui.test.AssertionsKt.assert(Assertions.kt:265) + at androidx.compose.ui.test.AssertionsKt.assert$default(Assertions.kt:255) + at dev.tinycast.android.TouchSearchDeviceTest.text(TouchSearchDeviceTest.kt:94) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardCallbackFlow(TouchSearchDeviceTest.kt:614) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(TouchSearchDeviceTest.kt:635) + +INSTRUMENTATION_STATUS: stream= +Error in emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(dev.tinycast.android.TouchSearchDeviceTest): +java.lang.AssertionError: Failed to assert the following: (EditableText has exactly 4 UTF-16 units and matching characters) +Semantics of the node: +Node #82 at (l=473.0, t=243.0, r=1280.0, b=315.0)px, Tag: 'emoji-search' +EditableText = '' +TextSelectionRange = 'TextRange(0, 0)' +IsEditable = 'true' +ImeAction = 'Search' +Focused = 'true' +Text = '[Search Emoji & Symbols…]' +Actions = [GetTextLayoutResult, SetText, InsertTextAtCursor, SetSelection, PerformImeAction, OnClick, OnLongClick, PasteText, RequestFocus, SetTextSubstitution, ShowTextSubstitution, ClearTextSubstitution, MagnifierPositionInRoot] +MergeDescendants = 'true' +Has 7 siblings +Selector used: (TestTag = 'emoji-search') + + at androidx.compose.ui.test.AssertionsKt.assert(Assertions.kt:265) + at androidx.compose.ui.test.AssertionsKt.assert$default(Assertions.kt:255) + at dev.tinycast.android.TouchSearchDeviceTest.text(TouchSearchDeviceTest.kt:94) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardCallbackFlow(TouchSearchDeviceTest.kt:614) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(TouchSearchDeviceTest.kt:635) + +INSTRUMENTATION_STATUS: test=emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus +INSTRUMENTATION_STATUS_CODE: -2 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_RESULT: stream= + +Time: 56.069 +There was 1 failure: +1) emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(dev.tinycast.android.TouchSearchDeviceTest) +java.lang.AssertionError: Failed to assert the following: (EditableText has exactly 4 UTF-16 units and matching characters) +Semantics of the node: +Node #82 at (l=473.0, t=243.0, r=1280.0, b=315.0)px, Tag: 'emoji-search' +EditableText = '' +TextSelectionRange = 'TextRange(0, 0)' +IsEditable = 'true' +ImeAction = 'Search' +Focused = 'true' +Text = '[Search Emoji & Symbols…]' +Actions = [GetTextLayoutResult, SetText, InsertTextAtCursor, SetSelection, PerformImeAction, OnClick, OnLongClick, PasteText, RequestFocus, SetTextSubstitution, ShowTextSubstitution, ClearTextSubstitution, MagnifierPositionInRoot] +MergeDescendants = 'true' +Has 7 siblings +Selector used: (TestTag = 'emoji-search') + + at androidx.compose.ui.test.AssertionsKt.assert(Assertions.kt:265) + at androidx.compose.ui.test.AssertionsKt.assert$default(Assertions.kt:255) + at dev.tinycast.android.TouchSearchDeviceTest.text(TouchSearchDeviceTest.kt:94) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardCallbackFlow(TouchSearchDeviceTest.kt:614) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(TouchSearchDeviceTest.kt:635) + +FAILURES!!! +Tests run: 2, Failures: 1 + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json b/docs/validation/keyboard-toggle/cohorts/candidate-v3-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json new file mode 100644 index 00000000..6991e067 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json @@ -0,0 +1,254 @@ +{ + "scope": "Owned launcher\/Emoji pointer Clear; editor and IME visibility setup are controlled, not physical typing", + "case": "emojiEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable", + "api": 36, + "font_scale": 1, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "target-geometry", + "tag": "emoji-search-clear", + "target": [ + 1730, + 106, + 1856, + 232 + ], + "search": [ + 317, + 106, + 1730, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ], + "density": 2.625 + }, + { + "kind": "natural-feedback-line", + "phase": "initial-hidden", + "text": "No matching emoji or symbols", + "line": 0, + "font_sp": 13, + "line_bounds": [ + 922, + 559, + 1417.3076, + 622 + ], + "declared_line_height": "24.0.sp", + "visible": [ + 922, + 559, + 1419, + 622 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ], + "complete": true, + "ellipsized": false + }, + { + "kind": "feedback-control", + "label": "Emoji Back", + "full": [ + 186, + 106, + 312, + 232 + ], + "visible": [ + 186, + 106, + 312, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Emoji category", + "full": [ + 1982, + 106, + 2134, + 232 + ], + "visible": [ + 1982, + 106, + 2134, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1856, + 106, + 1982, + 232 + ], + "visible": [ + 1856, + 106, + 1982, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Emoji favorite", + "full": [ + 207, + 849, + 333, + 975 + ], + "visible": [ + 207, + 849, + 333, + 975 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": true + }, + { + "kind": "target-geometry", + "tag": "emoji-search-clear", + "target": [ + 1730, + 106, + 1856, + 232 + ], + "search": [ + 317, + 106, + 1730, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 334 + ], + "density": 2.625 + }, + { + "kind": "natural-feedback-line", + "phase": "initial-shown", + "text": "No matching emoji or symbols", + "line": 0, + "font_sp": 13, + "line_bounds": [ + 922, + 246, + 1417.3076, + 288 + ], + "declared_line_height": "16.0.sp", + "visible": [ + 922, + 246, + 1419, + 288 + ], + "palette": [ + 186, + 95, + 2155, + 334 + ], + "complete": true, + "ellipsized": false + }, + { + "kind": "compact-primary-status-only", + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Emoji Back", + "full": [ + 186, + 106, + 312, + 232 + ], + "visible": [ + 186, + 106, + 312, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 334 + ] + }, + { + "kind": "feedback-control", + "label": "Emoji category", + "full": [ + 1982, + 106, + 2134, + 232 + ], + "visible": [ + 1982, + 106, + 2134, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 334 + ] + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json b/docs/validation/keyboard-toggle/cohorts/candidate-v3-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json new file mode 100644 index 00000000..fd9ae667 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json @@ -0,0 +1,166 @@ +{ + "scope": "Owned launcher\/Emoji pointer Clear; editor and IME visibility setup are controlled, not physical typing", + "case": "launcherEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable", + "api": 36, + "font_scale": 1, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "target-geometry", + "tag": "search-clear", + "target": [ + 1861, + 106, + 1987, + 232 + ], + "search": [ + 318, + 106, + 1861, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ], + "density": 2.625 + }, + { + "kind": "natural-feedback-line", + "phase": "initial-hidden", + "text": "No matching commands", + "line": 0, + "font_sp": 14, + "line_bounds": [ + 958, + 531, + 1382.4286, + 594 + ], + "declared_line_height": "24.0.sp", + "visible": [ + 958, + 531, + 1384, + 594 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ], + "complete": true, + "ellipsized": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Droidcast menu", + "full": [ + 207, + 849, + 333, + 975 + ], + "visible": [ + 207, + 849, + 333, + 975 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": true + }, + { + "kind": "target-geometry", + "tag": "search-clear", + "target": [ + 1861, + 106, + 1987, + 232 + ], + "search": [ + 318, + 106, + 1861, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 334 + ], + "density": 2.625 + }, + { + "kind": "natural-feedback-line", + "phase": "initial-shown", + "text": "No matching commands", + "line": 0, + "font_sp": 14, + "line_bounds": [ + 958, + 243, + 1382.4286, + 291 + ], + "declared_line_height": "18.0.sp", + "visible": [ + 958, + 243, + 1384, + 291 + ], + "palette": [ + 186, + 95, + 2155, + 334 + ], + "complete": true, + "ellipsized": false + }, + { + "kind": "compact-primary-status-only", + "route": "launcher" + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-feedback-landscape100/outer.log b/docs/validation/keyboard-toggle/cohorts/candidate-v3-feedback-landscape100/outer.log new file mode 100644 index 00000000..7c1878e9 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-feedback-landscape100/outer.log @@ -0,0 +1,10 @@ +Traceback (most recent call last): + File "/scripts/test-webview-engine.py", line 430, in + main() + ~~~~^^ + File "/scripts/test-webview-engine.py", line 425, in main + require(r['completed'], 'Native outcome failed; inspect retained receipts') + ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/scripts/test-webview-engine.py", line 60, in require + raise ValueError(message) +ValueError: Native outcome failed; inspect retained receipts diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-feedback-landscape100/record.json b/docs/validation/keyboard-toggle/cohorts/candidate-v3-feedback-landscape100/record.json new file mode 100644 index 00000000..ded9e5fe --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-feedback-landscape100/record.json @@ -0,0 +1,117 @@ +{ + "completed": false, + "expected_negative": false, + "suite": "touch-search", + "input_mode": "system", + "runner_sha256": "d7fc4bccc15eca35d2af00fcb7a9cda594a3c5fe5fb336785b3a2efea4745c1a", + "apk_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "0b855d722fcda7e25b8c873ca1b75a3d44f7ab2069fc0ae032a64d4a3a097eed", + "methods": [ + "launcherEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable", + "emojiEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable" + ], + "api": 36, + "font_scale": 1.0, + "layout": "landscape", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 0, + "failures": 2, + "native_expected_outcome": false, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty.xml": "8eb2202e64f99103c7e7a50533040486ef70f23140aeb88e812a60055c2808c2", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty.png": "a366b1f4b01573c574f685de51398f7514b32d40e6f8a13ff39196eac0006285", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty-frame.json": "7b8649e0430770e732fc6a7bda82ef472d04598399301d3a38cf4713348c206f", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer.xml": "8eb2202e64f99103c7e7a50533040486ef70f23140aeb88e812a60055c2808c2", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer.png": "a366b1f4b01573c574f685de51398f7514b32d40e6f8a13ff39196eac0006285", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer-frame.json": "2adf20d0c9d920b71597dfae8ff9cc275c68960c2c5445a92e61692726814964", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching.xml": "5a4bc641708652ede45f3d4d8f28f62d8c801cd6486aafc17ca9743bd188dfae", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching.png": "e7cdd91fb169f77bc16d839c75134a27def21603d773e1e55a05de9212748ad8", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching-frame.json": "88cacf61e846e65b025bfaffaf0ee6d17075685a2b95abc42e7b80413ac388e4", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared.xml": "fc3cbe5f96ee673402b667621441af0516995b261db61b7a1314b2356be0a69a", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared.png": "0e1a84086427980b2b6203a5bb5e9b0cac7e3070a2b6fd24a643ea39ff9d8f78", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared-frame.json": "125303e0c950c98d6fd4196092734e754c44e835464068f265e26e88d0598dd1", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.xml": "2b0f7b5f0bf10760484aa7f445299da476061b463d6e2220d482f0f1ff459138", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.png": "7b631669392969dc0231362dd6899e3af9cdd104f34ded7a7e9e0563be082e58", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty-frame.json": "e4434f6e10d7590510c17f9e36f6adbc299efd2f5b9c803e7fd1bc25c5620ff8", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json": "e517efab9a25e3b8270063afec359a3da42acbb75bf24cb6987681c9d1e642ff", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty.xml": "1c6d9210c9c1a71c819eb23cff47d827428b6fb56e5d829e9fc48b07d854a799", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty.png": "1cd223a4742fe8a716cdb06981fd61842aa5fe86c699fd23efdb69b9d76c7837", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty-frame.json": "c40ff24358a7cdbb5509f2684776463f48cb143f9fbbc4a971a37d3751ad97ff", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer.xml": "1c6d9210c9c1a71c819eb23cff47d827428b6fb56e5d829e9fc48b07d854a799", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer.png": "1cd223a4742fe8a716cdb06981fd61842aa5fe86c699fd23efdb69b9d76c7837", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer-frame.json": "0c023b6e39c2f1de019d994379a016bab80bb80bef30dc9aac2cdc120b82b7b7", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching.xml": "117112271279d53f7e640f346fc734649f277bcc38fa3417ba7054198890c624", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching.png": "9587d5ab4ccb31f1de03b61b3f9ae3de1a64e50990e2531e495c989fbc695cb4", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching-frame.json": "f203ccd6275346d502fe67d9eaeb6a35064b66c9c2a8d6528297bdac12d94f4d", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared.xml": "c457c0efafb468fb644150739155e707313986395924944678a3076fa77193a7", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared.png": "7ea8352beb9ca3da0fd36b669aef242e7a690bde2fddbc5f528487bec1d9cedf", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared-frame.json": "485332371897fee2e4d2310e3c32f4f478373750c3169ced6afb77466c6021cf", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.xml": "72376f6b5b6e3a96aaa069510950f59827141c4afa16bc04bc44872c05b847a0", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.png": "95c6757a651de438ed4b45f8f9b5308b49532be8251264ca988ed6c0bd612fc2", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty-frame.json": "1fe33d9819ba45418cb13ec90578a5ca0c9b9c534969127992c7c53ea61511f6", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json": "b1094e8183dd98165eea9ff81332438a91f5efe97ecbc913fcf7e776f128ed9d" + }, + "preserved_file_count": 573 +} diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-feedback-landscape100/tests.log b/docs/validation/keyboard-toggle/cohorts/candidate-v3-feedback-landscape100/tests.log new file mode 100644 index 00000000..7fbec545 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-feedback-landscape100/tests.log @@ -0,0 +1,107 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.TouchSearchDeviceTest: +INSTRUMENTATION_STATUS: test=emojiEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stack=java.lang.AssertionError: Failed: assertExists. +Reason: Expected exactly '1' node but could not find any node that satisfies: (ContentDescription = 'Show on-screen keyboard' (ignoreCase: false)) + + at androidx.compose.ui.test.SemanticsNodeInteraction.fetchOneOrThrow(SemanticsNodeInteraction.kt:178) + at androidx.compose.ui.test.SemanticsNodeInteraction.fetchOneOrThrow$default(SemanticsNodeInteraction.kt:150) + at androidx.compose.ui.test.SemanticsNodeInteraction.fetchSemanticsNode(SemanticsNodeInteraction.kt:84) + at androidx.compose.ui.test.SemanticsNodeInteraction.fetchSemanticsNode$default(SemanticsNodeInteraction.kt:83) + at dev.tinycast.android.TouchSearchDeviceTest.completeFeedbackTarget(TouchSearchDeviceTest.kt:314) + at dev.tinycast.android.TouchSearchDeviceTest.feedbackFlow(TouchSearchDeviceTest.kt:426) + at dev.tinycast.android.TouchSearchDeviceTest.emojiEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable(TouchSearchDeviceTest.kt:447) + +INSTRUMENTATION_STATUS: stream= +Error in emojiEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable(dev.tinycast.android.TouchSearchDeviceTest): +java.lang.AssertionError: Failed: assertExists. +Reason: Expected exactly '1' node but could not find any node that satisfies: (ContentDescription = 'Show on-screen keyboard' (ignoreCase: false)) + + at androidx.compose.ui.test.SemanticsNodeInteraction.fetchOneOrThrow(SemanticsNodeInteraction.kt:178) + at androidx.compose.ui.test.SemanticsNodeInteraction.fetchOneOrThrow$default(SemanticsNodeInteraction.kt:150) + at androidx.compose.ui.test.SemanticsNodeInteraction.fetchSemanticsNode(SemanticsNodeInteraction.kt:84) + at androidx.compose.ui.test.SemanticsNodeInteraction.fetchSemanticsNode$default(SemanticsNodeInteraction.kt:83) + at dev.tinycast.android.TouchSearchDeviceTest.completeFeedbackTarget(TouchSearchDeviceTest.kt:314) + at dev.tinycast.android.TouchSearchDeviceTest.feedbackFlow(TouchSearchDeviceTest.kt:426) + at dev.tinycast.android.TouchSearchDeviceTest.emojiEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable(TouchSearchDeviceTest.kt:447) + +INSTRUMENTATION_STATUS: test=emojiEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable +INSTRUMENTATION_STATUS_CODE: -2 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=launcherEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stack=java.lang.AssertionError: Failed: assertExists. +Reason: Expected exactly '1' node but could not find any node that satisfies: (ContentDescription = 'Show on-screen keyboard' (ignoreCase: false)) + + at androidx.compose.ui.test.SemanticsNodeInteraction.fetchOneOrThrow(SemanticsNodeInteraction.kt:178) + at androidx.compose.ui.test.SemanticsNodeInteraction.fetchOneOrThrow$default(SemanticsNodeInteraction.kt:150) + at androidx.compose.ui.test.SemanticsNodeInteraction.fetchSemanticsNode(SemanticsNodeInteraction.kt:84) + at androidx.compose.ui.test.SemanticsNodeInteraction.fetchSemanticsNode$default(SemanticsNodeInteraction.kt:83) + at dev.tinycast.android.TouchSearchDeviceTest.completeFeedbackTarget(TouchSearchDeviceTest.kt:314) + at dev.tinycast.android.TouchSearchDeviceTest.feedbackFlow(TouchSearchDeviceTest.kt:426) + at dev.tinycast.android.TouchSearchDeviceTest.launcherEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable(TouchSearchDeviceTest.kt:446) + +INSTRUMENTATION_STATUS: stream= +Error in launcherEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable(dev.tinycast.android.TouchSearchDeviceTest): +java.lang.AssertionError: Failed: assertExists. +Reason: Expected exactly '1' node but could not find any node that satisfies: (ContentDescription = 'Show on-screen keyboard' (ignoreCase: false)) + + at androidx.compose.ui.test.SemanticsNodeInteraction.fetchOneOrThrow(SemanticsNodeInteraction.kt:178) + at androidx.compose.ui.test.SemanticsNodeInteraction.fetchOneOrThrow$default(SemanticsNodeInteraction.kt:150) + at androidx.compose.ui.test.SemanticsNodeInteraction.fetchSemanticsNode(SemanticsNodeInteraction.kt:84) + at androidx.compose.ui.test.SemanticsNodeInteraction.fetchSemanticsNode$default(SemanticsNodeInteraction.kt:83) + at dev.tinycast.android.TouchSearchDeviceTest.completeFeedbackTarget(TouchSearchDeviceTest.kt:314) + at dev.tinycast.android.TouchSearchDeviceTest.feedbackFlow(TouchSearchDeviceTest.kt:426) + at dev.tinycast.android.TouchSearchDeviceTest.launcherEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable(TouchSearchDeviceTest.kt:446) + +INSTRUMENTATION_STATUS: test=launcherEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable +INSTRUMENTATION_STATUS_CODE: -2 +INSTRUMENTATION_RESULT: stream= + +Time: 16.088 +There were 2 failures: +1) emojiEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable(dev.tinycast.android.TouchSearchDeviceTest) +java.lang.AssertionError: Failed: assertExists. +Reason: Expected exactly '1' node but could not find any node that satisfies: (ContentDescription = 'Show on-screen keyboard' (ignoreCase: false)) + + at androidx.compose.ui.test.SemanticsNodeInteraction.fetchOneOrThrow(SemanticsNodeInteraction.kt:178) + at androidx.compose.ui.test.SemanticsNodeInteraction.fetchOneOrThrow$default(SemanticsNodeInteraction.kt:150) + at androidx.compose.ui.test.SemanticsNodeInteraction.fetchSemanticsNode(SemanticsNodeInteraction.kt:84) + at androidx.compose.ui.test.SemanticsNodeInteraction.fetchSemanticsNode$default(SemanticsNodeInteraction.kt:83) + at dev.tinycast.android.TouchSearchDeviceTest.completeFeedbackTarget(TouchSearchDeviceTest.kt:314) + at dev.tinycast.android.TouchSearchDeviceTest.feedbackFlow(TouchSearchDeviceTest.kt:426) + at dev.tinycast.android.TouchSearchDeviceTest.emojiEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable(TouchSearchDeviceTest.kt:447) +2) launcherEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable(dev.tinycast.android.TouchSearchDeviceTest) +java.lang.AssertionError: Failed: assertExists. +Reason: Expected exactly '1' node but could not find any node that satisfies: (ContentDescription = 'Show on-screen keyboard' (ignoreCase: false)) + + at androidx.compose.ui.test.SemanticsNodeInteraction.fetchOneOrThrow(SemanticsNodeInteraction.kt:178) + at androidx.compose.ui.test.SemanticsNodeInteraction.fetchOneOrThrow$default(SemanticsNodeInteraction.kt:150) + at androidx.compose.ui.test.SemanticsNodeInteraction.fetchSemanticsNode(SemanticsNodeInteraction.kt:84) + at androidx.compose.ui.test.SemanticsNodeInteraction.fetchSemanticsNode$default(SemanticsNodeInteraction.kt:83) + at dev.tinycast.android.TouchSearchDeviceTest.completeFeedbackTarget(TouchSearchDeviceTest.kt:314) + at dev.tinycast.android.TouchSearchDeviceTest.feedbackFlow(TouchSearchDeviceTest.kt:426) + at dev.tinycast.android.TouchSearchDeviceTest.launcherEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable(TouchSearchDeviceTest.kt:446) + +FAILURES!!! +Tests run: 2, Failures: 2 + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json b/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json new file mode 100644 index 00000000..729ea7e2 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json @@ -0,0 +1,350 @@ +{ + "scope": "Controlled retained native callbacks; visibility and menu-backdrop dismissal use actual pointers. Physical Back failure remains #115; no queued-input or cross-window certification.", + "case": "emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "api": 36, + "font_scale": 1, + "rejected_callbacks": 5, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-first-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-live-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-live-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-callback-rejected", + "phase": "keyboard-guard-obsolete-mode", + "visible": true, + "accepted": false + }, + { + "kind": "keyboard-callback-rejected", + "phase": "changed-epoch-before-disposal", + "visible": true, + "accepted": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-before-menu", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-callback-rejected", + "phase": "keyboard-guard-open-menu", + "visible": false, + "accepted": false + }, + { + "kind": "keyboard-menu-pointer-dismissal", + "point": [ + 491, + 279 + ], + "menu": [ + 1031, + 321, + 1511, + 866 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-after-menu", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-before-replacement", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "keyboard-callback-rejected", + "phase": "keyboard-guard-replaced-route", + "visible": false, + "accepted": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-current-replacement-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-before-recreation", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "keyboard-callback-rejected", + "phase": "keyboard-guard-recreated-owner", + "visible": false, + "accepted": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-current-recreated-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json b/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json new file mode 100644 index 00000000..c1830122 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-guard-obsolete-mode", + "search": [ + 473, + 243, + 1280, + 315 + ], + "ime_visible": true, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Controlled retained native callbacks; visibility and menu-backdrop dismissal use actual pointers. Physical Back failure remains #115; no queued-input or cross-window certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml b/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml new file mode 100644 index 00000000..05da3f21 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml @@ -0,0 +1,456 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json b/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json new file mode 100644 index 00000000..082424ee --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-guard-open-menu", + "search": [ + 473, + 243, + 1280, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Controlled retained native callbacks; visibility and menu-backdrop dismissal use actual pointers. Physical Back failure remains #115; no queued-input or cross-window certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml b/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml new file mode 100644 index 00000000..81c49fb6 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json b/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json new file mode 100644 index 00000000..75e86ace --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json @@ -0,0 +1,350 @@ +{ + "scope": "Controlled retained native callbacks; visibility and menu-backdrop dismissal use actual pointers. Physical Back failure remains #115; no queued-input or cross-window certification.", + "case": "launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "api": 36, + "font_scale": 1, + "rejected_callbacks": 5, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-first-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-live-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-live-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-callback-rejected", + "phase": "keyboard-guard-obsolete-mode", + "visible": true, + "accepted": false + }, + { + "kind": "keyboard-callback-rejected", + "phase": "changed-epoch-before-disposal", + "visible": true, + "accepted": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-before-menu", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-callback-rejected", + "phase": "keyboard-guard-open-menu", + "visible": false, + "accepted": false + }, + { + "kind": "keyboard-menu-pointer-dismissal", + "point": [ + 491, + 279 + ], + "menu": [ + 410, + 321, + 890, + 866 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-after-menu", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-before-replacement", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "keyboard-callback-rejected", + "phase": "keyboard-guard-replaced-route", + "visible": false, + "accepted": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-current-replacement-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-before-recreation", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "keyboard-callback-rejected", + "phase": "keyboard-guard-recreated-owner", + "visible": false, + "accepted": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-current-recreated-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json b/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json new file mode 100644 index 00000000..6e523615 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-guard-obsolete-mode", + "search": [ + 473, + 243, + 1355, + 315 + ], + "ime_visible": true, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Controlled retained native callbacks; visibility and menu-backdrop dismissal use actual pointers. Physical Back failure remains #115; no queued-input or cross-window certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml b/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml new file mode 100644 index 00000000..40924f0f --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml @@ -0,0 +1,367 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json b/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json new file mode 100644 index 00000000..7514bc4d --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-guard-open-menu", + "search": [ + 473, + 243, + 1355, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Controlled retained native callbacks; visibility and menu-backdrop dismissal use actual pointers. Physical Back failure remains #115; no queued-input or cross-window certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml b/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml new file mode 100644 index 00000000..bd4cacc1 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/outer.log b/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/outer.log new file mode 100644 index 00000000..bcb1de14 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/outer.log @@ -0,0 +1 @@ +{"completed": true, "passes": 2, "failures": 0, "expected_negative": false, "preserved_file_count": 573} diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/record.json b/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/record.json new file mode 100644 index 00000000..6f82fc04 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/record.json @@ -0,0 +1,165 @@ +{ + "completed": true, + "expected_negative": false, + "suite": "touch-search", + "input_mode": "system", + "runner_sha256": "d7fc4bccc15eca35d2af00fcb7a9cda594a3c5fe5fb336785b3a2efea4745c1a", + "apk_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "0b855d722fcda7e25b8c873ca1b75a3d44f7ab2069fc0ae032a64d4a3a097eed", + "methods": [ + "launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus" + ], + "api": 36, + "font_scale": 1.0, + "layout": "tablet", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 2, + "failures": 0, + "native_expected_outcome": true, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.xml": "96fa92754c736906c91af3ced52af345869197dd6f66fcf2516a4c8e3760471c", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.png": "3af3f70279318bd73afc2f30ee4eac85dd238cb0c015ddfabccff1890a1f870c", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show-frame.json": "be1b9fd29b46685c9e3e39d3af4930828a55a8d53440b30205ede0d28f27db4e", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.xml": "24dbad69c2376fe548ca2d0991d0d27d3da0e7be1d6298d7db008cf80c230331", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.png": "0f475a5934490f864146696317de4dc9fd9c760534cac54c6fe2a2a87affa217", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide-frame.json": "7f874c1364efff15fa38e5b9518b44f2b76dafbc0f642e71c0be8279fc96b250", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.xml": "96fa92754c736906c91af3ced52af345869197dd6f66fcf2516a4c8e3760471c", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.png": "52281d1f72679a5c3a002d00485fab20f52642452213453edc914190c5b37163", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show-frame.json": "0193da82e862287e9571cc3d12a787bdc5d194917a99272e97216038cfd1c63c", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml": "96fa92754c736906c91af3ced52af345869197dd6f66fcf2516a4c8e3760471c", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png": "b71daa468bee932442e00675e1a8d2add3e50820a044336bfd6fec3bfcae43d4", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json": "49de88fa56e720b346da4841e06a54352fb6c77a7aa3440cf73a360cdebd9d1e", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.xml": "96fa92754c736906c91af3ced52af345869197dd6f66fcf2516a4c8e3760471c", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.png": "efd7127bca18c751ee79f0621b0be23f5094afff9c87c7c153f813d0062a78e0", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch-frame.json": "22f09e22ea05f811e443064ed362996898cd8342dfe91330b3564369fb05918c", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu.xml": "626d6ce77e5b595f0dc8f8835ae454d011c03f812aa321720cac0f22ecba43a7", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu.png": "02c6e8dbb70d2cf72b95bbcd807666b8aa9460e98d19548c84fb932c02805f8d", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu-frame.json": "51ea799ba493c440473463308594ea0350ebe7037490f7974e264b6ded47f8ff", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml": "d1e4c7a08b333dc866e333d10189a0fcb6f871a616e65f889b3127e7292361ef", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png": "e20dd394841b824fa3318e3bedf3ff5ca58fa249d77a9923ae6137d18335b9bb", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json": "3723d6f36da6c7ed43ffdb5dcad16f37b86370d58c1e5f70bfdf8d2c6d5c84d7", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-after-menu.xml": "28e78df21e8fd763d90a61e6bd0ecddb0bf4e35c4cf27d9258efdbbba32130bb", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-after-menu.png": "c0ff24e08351a46af0fe676f16386434e6c5c31cca758b471de6009f9727eee1", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-after-menu-frame.json": "7c4b817e91efd805f74f299eed266c1fc0014171bfcc548d3c35a97371d7c5df", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-replacement.xml": "626d6ce77e5b595f0dc8f8835ae454d011c03f812aa321720cac0f22ecba43a7", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-replacement.png": "7bcb08b8b0b756aff7c4ae493065e1af0ee8742da7dcd3e854feb2f65ca3bb2e", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-replacement-frame.json": "a02366e24d018c67ac5e9e8dbac4d9d0987d307423055b19b71aaf99dfdd8cfd", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.xml": "626d6ce77e5b595f0dc8f8835ae454d011c03f812aa321720cac0f22ecba43a7", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.png": "8f0aaa199a483c7e3c2a09d7adb705a7af5bc9e753a359a2d210526c736af645", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route-frame.json": "ff7884d4d28a589bd03fc97a5b2bfcfddf9b8996f7fea2ca1a88d246569cd2d3", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-replacement-show.xml": "28e78df21e8fd763d90a61e6bd0ecddb0bf4e35c4cf27d9258efdbbba32130bb", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-replacement-show.png": "22c49964dc8b23c3212298009c064cfe7caad157e69c5fa920a71e37c62eddca", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-replacement-show-frame.json": "8dacd2c5d11726c6a9b8ab7c32d91c165a42c8f23b184e7e7fcfd03237c93771", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-recreation.xml": "626d6ce77e5b595f0dc8f8835ae454d011c03f812aa321720cac0f22ecba43a7", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-recreation.png": "5afbc6a1464f83af35154ae9e719db18184a81f19dd5e08e09814278405c1ed4", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-recreation-frame.json": "b118e8292c7c7728fde6024a9576d269782bfe0eef6f29df2ba1641fccbcb0e9", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.xml": "626d6ce77e5b595f0dc8f8835ae454d011c03f812aa321720cac0f22ecba43a7", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.png": "a43b7165ea0fe6b9f5d67b4631a33b4397992c5966e5d6d76b56c60197a61127", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner-frame.json": "0e464e7d0271445c97141db900a5097f6f41290e066ef3efd1364486875154e1", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.xml": "28e78df21e8fd763d90a61e6bd0ecddb0bf4e35c4cf27d9258efdbbba32130bb", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.png": "03f9c87cdd9a66b3400ceb04e6f66d18bd4d74779933597d1464ee1fe07441a0", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show-frame.json": "894d08087dcb5dbedf7415ed5207baeaa2cf4845ed58613dbdd02ca0e559a61c", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json": "7ec3a009d2c9bb73d64b2ea9aef316c7ab40e0aa7ba4abf5aeadf29811f3e234", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.xml": "62549f33870545ff887d2a594b5968c96258d2fe550b9e77447eed1c84bbef70", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.png": "b858de5fc85f500660daec675f8eee643778806c31b07decde91961f7c6d2d53", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show-frame.json": "43d3b1d49420775301cbbb47348c6fde718ec116f8e3acb357d8753efdbb2d0e", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.xml": "69b275251b2eb6fa2af63923e1ce3698156d34480b2beabb9f8fd7d1c6d11da1", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.png": "390a83c35ac2a30e432aecf9f28ed541fcf253a9865ec3de4870ca85c6bd7f4e", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide-frame.json": "052d6fd643b7fc0d0c97a5934df147caeebb7f88733dc1af1b810bb47841b67b", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.xml": "62549f33870545ff887d2a594b5968c96258d2fe550b9e77447eed1c84bbef70", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.png": "0a8643f2c426953f253fb294cbb67098521af9fb9184dc94864aaa4d4a5f829b", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show-frame.json": "48ced2d759bababde2b9381300fa2500a229de33b0434c088651713fff9fb3ae", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml": "62549f33870545ff887d2a594b5968c96258d2fe550b9e77447eed1c84bbef70", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png": "135ebb78ad4e734cddf8652ce26c7f9e326c6590be9f3950dd60234d55f7cb3d", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json": "26a272e81174509a59872312e6fc23fef804de86447fd1b6b74b4989ccdb4903", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.xml": "62549f33870545ff887d2a594b5968c96258d2fe550b9e77447eed1c84bbef70", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.png": "1e3829e9f572e0fef8c5ee478855d62521ae6ba634e6bcfbcf266a1aecf7e2b3", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch-frame.json": "aedceaf0a58fb3228786bdff3f153c11a7da2223cc2e7bb1a866c79826de9476", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu.xml": "62f1fe6c38ed9c6f179cf269b2874d8144a628d388b056f88454f17713b0e007", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu.png": "e8f69767062d17f3fb1aff015c54a496ee85c4ce566d46cf8e3b568cd186a424", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu-frame.json": "63766f68ad92d91d8d189440c5476742de13a7f4aa58d6b47600fa489aab19fa", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml": "b268918416b34eb427d0472021fa76e23dbeb873a34359464aaa68eda11cf719", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png": "47ed3dc7b27288ede18f83496ba39029842e0dd37c2410caa7380f4347f8b655", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json": "47eb6d88c2228839ce2e5509435b112678f2e083b981a6506fd2a68b690fcb11", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-after-menu.xml": "aa8d8dd33a1411bcbbd6f6f7b2f8e871df674de5ce782c94ad503a4abd686d78", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-after-menu.png": "6b2bd69170e6f78b36040076541e15e95eefbe90a71ca1a504a7ab8fa277e71a", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-after-menu-frame.json": "b22a9236fff224189fe8a54f50aa4059af0789e39d02c9e8bebb628f3aec88f8", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-replacement.xml": "62f1fe6c38ed9c6f179cf269b2874d8144a628d388b056f88454f17713b0e007", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-replacement.png": "28f87878912b9d00b3cfe32951f7b1dd1bb4af965b95c6606ed8df1c7ba7f51b", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-replacement-frame.json": "fdbd9e7859e36867b8531a96ef9f87702e90407344cb81df8ce757cecc01ec29", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.xml": "62f1fe6c38ed9c6f179cf269b2874d8144a628d388b056f88454f17713b0e007", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.png": "3142c0c5f9627546da40991057121600a65e95e49c1920c2fec19abac9912af7", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route-frame.json": "9f2dfde902468786283988d42b63eb485c5252a485c20dc3cd7bce79fa864c5c", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-replacement-show.xml": "aa8d8dd33a1411bcbbd6f6f7b2f8e871df674de5ce782c94ad503a4abd686d78", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-replacement-show.png": "05efe545aa729817ef286c2bc68abe51b55de5b45e2bb41ba7b34dce84b10dc4", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-replacement-show-frame.json": "566cf7d5029b80d805ed3458f6d361a99b2421a7da599c13747fc1684bca5aa0", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-recreation.xml": "62f1fe6c38ed9c6f179cf269b2874d8144a628d388b056f88454f17713b0e007", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-recreation.png": "3869f92835e1eb037168a1616c55d06e22d0e909bd2afaa41d584d3159182e0d", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-recreation-frame.json": "2732868f517c87a5599fd094fb3a3f3259da82a6c16ac1b5b8250e1add94e852", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.xml": "62f1fe6c38ed9c6f179cf269b2874d8144a628d388b056f88454f17713b0e007", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.png": "afa34e3e26a62e6c7dda367bcb587855788322c5615e14395831f1635fca7b38", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner-frame.json": "e320dd38451edbec07cfcf53457c0e872f8bc566250c8c4168700d2bf23ef01f", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.xml": "aa8d8dd33a1411bcbbd6f6f7b2f8e871df674de5ce782c94ad503a4abd686d78", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.png": "c7d974288e950afe83e4b938e38f42810c0d1ccefdc6c382ded3ac88f6a57056", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show-frame.json": "2ef0203b654129b93444fbc5833c36605974c46046b499f7a6c8f0781460c36f", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json": "62af77ff5c51ed5f7fe88c7dcf06660e7210d394843e8d9efd7210879d2a5ddb" + }, + "preserved_file_count": 573 +} diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/tests.log b/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/tests.log new file mode 100644 index 00000000..67f10f0c --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/tests.log @@ -0,0 +1,37 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.TouchSearchDeviceTest: +INSTRUMENTATION_STATUS: test=emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_RESULT: stream= + +Time: 71.233 + +OK (2 tests) + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..3982b3e5 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,329 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "emojiKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 1, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1856, + 106, + 1982, + 232 + ], + "visible": [ + 1856, + 106, + 1982, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1856, + 106, + 1982, + 232 + ], + "visible": [ + 1856, + 106, + 1982, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": false, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Selected Emoji result", + "full": [ + 218, + 345, + 399, + 492 + ], + "visible": [ + 218, + 345, + 399, + 492 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-result-viewport", + "query": "face", + "before": [ + 186, + 95, + 2155, + 313 + ], + "after": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1856, + 106, + 1982, + 232 + ], + "visible": [ + 1856, + 106, + 1982, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1856, + 106, + 1982, + 232 + ], + "visible": [ + 1856, + 106, + 1982, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1856, + 106, + 1982, + 232 + ], + "visible": [ + 1856, + 106, + 1982, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": false, + "route": "emoji" + }, + { + "kind": "keyboard-result-viewport", + "query": "", + "before": [ + 186, + 95, + 2155, + 313 + ], + "after": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1856, + 106, + 1982, + 232 + ], + "visible": [ + 1856, + 106, + 1982, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..05cd5df0 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,354 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 1, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": false, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Selected launcher result", + "full": [ + 207, + 339, + 2134, + 465 + ], + "visible": [ + 207, + 339, + 2134, + 465 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-result-line", + "text": "Settings", + "line": 0, + "full": [ + 322, + 376, + 463, + 429 + ], + "visible": [ + 322, + 376, + 464, + 429 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ], + "complete": true, + "ellipsized": false + }, + { + "kind": "keyboard-result-viewport", + "query": "settings", + "before": [ + 186, + 95, + 2155, + 313 + ], + "after": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": false, + "route": "launcher" + }, + { + "kind": "keyboard-result-viewport", + "query": "", + "before": [ + 186, + 95, + 2155, + 313 + ], + "after": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape100/outer.log b/docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape100/outer.log new file mode 100644 index 00000000..bcb1de14 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape100/outer.log @@ -0,0 +1 @@ +{"completed": true, "passes": 2, "failures": 0, "expected_negative": false, "preserved_file_count": 573} diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape100/record.json b/docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape100/record.json new file mode 100644 index 00000000..63093891 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape100/record.json @@ -0,0 +1,135 @@ +{ + "completed": true, + "expected_negative": false, + "suite": "touch-search", + "input_mode": "system", + "runner_sha256": "d7fc4bccc15eca35d2af00fcb7a9cda594a3c5fe5fb336785b3a2efea4745c1a", + "apk_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "0b855d722fcda7e25b8c873ca1b75a3d44f7ab2069fc0ae032a64d4a3a097eed", + "methods": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "api": 36, + "font_scale": 1.0, + "layout": "landscape", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 2, + "failures": 0, + "native_expected_outcome": true, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml": "eb02f9fdbba7f9b74457c039c798277f84cd0f805a358d49247c9a77ed37d742", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png": "8eed8f58892cb45e5cafc919300fd66616498d72c589ee8087ea05eb834714d5", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json": "9a3eadc4b50cceb0886feb0af9d1758b3c613cfb8295bd969b9606c0178b9c55", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "d5f518ff7b751cf30b0038e0d9ef8b760b29bdf4845b0f7bafabc85d3ce2d0ff", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "cf1344706aa70a41d1a0ea0170bc870010ab627c4730c6ce5c61671d8a182d80", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "5b9bafd96f811b0cb4b83df751ae0aed3a948cd5b453da1fef483c8610236b86", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "d4703d140d3797c2ef02701a1792d65ca4db0a396b7b9cb5545dbceb6e358730", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "f4d9cb4e761a8cf290313d9b40b7960cc3eec36710a763648deef58e215ac7d9", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "a4c281c1d1b6e42acb760c721c016e47755a64ae2fd06315b24a8ddd207c0d8c", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml": "aab8589c3f1839d255003c114f823894921c3c101aea7939b7e6bf4e09f40043", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png": "fc3f5a79f56387f8d8a0095dd3531a2e80a55dff20d9a3655a75b8f186ddf0e9", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json": "31b05faebd8ab820a79e7bc65e5ca03c67c4dc5242a1691466449419cb4ad71f", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml": "f2e5c8acbff502194fbf15e88fc43defbfe7dbfe58890ed7d2fc83c170f74dfa", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png": "cbfc57c5e701c05423ae7d71ebfe6e869537d2208524a61659b2edb0f242e749", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json": "d3e71c75168bc0998ee8c84980954ac4f0f345ec4d28baaf08c7a55e8994e844", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml": "f2e5c8acbff502194fbf15e88fc43defbfe7dbfe58890ed7d2fc83c170f74dfa", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png": "4d030eca0b0849b4094d288172cdd84cd7688b8424088aadada6824d8b515bcb", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json": "4d07f8d03ab85f6dbc240979b55add5a09e8cb0560a582d7add2cf86cf209da2", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml": "e6e8209067e34f6d699f7ff533750f61c1ab670c528a879227ef350487762e44", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png": "e3e9e0006f64ee6f0ff2ec3068270502ee48cb9c72e1d33326458e75e579be81", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json": "102baa71e40b73d69523df885daf490c3461c683df3a3531341f6ce70e2b9a27", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml": "f2e5c8acbff502194fbf15e88fc43defbfe7dbfe58890ed7d2fc83c170f74dfa", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png": "96001a00b566cc4f635c98ebc123115f5aec1814845e21fd42ec178c512fe5cf", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json": "d7d64a571026d1b201df281a3f96d49977fe9131f475a8b19cae1dcebda73c5d", + "emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "7987e463b650cd9a1e347151d003cce87251478cc2ca80b3b9c15ee2f6f1572d", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml": "de5c99cfe669974e20c7ef670438e756d7f23547abd7527472cce25c551ac2dc", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png": "b5a32b8196411872149d768407600bbb234185bf99f724941322f85d5fab3a5a", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json": "73a1acba609037c73ccf5bd54de8011f86a8861e3f0f4d08f2f45123768e53eb", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "bab7dcf56d19269cfe0b579d0de798dc7d8d07bef4e7a4aaf181f1d7ea6761bd", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "9d1e6f31abcda66f615c601cc2538e748ac9e9d686b1d6f88e910b93c7da620b", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "30324492b9b32081f8dbe3393aa8580263fd77079f7fa28dfc5fbbf79271d478", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "1b7018d9c191d78e4057fe8ea9eba0835a5a164ba9788d8156941bc57e0272a3", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "a39e05d774ec798f026474bb1b9ad8c8a30297b9e586758a0d83409cc0b2432e", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "07045a076a61eba2bd5d99b5cb324a6f4431595b5341edc1f0234dc8ae9b4bf7", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml": "11f84798b867cb2c4040b22b68031db70ecd95cba790c9d3edba029f4253e09d", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png": "4f4f9805f1a14f317ab0311439d103a753416cecc6fd586fe5794da8b83b593f", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json": "23c84d4b72caaba22166d5053bfba21da389f68cd0112a507176bbdf2eb17f25", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml": "c796732d9e23655744460b8200d407470ac41a71a51adf78e7fe941abda8ca7b", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png": "9b03970666da94b940135f78a1b07d3ca0d22b70e42f72e8e03b8d4f0682e4c8", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json": "b895f012479205b38e44bd84c15499c5ef76a6abec9869fb57feb6bbb09cd13b", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml": "c796732d9e23655744460b8200d407470ac41a71a51adf78e7fe941abda8ca7b", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png": "9b03970666da94b940135f78a1b07d3ca0d22b70e42f72e8e03b8d4f0682e4c8", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json": "d0fa36552dc1e30233998d8423fc62ba5447efdc7e0a1173799d5a3d860a9fea", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml": "5190ab87de84d2cb862cb7172123c42901abd9bb5d81ce1718faff9e688e00b7", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png": "b26bd50afdbdf26cfe69223f3ccdef3744a8643944b34f1a26aa04b5782a40ed", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json": "f76c84dbc50c0767ca3da2c4b0a4a6a6de2c918d8ee24882c3fcf511ce0b596b", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml": "c796732d9e23655744460b8200d407470ac41a71a51adf78e7fe941abda8ca7b", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png": "676a0290d0e6b027cfad648a417c15a486006f5cd90cd974ad8cb8b2190afb80", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json": "76e3b9ced31235256e12ff1dfb600d8ffeb3054860671b775e32acd75efb1d90", + "launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "0117b62a630b1a45b51dcfa8ef15beccc9b429dc187c0beab943d781eff4fd40" + }, + "preserved_file_count": 573 +} diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape100/tests.log b/docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape100/tests.log new file mode 100644 index 00000000..df8b769a --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape100/tests.log @@ -0,0 +1,37 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.TouchSearchDeviceTest: +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_RESULT: stream= + +Time: 29.446 + +OK (2 tests) + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..143b0e58 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,329 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "emojiKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 2, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1824, + 107, + 1950, + 233 + ], + "visible": [ + 1824, + 107, + 1950, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1824, + 107, + 1950, + 233 + ], + "visible": [ + 1824, + 107, + 1950, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": false, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Selected Emoji result", + "full": [ + 218, + 409, + 399, + 556 + ], + "visible": [ + 218, + 409, + 399, + 556 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-result-viewport", + "query": "face", + "before": [ + 186, + 95, + 2155, + 313 + ], + "after": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1824, + 107, + 1950, + 233 + ], + "visible": [ + 1824, + 107, + 1950, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1824, + 107, + 1950, + 233 + ], + "visible": [ + 1824, + 107, + 1950, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1824, + 107, + 1950, + 233 + ], + "visible": [ + 1824, + 107, + 1950, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": false, + "route": "emoji" + }, + { + "kind": "keyboard-result-viewport", + "query": "", + "before": [ + 186, + 95, + 2155, + 313 + ], + "after": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1824, + 107, + 1950, + 233 + ], + "visible": [ + 1824, + 107, + 1950, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..270bb78e --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,354 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 2, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": false, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Selected launcher result", + "full": [ + 207, + 402, + 2134, + 621 + ], + "visible": [ + 207, + 402, + 2134, + 621 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-result-line", + "text": "Settings", + "line": 0, + "full": [ + 322, + 418, + 588.30774, + 516 + ], + "visible": [ + 322, + 418, + 590, + 516 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ], + "complete": true, + "ellipsized": false + }, + { + "kind": "keyboard-result-viewport", + "query": "settings", + "before": [ + 186, + 95, + 2155, + 313 + ], + "after": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": false, + "route": "launcher" + }, + { + "kind": "keyboard-result-viewport", + "query": "", + "before": [ + 186, + 95, + 2155, + 313 + ], + "after": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape200/outer.log b/docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape200/outer.log new file mode 100644 index 00000000..bcb1de14 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape200/outer.log @@ -0,0 +1 @@ +{"completed": true, "passes": 2, "failures": 0, "expected_negative": false, "preserved_file_count": 573} diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape200/record.json b/docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape200/record.json new file mode 100644 index 00000000..02dbe7d0 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape200/record.json @@ -0,0 +1,135 @@ +{ + "completed": true, + "expected_negative": false, + "suite": "touch-search", + "input_mode": "system", + "runner_sha256": "d7fc4bccc15eca35d2af00fcb7a9cda594a3c5fe5fb336785b3a2efea4745c1a", + "apk_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "0b855d722fcda7e25b8c873ca1b75a3d44f7ab2069fc0ae032a64d4a3a097eed", + "methods": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "api": 36, + "font_scale": 2.0, + "layout": "landscape", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 2, + "failures": 0, + "native_expected_outcome": true, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml": "cd3d36b2a778a11e9cd0e2b701970ab8329343eb54e3fba8281d7e4e4195d2cd", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png": "82809a319800462e57398a04df31fbdcce7258400b5bc6be50bc23a47ac5e0bc", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json": "fd010edfb5b7df9e4c92988af191a61b1e047821d894459fb6f1b4beaba0e03c", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "a335a88b4bd3e5075a55bb379bed09374fab1e4c3050675e6f3a4bab10440eb3", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "a363a292b45b36d08020a3ac443f7e5e2222a498250837c5f177d7123ed76173", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "36af18583a084fae09c1c554508c3d1828aa761d6875890b05031c68d36eef28", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "d0666342e7ff59bc4d35c704eec7aa93c214d8455d27c989e0ddeefabea0e37f", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "6e6fc0af435e09f7d4a63ff8179f9c8fe0e6a0f60bc696b77201abbc49eb8f23", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "25eaf8e602a6b519869334b56598c27ac9454f8ea7ab9a05233f41327bac9b2c", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml": "26fbafdf6654b4703d17e559d449ac34f4bff8a0276b51bc473a85970666916c", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png": "8b89ffcb79791461e33d2699ab98509363bc1293da92efd0a32394baa28138d6", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json": "93528d221bffdc7c90bb731b2d842ca5f230c9c19627308ed50a1e0f056f6809", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml": "6977e3cd9da786042542cf30deca3234a4ef1a172f88a45d449a97dd0f95e763", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png": "447735ca42af31cb9b5bfc2dec8db9483187def9263590dc937262bc9a2b676c", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json": "b1acff232c2b7974a9c4ccad7fabc55581a164bce9016b2e28ec9d7910c3c2bc", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml": "6977e3cd9da786042542cf30deca3234a4ef1a172f88a45d449a97dd0f95e763", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png": "447735ca42af31cb9b5bfc2dec8db9483187def9263590dc937262bc9a2b676c", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json": "8c6c7303a2bf50c6c96136022b68305dd228931e97360868670ebc835f70a125", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml": "1d1aff71fbe1411b24cae6dda8cd2bf731ae74ce6d0ba4e9e72277a49ba8fdee", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png": "a420ff1d63654531834bc429eaa74d5b14e062698ed2677c299940482c3eb4ea", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json": "08f1fd054e1eedc9e86300146abc600a84e7e5ac53efaa5e87ecacdf9d4cc2ab", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml": "6977e3cd9da786042542cf30deca3234a4ef1a172f88a45d449a97dd0f95e763", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png": "eda9e3cd85785e0be1d8a8da5e9a5b79160f633cb5b3d78d5d7b9a9cc080e181", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json": "54ef6e140277418d4da4467ff7f0fc5004fa04532d5d212b55bca34f1c4d5941", + "emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "6df0e02b2b57bd06b965ccda10c44cdaff97c52d3ab361a74f83b3f0b02906b1", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml": "3c481b4c7c42b40973209ea849785ff40e542dd2091f980a5049a86d57088a10", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png": "8b89a0353f996d4dca7863648c1ffdcf90ed9d13fff979d18bab0b74c44a5157", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json": "e5b6554c76db6c95fff540693e774594a8179427e385d3d7a9a469044652a567", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "961389e9fdd95ef136f32c8771720c8143c2b0e25c55e5a1ef3356e57c6b0e25", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "4e18c71211830ebc3ca251db7824158ec78acc687d4ad2eec26645a0ed1fe447", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "3aee75b3c779520e9185f1b51a1c081d1d434e38c15856f3d87264cb2be4699e", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "a9009a255ab5940619eae94630b15ecffd487bef46c86a2f792de04c8191f094", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "29606615310ab7e855bea5ca8d600de4afa25a7d4f471b19e6b992a904f85f8f", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "1181267a2aebbdf238b8d055342c6e277e328cb3c92b7b609a5f883d6abc1ceb", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml": "2edb70ff5503171a6efe9586815c30231b51ce279317cda0a5496cf69467c36e", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png": "60dba2a803656d206f1d554637d14bb6bab71948bb2bc4d8b5ad7b5983c4dba0", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json": "cd7dc5f93bb3e63c72d8fea055df4a1013ba71817afaadf3daa7e3fdfd1c286b", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml": "bd1bdb799071de55429f1db674f6ae1754fcab0a96f780f9ce52e8164aa5a03c", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png": "41dadfff70983aad979a00d0015e44746b86f0ee4c9448f37b5f9cfa6085faff", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json": "a7aa7882a7e06e559deb0f6b51f3ac38c0e42fabdcb1bf46d1684ac8f16a4987", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml": "bd1bdb799071de55429f1db674f6ae1754fcab0a96f780f9ce52e8164aa5a03c", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png": "9833c513fc06d752945d191181503ef255a79962fda2e632e8ad71ae63e22bce", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json": "417b704268cfa46cc1f5a2706903c8d73fef73984ee54cc57f6fca2dba2892f8", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml": "6e58c280e9215b04400fb8d4352f0136236c319fe5c99a646108daa5b2a32bdb", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png": "9221d308ce6d675fa4d26a2f539b97b548dd6fa1c9ea27743f54c6f32994b8e2", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json": "6161a81e2bbba64723875ed736d0a45c347898c9312d2ad1c08f6fca9fee928c", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml": "2766640c23f615e6d1fd5c74f09d2ae6a6c7c27189478e087bb22bea532121cb", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png": "35649197f90b22aa1946a99eb52b597982e01899e6d62019d034f7ec3a2011b3", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json": "141de3e9f6d16c353a164a2aca3722efd3c340d7a05420eaef2d23d57b1f683b", + "launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "ecba92601af22a39d80eac49d76953e214ae8b6ed4936acc52913c8dbec2169c" + }, + "preserved_file_count": 573 +} diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape200/tests.log b/docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape200/tests.log new file mode 100644 index 00000000..4f002b55 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-landscape200/tests.log @@ -0,0 +1,37 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.TouchSearchDeviceTest: +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_RESULT: stream= + +Time: 27.23 + +OK (2 tests) + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..bac21d9c --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,329 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "emojiKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 1, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": false, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Selected Emoji result", + "full": [ + 416, + 381, + 520, + 465 + ], + "visible": [ + 416, + 381, + 520, + 465 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-result-viewport", + "query": "face", + "before": [ + 398, + 237, + 1523, + 630 + ], + "after": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": false, + "route": "emoji" + }, + { + "kind": "keyboard-result-viewport", + "query": "", + "before": [ + 398, + 237, + 1523, + 630 + ], + "after": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..4e608ba1 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,354 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 1, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": false, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Selected launcher result", + "full": [ + 410, + 375, + 1511, + 447 + ], + "visible": [ + 410, + 375, + 1511, + 447 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-result-line", + "text": "Settings", + "line": 0, + "full": [ + 476, + 396, + 558.25, + 426 + ], + "visible": [ + 476, + 396, + 560, + 426 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ], + "complete": true, + "ellipsized": false + }, + { + "kind": "keyboard-result-viewport", + "query": "settings", + "before": [ + 398, + 237, + 1523, + 630 + ], + "after": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": false, + "route": "launcher" + }, + { + "kind": "keyboard-result-viewport", + "query": "", + "before": [ + 398, + 237, + 1523, + 630 + ], + "after": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet100/outer.log b/docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet100/outer.log new file mode 100644 index 00000000..bcb1de14 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet100/outer.log @@ -0,0 +1 @@ +{"completed": true, "passes": 2, "failures": 0, "expected_negative": false, "preserved_file_count": 573} diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet100/record.json b/docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet100/record.json new file mode 100644 index 00000000..1c1a56e7 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet100/record.json @@ -0,0 +1,129 @@ +{ + "completed": true, + "expected_negative": false, + "suite": "touch-search", + "input_mode": "system", + "runner_sha256": "d7fc4bccc15eca35d2af00fcb7a9cda594a3c5fe5fb336785b3a2efea4745c1a", + "apk_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "0b855d722fcda7e25b8c873ca1b75a3d44f7ab2069fc0ae032a64d4a3a097eed", + "methods": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "api": 36, + "font_scale": 1.0, + "layout": "tablet", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 2, + "failures": 0, + "native_expected_outcome": true, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml": "0981bd4b66fb60dbc7525f6173c992216fabe419136f3507bcf3ed8faa37d1d6", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png": "dea9c22de960d623ee4d88b5746667d59315bcaaa57954174d28c0c6a5168955", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json": "47d3a38f3e735533d98a8b7527500306db58e20cf16afa0751ff2b24b3ac69ac", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "0981bd4b66fb60dbc7525f6173c992216fabe419136f3507bcf3ed8faa37d1d6", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "5a60b69021dc9f71dff38f8bbe43c30beec2929855f134b62b1aeba8ca977da4", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "2d9dfca03bd30c2836a510f55746a2dc53c3cc1b8cc9e009004e9137be05285e", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "352cd0a0bcb6581b794dd19b69cf50f1a1a0acfa3a07e07e1b9e8c18604c48ea", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "82da4587950e7ce3994e25eea47b5092a7d74bd3c8b87c8f4bc733db96dcd343", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "b0c20464841fe433312c342bfa43d8c4d7a9b8f6d2fef79d7d00cb591367ff4e", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml": "d990cd03feb1865190066ef9264ef805d236ecbbee3d17ce7fe3ca46f0b00b4d", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png": "9919722c2925b9ad4d34c9d815633ad647c38e705c16a860f27183a047cf2e40", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json": "eddf2999ad79fd92ed594516884c4a01ca0f309287a64013605d4b9275071679", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml": "1dca421373c2f7d1221da96b169cd78c64105602180e8076b368243d268de563", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png": "d5fde9f9e1783558f65fdac189df843b0b9109261294b50c772dfe23401c05a3", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json": "7bce0c05151c91e11207e6a5e23d44a965fbc6cdbf3ee5e8c34f02c72a663bc7", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml": "1dca421373c2f7d1221da96b169cd78c64105602180e8076b368243d268de563", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png": "d5fde9f9e1783558f65fdac189df843b0b9109261294b50c772dfe23401c05a3", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json": "5f7fc3dc27ceed2f38710a26a3fb20bf1365a7a746bb39a13ba6d5ade3e7b0b5", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml": "e4d608ed3035f6fa5519ad62cc2ed46741409edf630c1a48908f575a3ebcdb6c", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png": "1920bf0af7b9f7d95cd2ae95cf4a29a1c86403bbc9e0ef4bcdfb1503c9ff907b", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json": "8a1b8db55f2ccc1efd98413ac8d4b8d856d4cb87b548f91a34494aff3bcba867", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml": "b4ac245fc6cc7aeda30268c919f3dac8b0dfe1ba1ae8bc108d481af6e17fb961", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png": "581633840316dd67872506247dfdbc810030f65100581259c9119ac1f462df89", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json": "aef3fc0ec9b8e8541c55b8c4d7b4c97d276023599cd16826ca47ad828799f3a0", + "emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "e1d1ac0d924c19835708fcc59373fb821eeceb3b4b959c1209a8556f516da3cf", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml": "22b129a65346f4b168a0fa10db387b124e3e6e6515c8dec65de468802bf1b879", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png": "a35aa95ad406dfc075764fdaccf17a168687e62064d764b5114de9059710df2b", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json": "b00d24a2e6c908048b295351eef8d92d168f839482de4293f222c6a188ccc930", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "22b129a65346f4b168a0fa10db387b124e3e6e6515c8dec65de468802bf1b879", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "7c74784c71885c96c7724b1867e3299f3261631dfa088558f221198376cb0f51", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "9e959fef3c96a526d457227890ba17d1d596b951179cee8644c24a25dd0f5334", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "0f063627a97b3cdf19fbee3d3077f05a25265e0964846c7a4d90e0edd923cb1f", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "689258b3db895467bf5650f848017ef3ced5f06f88c39cdda8668e28e8edf9c6", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "b7048eb8b8a384197c54c64a1742c6d142d29caf99b7e2a59951c658fdbca04f", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml": "561620a1e505b9ad17471121820f3ee2c43995c73a05297e60dc5df86de006f8", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png": "e78e9424d7797009b1ae0130f59cf83979358c4a526ccfd17eea9e32dce6ffe4", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json": "6465b9de12b18008bed3d7bd65618f23794d0b7fd7989716d80f1cdc34cb00dd", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml": "df1e673fcc79a5d68b5cac88b8a8f67ab78fb6fdf29b7776c2e01e3aeca05670", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png": "120c723f3232daad5cc1def4ba9e7a0255a086628d728ad04290e55a6a51dc27", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json": "750ec5e21a9dc305427797528c12608d4cd2338a6f351c586789dc5c7c1eb3e3", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml": "df1e673fcc79a5d68b5cac88b8a8f67ab78fb6fdf29b7776c2e01e3aeca05670", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png": "bddb9d917e0cbb8743f46360f8f1c12168b9a48fb7c3eba498e2631a60093a36", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json": "6d219416045ce6a096ef7e2fc870c774c0ec3ba0f9a2cbf5b52f71847318158f", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml": "aa60f62207ea39bb157441f42392a36edde64ffa539e14981a3cecbdd74a30dd", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png": "6d8c6de73a7024fd35628f14d8e03ece7471d2bbe7fe9b283acf0af01cdea945", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json": "93ffc8d68c9990e5fc5fc18bc60c690186c93291fa1783c07d05a6f36b93013b", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml": "171c83137c5c1376f97c4c79813e604fff843d4da820d50abfdda5e435f0cd00", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png": "1d93d6dd2bad48d2251f9a3405ce117b37a35a773076285c550dca2dffca469c", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json": "56e48fc066a801d06df28370c95a89a3a726d73e91d92250d2d8554504740718", + "launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "fbe11d4898b097e66b35a5ed0d2cd27da2bf336695171f47ef3e2c90e3a28e7d" + }, + "preserved_file_count": 573 +} diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet100/tests.log b/docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet100/tests.log new file mode 100644 index 00000000..b1630382 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet100/tests.log @@ -0,0 +1,37 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.TouchSearchDeviceTest: +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_RESULT: stream= + +Time: 35.045 + +OK (2 tests) + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..a4ae6e9a --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,329 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "emojiKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 2, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1333, + 243, + 1405, + 315 + ], + "visible": [ + 1333, + 243, + 1405, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 1134 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1333, + 243, + 1405, + 315 + ], + "visible": [ + 1333, + 243, + 1405, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": false, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Selected Emoji result", + "full": [ + 416, + 417, + 520, + 501 + ], + "visible": [ + 416, + 417, + 520, + 501 + ], + "palette": [ + 398, + 237, + 1523, + 1134 + ] + }, + { + "kind": "keyboard-result-viewport", + "query": "face", + "before": [ + 398, + 237, + 1523, + 630 + ], + "after": [ + 398, + 237, + 1523, + 1134 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1333, + 243, + 1405, + 315 + ], + "visible": [ + 1333, + 243, + 1405, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 1134 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1333, + 243, + 1405, + 315 + ], + "visible": [ + 1333, + 243, + 1405, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 1134 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1333, + 243, + 1405, + 315 + ], + "visible": [ + 1333, + 243, + 1405, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": false, + "route": "emoji" + }, + { + "kind": "keyboard-result-viewport", + "query": "", + "before": [ + 398, + 237, + 1523, + 630 + ], + "after": [ + 398, + 237, + 1523, + 1134 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1333, + 243, + 1405, + 315 + ], + "visible": [ + 1333, + 243, + 1405, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 1134 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..4efd4e42 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,354 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 2, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 1134 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": false, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Selected launcher result", + "full": [ + 410, + 411, + 1511, + 536 + ], + "visible": [ + 410, + 411, + 1511, + 536 + ], + "palette": [ + 398, + 237, + 1523, + 1134 + ] + }, + { + "kind": "keyboard-result-line", + "text": "Settings", + "line": 0, + "full": [ + 476, + 420, + 629.5, + 476 + ], + "visible": [ + 476, + 420, + 631, + 476 + ], + "palette": [ + 398, + 237, + 1523, + 1134 + ], + "complete": true, + "ellipsized": false + }, + { + "kind": "keyboard-result-viewport", + "query": "settings", + "before": [ + 398, + 237, + 1523, + 630 + ], + "after": [ + 398, + 237, + 1523, + 1134 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 1134 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 1134 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": false, + "route": "launcher" + }, + { + "kind": "keyboard-result-viewport", + "query": "", + "before": [ + 398, + 237, + 1523, + 630 + ], + "after": [ + 398, + 237, + 1523, + 1134 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 1134 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet200/outer.log b/docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet200/outer.log new file mode 100644 index 00000000..bcb1de14 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet200/outer.log @@ -0,0 +1 @@ +{"completed": true, "passes": 2, "failures": 0, "expected_negative": false, "preserved_file_count": 573} diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet200/record.json b/docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet200/record.json new file mode 100644 index 00000000..e6cb7670 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet200/record.json @@ -0,0 +1,129 @@ +{ + "completed": true, + "expected_negative": false, + "suite": "touch-search", + "input_mode": "system", + "runner_sha256": "d7fc4bccc15eca35d2af00fcb7a9cda594a3c5fe5fb336785b3a2efea4745c1a", + "apk_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "0b855d722fcda7e25b8c873ca1b75a3d44f7ab2069fc0ae032a64d4a3a097eed", + "methods": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "api": 36, + "font_scale": 2.0, + "layout": "tablet", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 2, + "failures": 0, + "native_expected_outcome": true, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml": "ddfc3c188535b99977bc961f1fa2942cdf680060d10263f28bfbbe6500fc981b", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png": "eb8c37ce43437a141f6557bbad91ef6bb1831351e6f2e1a3ed50c4fb9dedea56", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json": "bbbd6e95ba6bd26afd08fc4ced1e0b08802aa586de92d4d54388a0e825e01f51", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "ddfc3c188535b99977bc961f1fa2942cdf680060d10263f28bfbbe6500fc981b", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "c6a10d9cc765bb7741520cfa346bd5be14c0097493c28c82274c487af139b0d4", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "8ca421bdc53974151d4dda86d9cdfafaef2563b0d92b8b75411feae0fd25c187", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "8d28718df86ae42ef0791b9c070c7a7f346a6fa97af564395e6a6bfacf38576d", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "e53c450870f29be4f11b5a1debadb43ad08e9b24274652cef1a83f2283f07b1b", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "f6b2ce66aef5075c7618d533cfb854c022c0c45a558efd6d22b94f2770c3fd4e", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml": "e7adfb2eeb107d35b25de94d0299cfd392fdbbc46e936385e09b459e730a6157", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png": "2bbfc9a7559a6483a5d5fa4fd9c99127da95b7a8b934f86c3caa3c73d44db2da", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json": "035e9cb9cfc5c057a012271e1ce3ea74b1a716311282d4d0e0896e7ea17d4eba", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml": "37ae5ec6ddcef5931e8688aeb0e47b52750683a342c29c877b4b4fb00ca80857", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png": "21bac004c8daac4e2a8d14e92e5cecaa3a6c231ba2cea059ffd77d2009500262", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json": "8ebbb018e4c28fd4856d5d2c88a039aeab837f4df9bbbc3362d6476ec954a0ab", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml": "37ae5ec6ddcef5931e8688aeb0e47b52750683a342c29c877b4b4fb00ca80857", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png": "231fa3f23b875c03a3ff841ff974d2928bdcb96e661b41670c3c65d7d92b615f", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json": "747dc834d6524ad4f96b648033bc79e813265c83c36a1d74e3d8578d5087f321", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml": "53095ab1b677557e623e06f48e3214e5ea4d4bfba764d99ad0ff4f8fd3fc1be5", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png": "dbbf2882835c83a0cbceef05679c53a2a7354aba6561f13d750e023b697f818d", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json": "c5a0c83b1dcc2112c2233589226211a1371b449eda6817549c5ed515c1986ddf", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml": "d4ae2ea27df9c2239e52ace8b2ae31766bdc88ef8ffeda0b2f6f4148c34a78bb", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png": "4102f792755bd4d23231e80234d6113ab84675ab2ce2669390e3cd9db45e89fa", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json": "2226004210f207bda126c76ec168dcfaeaeb84635a14cb36cf43ce0f104a4b88", + "emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "bb6e17fc39462fdf7b037825d3a32967fa59f7388c434aa56c79b06a6c84697e", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml": "535f9044f93fbcf86d768d4d91f85bd10024cbc061f691fcd4db3546d4fa3e0e", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png": "5c8fdb84534339be18bcddddffd4a5ddc7790249a37c4bc5764cdc03b0a7aaed", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json": "1e511620bdf44f45fc6c5a1a0afb2b45edcf426133a37ee50c139e7191e1313f", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "535f9044f93fbcf86d768d4d91f85bd10024cbc061f691fcd4db3546d4fa3e0e", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "e1e319d8b81011048da0d2c9fed0d7870ee9d27a42f73760b55dc0b3cb8b9b43", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "b57d14345a5f9e17bbeda8209298c79a1fb4217568efe130fe86a60a6f3c4c4c", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "f7642e4b54205e0195fb7c1d1dbd876fbe1f24dc1779a545eb3cdb874bae9f6d", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "e56040f8f47013905922d3be10bf9681a38333f810776fd971482f11a01ceead", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "47945103e56b434cc58564bdc42902531a0fd72b56ab1318382e9b4e9e700894", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml": "00a3d09e2e0b320a0c491011461a7e8b9bc2e483eb12d83c835f2c50b7614e82", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png": "d5cc538ede1224298d865a11651a09faccc7da52d355f7202a20d51cfd6ed55d", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json": "935e6f3e8488c05f00bba7c473c97655bad1107a89213f6ec104cc6ab04f4d35", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml": "66ceee3377387cc1a567ed7576ac403fa3daf595692fe47058bc27820dd088c4", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png": "d5f0360d1a52ac41f4217a4368a4ddd22d91062ee1a99dbf8f672b185a9b4f9d", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json": "d779f0b1803a029a01c7fbd3c086d69e3759f970747cb49b2cb4fe7ec74ba752", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml": "66ceee3377387cc1a567ed7576ac403fa3daf595692fe47058bc27820dd088c4", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png": "d5f0360d1a52ac41f4217a4368a4ddd22d91062ee1a99dbf8f672b185a9b4f9d", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json": "1c26bbeb748b3b5b5844da1dc20d8359cb479cbfc2ad3f92e49f9dc2cef861fe", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml": "4d45a80275508479602a60ae966f988344ec80fa2932fdd8b5235e6694907305", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png": "6e9c2b003dd819d80d583d6f7adcbb15a3b8886b23f491d0a0b7bf8b89fd9a01", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json": "c15136d23a4b158700f121d1a2a0633cfaf1008ec2d4cbb4e5fad191c89517e3", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml": "66ceee3377387cc1a567ed7576ac403fa3daf595692fe47058bc27820dd088c4", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png": "c2df339b2a5423fea4259441ceaf44a26684b7276ecdd24829313ccd45543aee", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json": "26c83629b6e207deecb1484b993d30c0373eb96810d3b857eca9de4bdd0a0975", + "launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "ddfa8cc95708e7886fd94d3cc6840342ddbe827a73af14aa7010ae76fba382de" + }, + "preserved_file_count": 573 +} diff --git a/docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet200/tests.log b/docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet200/tests.log new file mode 100644 index 00000000..e24ab453 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/candidate-v3-tablet200/tests.log @@ -0,0 +1,37 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.TouchSearchDeviceTest: +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_RESULT: stream= + +Time: 33.469 + +OK (2 tests) + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..03d07fe4 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,86 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "emojiKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 1, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1856, + 106, + 1982, + 232 + ], + "visible": [ + 1856, + 106, + 1982, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1856, + 106, + 1982, + 232 + ], + "visible": [ + 1856, + 106, + 1982, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Show on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": true, + "reached_expected_state": false + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json new file mode 100644 index 00000000..5295b9ee --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-after-hide", + "search": [ + 317, + 106, + 1730, + 232 + ], + "ime_visible": true, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml new file mode 100644 index 00000000..afcb8a61 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml @@ -0,0 +1,356 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..26f41f9d --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,86 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 1, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Show on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": true, + "reached_expected_state": false + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json new file mode 100644 index 00000000..e14bd500 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-after-hide", + "search": [ + 318, + 106, + 1861, + 232 + ], + "ime_visible": true, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml new file mode 100644 index 00000000..34ec63ac --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml @@ -0,0 +1,354 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/outer.log b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/outer.log new file mode 100644 index 00000000..d339a987 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/outer.log @@ -0,0 +1,10 @@ +Traceback (most recent call last): + File "/scripts/test-webview-engine.py", line 432, in + main() + ~~~~^^ + File "/scripts/test-webview-engine.py", line 427, in main + require(r['completed'], 'Native outcome failed; inspect retained receipts') + ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/scripts/test-webview-engine.py", line 62, in require + raise ValueError(message) +ValueError: Native outcome failed; inspect retained receipts diff --git a/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/record.json b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/record.json new file mode 100644 index 00000000..23bf4f4b --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/record.json @@ -0,0 +1,105 @@ +{ + "completed": false, + "expected_negative": false, + "suite": "touch-search", + "input_mode": "system", + "runner_sha256": "775233d14eb064bf6636071d89ade59f8a596c518beeb5f6844ea788c613cb7a", + "apk_sha256": "66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d", + "methods": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "api": 36, + "font_scale": 1.0, + "layout": "landscape", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 0, + "failures": 2, + "native_expected_outcome": false, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml": "1ff4900f230e445875bf0534759ef002ced37d1e949386aaff9dca1b75d20242", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png": "ec201b97268c7560bd8e3ff9d4c76a12fdd31620d8eb9a73f2372348db971c18", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json": "9a3eadc4b50cceb0886feb0af9d1758b3c613cfb8295bd969b9606c0178b9c55", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "1ff4900f230e445875bf0534759ef002ced37d1e949386aaff9dca1b75d20242", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "eea87a46e0d80360c83b28106bc82aadb78c0fd7e0487457afb4d2988d892daf", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "5b9bafd96f811b0cb4b83df751ae0aed3a948cd5b453da1fef483c8610236b86", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "a269b3279e148cd7f8352ed7b6dc1f3423ac4ca52e7c741e056f26f7b948c907", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "74f206b6891482a789ee4d35ccd4192342e594238e8dae1843ff2ac92b52f27c", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "1813955009e7148a125948107b5b471d1cd9fe7ff2334928922aaf9c465b8f39", + "emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "2cad14379782102b85a376eef0f3112f13c780eefd10ad4dcd15fca4c24c4cad", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml": "98b85b50bdda7616da025d031b86ef8450cfb6afda2aef64812f4ad9b5f7c082", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png": "d90b0b9f656c7b9c2037c0530ddcd7c66b8d45eef2fa7ac7ed26815b02e694b8", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json": "73a1acba609037c73ccf5bd54de8011f86a8861e3f0f4d08f2f45123768e53eb", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "67cf8c798b8ed46e37722177e9abcfe92fc17f0d8a2cde8ebe6b46b624ff28d8", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "9057b1d4c1ac200a5de71876a86ffc0ecf926ff57eb7364fe45cef55bc4642c3", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "30324492b9b32081f8dbe3393aa8580263fd77079f7fa28dfc5fbbf79271d478", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "f467bb3f80c7bf6e54a1f5afe1ad88f7f2b33e38167e2c290ef7e8565a80bd5e", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "85598917b0367cae1bfa1046a25fba347f0ad32bd4eef5d5a2a32aee2b7adfde", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "b2050027d7e41ce99f99b847788d96978c631fa132d7c2746ca0de8050e50ca4", + "launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "cd8e6159eaa739cf0c6973350d36b4479016d94d390007626af0385fd679a42f" + }, + "preserved_file_count": 573 +} diff --git a/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/tests.log b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/tests.log new file mode 100644 index 00000000..1ed22010 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/tests.log @@ -0,0 +1,89 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.TouchSearchDeviceTest: +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stack=java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:565) + +INSTRUMENTATION_STATUS: stream= +Error in emojiKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest): +java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:565) + +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: -2 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stack=java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:564) + +INSTRUMENTATION_STATUS: stream= +Error in launcherKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest): +java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:564) + +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: -2 +INSTRUMENTATION_RESULT: stream= + +Time: 25.716 +There were 2 failures: +1) emojiKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest) +java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:565) +2) launcherKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest) +java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:564) + +FAILURES!!! +Tests run: 2, Failures: 2 + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..545a2db1 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,86 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "emojiKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 2, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1824, + 107, + 1950, + 233 + ], + "visible": [ + 1824, + 107, + 1950, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1824, + 107, + 1950, + 233 + ], + "visible": [ + 1824, + 107, + 1950, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Show on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": true, + "reached_expected_state": false + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json new file mode 100644 index 00000000..b80e6660 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-after-hide", + "search": [ + 317, + 107, + 1698, + 233 + ], + "ime_visible": true, + "api": 36, + "font_scale": 2, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml new file mode 100644 index 00000000..a89be324 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml @@ -0,0 +1,356 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..ecbff2ca --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,86 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 2, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Show on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": true, + "reached_expected_state": false + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json new file mode 100644 index 00000000..79f7194a --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-after-hide", + "search": [ + 318, + 106, + 1861, + 232 + ], + "ime_visible": true, + "api": 36, + "font_scale": 2, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml new file mode 100644 index 00000000..08a474bf --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml @@ -0,0 +1,353 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/outer.log b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/outer.log new file mode 100644 index 00000000..d339a987 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/outer.log @@ -0,0 +1,10 @@ +Traceback (most recent call last): + File "/scripts/test-webview-engine.py", line 432, in + main() + ~~~~^^ + File "/scripts/test-webview-engine.py", line 427, in main + require(r['completed'], 'Native outcome failed; inspect retained receipts') + ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/scripts/test-webview-engine.py", line 62, in require + raise ValueError(message) +ValueError: Native outcome failed; inspect retained receipts diff --git a/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/record.json b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/record.json new file mode 100644 index 00000000..5f64f086 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/record.json @@ -0,0 +1,105 @@ +{ + "completed": false, + "expected_negative": false, + "suite": "touch-search", + "input_mode": "system", + "runner_sha256": "775233d14eb064bf6636071d89ade59f8a596c518beeb5f6844ea788c613cb7a", + "apk_sha256": "66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d", + "methods": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "api": 36, + "font_scale": 2.0, + "layout": "landscape", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 0, + "failures": 2, + "native_expected_outcome": false, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml": "c2c64f964511341713c8b406f1c40ffeff913a6210e4e8a68ccd785945a60d26", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png": "2ef9ba827cb23824f522b2369c490092082bf48cae3ee48b0cc67f9fd46d9327", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json": "fd010edfb5b7df9e4c92988af191a61b1e047821d894459fb6f1b4beaba0e03c", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "c2c64f964511341713c8b406f1c40ffeff913a6210e4e8a68ccd785945a60d26", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "d882e73a6c77477701c7d76d61edf6f7c95bfdb51c8d73b311ad3f6a3dda7ce8", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "36af18583a084fae09c1c554508c3d1828aa761d6875890b05031c68d36eef28", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "4d26ee304113c9890bb4c9b6ebe420b4ed618d821d73a9b147a56ed3f6b40896", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "2fb233cb5617bf98d8c53c51f721488b62c3f72690ca363096a5131dc627195d", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "03e206efabc8c009a17acc85d24b4d16faa74934e967dd92d18094ab3fb4f772", + "emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "3fb46039ec47f89270b1c0972ec95b4b1c5f8252aea186f34b515872318c529c", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml": "5ee44ec8ea72d2ebacd2f5a1f367fe2a5ff717c89c34647d44663e448aba89a6", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png": "3224910d03d45d454dc26b0fc2bcc4fea9f33a9ec2a74b2696875a53f47df8f5", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json": "e5b6554c76db6c95fff540693e774594a8179427e385d3d7a9a469044652a567", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "073f6019c06060b876ef8ef4e7b61c328a6da11bbe239c01c05cf5148ab6eee9", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "b26148a1251055f94693962e43a865fd73cecd37ee53c7bef90726c3cc61ee73", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "3aee75b3c779520e9185f1b51a1c081d1d434e38c15856f3d87264cb2be4699e", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "0d99d917d664286dbb7cb448e9e4e55335e44080f8cb00159e30bd6c5132375d", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "5d4a82154e16eab024e91f37af42d0d1ead7d5d608e213a0717d58630f9070e5", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "ece83da11ff1e600cfe5f07186c5251a1060df6f741c839e0c6e9716a3929fc3", + "launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "55b861597acea563d4881dcf94294c13f7aee4f759f181473e355bd113029545" + }, + "preserved_file_count": 573 +} diff --git a/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/tests.log b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/tests.log new file mode 100644 index 00000000..b10f381a --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/tests.log @@ -0,0 +1,89 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.TouchSearchDeviceTest: +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stack=java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:565) + +INSTRUMENTATION_STATUS: stream= +Error in emojiKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest): +java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:565) + +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: -2 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stack=java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:564) + +INSTRUMENTATION_STATUS: stream= +Error in launcherKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest): +java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:564) + +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: -2 +INSTRUMENTATION_RESULT: stream= + +Time: 24.949 +There were 2 failures: +1) emojiKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest) +java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:565) +2) launcherKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest) +java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:564) + +FAILURES!!! +Tests run: 2, Failures: 2 + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..03d07fe4 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,86 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "emojiKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 1, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1856, + 106, + 1982, + 232 + ], + "visible": [ + 1856, + 106, + 1982, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1856, + 106, + 1982, + 232 + ], + "visible": [ + 1856, + 106, + 1982, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Show on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": true, + "reached_expected_state": false + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..26f41f9d --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,86 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 1, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Show on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": true, + "reached_expected_state": false + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape100/outer.log b/docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape100/outer.log new file mode 100644 index 00000000..7c1878e9 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape100/outer.log @@ -0,0 +1,10 @@ +Traceback (most recent call last): + File "/scripts/test-webview-engine.py", line 430, in + main() + ~~~~^^ + File "/scripts/test-webview-engine.py", line 425, in main + require(r['completed'], 'Native outcome failed; inspect retained receipts') + ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/scripts/test-webview-engine.py", line 60, in require + raise ValueError(message) +ValueError: Native outcome failed; inspect retained receipts diff --git a/docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape100/record.json b/docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape100/record.json new file mode 100644 index 00000000..73f027e6 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape100/record.json @@ -0,0 +1,105 @@ +{ + "completed": false, + "expected_negative": false, + "suite": "touch-search", + "input_mode": "system", + "runner_sha256": "d7fc4bccc15eca35d2af00fcb7a9cda594a3c5fe5fb336785b3a2efea4745c1a", + "apk_sha256": "66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c", + "test_apk_sha256": "0b855d722fcda7e25b8c873ca1b75a3d44f7ab2069fc0ae032a64d4a3a097eed", + "methods": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "api": 36, + "font_scale": 1.0, + "layout": "landscape", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 0, + "failures": 2, + "native_expected_outcome": false, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml": "ba850990af7d6705962458505ebfb1700f30708f2a6688b85417eb1b4a4842f3", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png": "1b608cde3f157ba562012c8a9a9da4e3b2cb22dc5951305eb410457d35471a65", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json": "9a3eadc4b50cceb0886feb0af9d1758b3c613cfb8295bd969b9606c0178b9c55", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "94f467856b2df6e527bbf9751db9773b795d0ce8e0eb657f98ac13b475b34b8c", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "3754228b75b19620ff4ffe9bbc6d62bb946312c927cebfd43f325a45f841b874", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "5b9bafd96f811b0cb4b83df751ae0aed3a948cd5b453da1fef483c8610236b86", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "8bd2d811630c71bdcf6208d8ae30f8ca49b477dc67ac801c70de3ced04bb45f8", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "aeb72c8b49177cf18d74784a4688d8bd272deb48e8986d86bd49d4fb66cd58b1", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "1813955009e7148a125948107b5b471d1cd9fe7ff2334928922aaf9c465b8f39", + "emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "2cad14379782102b85a376eef0f3112f13c780eefd10ad4dcd15fca4c24c4cad", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml": "6c032aa1437e0f63a847a1725fbb7965e8f573730e1308008a129aa5be2e4bbd", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png": "faa2d07b040d0c3ecceb987d6fe40ce3c2e40865622a80d2df20e2d14754d5a6", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json": "73a1acba609037c73ccf5bd54de8011f86a8861e3f0f4d08f2f45123768e53eb", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "f662ef634019efb9ca1860b77e5ef20290ae3399ec890b076a848d79ad68221e", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "45f751492ec14227e2b0c42b4dd9421d4eafcd1daad6cddd08c812cc5a11864e", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "30324492b9b32081f8dbe3393aa8580263fd77079f7fa28dfc5fbbf79271d478", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "f662ef634019efb9ca1860b77e5ef20290ae3399ec890b076a848d79ad68221e", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "17e66337885380dd6eb34ce56e065a428ccea5ec0df27c23dccad6f861f74544", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "b2050027d7e41ce99f99b847788d96978c631fa132d7c2746ca0de8050e50ca4", + "launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "cd8e6159eaa739cf0c6973350d36b4479016d94d390007626af0385fd679a42f" + }, + "preserved_file_count": 573 +} diff --git a/docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape100/tests.log b/docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape100/tests.log new file mode 100644 index 00000000..d751b163 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape100/tests.log @@ -0,0 +1,89 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.TouchSearchDeviceTest: +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stack=java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:565) + +INSTRUMENTATION_STATUS: stream= +Error in emojiKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest): +java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:565) + +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: -2 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stack=java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:564) + +INSTRUMENTATION_STATUS: stream= +Error in launcherKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest): +java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:564) + +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: -2 +INSTRUMENTATION_RESULT: stream= + +Time: 25.135 +There were 2 failures: +1) emojiKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest) +java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:565) +2) launcherKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest) +java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:564) + +FAILURES!!! +Tests run: 2, Failures: 2 + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..545a2db1 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,86 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "emojiKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 2, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1824, + 107, + 1950, + 233 + ], + "visible": [ + 1824, + 107, + 1950, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1824, + 107, + 1950, + 233 + ], + "visible": [ + 1824, + 107, + 1950, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Show on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": true, + "reached_expected_state": false + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..ecbff2ca --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,86 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 2, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Show on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": true, + "reached_expected_state": false + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape200/outer.log b/docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape200/outer.log new file mode 100644 index 00000000..7c1878e9 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape200/outer.log @@ -0,0 +1,10 @@ +Traceback (most recent call last): + File "/scripts/test-webview-engine.py", line 430, in + main() + ~~~~^^ + File "/scripts/test-webview-engine.py", line 425, in main + require(r['completed'], 'Native outcome failed; inspect retained receipts') + ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/scripts/test-webview-engine.py", line 60, in require + raise ValueError(message) +ValueError: Native outcome failed; inspect retained receipts diff --git a/docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape200/record.json b/docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape200/record.json new file mode 100644 index 00000000..dc9fac36 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape200/record.json @@ -0,0 +1,105 @@ +{ + "completed": false, + "expected_negative": false, + "suite": "touch-search", + "input_mode": "system", + "runner_sha256": "d7fc4bccc15eca35d2af00fcb7a9cda594a3c5fe5fb336785b3a2efea4745c1a", + "apk_sha256": "66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c", + "test_apk_sha256": "0b855d722fcda7e25b8c873ca1b75a3d44f7ab2069fc0ae032a64d4a3a097eed", + "methods": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "api": 36, + "font_scale": 2.0, + "layout": "landscape", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 0, + "failures": 2, + "native_expected_outcome": false, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml": "73a2d2ed6193ebad4b41dd58ce3ba9da83d1cf4b08f040444e48e1a4b1c3b331", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png": "6f616b31303314978da8af68ade4da404d48262ea18fa9bebe1fd5b9cf13cd42", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json": "fd010edfb5b7df9e4c92988af191a61b1e047821d894459fb6f1b4beaba0e03c", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "2f1c3bacc26956585edf4a9c9176a1959b3867af8a30ea1da4c7e9c74fc8ec01", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "4c8bfc4baf6c8b188bf1e661b9ce64ebd17b5988456f20ec89e79004ec858f62", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "36af18583a084fae09c1c554508c3d1828aa761d6875890b05031c68d36eef28", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "173a2e3c49885ef8077b36ad2afc471faebfb028b8a2fd14010fca8f19875299", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "6c38a3ba3227b09e807cd6113efe0166cd71ffb3f4aa12ca2962783440ebc169", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "03e206efabc8c009a17acc85d24b4d16faa74934e967dd92d18094ab3fb4f772", + "emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "3fb46039ec47f89270b1c0972ec95b4b1c5f8252aea186f34b515872318c529c", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml": "9de7820c84299b374cbe6a7760c16a3375c1820e7373efbc86afcdcacb099366", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png": "54fffbd08e144cda98d202b372544dc93c3bbf592e94d726aa4e9daa63954488", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json": "e5b6554c76db6c95fff540693e774594a8179427e385d3d7a9a469044652a567", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "9de7820c84299b374cbe6a7760c16a3375c1820e7373efbc86afcdcacb099366", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "57180deb92306a4f519b76d54324f227bf1a297ba1fd102e7df431ce0c3f4976", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "3aee75b3c779520e9185f1b51a1c081d1d434e38c15856f3d87264cb2be4699e", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "fda02aa5f8b0f81fd07fc197119c29ce7907d41807b141c6137079c161063ca2", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "2a7ec2b7865b04f468fd47db581a0d2cf50f73fa5f5fab0acaa55dfd32d44070", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "ece83da11ff1e600cfe5f07186c5251a1060df6f741c839e0c6e9716a3929fc3", + "launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "55b861597acea563d4881dcf94294c13f7aee4f759f181473e355bd113029545" + }, + "preserved_file_count": 573 +} diff --git a/docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape200/tests.log b/docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape200/tests.log new file mode 100644 index 00000000..6885524f --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-old-v3-landscape200/tests.log @@ -0,0 +1,89 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.TouchSearchDeviceTest: +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stack=java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:565) + +INSTRUMENTATION_STATUS: stream= +Error in emojiKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest): +java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:565) + +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: -2 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stack=java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:564) + +INSTRUMENTATION_STATUS: stream= +Error in launcherKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest): +java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:564) + +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: -2 +INSTRUMENTATION_RESULT: stream= + +Time: 25.953 +There were 2 failures: +1) emojiKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest) +java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:565) +2) launcherKeyboardToggleRevealsResultsAndPreservesSearch(dev.tinycast.android.TouchSearchDeviceTest) +java.lang.AssertionError: Header keyboard action must hide the visible IME + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard(TouchSearchDeviceTest.kt:490) + at dev.tinycast.android.TouchSearchDeviceTest.pointerKeyboard$default(TouchSearchDeviceTest.kt:474) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardToggleFlow(TouchSearchDeviceTest.kt:537) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardToggleRevealsResultsAndPreservesSearch(TouchSearchDeviceTest.kt:564) + +FAILURES!!! +Tests run: 2, Failures: 2 + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json b/docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json new file mode 100644 index 00000000..d3ed227d --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json @@ -0,0 +1,105 @@ +{ + "scope": "Controlled retained native callbacks; visibility and menu-backdrop dismissal use actual pointers. Injected system Back failure remains #115; no queued-input or cross-window certification.", + "case": "emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "api": 36, + "font_scale": 1, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-first-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-live-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-live-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json b/docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json new file mode 100644 index 00000000..f86cc110 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-guard-obsolete-mode", + "search": [ + 473, + 243, + 1280, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Controlled retained native callbacks; visibility and menu-backdrop dismissal use actual pointers. Injected system Back failure remains #115; no queued-input or cross-window certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml b/docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml new file mode 100644 index 00000000..e2f7e7e9 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml @@ -0,0 +1,340 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json b/docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json new file mode 100644 index 00000000..f724429f --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json @@ -0,0 +1,105 @@ +{ + "scope": "Controlled retained native callbacks; visibility and menu-backdrop dismissal use actual pointers. Injected system Back failure remains #115; no queued-input or cross-window certification.", + "case": "launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "api": 36, + "font_scale": 1, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-first-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-live-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-live-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json b/docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json new file mode 100644 index 00000000..17c14234 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-guard-obsolete-mode", + "search": [ + 473, + 243, + 1355, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Controlled retained native callbacks; visibility and menu-backdrop dismissal use actual pointers. Injected system Back failure remains #115; no queued-input or cross-window certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml b/docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml new file mode 100644 index 00000000..8925aa3e --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/outer.log b/docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/outer.log new file mode 100644 index 00000000..d339a987 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/outer.log @@ -0,0 +1,10 @@ +Traceback (most recent call last): + File "/scripts/test-webview-engine.py", line 432, in + main() + ~~~~^^ + File "/scripts/test-webview-engine.py", line 427, in main + require(r['completed'], 'Native outcome failed; inspect retained receipts') + ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/scripts/test-webview-engine.py", line 62, in require + raise ValueError(message) +ValueError: Native outcome failed; inspect retained receipts diff --git a/docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/record.json b/docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/record.json new file mode 100644 index 00000000..f6803ac4 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/record.json @@ -0,0 +1,105 @@ +{ + "completed": false, + "expected_negative": false, + "suite": "touch-search", + "input_mode": "system", + "runner_sha256": "775233d14eb064bf6636071d89ade59f8a596c518beeb5f6844ea788c613cb7a", + "apk_sha256": "32e2726d35d1c01fe488aa0781a3a0d67d99498699f7121ab4ad2f1be95e5286", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d", + "methods": [ + "launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus" + ], + "api": 36, + "font_scale": 1.0, + "layout": "tablet", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 0, + "failures": 2, + "native_expected_outcome": false, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.xml": "4cb8ed138228a0f00c680502a851522b1fb677a33bb29771d0fd5b9080dff728", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.png": "6cb6882a536cfd20e203cdb3ea88278fd530afb1327a58ca1a4f4851d98dc9c6", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show-frame.json": "16daad1eef0957b1b8bc75a1b86c80f4e5d2987f88e5d2fd9b5ec547ffb7b717", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.xml": "d18c845e91909af70857f9235f05066f780c3997d2cd073fbe8b6a48ab81eaec", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.png": "60e979cb5c4f421baed33837f6053b0feda28f9a5bf3692385099d59d43901b2", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide-frame.json": "6603dc62fe03f29ad0d642eb32d16a958d6319a6edad8c4a851194f5462f7e16", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.xml": "4cb8ed138228a0f00c680502a851522b1fb677a33bb29771d0fd5b9080dff728", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.png": "7d94be69507ba6069750b745bef8dc586c46e73d6d6da98ae969c0b9090bbdb6", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show-frame.json": "34d7d1afd5f68148d05b298170023beee817cc13f54f2e1cf2900ee03f4e85a2", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml": "d18c845e91909af70857f9235f05066f780c3997d2cd073fbe8b6a48ab81eaec", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png": "cd8ce9376ac29fa6eee37ee6122c8a944d69709434dbabecf7c3040a76069b65", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json": "7a9c905a232410a42ed73ffa023143c6c237aad8b2be080c0be2419f1fe3cb00", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json": "b338c38dab75f6c1d2f124d5078945bd66bf9d22890a9ad86f7f1ebef50faf68", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.xml": "a8badaa0dd88ddf81a1f9f1b9633bba50185ad4ea3f1e9e6edd13c642e4f7eaa", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.png": "9b922a26ebed47f57e58bfb2fd376ffb735ca76f96c6d0fd2696b5b3f2a1d209", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show-frame.json": "554b08aa0d3dd50ff6a54e07176a85fdfd4cceb70052137b8621ef406c550548", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.xml": "3d5fc11771146b9ea01c9e3d4290e42d3dc7929ab03bfd7aa4eee63397728414", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.png": "f595e889f7b6e1c2586e720d4a7a7fd65aa2d35a1b5bf19e347c8ebe5dba2281", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide-frame.json": "2da02eff294aeff70b20d3c0dba8d1a085cbe2a5d2588540697e531039a729c0", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.xml": "a8badaa0dd88ddf81a1f9f1b9633bba50185ad4ea3f1e9e6edd13c642e4f7eaa", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.png": "310938650bd27a857ee33532be1459556f9f12b75143cb5c6ec19e427407a2f8", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show-frame.json": "80acb74de7e9b2ab66ef6279b09d7d2672c37d7ebfcf1e8c3a82c0e1add4da63", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml": "3d5fc11771146b9ea01c9e3d4290e42d3dc7929ab03bfd7aa4eee63397728414", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png": "0bc019d8840abdf43b707150e402686cd8d28b06f1238c4118b3075126554ea2", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json": "12de910259e63531209a08d948ed0942a8f9a98f738b8fec5a5d73a56a7e6519", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json": "b97217edde8e460e0573ede2faa0e5cbd937f43026fcf3a282dd445dddea032f" + }, + "preserved_file_count": 573 +} diff --git a/docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/tests.log b/docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/tests.log new file mode 100644 index 00000000..95d4782d --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/tests.log @@ -0,0 +1,89 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.TouchSearchDeviceTest: +INSTRUMENTATION_STATUS: test=emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stack=java.lang.AssertionError: Obsolete or obstructed keyboard callback must not change visibility: keyboard-guard-obsolete-mode expected: but was: + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.failNotEquals(Assert.java:835) + at org.junit.Assert.assertEquals(Assert.java:120) + at dev.tinycast.android.TouchSearchDeviceTest.rejectedKeyboardCallback(TouchSearchDeviceTest.kt:575) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardCallbackFlow(TouchSearchDeviceTest.kt:609) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(TouchSearchDeviceTest.kt:653) + +INSTRUMENTATION_STATUS: stream= +Error in emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(dev.tinycast.android.TouchSearchDeviceTest): +java.lang.AssertionError: Obsolete or obstructed keyboard callback must not change visibility: keyboard-guard-obsolete-mode expected: but was: + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.failNotEquals(Assert.java:835) + at org.junit.Assert.assertEquals(Assert.java:120) + at dev.tinycast.android.TouchSearchDeviceTest.rejectedKeyboardCallback(TouchSearchDeviceTest.kt:575) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardCallbackFlow(TouchSearchDeviceTest.kt:609) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(TouchSearchDeviceTest.kt:653) + +INSTRUMENTATION_STATUS: test=emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus +INSTRUMENTATION_STATUS_CODE: -2 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stack=java.lang.AssertionError: Obsolete or obstructed keyboard callback must not change visibility: keyboard-guard-obsolete-mode expected: but was: + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.failNotEquals(Assert.java:835) + at org.junit.Assert.assertEquals(Assert.java:120) + at dev.tinycast.android.TouchSearchDeviceTest.rejectedKeyboardCallback(TouchSearchDeviceTest.kt:575) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardCallbackFlow(TouchSearchDeviceTest.kt:609) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(TouchSearchDeviceTest.kt:652) + +INSTRUMENTATION_STATUS: stream= +Error in launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(dev.tinycast.android.TouchSearchDeviceTest): +java.lang.AssertionError: Obsolete or obstructed keyboard callback must not change visibility: keyboard-guard-obsolete-mode expected: but was: + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.failNotEquals(Assert.java:835) + at org.junit.Assert.assertEquals(Assert.java:120) + at dev.tinycast.android.TouchSearchDeviceTest.rejectedKeyboardCallback(TouchSearchDeviceTest.kt:575) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardCallbackFlow(TouchSearchDeviceTest.kt:609) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(TouchSearchDeviceTest.kt:652) + +INSTRUMENTATION_STATUS: test=launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus +INSTRUMENTATION_STATUS_CODE: -2 +INSTRUMENTATION_RESULT: stream= + +Time: 22.034 +There were 2 failures: +1) emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(dev.tinycast.android.TouchSearchDeviceTest) +java.lang.AssertionError: Obsolete or obstructed keyboard callback must not change visibility: keyboard-guard-obsolete-mode expected: but was: + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.failNotEquals(Assert.java:835) + at org.junit.Assert.assertEquals(Assert.java:120) + at dev.tinycast.android.TouchSearchDeviceTest.rejectedKeyboardCallback(TouchSearchDeviceTest.kt:575) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardCallbackFlow(TouchSearchDeviceTest.kt:609) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(TouchSearchDeviceTest.kt:653) +2) launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(dev.tinycast.android.TouchSearchDeviceTest) +java.lang.AssertionError: Obsolete or obstructed keyboard callback must not change visibility: keyboard-guard-obsolete-mode expected: but was: + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.failNotEquals(Assert.java:835) + at org.junit.Assert.assertEquals(Assert.java:120) + at dev.tinycast.android.TouchSearchDeviceTest.rejectedKeyboardCallback(TouchSearchDeviceTest.kt:575) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardCallbackFlow(TouchSearchDeviceTest.kt:609) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(TouchSearchDeviceTest.kt:652) + +FAILURES!!! +Tests run: 2, Failures: 2 + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/control-proxy-v3-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json b/docs/validation/keyboard-toggle/cohorts/control-proxy-v3-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json new file mode 100644 index 00000000..253d4d60 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-proxy-v3-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json @@ -0,0 +1,105 @@ +{ + "scope": "Controlled retained native callbacks; visibility and menu-backdrop dismissal use actual pointers. Physical Back failure remains #115; no queued-input or cross-window certification.", + "case": "emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "api": 36, + "font_scale": 1, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-first-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-live-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-live-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/control-proxy-v3-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json b/docs/validation/keyboard-toggle/cohorts/control-proxy-v3-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json new file mode 100644 index 00000000..76f77f2e --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-proxy-v3-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json @@ -0,0 +1,105 @@ +{ + "scope": "Controlled retained native callbacks; visibility and menu-backdrop dismissal use actual pointers. Physical Back failure remains #115; no queued-input or cross-window certification.", + "case": "launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "api": 36, + "font_scale": 1, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-first-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-live-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-live-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/control-proxy-v3-tablet100/outer.log b/docs/validation/keyboard-toggle/cohorts/control-proxy-v3-tablet100/outer.log new file mode 100644 index 00000000..7c1878e9 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-proxy-v3-tablet100/outer.log @@ -0,0 +1,10 @@ +Traceback (most recent call last): + File "/scripts/test-webview-engine.py", line 430, in + main() + ~~~~^^ + File "/scripts/test-webview-engine.py", line 425, in main + require(r['completed'], 'Native outcome failed; inspect retained receipts') + ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/scripts/test-webview-engine.py", line 60, in require + raise ValueError(message) +ValueError: Native outcome failed; inspect retained receipts diff --git a/docs/validation/keyboard-toggle/cohorts/control-proxy-v3-tablet100/record.json b/docs/validation/keyboard-toggle/cohorts/control-proxy-v3-tablet100/record.json new file mode 100644 index 00000000..f7ec449b --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-proxy-v3-tablet100/record.json @@ -0,0 +1,105 @@ +{ + "completed": false, + "expected_negative": false, + "suite": "touch-search", + "input_mode": "system", + "runner_sha256": "d7fc4bccc15eca35d2af00fcb7a9cda594a3c5fe5fb336785b3a2efea4745c1a", + "apk_sha256": "32e2726d35d1c01fe488aa0781a3a0d67d99498699f7121ab4ad2f1be95e5286", + "test_apk_sha256": "0b855d722fcda7e25b8c873ca1b75a3d44f7ab2069fc0ae032a64d4a3a097eed", + "methods": [ + "launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus" + ], + "api": 36, + "font_scale": 1.0, + "layout": "tablet", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 0, + "failures": 2, + "native_expected_outcome": false, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.xml": "38f1ab7fb64f8d0464591f31f4b1ab4182776979c05e78025fb8a8d1cfa2cda6", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.png": "3dc555f8d05c826847422208147971141d849f614cac20caf821d0dbddfc637d", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show-frame.json": "be1b9fd29b46685c9e3e39d3af4930828a55a8d53440b30205ede0d28f27db4e", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.xml": "07586c4c480f3c29f406b54b807ed08b238a4f435ceeb5832735637eac2c3600", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.png": "d8d4dd66290606ad85b4d6249713d616e9af2c3cbdc8610dbe66ba707d1e3110", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide-frame.json": "7f874c1364efff15fa38e5b9518b44f2b76dafbc0f642e71c0be8279fc96b250", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.xml": "38f1ab7fb64f8d0464591f31f4b1ab4182776979c05e78025fb8a8d1cfa2cda6", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.png": "13322d7c029b58499f771bee8963996dc819c3ac14c99f54026bad035f856dc9", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show-frame.json": "0193da82e862287e9571cc3d12a787bdc5d194917a99272e97216038cfd1c63c", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml": "07586c4c480f3c29f406b54b807ed08b238a4f435ceeb5832735637eac2c3600", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png": "631a3319e076c08296e0185cb6350b5c7a5e5c080647a05c918497653a4105a3", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json": "ab3da0a03d59b6b7cc1e60f69f18c854cdfc1eb040634784dbdcc024736167f3", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json": "d4db51f5fa16832354e68ebb7f26099159aec13486e4c57596acaccdecf35899", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.xml": "eeadd2477bfd9c140e575f9b0390ae2b0a266e26013f44da815397fd35b0637a", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.png": "62663d2134a8487a631a0ff7dcb6c143c6233ea5681e055ad56e001476e4e45f", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show-frame.json": "43d3b1d49420775301cbbb47348c6fde718ec116f8e3acb357d8753efdbb2d0e", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.xml": "91ef5a71ea2b4fe7392619c02ebc3c58d1bf48c2578105b7a33a9f5752446125", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.png": "24c53d99bd846c183d5443d96ecf9acb5befe2804ddd5e5ba37edfde67dc5cb1", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide-frame.json": "052d6fd643b7fc0d0c97a5934df147caeebb7f88733dc1af1b810bb47841b67b", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.xml": "eeadd2477bfd9c140e575f9b0390ae2b0a266e26013f44da815397fd35b0637a", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.png": "7ad6087c7704646798c6bf11b370db935533a6011f378917e54eae1dc20a09ef", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show-frame.json": "48ced2d759bababde2b9381300fa2500a229de33b0434c088651713fff9fb3ae", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml": "91ef5a71ea2b4fe7392619c02ebc3c58d1bf48c2578105b7a33a9f5752446125", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png": "e24f05353f1179973b7c765a4c14af2a1ab14cfc8a6b39c449c0d7a58e007003", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json": "2295281ccca7b1832df53fc1c83b1c956cd04935db5c9e2807a88956e3911c1f", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json": "82fe8b90cae7ab2ce65a0fbce90086435529cd57486923ff3ae747006a5e1e8c" + }, + "preserved_file_count": 573 +} diff --git a/docs/validation/keyboard-toggle/cohorts/control-proxy-v3-tablet100/tests.log b/docs/validation/keyboard-toggle/cohorts/control-proxy-v3-tablet100/tests.log new file mode 100644 index 00000000..7f4fa01c --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/control-proxy-v3-tablet100/tests.log @@ -0,0 +1,89 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.TouchSearchDeviceTest: +INSTRUMENTATION_STATUS: test=emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stack=java.lang.AssertionError: Obsolete or obstructed keyboard callback must not change visibility: keyboard-guard-obsolete-mode expected: but was: + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.failNotEquals(Assert.java:835) + at org.junit.Assert.assertEquals(Assert.java:120) + at dev.tinycast.android.TouchSearchDeviceTest.rejectedKeyboardCallback(TouchSearchDeviceTest.kt:575) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardCallbackFlow(TouchSearchDeviceTest.kt:609) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(TouchSearchDeviceTest.kt:653) + +INSTRUMENTATION_STATUS: stream= +Error in emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(dev.tinycast.android.TouchSearchDeviceTest): +java.lang.AssertionError: Obsolete or obstructed keyboard callback must not change visibility: keyboard-guard-obsolete-mode expected: but was: + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.failNotEquals(Assert.java:835) + at org.junit.Assert.assertEquals(Assert.java:120) + at dev.tinycast.android.TouchSearchDeviceTest.rejectedKeyboardCallback(TouchSearchDeviceTest.kt:575) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardCallbackFlow(TouchSearchDeviceTest.kt:609) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(TouchSearchDeviceTest.kt:653) + +INSTRUMENTATION_STATUS: test=emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus +INSTRUMENTATION_STATUS_CODE: -2 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stack=java.lang.AssertionError: Obsolete or obstructed keyboard callback must not change visibility: keyboard-guard-obsolete-mode expected: but was: + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.failNotEquals(Assert.java:835) + at org.junit.Assert.assertEquals(Assert.java:120) + at dev.tinycast.android.TouchSearchDeviceTest.rejectedKeyboardCallback(TouchSearchDeviceTest.kt:575) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardCallbackFlow(TouchSearchDeviceTest.kt:609) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(TouchSearchDeviceTest.kt:652) + +INSTRUMENTATION_STATUS: stream= +Error in launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(dev.tinycast.android.TouchSearchDeviceTest): +java.lang.AssertionError: Obsolete or obstructed keyboard callback must not change visibility: keyboard-guard-obsolete-mode expected: but was: + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.failNotEquals(Assert.java:835) + at org.junit.Assert.assertEquals(Assert.java:120) + at dev.tinycast.android.TouchSearchDeviceTest.rejectedKeyboardCallback(TouchSearchDeviceTest.kt:575) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardCallbackFlow(TouchSearchDeviceTest.kt:609) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(TouchSearchDeviceTest.kt:652) + +INSTRUMENTATION_STATUS: test=launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus +INSTRUMENTATION_STATUS_CODE: -2 +INSTRUMENTATION_RESULT: stream= + +Time: 21.232 +There were 2 failures: +1) emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(dev.tinycast.android.TouchSearchDeviceTest) +java.lang.AssertionError: Obsolete or obstructed keyboard callback must not change visibility: keyboard-guard-obsolete-mode expected: but was: + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.failNotEquals(Assert.java:835) + at org.junit.Assert.assertEquals(Assert.java:120) + at dev.tinycast.android.TouchSearchDeviceTest.rejectedKeyboardCallback(TouchSearchDeviceTest.kt:575) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardCallbackFlow(TouchSearchDeviceTest.kt:609) + at dev.tinycast.android.TouchSearchDeviceTest.emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(TouchSearchDeviceTest.kt:653) +2) launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(dev.tinycast.android.TouchSearchDeviceTest) +java.lang.AssertionError: Obsolete or obstructed keyboard callback must not change visibility: keyboard-guard-obsolete-mode expected: but was: + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.failNotEquals(Assert.java:835) + at org.junit.Assert.assertEquals(Assert.java:120) + at dev.tinycast.android.TouchSearchDeviceTest.rejectedKeyboardCallback(TouchSearchDeviceTest.kt:575) + at dev.tinycast.android.TouchSearchDeviceTest.keyboardCallbackFlow(TouchSearchDeviceTest.kt:609) + at dev.tinycast.android.TouchSearchDeviceTest.launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus(TouchSearchDeviceTest.kt:652) + +FAILURES!!! +Tests run: 2, Failures: 2 + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-case.json b/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-case.json new file mode 100644 index 00000000..327d9117 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-case.json @@ -0,0 +1,106 @@ +{ + "scope": "Owned launcher\/Emoji pointer Clear; editor and IME visibility setup are controlled, not physical typing", + "case": "emojiTouchClearPreservesCategoryGeometryAndKeyboard", + "api": 36, + "font_scale": 2, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "empty-state-before-clear", + "search": "emoji-search", + "ime_visible": false, + "expected_query_matches": true, + "result_count": 0 + }, + { + "kind": "empty-feedback-visibility", + "palette_height_px": 1870, + "constrained_by_ime": false, + "displayed": true, + "known_layout_gap": null + }, + { + "kind": "target-geometry", + "tag": "emoji-search-clear", + "target": [ + 558, + 107, + 684, + 233 + ], + "search": [ + 163, + 107, + 558, + 233 + ], + "palette": [ + 32, + 95, + 1048, + 1965 + ], + "density": 2.625 + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": true + }, + { + "kind": "empty-state-before-clear", + "search": "emoji-search", + "ime_visible": true, + "expected_query_matches": true, + "result_count": 0 + }, + { + "kind": "empty-feedback-visibility", + "palette_height_px": 1248, + "constrained_by_ime": false, + "displayed": true, + "known_layout_gap": null + }, + { + "kind": "target-geometry", + "tag": "emoji-search-clear", + "target": [ + 558, + 107, + 684, + 233 + ], + "search": [ + 163, + 107, + 558, + 233 + ], + "palette": [ + 32, + 95, + 1048, + 1343 + ], + "density": 2.625 + }, + { + "kind": "emoji-launcher-origin", + "emoji": [ + 163, + 107, + 717, + 233 + ], + "launcher": [ + 164, + 106, + 880, + 232 + ] + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-after-frame.json b/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-after-frame.json new file mode 100644 index 00000000..9e3445e2 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-after-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "shown-after", + "search": [ + 163, + 107, + 558, + 233 + ], + "ime_visible": true, + "api": 36, + "font_scale": 2, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned launcher\/Emoji pointer Clear; editor and IME visibility setup are controlled, not physical typing" +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-after.xml b/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-after.xml new file mode 100644 index 00000000..4d7cf14d --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-after.xml @@ -0,0 +1,422 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-before-frame.json b/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-before-frame.json new file mode 100644 index 00000000..617b9995 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-before-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "shown-before", + "search": [ + 163, + 107, + 558, + 233 + ], + "ime_visible": true, + "api": 36, + "font_scale": 2, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned launcher\/Emoji pointer Clear; editor and IME visibility setup are controlled, not physical typing" +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-before.xml b/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-before.xml new file mode 100644 index 00000000..fc2d04e7 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-before.xml @@ -0,0 +1,354 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-case.json b/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-case.json new file mode 100644 index 00000000..ccc55128 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-case.json @@ -0,0 +1,91 @@ +{ + "scope": "Owned launcher\/Emoji pointer Clear; editor and IME visibility setup are controlled, not physical typing", + "case": "launcherTouchClearPreservesFocusCategoryAndKeyboard", + "api": 36, + "font_scale": 2, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "empty-state-before-clear", + "search": "search", + "ime_visible": false, + "expected_query_matches": true, + "result_count": 0 + }, + { + "kind": "empty-feedback-visibility", + "palette_height_px": 1870, + "constrained_by_ime": false, + "displayed": true, + "known_layout_gap": null + }, + { + "kind": "target-geometry", + "tag": "search-clear", + "target": [ + 880, + 106, + 1006, + 232 + ], + "search": [ + 164, + 106, + 880, + 232 + ], + "palette": [ + 32, + 95, + 1048, + 1965 + ], + "density": 2.625 + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": true + }, + { + "kind": "empty-state-before-clear", + "search": "search", + "ime_visible": true, + "expected_query_matches": true, + "result_count": 0 + }, + { + "kind": "empty-feedback-visibility", + "palette_height_px": 1248, + "constrained_by_ime": false, + "displayed": true, + "known_layout_gap": null + }, + { + "kind": "target-geometry", + "tag": "search-clear", + "target": [ + 880, + 106, + 1006, + 232 + ], + "search": [ + 164, + 106, + 880, + 232 + ], + "palette": [ + 32, + 95, + 1048, + 1343 + ], + "density": 2.625 + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-after-frame.json b/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-after-frame.json new file mode 100644 index 00000000..06ec7e95 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-after-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "shown-after", + "search": [ + 164, + 106, + 880, + 232 + ], + "ime_visible": true, + "api": 36, + "font_scale": 2, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned launcher\/Emoji pointer Clear; editor and IME visibility setup are controlled, not physical typing" +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-after.xml b/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-after.xml new file mode 100644 index 00000000..e0280c02 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-after.xml @@ -0,0 +1,378 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-before-frame.json b/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-before-frame.json new file mode 100644 index 00000000..2a734b33 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-before-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "shown-before", + "search": [ + 164, + 106, + 880, + 232 + ], + "ime_visible": true, + "api": 36, + "font_scale": 2, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned launcher\/Emoji pointer Clear; editor and IME visibility setup are controlled, not physical typing" +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-before.xml b/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-before.xml new file mode 100644 index 00000000..8d4cd9ca --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-before.xml @@ -0,0 +1,335 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/outer.log b/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/outer.log new file mode 100644 index 00000000..bcb1de14 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/outer.log @@ -0,0 +1 @@ +{"completed": true, "passes": 2, "failures": 0, "expected_negative": false, "preserved_file_count": 573} diff --git a/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/record.json b/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/record.json new file mode 100644 index 00000000..5f894fa2 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/record.json @@ -0,0 +1,114 @@ +{ + "completed": true, + "expected_negative": false, + "suite": "touch-search", + "input_mode": "system", + "runner_sha256": "775233d14eb064bf6636071d89ade59f8a596c518beeb5f6844ea788c613cb7a", + "apk_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d", + "methods": [ + "launcherTouchClearPreservesFocusCategoryAndKeyboard", + "emojiTouchClearPreservesCategoryGeometryAndKeyboard" + ], + "api": 36, + "font_scale": 2.0, + "layout": "phone", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 2, + "failures": 0, + "native_expected_outcome": true, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "emojitouchclearpreservescategorygeometryandkeyboard-hidden-before.xml": "f47c0f3398da5d4d82dfff04e9393aeb0a0557d55aafa7ff0a0feb29b17fdd76", + "emojitouchclearpreservescategorygeometryandkeyboard-hidden-before.png": "ea7f1fe8995dcea924b7f73e00222b8186900e6f2f9f7da9151ef475775a6cea", + "emojitouchclearpreservescategorygeometryandkeyboard-hidden-before-frame.json": "984b23189d77d75476b0a54ae9d007910572fd9a0a0b4d25e8d875786a33386a", + "emojitouchclearpreservescategorygeometryandkeyboard-hidden-after.xml": "521ede4619dd89703e3a805c86c37e64e7a06a71241a290c1dd764c683e1ac6b", + "emojitouchclearpreservescategorygeometryandkeyboard-hidden-after.png": "54adc959c33e99f843e691e7bc8bb1311375c3eac1293699ed561c04cb8eee4c", + "emojitouchclearpreservescategorygeometryandkeyboard-hidden-after-frame.json": "c69e902101db4262f6351048e718cb3f61ade3b85a7014e55fc99a526e4d7dae", + "emojitouchclearpreservescategorygeometryandkeyboard-shown-before.xml": "f049869e62d8dd9ac0328468e16ac9ae91dd51f34646c0c78262f0048914e942", + "emojitouchclearpreservescategorygeometryandkeyboard-shown-before.png": "31bab622fac5dcf268ed17a4459f18138526cabcbb7bcbd1888d9c0c235eba8e", + "emojitouchclearpreservescategorygeometryandkeyboard-shown-before-frame.json": "0f3293bc144373e5be063b22ae87394b759214afbbe8085dc4cb560f9321c3b4", + "emojitouchclearpreservescategorygeometryandkeyboard-shown-after.xml": "5766af98d8e4c9ebf644b3a7100e1abb64723a74c401be0aa03df13d3117be86", + "emojitouchclearpreservescategorygeometryandkeyboard-shown-after.png": "6543311826623f1a8e13406b78894ae1b6faadd33479f272433c4808dc14ef87", + "emojitouchclearpreservescategorygeometryandkeyboard-shown-after-frame.json": "01b2db217cd988810a1b2a46a1b6a979aadecaba4c574201a0170a3046e4d427", + "emojitouchclearpreservescategorygeometryandkeyboard-caller-return.xml": "169981f3ccc675094f5b3f6f8a244c91e22f3a634e84bcebf766cfc09ac40ea4", + "emojitouchclearpreservescategorygeometryandkeyboard-caller-return.png": "77e4394c952e5b02fe969e9f0af1fc881bb84a3ada9a3ae1c181d271d99115c9", + "emojitouchclearpreservescategorygeometryandkeyboard-caller-return-frame.json": "9c815d4f11b17fa32624d6cfd9f275d89ef84bb64e6806c3562787c8e65e737f", + "emojitouchclearpreservescategorygeometryandkeyboard-case.json": "269e213f01488e27c909db97bc3e37c996158aed07ca9474e87eac461cfe0f6c", + "launchertouchclearpreservesfocuscategoryandkeyboard-hidden-before.xml": "d47487c7399276294a6c281a7df3893beb14ae91526295048c1acfa6c770ce43", + "launchertouchclearpreservesfocuscategoryandkeyboard-hidden-before.png": "d0fbdcc53d450cf2c691633a5f13f161da4d3e7b3251c18837b3e5c119ef99ba", + "launchertouchclearpreservesfocuscategoryandkeyboard-hidden-before-frame.json": "4e13035806d38c08ea352fd13befb5f4c45c323d5527900406301bafcfbaffa0", + "launchertouchclearpreservesfocuscategoryandkeyboard-hidden-after.xml": "d1b4d42e78c1986527cd56785e4c2fbeaaa0a7b068f960c82ac59ce8e57be908", + "launchertouchclearpreservesfocuscategoryandkeyboard-hidden-after.png": "f8ea8bc294d9579799d4bc2af8baa09282ce0c7be1fefbba99fb88d5648c3014", + "launchertouchclearpreservesfocuscategoryandkeyboard-hidden-after-frame.json": "312926bbd33e6988a634e3b50306cd23ab892dd5df4bbc06a6a5d5ad0e23f3be", + "launchertouchclearpreservesfocuscategoryandkeyboard-shown-before.xml": "6dd5af19dd07be00491c082d2cbf94f6cc5225fb0f972c442c26eeef053ce22e", + "launchertouchclearpreservesfocuscategoryandkeyboard-shown-before.png": "02d5f588f7d00783bc2a53d70bb51b5dffb7aa36758151842a8631ba28e05aab", + "launchertouchclearpreservesfocuscategoryandkeyboard-shown-before-frame.json": "5995d6ab8d94ab7c87eb3694173de90cfa07b96b06fd69eb39810767cba71d1a", + "launchertouchclearpreservesfocuscategoryandkeyboard-shown-after.xml": "bc31d4558ddabf3d47e96209686ccc46a3f7ab0f731ff6a17b311e2d8131025c", + "launchertouchclearpreservesfocuscategoryandkeyboard-shown-after.png": "cd6f76d508903d693748aca984169e78dd0bcca03744223a1c371bf7902a5526", + "launchertouchclearpreservesfocuscategoryandkeyboard-shown-after-frame.json": "a52d30001f8e99d5aff4a508561d72540a028c9e5504b9d1ec04a60c803204c2", + "launchertouchclearpreservesfocuscategoryandkeyboard-case.json": "24b9ae25fd92407a030020da1dbf619093ca88662363f58df55dd696d2a9c9c3" + }, + "preserved_file_count": 573 +} diff --git a/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/tests.log b/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/tests.log new file mode 100644 index 00000000..81038eba --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-clear-phone200/tests.log @@ -0,0 +1,37 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.TouchSearchDeviceTest: +INSTRUMENTATION_STATUS: test=emojiTouchClearPreservesCategoryGeometryAndKeyboard +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=emojiTouchClearPreservesCategoryGeometryAndKeyboard +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=launcherTouchClearPreservesFocusCategoryAndKeyboard +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=launcherTouchClearPreservesFocusCategoryAndKeyboard +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_RESULT: stream= + +Time: 15.443 + +OK (2 tests) + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/currentclearuseslivequeryandrecreationrejectsoldcallback-case.json b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/currentclearuseslivequeryandrecreationrejectsoldcallback-case.json new file mode 100644 index 00000000..8529ca4e --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/currentclearuseslivequeryandrecreationrejectsoldcallback-case.json @@ -0,0 +1,10 @@ +{ + "scope": "Owned launcher\/Emoji pointer Clear; editor and IME visibility setup are controlled, not physical typing", + "case": "currentClearUsesLiveQueryAndRecreationRejectsOldCallback", + "api": 36, + "font_scale": 1, + "live_query_clears": 2, + "rejected_callbacks": 2, + "completed": true, + "events": [] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-case.json b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-case.json new file mode 100644 index 00000000..e05388e8 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-case.json @@ -0,0 +1,25 @@ +{ + "scope": "Owned launcher\/Emoji pointer Clear; editor and IME visibility setup are controlled, not physical typing", + "case": "pointerClearRemovesControlledCompositionAndWhitespace", + "api": 36, + "font_scale": 1, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "controlled-composition-and-whitespace-cleared", + "search": "search" + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "controlled-composition-and-whitespace-cleared", + "search": "emoji-search" + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-cleared-frame.json b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-cleared-frame.json new file mode 100644 index 00000000..5f689e68 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-cleared-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "emoji-cleared", + "search": [ + 473, + 243, + 1280, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned launcher\/Emoji pointer Clear; editor and IME visibility setup are controlled, not physical typing" +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-cleared.xml b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-cleared.xml new file mode 100644 index 00000000..0f207631 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-cleared.xml @@ -0,0 +1,340 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-composition-frame.json b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-composition-frame.json new file mode 100644 index 00000000..298bc584 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-composition-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "emoji-composition", + "search": [ + 473, + 243, + 1280, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned launcher\/Emoji pointer Clear; editor and IME visibility setup are controlled, not physical typing" +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-composition.xml b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-composition.xml new file mode 100644 index 00000000..ee8d336e --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-composition.xml @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-cleared-frame.json b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-cleared-frame.json new file mode 100644 index 00000000..432db114 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-cleared-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "launcher-cleared", + "search": [ + 473, + 243, + 1355, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned launcher\/Emoji pointer Clear; editor and IME visibility setup are controlled, not physical typing" +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-cleared.xml b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-cleared.xml new file mode 100644 index 00000000..11710a1e --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-cleared.xml @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-composition-frame.json b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-composition-frame.json new file mode 100644 index 00000000..124f0888 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-composition-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "launcher-composition", + "search": [ + 473, + 243, + 1355, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned launcher\/Emoji pointer Clear; editor and IME visibility setup are controlled, not physical typing" +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-composition.xml b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-composition.xml new file mode 100644 index 00000000..3ecddbe6 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-composition.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-case.json b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-case.json new file mode 100644 index 00000000..34308241 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-case.json @@ -0,0 +1,9 @@ +{ + "scope": "Owned launcher\/Emoji pointer Clear; editor and IME visibility setup are controlled, not physical typing", + "case": "retainedClearCallbacksRejectReplacedSurfacesAndMenus", + "api": 36, + "font_scale": 1, + "rejected_callbacks": 5, + "completed": true, + "events": [] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-covered-by-menu-frame.json b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-covered-by-menu-frame.json new file mode 100644 index 00000000..39af6681 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-covered-by-menu-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "covered-by-menu", + "search": [ + 473, + 243, + 1355, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned launcher\/Emoji pointer Clear; editor and IME visibility setup are controlled, not physical typing" +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-covered-by-menu.xml b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-covered-by-menu.xml new file mode 100644 index 00000000..7ec96ff4 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-covered-by-menu.xml @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-replacement-emoji-frame.json b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-replacement-emoji-frame.json new file mode 100644 index 00000000..79748284 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-replacement-emoji-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "replacement-emoji", + "search": [ + 473, + 243, + 1280, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned launcher\/Emoji pointer Clear; editor and IME visibility setup are controlled, not physical typing" +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-replacement-emoji.xml b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-replacement-emoji.xml new file mode 100644 index 00000000..256eacdf --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-replacement-emoji.xml @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/outer.log b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/outer.log new file mode 100644 index 00000000..150dc17e --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/outer.log @@ -0,0 +1 @@ +{"completed": true, "passes": 3, "failures": 0, "expected_negative": false, "preserved_file_count": 573} diff --git a/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/record.json b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/record.json new file mode 100644 index 00000000..bf3caa20 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/record.json @@ -0,0 +1,101 @@ +{ + "completed": true, + "expected_negative": false, + "suite": "touch-search", + "input_mode": "system", + "runner_sha256": "775233d14eb064bf6636071d89ade59f8a596c518beeb5f6844ea788c613cb7a", + "apk_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d", + "methods": [ + "pointerClearRemovesControlledCompositionAndWhitespace", + "retainedClearCallbacksRejectReplacedSurfacesAndMenus", + "currentClearUsesLiveQueryAndRecreationRejectsOldCallback" + ], + "api": 36, + "font_scale": 1.0, + "layout": "tablet", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 3, + "failures": 0, + "native_expected_outcome": true, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "pointerclearremovescontrolledcompositionandwhitespace-launcher-composition.xml": "81e6188282bcc98348f9735423575ea86a219261e3126ea0115605297005b6ad", + "pointerclearremovescontrolledcompositionandwhitespace-launcher-composition.png": "76e892739238852481421c0ad37e89208f601b7fc1cf936313fdcba7c683351c", + "pointerclearremovescontrolledcompositionandwhitespace-launcher-composition-frame.json": "808e5c4701e5e9ccc34d462e7d6b61395bd94eeabfd442d679624e59b6f8a8e5", + "pointerclearremovescontrolledcompositionandwhitespace-launcher-cleared.xml": "ccbe0a25739349d71d7af880ce8e00008232f78160b5b5dcc17e52e16955ab5d", + "pointerclearremovescontrolledcompositionandwhitespace-launcher-cleared.png": "daf008863db6622868302f04ea6ca40e8618123e252da575ca99290709d4679c", + "pointerclearremovescontrolledcompositionandwhitespace-launcher-cleared-frame.json": "06b599673f1ca5a9dfa5c5fc3629ea051f09873b4a24bcea0fd8e99fbbb47c41", + "pointerclearremovescontrolledcompositionandwhitespace-emoji-composition.xml": "d80195ee19f6c1b42a8a440eae66113e5e61f61c0a29ff4810c1e86d433b9670", + "pointerclearremovescontrolledcompositionandwhitespace-emoji-composition.png": "2e9f34b90f42f9b01270138957823bc51abd14745dcf625e37944146dacd4287", + "pointerclearremovescontrolledcompositionandwhitespace-emoji-composition-frame.json": "3c40f84c15e13d33285ecd1f3398f392ee3fc05c3c25397d62aa3f3ce3302f6f", + "pointerclearremovescontrolledcompositionandwhitespace-emoji-cleared.xml": "5778d5c1f5c7f12c65cc4a115c40751b77e5127029b1dce305abf38351ac7d0c", + "pointerclearremovescontrolledcompositionandwhitespace-emoji-cleared.png": "55524d06840dd49241baf0157e9c5ad9a9d4b19d9f68a3309203d710e18dccdc", + "pointerclearremovescontrolledcompositionandwhitespace-emoji-cleared-frame.json": "86dbc28407cf78d55b5eb919da9e93125b4da909503fa866f730470797c2310a", + "pointerclearremovescontrolledcompositionandwhitespace-case.json": "9ea55a2780a25f6593038d4c25539b377199d0ec5736dfa1599f474fd2515234", + "currentclearuseslivequeryandrecreationrejectsoldcallback-case.json": "1117ca08c1e7c33028d9e680b86a3396458be049a15bb489571954e7b98dcab1", + "retainedclearcallbacksrejectreplacedsurfacesandmenus-covered-by-menu.xml": "9a50321e2f0402265c627a32bd7215c634bf11826fb428ca76485107ac43f8f7", + "retainedclearcallbacksrejectreplacedsurfacesandmenus-covered-by-menu.png": "cef46bb6a3196d5f9ac024aa491869ff6c69c4badd03994bc5ed990d4eea28a5", + "retainedclearcallbacksrejectreplacedsurfacesandmenus-covered-by-menu-frame.json": "2048c3531f99b1b6bf46acd04e58c4e66db38f0c621c6262a0606eeb0f818e35", + "retainedclearcallbacksrejectreplacedsurfacesandmenus-replacement-emoji.xml": "9b6e64fafa693ab8b77ab9e6b0430b717e62de392946855d6c7e94cb412d18e3", + "retainedclearcallbacksrejectreplacedsurfacesandmenus-replacement-emoji.png": "a78a8a40ed27abe11b968d7a4a2846c1c7d9939d639efc44fde18e9afcedbc26", + "retainedclearcallbacksrejectreplacedsurfacesandmenus-replacement-emoji-frame.json": "2a660eb8464caf6d138b70234b18280ddf4c139c7b027660d11b78777eb718ce", + "retainedclearcallbacksrejectreplacedsurfacesandmenus-case.json": "7ed88a37502269347c7d2f198849d4d0f65f61461ae277e0f1f406b8cb3e3c8d" + }, + "preserved_file_count": 573 +} diff --git a/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/tests.log b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/tests.log new file mode 100644 index 00000000..3c1e8a34 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/tests.log @@ -0,0 +1,51 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=3 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.TouchSearchDeviceTest: +INSTRUMENTATION_STATUS: test=pointerClearRemovesControlledCompositionAndWhitespace +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=3 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=pointerClearRemovesControlledCompositionAndWhitespace +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=3 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=currentClearUsesLiveQueryAndRecreationRejectsOldCallback +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=3 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=currentClearUsesLiveQueryAndRecreationRejectsOldCallback +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=3 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=3 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=retainedClearCallbacksRejectReplacedSurfacesAndMenus +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=3 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=3 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=retainedClearCallbacksRejectReplacedSurfacesAndMenus +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_RESULT: stream= + +Time: 20.443 + +OK (3 tests) + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json b/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json new file mode 100644 index 00000000..e6491bcc --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json @@ -0,0 +1,335 @@ +{ + "scope": "Owned launcher\/Emoji pointer Clear; editor and IME visibility setup are controlled, not physical typing", + "case": "emojiEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable", + "api": 36, + "font_scale": 1, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "target-geometry", + "tag": "emoji-search-clear", + "target": [ + 1730, + 106, + 1856, + 232 + ], + "search": [ + 317, + 106, + 1730, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ], + "density": 2.625 + }, + { + "kind": "natural-feedback-line", + "phase": "initial-hidden", + "text": "No matching emoji or symbols", + "line": 0, + "font_sp": 13, + "line_bounds": [ + 922, + 559, + 1417.3076, + 622 + ], + "declared_line_height": "24.0.sp", + "visible": [ + 922, + 559, + 1419, + 622 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ], + "complete": true, + "ellipsized": false + }, + { + "kind": "feedback-control", + "label": "Emoji Back", + "full": [ + 186, + 106, + 312, + 232 + ], + "visible": [ + 186, + 106, + 312, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Emoji category", + "full": [ + 1982, + 106, + 2134, + 232 + ], + "visible": [ + 1982, + 106, + 2134, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1856, + 106, + 1982, + 232 + ], + "visible": [ + 1856, + 106, + 1982, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Emoji favorite", + "full": [ + 207, + 849, + 333, + 975 + ], + "visible": [ + 207, + 849, + 333, + 975 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": true + }, + { + "kind": "target-geometry", + "tag": "emoji-search-clear", + "target": [ + 1730, + 106, + 1856, + 232 + ], + "search": [ + 317, + 106, + 1730, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 334 + ], + "density": 2.625 + }, + { + "kind": "natural-feedback-line", + "phase": "initial-shown", + "text": "No matching emoji or symbols", + "line": 0, + "font_sp": 13, + "line_bounds": [ + 922, + 246, + 1417.3076, + 288 + ], + "declared_line_height": "16.0.sp", + "visible": [ + 922, + 246, + 1419, + 288 + ], + "palette": [ + 186, + 95, + 2155, + 334 + ], + "complete": true, + "ellipsized": false + }, + { + "kind": "compact-primary-status-only", + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Emoji Back", + "full": [ + 186, + 106, + 312, + 232 + ], + "visible": [ + 186, + 106, + 312, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 334 + ] + }, + { + "kind": "feedback-control", + "label": "Emoji category", + "full": [ + 1982, + 106, + 2134, + 232 + ], + "visible": [ + 1982, + 106, + 2134, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 334 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1856, + 106, + 1982, + 232 + ], + "visible": [ + 1856, + 106, + 1982, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 334 + ] + }, + { + "kind": "feedback-pointer-pan", + "up": true, + "before": 0, + "after": 146 + }, + { + "kind": "feedback-pointer-pan", + "up": true, + "before": 146, + "after": 293 + }, + { + "kind": "feedback-pointer-pan", + "up": true, + "before": 293, + "after": 309 + }, + { + "kind": "feedback-control", + "label": "Emoji favorite", + "full": [ + 207, + 197, + 333, + 323 + ], + "visible": [ + 207, + 197, + 333, + 323 + ], + "palette": [ + 186, + 95, + 2155, + 334 + ] + }, + { + "kind": "feedback-pointer-pan", + "up": false, + "before": 309, + "after": 163 + }, + { + "kind": "feedback-pointer-pan", + "up": false, + "before": 163, + "after": 16 + }, + { + "kind": "feedback-pointer-pan", + "up": false, + "before": 16, + "after": 0 + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json b/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json new file mode 100644 index 00000000..b1bae7ce --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json @@ -0,0 +1,247 @@ +{ + "scope": "Owned launcher\/Emoji pointer Clear; editor and IME visibility setup are controlled, not physical typing", + "case": "launcherEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable", + "api": 36, + "font_scale": 1, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "target-geometry", + "tag": "search-clear", + "target": [ + 1861, + 106, + 1987, + 232 + ], + "search": [ + 318, + 106, + 1861, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ], + "density": 2.625 + }, + { + "kind": "natural-feedback-line", + "phase": "initial-hidden", + "text": "No matching commands", + "line": 0, + "font_sp": 14, + "line_bounds": [ + 958, + 531, + 1382.4286, + 594 + ], + "declared_line_height": "24.0.sp", + "visible": [ + 958, + 531, + 1384, + 594 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ], + "complete": true, + "ellipsized": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Droidcast menu", + "full": [ + 207, + 849, + 333, + 975 + ], + "visible": [ + 207, + 849, + 333, + 975 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": true + }, + { + "kind": "target-geometry", + "tag": "search-clear", + "target": [ + 1861, + 106, + 1987, + 232 + ], + "search": [ + 318, + 106, + 1861, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 334 + ], + "density": 2.625 + }, + { + "kind": "natural-feedback-line", + "phase": "initial-shown", + "text": "No matching commands", + "line": 0, + "font_sp": 14, + "line_bounds": [ + 958, + 243, + 1382.4286, + 291 + ], + "declared_line_height": "18.0.sp", + "visible": [ + 958, + 243, + 1384, + 291 + ], + "palette": [ + 186, + 95, + 2155, + 334 + ], + "complete": true, + "ellipsized": false + }, + { + "kind": "compact-primary-status-only", + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 334 + ] + }, + { + "kind": "feedback-pointer-pan", + "up": true, + "before": 0, + "after": 146 + }, + { + "kind": "feedback-pointer-pan", + "up": true, + "before": 146, + "after": 293 + }, + { + "kind": "feedback-pointer-pan", + "up": true, + "before": 293, + "after": 309 + }, + { + "kind": "feedback-control", + "label": "Droidcast menu", + "full": [ + 207, + 197, + 333, + 323 + ], + "visible": [ + 207, + 197, + 333, + 323 + ], + "palette": [ + 186, + 95, + 2155, + 334 + ] + }, + { + "kind": "feedback-pointer-pan", + "up": false, + "before": 309, + "after": 163 + }, + { + "kind": "feedback-pointer-pan", + "up": false, + "before": 163, + "after": 16 + }, + { + "kind": "feedback-pointer-pan", + "up": false, + "before": 16, + "after": 0 + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape100/outer.log b/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape100/outer.log new file mode 100644 index 00000000..bcb1de14 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape100/outer.log @@ -0,0 +1 @@ +{"completed": true, "passes": 2, "failures": 0, "expected_negative": false, "preserved_file_count": 573} diff --git a/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape100/record.json b/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape100/record.json new file mode 100644 index 00000000..8d08c5bf --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape100/record.json @@ -0,0 +1,135 @@ +{ + "completed": true, + "expected_negative": false, + "suite": "touch-search", + "input_mode": "system", + "runner_sha256": "775233d14eb064bf6636071d89ade59f8a596c518beeb5f6844ea788c613cb7a", + "apk_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d", + "methods": [ + "launcherEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable", + "emojiEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable" + ], + "api": 36, + "font_scale": 1.0, + "layout": "landscape", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 2, + "failures": 0, + "native_expected_outcome": true, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty.xml": "9b458022a31db01bbc7b13f7ff53e011fe9d7bc822acafdd2efe6238853777bd", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty.png": "575a48f7166499404041fc8e329a773b4adaacf2a38eb258acfe74b7b6d570b9", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty-frame.json": "7b8649e0430770e732fc6a7bda82ef472d04598399301d3a38cf4713348c206f", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer.xml": "9b458022a31db01bbc7b13f7ff53e011fe9d7bc822acafdd2efe6238853777bd", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer.png": "575a48f7166499404041fc8e329a773b4adaacf2a38eb258acfe74b7b6d570b9", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer-frame.json": "2adf20d0c9d920b71597dfae8ff9cc275c68960c2c5445a92e61692726814964", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching.xml": "64fba538f0d377e5bc7036b35bdffdbba7f32d6a5e6837fddc435118c2488bc4", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching.png": "b166f03be7624c4146282247a314991781b6505737853e337078ba50dc640a7f", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching-frame.json": "88cacf61e846e65b025bfaffaf0ee6d17075685a2b95abc42e7b80413ac388e4", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared.xml": "85c6feff9a78665c54d20b457fbe21107631968cc68e724d802ab22bdf5c99ae", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared.png": "a0209925872dc075f87710d770327cba222158679e14bef866887c6f030f20db", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared-frame.json": "125303e0c950c98d6fd4196092734e754c44e835464068f265e26e88d0598dd1", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.xml": "bf33f2d155665d314bf4c1da4be28390fc9e66fbb8a79fe3c2704e6bf4413993", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.png": "ceb5de4815246b946b536ebfcafd38ad07c9aa08b72e7b78e8e973f5d42a8bac", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty-frame.json": "e4434f6e10d7590510c17f9e36f6adbc299efd2f5b9c803e7fd1bc25c5620ff8", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-footer.xml": "c4fe544c77aaf3d657db72dd990dca01c57115ba87d72884f5e89f7efb8ef53c", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-footer.png": "492c3965264859caf47a8d2499d1d0f5e175d8d09cba82b8af465da7d4821e3d", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-footer-frame.json": "8119b67ead2b5ad4de48b15a2b34d9bf08b38972c95377eacd4a1cc86b2c369c", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-matching.xml": "d9d195d1d54d420cddff9c3f137e3e2d9e64fb8fae52333c9e41aded2e143186", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-matching.png": "577c375956af5b313dd7185b02ea207f9e346be406d717fd11653a3461aa924a", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-matching-frame.json": "f36856660cabc2df9b030f2e69e53cec13001c9a9b9bdb18d4fe8ae6e147909b", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-cleared.xml": "499a3f912170d9faab70daf1f1c9f9b7b1b236229d6db5e45270f2a3ca64cb27", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-cleared.png": "f61a6bfbc03a240edf7f4f407ed9632c574277b3abb1c563f106d27d9f973ccb", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-cleared-frame.json": "189e2d0b0af9591883e7bf7a635192948ba906cd0bb02675d5989522051b01f8", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json": "663e414b13cfbb475135e09a09b7551594bff0b1199a6df87aed1b677c84c72f", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty.xml": "475466c53823aa1469e440a28ca736e254aa5c648744663b5c1d2bd1344e98f5", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty.png": "047a75b13dbb69c4b982010de38f22b60c849d19ed529049ff77601ea6a7f938", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty-frame.json": "c40ff24358a7cdbb5509f2684776463f48cb143f9fbbc4a971a37d3751ad97ff", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer.xml": "475466c53823aa1469e440a28ca736e254aa5c648744663b5c1d2bd1344e98f5", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer.png": "047a75b13dbb69c4b982010de38f22b60c849d19ed529049ff77601ea6a7f938", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer-frame.json": "0c023b6e39c2f1de019d994379a016bab80bb80bef30dc9aac2cdc120b82b7b7", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching.xml": "901f712564c8cf65ac6360c8b15cb9f2fb01b4fb597cbdc802d4d1742bfc5ee9", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching.png": "fe7114703450552015b9e6d7a256b02e813a03989244eec2031f05902980ae07", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching-frame.json": "f203ccd6275346d502fe67d9eaeb6a35064b66c9c2a8d6528297bdac12d94f4d", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared.xml": "f600599e88b483296d16be9138d3af49719793739779d4007c7697a2d5fc6d38", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared.png": "2ba9475c601287ea78afbfa96461b2e011f6929c619d0675afe219f8b530146a", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared-frame.json": "485332371897fee2e4d2310e3c32f4f478373750c3169ced6afb77466c6021cf", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.xml": "ac5fac7d6b9724f1756b0a9fe7dd26b4fa6a93c5675154221e988c712ef55240", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.png": "6640cc65a935ba7540a5f6580cb59ac54fda224737371d1bbd3ad25054f342e0", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty-frame.json": "1fe33d9819ba45418cb13ec90578a5ca0c9b9c534969127992c7c53ea61511f6", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-footer.xml": "102408096b7b4376f6abc3ea9d6a27868a657d99616bc33c888f757cbe9be54a", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-footer.png": "14301c268b61be38fd6a76e9f71cf985cd23184746ade45a8ca153504bd096e5", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-footer-frame.json": "8119b67ead2b5ad4de48b15a2b34d9bf08b38972c95377eacd4a1cc86b2c369c", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-matching.xml": "aaa70b97d394057c68960a94bda3426fd09d7d22937802d102b5f6c9916acac4", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-matching.png": "df628765aec5059a4b368e66804f66eefadcdc16d01bacba826669053a9d587c", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-matching-frame.json": "a448b966b8cc09e35cbaf534d8e50581f1dcf956684e97b00cb688699ac4593c", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-cleared.xml": "d72a1d5488b4121190720ca591ebf36984abf2a53982b3d951980523cd35b79e", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-cleared.png": "34810698d01165400193ac86188165685d0587205e235bee60c3358747fcee04", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-cleared-frame.json": "992f771caff5b7cd06003721cfc7f032005e669e1428581bee5bb155017bb70a", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json": "c7c5b317fc4f20b32f4a6baad474fa8026aa0bd89f47b7bcb3d4a0eeb7633d26" + }, + "preserved_file_count": 573 +} diff --git a/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape100/tests.log b/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape100/tests.log new file mode 100644 index 00000000..5745892a --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape100/tests.log @@ -0,0 +1,37 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.TouchSearchDeviceTest: +INSTRUMENTATION_STATUS: test=emojiEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=emojiEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=launcherEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=launcherEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_RESULT: stream= + +Time: 24.811 + +OK (2 tests) + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json b/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json new file mode 100644 index 00000000..45f39835 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json @@ -0,0 +1,383 @@ +{ + "scope": "Owned launcher\/Emoji pointer Clear; editor and IME visibility setup are controlled, not physical typing", + "case": "emojiEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable", + "api": 36, + "font_scale": 2, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "target-geometry", + "tag": "emoji-search-clear", + "target": [ + 1698, + 107, + 1824, + 233 + ], + "search": [ + 317, + 107, + 1698, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ], + "density": 2.625 + }, + { + "kind": "natural-feedback-line", + "phase": "initial-hidden", + "text": "No matching emoji or symbols", + "line": 0, + "font_sp": 13, + "line_bounds": [ + 693, + 516, + 1647.2, + 638 + ], + "declared_line_height": "24.0.sp", + "visible": [ + 693, + 516, + 1649, + 638 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ], + "complete": true, + "ellipsized": false + }, + { + "kind": "feedback-control", + "label": "Emoji Back", + "full": [ + 186, + 107, + 312, + 233 + ], + "visible": [ + 186, + 107, + 312, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Emoji category", + "full": [ + 1950, + 106, + 2134, + 233 + ], + "visible": [ + 1950, + 106, + 2134, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1824, + 107, + 1950, + 233 + ], + "visible": [ + 1824, + 107, + 1950, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-pointer-pan", + "up": true, + "before": 0, + "after": 126 + }, + { + "kind": "feedback-control", + "label": "Emoji favorite", + "full": [ + 207, + 831, + 333, + 957 + ], + "visible": [ + 207, + 831, + 333, + 957 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-pointer-pan", + "up": false, + "before": 126, + "after": 0 + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": true + }, + { + "kind": "target-geometry", + "tag": "emoji-search-clear", + "target": [ + 1698, + 107, + 1824, + 233 + ], + "search": [ + 317, + 107, + 1698, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 334 + ], + "density": 2.625 + }, + { + "kind": "natural-feedback-line", + "phase": "initial-shown", + "text": "No matching emoji or symbols", + "line": 0, + "font_sp": 13, + "line_bounds": [ + 693, + 247, + 1647.2, + 328 + ], + "declared_line_height": "16.0.sp", + "visible": [ + 693, + 247, + 1649, + 328 + ], + "palette": [ + 186, + 95, + 2155, + 334 + ], + "complete": true, + "ellipsized": false + }, + { + "kind": "compact-primary-status-only", + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Emoji Back", + "full": [ + 186, + 107, + 312, + 233 + ], + "visible": [ + 186, + 107, + 312, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 334 + ] + }, + { + "kind": "feedback-control", + "label": "Emoji category", + "full": [ + 1950, + 106, + 2134, + 233 + ], + "visible": [ + 1950, + 106, + 2134, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 334 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1824, + 107, + 1950, + 233 + ], + "visible": [ + 1824, + 107, + 1950, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 334 + ] + }, + { + "kind": "feedback-pointer-pan", + "up": true, + "before": 0, + "after": 146 + }, + { + "kind": "feedback-pointer-pan", + "up": true, + "before": 146, + "after": 293 + }, + { + "kind": "feedback-pointer-pan", + "up": true, + "before": 293, + "after": 439 + }, + { + "kind": "feedback-pointer-pan", + "up": true, + "before": 439, + "after": 585 + }, + { + "kind": "feedback-pointer-pan", + "up": true, + "before": 585, + "after": 732 + }, + { + "kind": "feedback-pointer-pan", + "up": true, + "before": 732, + "after": 778 + }, + { + "kind": "feedback-control", + "label": "Emoji favorite", + "full": [ + 207, + 179, + 333, + 305 + ], + "visible": [ + 207, + 179, + 333, + 305 + ], + "palette": [ + 186, + 95, + 2155, + 334 + ] + }, + { + "kind": "feedback-pointer-pan", + "up": false, + "before": 778, + "after": 632 + }, + { + "kind": "feedback-pointer-pan", + "up": false, + "before": 632, + "after": 485 + }, + { + "kind": "feedback-pointer-pan", + "up": false, + "before": 485, + "after": 339 + }, + { + "kind": "feedback-pointer-pan", + "up": false, + "before": 339, + "after": 193 + }, + { + "kind": "feedback-pointer-pan", + "up": false, + "before": 193, + "after": 46 + }, + { + "kind": "feedback-pointer-pan", + "up": false, + "before": 46, + "after": 0 + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty-frame.json b/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty-frame.json new file mode 100644 index 00000000..4a30f79f --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "feedback-shown-empty", + "search": [ + 317, + 107, + 1698, + 233 + ], + "ime_visible": true, + "api": 36, + "font_scale": 2, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned launcher\/Emoji pointer Clear; editor and IME visibility setup are controlled, not physical typing" +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.xml b/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.xml new file mode 100644 index 00000000..48d56e6e --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.xml @@ -0,0 +1,350 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json b/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json new file mode 100644 index 00000000..21f52bd7 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json @@ -0,0 +1,259 @@ +{ + "scope": "Owned launcher\/Emoji pointer Clear; editor and IME visibility setup are controlled, not physical typing", + "case": "launcherEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable", + "api": 36, + "font_scale": 2, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "target-geometry", + "tag": "search-clear", + "target": [ + 1861, + 106, + 1987, + 232 + ], + "search": [ + 318, + 106, + 1861, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ], + "density": 2.625 + }, + { + "kind": "natural-feedback-line", + "phase": "initial-hidden", + "text": "No matching commands", + "line": 0, + "font_sp": 14, + "line_bounds": [ + 770, + 472, + 1569.6924, + 589 + ], + "declared_line_height": "24.0.sp", + "visible": [ + 770, + 472, + 1571, + 589 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ], + "complete": true, + "ellipsized": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Droidcast menu", + "full": [ + 207, + 849, + 333, + 975 + ], + "visible": [ + 207, + 849, + 333, + 975 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": true + }, + { + "kind": "target-geometry", + "tag": "search-clear", + "target": [ + 1861, + 106, + 1987, + 232 + ], + "search": [ + 318, + 106, + 1861, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 334 + ], + "density": 2.625 + }, + { + "kind": "natural-feedback-line", + "phase": "initial-shown", + "text": "No matching commands", + "line": 0, + "font_sp": 14, + "line_bounds": [ + 770, + 243, + 1569.6924, + 331 + ], + "declared_line_height": "18.0.sp", + "visible": [ + 770, + 243, + 1571, + 331 + ], + "palette": [ + 186, + 95, + 2155, + 334 + ], + "complete": true, + "ellipsized": false + }, + { + "kind": "compact-primary-status-only", + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 334 + ] + }, + { + "kind": "feedback-pointer-pan", + "up": true, + "before": 0, + "after": 146 + }, + { + "kind": "feedback-pointer-pan", + "up": true, + "before": 146, + "after": 293 + }, + { + "kind": "feedback-pointer-pan", + "up": true, + "before": 293, + "after": 439 + }, + { + "kind": "feedback-pointer-pan", + "up": true, + "before": 439, + "after": 561 + }, + { + "kind": "feedback-control", + "label": "Droidcast menu", + "full": [ + 207, + 197, + 333, + 323 + ], + "visible": [ + 207, + 197, + 333, + 323 + ], + "palette": [ + 186, + 95, + 2155, + 334 + ] + }, + { + "kind": "feedback-pointer-pan", + "up": false, + "before": 561, + "after": 415 + }, + { + "kind": "feedback-pointer-pan", + "up": false, + "before": 415, + "after": 268 + }, + { + "kind": "feedback-pointer-pan", + "up": false, + "before": 268, + "after": 122 + }, + { + "kind": "feedback-pointer-pan", + "up": false, + "before": 122, + "after": 0 + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty-frame.json b/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty-frame.json new file mode 100644 index 00000000..6b8b4199 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "feedback-shown-empty", + "search": [ + 318, + 106, + 1861, + 232 + ], + "ime_visible": true, + "api": 36, + "font_scale": 2, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned launcher\/Emoji pointer Clear; editor and IME visibility setup are controlled, not physical typing" +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.xml b/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.xml new file mode 100644 index 00000000..d9652e2c --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.xml @@ -0,0 +1,344 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/outer.log b/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/outer.log new file mode 100644 index 00000000..bcb1de14 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/outer.log @@ -0,0 +1 @@ +{"completed": true, "passes": 2, "failures": 0, "expected_negative": false, "preserved_file_count": 573} diff --git a/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/record.json b/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/record.json new file mode 100644 index 00000000..de31951a --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/record.json @@ -0,0 +1,135 @@ +{ + "completed": true, + "expected_negative": false, + "suite": "touch-search", + "input_mode": "system", + "runner_sha256": "775233d14eb064bf6636071d89ade59f8a596c518beeb5f6844ea788c613cb7a", + "apk_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d", + "methods": [ + "launcherEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable", + "emojiEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable" + ], + "api": 36, + "font_scale": 2.0, + "layout": "landscape", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 2, + "failures": 0, + "native_expected_outcome": true, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty.xml": "909846f1b05afd052ee875b00c6a3bc1b78c0cb73a04fefbba340c795a1e75f6", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty.png": "76d0d4d2bb7201c2afbe15914b2576473a75d8281db893d209be8521f4ee2196", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty-frame.json": "2ef7004c9b1f27d17ceafcbb3a6c286873a5e74cb1a8c241276241d7c9cfcfe6", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer.xml": "6d784ecbfa87635875165f97d774bce55092236294c5a0c3a6d370713101ea8f", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer.png": "b6498a39a6d56ae7f7b7bbfd4e713c97b4106087e08c62501e7e69321597e13f", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer-frame.json": "43468e3af816eea6a8ca4f9547c3dee44df2c53d33c9385c5da9dfeb4242aca3", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching.xml": "944dcd14cb167e55554921c506657b6c34571e3a36b6736ff0765ba18c84fe53", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching.png": "c20dee973eb048a7be2e566280d68891447ef043b61da3ba2597699bad99e8c1", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching-frame.json": "1d9a4b05ed6f3c042ad883cf7e2a06bc320aa786f3627e3b7f53db7b337cfa8a", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared.xml": "faf3f46c906605a32c6f3f7e9760a286a9ae25db103eda2c71f36ca730cc5a1d", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared.png": "f7d9fc370f85aba1e11447f49e3f9a00283faecd8e1363652ff6326fe5381d91", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared-frame.json": "4a25fd166bba2e2db26ddded449c60bc2b2df334942782c733cc35c99b49f09c", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.xml": "0c9581854508c803189205540367d751e5abab1c14c1113248ae361d35cfbd33", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.png": "c8ef503675e593ce45bc90b7a45e4bd163c8ddba2ca7ec177af2b94efaf7be10", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty-frame.json": "e64ac758ecd9c2fff77aeb66fe3ff0f7bc73f70b0deec3470ebd30981d3e2bf6", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-footer.xml": "c5b27a489ffc879b0ae5b06fa00d174fc8bbbd6122bf0a993439882c75854a05", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-footer.png": "d39e99bc6cee3cb1599b1dbe5ecc9cd93a1b9c954ae180bce2f919ae1ffee827", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-footer-frame.json": "cbf06d3c0e6defa255715b312ccc4b2e178171fd7cfccd1cad74f9ed21d2e682", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-matching.xml": "1224e4c396f9cd8f0cfdf1c684c2f634323512861e229b1329417d6988b6ab27", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-matching.png": "bd6522338f76e1859a27ba15be155d7ae061783e489264bdba6a43b7db43748d", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-matching-frame.json": "ebd69cc26ea04252574aaca2a31faab49529cd01e7e0930c56908937e9ffb302", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-cleared.xml": "112e7244d2406f093f67723241bf3228269fe625f1b36b188097ffb46a2fef08", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-cleared.png": "0f5ed52795357483c7f9408791a9460abe75d27d9c26e8ca9a6bdf94e5623dd0", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-cleared-frame.json": "8aa763a67de67a63e946d7615a31b39406715f95d9fb9aed99d6021657d45066", + "emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json": "9f81ecc51724a9422137b5cdc7700063944d37bc1733958c2a1af5d18d8fed89", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty.xml": "11a65614bc930430d126317120913cf177bd92f0a9375bd4eec790d57851933d", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty.png": "f07de89085e79f216b4bb56f1096ba99c0c3c28f1a883700fbbc3ff9488372f8", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty-frame.json": "9e839b2300b280f1be07fca6d502368e156fd09e9c8ec5b9700aef3f654d4283", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer.xml": "11a65614bc930430d126317120913cf177bd92f0a9375bd4eec790d57851933d", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer.png": "f07de89085e79f216b4bb56f1096ba99c0c3c28f1a883700fbbc3ff9488372f8", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer-frame.json": "9d309906b3939cbc97dab4ecdad67fc1c0ac519279220d7165d5ca6907b4be3f", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching.xml": "fbb12c708038eef9189923e4db0ebb0b125876d5baf7c7699bec18f2347222ac", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching.png": "373213031e3a4d13bec8ee3fe9cc0d59b16b5b0527fef6023b1951ea5dd01719", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching-frame.json": "7e3bc88eef63d78178176abacb783f16f5aeebd828e0cfa57e6afd7e358a49d2", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared.xml": "b950a09bf56df00edb37b3e1703fc8968dd0c4bbea6e1bd989391f118c0a09f4", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared.png": "cd46ec60fd3c0c3ccfd2ebc9900e4332e96c1f5c27038b86108c3b305344f42c", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared-frame.json": "a767c60c4399c4cde04b519378480576e4fe0526ddb150c19c1f277a2da249a5", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.xml": "aab4831f979e26b4d9603a5cddb498c28ffffb0e1bd2b9ffc2c997ac07c7679d", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.png": "2b7a29a8011849194d7c84ca2ab18607bf098a202aa0092c17634af4498227a4", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty-frame.json": "c88db1ce87e0f6ef6b587ff4976574c27103bec5eec4c3cec4f94736928d94d7", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-footer.xml": "78f8cfc21fb0cd7d21e51ad2a75e28f2af08aed63a7f6ffef219e63a3318471c", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-footer.png": "d82de878eb2b86b7ddaee7aa6535b0594542a5d8e1a158e3b58e0f0c988e6a7d", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-footer-frame.json": "cbf06d3c0e6defa255715b312ccc4b2e178171fd7cfccd1cad74f9ed21d2e682", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-matching.xml": "a9ded865e45f10689476b9213a52b734d1fe47ec5ca5cf80655a16c4baba6bbd", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-matching.png": "f5f2dcf1a31ca1ab6b6d86b34fd61e070b2089d671469efc8089a6d5a2d0b9a8", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-matching-frame.json": "e07ac9650a018fab45e43850efff46e2e0768e63f412188063af51df576c0268", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-cleared.xml": "c408e2d6b8b5e97e088fd482f99a61d0fc782f4c60d21b42603d44720ce75aa9", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-cleared.png": "cfcb4d89ca7c8f0a78d3daf08f7d093c4a690d30abf1f3573b0b4c69f2c4fb95", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-cleared-frame.json": "2949f4b6017bc3a859e78a2758aa56432812d7cc6afa1e2abc5219bd6182740b", + "launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json": "f3505d3b75cee76ee1ef80a771501d329a777e50667041b80a4d79d1f08c59cf" + }, + "preserved_file_count": 573 +} diff --git a/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/tests.log b/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/tests.log new file mode 100644 index 00000000..fb35d470 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/tests.log @@ -0,0 +1,37 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.TouchSearchDeviceTest: +INSTRUMENTATION_STATUS: test=emojiEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=emojiEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=launcherEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=launcherEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_RESULT: stream= + +Time: 28.437 + +OK (2 tests) + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-case.json b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-case.json new file mode 100644 index 00000000..5851cda2 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-case.json @@ -0,0 +1,131 @@ +{ + "scope": "Explicit native accessibility action invocation with accepted return and actual IME transition; editor setup is controlled. No TalkBack gesture or physical-typing certification.", + "case": "currentKeyboardAccessibilityActionsApplyTheirPublishedVisibility", + "api": 36, + "font_scale": 1, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "keyboard-search-state", + "phase": "accessibility-false-0", + "query": "settings", + "range": [ + 8, + 8 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "current-keyboard-accessibility-action", + "route": "launcher", + "expected_visible": true, + "actual_visible": true, + "accepted": true + }, + { + "kind": "keyboard-search-state", + "phase": "accessibility-false-1", + "query": "settings", + "range": [ + 8, + 8 + ], + "focused": true, + "ime_visible": false, + "route": "launcher" + }, + { + "kind": "current-keyboard-accessibility-action", + "route": "launcher", + "expected_visible": false, + "actual_visible": false, + "accepted": true + }, + { + "kind": "keyboard-search-state", + "phase": "accessibility-false-2", + "query": "settings", + "range": [ + 8, + 8 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "current-keyboard-accessibility-action", + "route": "launcher", + "expected_visible": true, + "actual_visible": true, + "accepted": true + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "keyboard-search-state", + "phase": "accessibility-true-0", + "query": "face", + "range": [ + 4, + 4 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "current-keyboard-accessibility-action", + "route": "emoji", + "expected_visible": true, + "actual_visible": true, + "accepted": true + }, + { + "kind": "keyboard-search-state", + "phase": "accessibility-true-1", + "query": "face", + "range": [ + 4, + 4 + ], + "focused": true, + "ime_visible": false, + "route": "emoji" + }, + { + "kind": "current-keyboard-accessibility-action", + "route": "emoji", + "expected_visible": false, + "actual_visible": false, + "accepted": true + }, + { + "kind": "keyboard-search-state", + "phase": "accessibility-true-2", + "query": "face", + "range": [ + 4, + 4 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "current-keyboard-accessibility-action", + "route": "emoji", + "expected_visible": true, + "actual_visible": true, + "accepted": true + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-0-frame.json b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-0-frame.json new file mode 100644 index 00000000..8eed511c --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-0-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-accessibility-emoji-0", + "search": [ + 473, + 243, + 1280, + 315 + ], + "ime_visible": true, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Explicit native accessibility action invocation with accepted return and actual IME transition; editor setup is controlled. No TalkBack gesture or physical-typing certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-0.xml b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-0.xml new file mode 100644 index 00000000..15e4b07b --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-0.xml @@ -0,0 +1,456 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-1-frame.json b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-1-frame.json new file mode 100644 index 00000000..87749f17 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-1-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-accessibility-emoji-1", + "search": [ + 473, + 243, + 1280, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Explicit native accessibility action invocation with accepted return and actual IME transition; editor setup is controlled. No TalkBack gesture or physical-typing certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-1.xml b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-1.xml new file mode 100644 index 00000000..896e31fd --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-1.xml @@ -0,0 +1,340 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-0-frame.json b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-0-frame.json new file mode 100644 index 00000000..54873414 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-0-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-accessibility-launcher-0", + "search": [ + 473, + 243, + 1355, + 315 + ], + "ime_visible": true, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Explicit native accessibility action invocation with accepted return and actual IME transition; editor setup is controlled. No TalkBack gesture or physical-typing certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-0.xml b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-0.xml new file mode 100644 index 00000000..b42e0da3 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-0.xml @@ -0,0 +1,367 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-1-frame.json b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-1-frame.json new file mode 100644 index 00000000..bee71d2c --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-1-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-accessibility-launcher-1", + "search": [ + 473, + 243, + 1355, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Explicit native accessibility action invocation with accepted return and actual IME transition; editor setup is controlled. No TalkBack gesture or physical-typing certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-1.xml b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-1.xml new file mode 100644 index 00000000..924bcb32 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-1.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json new file mode 100644 index 00000000..f45ea590 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json @@ -0,0 +1,350 @@ +{ + "scope": "Controlled retained native callbacks; visibility and menu-backdrop dismissal use actual pointers. Injected system Back failure remains #115; no queued-input or cross-window certification.", + "case": "emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "api": 36, + "font_scale": 1, + "rejected_callbacks": 5, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-first-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-live-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-live-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-callback-rejected", + "phase": "keyboard-guard-obsolete-mode", + "visible": true, + "accepted": false + }, + { + "kind": "keyboard-callback-rejected", + "phase": "changed-epoch-before-disposal", + "visible": true, + "accepted": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-before-menu", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-callback-rejected", + "phase": "keyboard-guard-open-menu", + "visible": false, + "accepted": false + }, + { + "kind": "keyboard-menu-pointer-dismissal", + "point": [ + 491, + 279 + ], + "menu": [ + 1031, + 321, + 1511, + 866 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-after-menu", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-before-replacement", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "keyboard-callback-rejected", + "phase": "keyboard-guard-replaced-route", + "visible": false, + "accepted": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-current-replacement-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-before-recreation", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "keyboard-callback-rejected", + "phase": "keyboard-guard-recreated-owner", + "visible": false, + "accepted": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-current-recreated-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show-frame.json b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show-frame.json new file mode 100644 index 00000000..752f642b --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-guard-current-recreated-show", + "search": [ + 473, + 243, + 1280, + 315 + ], + "ime_visible": true, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Controlled retained native callbacks; visibility and menu-backdrop dismissal use actual pointers. Injected system Back failure remains #115; no queued-input or cross-window certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.xml b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.xml new file mode 100644 index 00000000..d3bea81e --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.xml @@ -0,0 +1,456 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch-frame.json b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch-frame.json new file mode 100644 index 00000000..2d283e89 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-guard-epoch", + "search": [ + 473, + 243, + 1280, + 315 + ], + "ime_visible": true, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Controlled retained native callbacks; visibility and menu-backdrop dismissal use actual pointers. Injected system Back failure remains #115; no queued-input or cross-window certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.xml b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.xml new file mode 100644 index 00000000..d3bea81e --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.xml @@ -0,0 +1,456 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json new file mode 100644 index 00000000..32ac146f --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-guard-obsolete-mode", + "search": [ + 473, + 243, + 1280, + 315 + ], + "ime_visible": true, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Controlled retained native callbacks; visibility and menu-backdrop dismissal use actual pointers. Injected system Back failure remains #115; no queued-input or cross-window certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml new file mode 100644 index 00000000..d3bea81e --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml @@ -0,0 +1,456 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json new file mode 100644 index 00000000..82cb4913 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-guard-open-menu", + "search": [ + 473, + 243, + 1280, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Controlled retained native callbacks; visibility and menu-backdrop dismissal use actual pointers. Injected system Back failure remains #115; no queued-input or cross-window certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml new file mode 100644 index 00000000..a247da66 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner-frame.json b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner-frame.json new file mode 100644 index 00000000..17c9dfae --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-guard-recreated-owner", + "search": [ + 473, + 243, + 1280, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Controlled retained native callbacks; visibility and menu-backdrop dismissal use actual pointers. Injected system Back failure remains #115; no queued-input or cross-window certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.xml b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.xml new file mode 100644 index 00000000..ab4d1130 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.xml @@ -0,0 +1,336 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route-frame.json b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route-frame.json new file mode 100644 index 00000000..59bb83f8 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-guard-replaced-route", + "search": [ + 473, + 243, + 1280, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Controlled retained native callbacks; visibility and menu-backdrop dismissal use actual pointers. Injected system Back failure remains #115; no queued-input or cross-window certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.xml b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.xml new file mode 100644 index 00000000..46869374 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.xml @@ -0,0 +1,340 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json new file mode 100644 index 00000000..fe76f5e7 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json @@ -0,0 +1,350 @@ +{ + "scope": "Controlled retained native callbacks; visibility and menu-backdrop dismissal use actual pointers. Injected system Back failure remains #115; no queued-input or cross-window certification.", + "case": "launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "api": 36, + "font_scale": 1, + "rejected_callbacks": 5, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-first-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-live-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-live-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-callback-rejected", + "phase": "keyboard-guard-obsolete-mode", + "visible": true, + "accepted": false + }, + { + "kind": "keyboard-callback-rejected", + "phase": "changed-epoch-before-disposal", + "visible": true, + "accepted": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-before-menu", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-callback-rejected", + "phase": "keyboard-guard-open-menu", + "visible": false, + "accepted": false + }, + { + "kind": "keyboard-menu-pointer-dismissal", + "point": [ + 491, + 279 + ], + "menu": [ + 410, + 321, + 890, + 866 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-after-menu", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-before-replacement", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "keyboard-callback-rejected", + "phase": "keyboard-guard-replaced-route", + "visible": false, + "accepted": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-current-replacement-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-before-recreation", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "keyboard-callback-rejected", + "phase": "keyboard-guard-recreated-owner", + "visible": false, + "accepted": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-current-recreated-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show-frame.json b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show-frame.json new file mode 100644 index 00000000..c0a2249e --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-guard-current-recreated-show", + "search": [ + 473, + 243, + 1355, + 315 + ], + "ime_visible": true, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Controlled retained native callbacks; visibility and menu-backdrop dismissal use actual pointers. Injected system Back failure remains #115; no queued-input or cross-window certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.xml b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.xml new file mode 100644 index 00000000..fd9c0b8e --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.xml @@ -0,0 +1,367 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch-frame.json b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch-frame.json new file mode 100644 index 00000000..8d8a82bd --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-guard-epoch", + "search": [ + 473, + 243, + 1355, + 315 + ], + "ime_visible": true, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Controlled retained native callbacks; visibility and menu-backdrop dismissal use actual pointers. Injected system Back failure remains #115; no queued-input or cross-window certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.xml b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.xml new file mode 100644 index 00000000..37da8458 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.xml @@ -0,0 +1,367 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json new file mode 100644 index 00000000..6a21ea9d --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-guard-obsolete-mode", + "search": [ + 473, + 243, + 1355, + 315 + ], + "ime_visible": true, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Controlled retained native callbacks; visibility and menu-backdrop dismissal use actual pointers. Injected system Back failure remains #115; no queued-input or cross-window certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml new file mode 100644 index 00000000..37da8458 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml @@ -0,0 +1,367 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json new file mode 100644 index 00000000..5121fed0 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-guard-open-menu", + "search": [ + 473, + 243, + 1355, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Controlled retained native callbacks; visibility and menu-backdrop dismissal use actual pointers. Injected system Back failure remains #115; no queued-input or cross-window certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml new file mode 100644 index 00000000..18306559 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner-frame.json b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner-frame.json new file mode 100644 index 00000000..4a5cfbfe --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-guard-recreated-owner", + "search": [ + 473, + 243, + 1355, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Controlled retained native callbacks; visibility and menu-backdrop dismissal use actual pointers. Injected system Back failure remains #115; no queued-input or cross-window certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.xml b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.xml new file mode 100644 index 00000000..749030e0 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route-frame.json b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route-frame.json new file mode 100644 index 00000000..6d319039 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-guard-replaced-route", + "search": [ + 473, + 243, + 1355, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Controlled retained native callbacks; visibility and menu-backdrop dismissal use actual pointers. Injected system Back failure remains #115; no queued-input or cross-window certification." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.xml b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.xml new file mode 100644 index 00000000..749030e0 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/outer.log b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/outer.log new file mode 100644 index 00000000..150dc17e --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/outer.log @@ -0,0 +1 @@ +{"completed": true, "passes": 3, "failures": 0, "expected_negative": false, "preserved_file_count": 573} diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/record.json b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/record.json new file mode 100644 index 00000000..d1419922 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/record.json @@ -0,0 +1,185 @@ +{ + "completed": true, + "expected_negative": false, + "suite": "touch-search", + "input_mode": "system", + "runner_sha256": "775233d14eb064bf6636071d89ade59f8a596c518beeb5f6844ea788c613cb7a", + "apk_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d", + "methods": [ + "launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "currentKeyboardAccessibilityActionsApplyTheirPublishedVisibility" + ], + "api": 36, + "font_scale": 1.0, + "layout": "tablet", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 3, + "failures": 0, + "native_expected_outcome": true, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-0.xml": "8d32f675ff720c15191843a9d00d82707018e42ba4eea25fa96932b5c04a1050", + "currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-0.png": "72c996d07465f6099f5f021ddd80f9fdf799455c386a52c25dcd7806522d887e", + "currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-0-frame.json": "88022fa4333be54a941400b8c4dd60b4fa36bb77c448b8507a85163a53f6671e", + "currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-1.xml": "783b8093347aa1eb1bb2e9b9732fcbafbd88161f7c9f90e71564e10267384a88", + "currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-1.png": "683da9641e87e6af9be358f4c06702ceb9415205016b1a1f725842eee2709028", + "currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-1-frame.json": "261d988f8decf2b56733d43e8a56a82a4ce6bd7941e7c3c8d332f46f2e85fcbb", + "currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-2.xml": "8d32f675ff720c15191843a9d00d82707018e42ba4eea25fa96932b5c04a1050", + "currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-2.png": "d2d6e8f5a7a10cf053ec37901a1c3428459a0370a8655f2485b58d424603ef38", + "currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-2-frame.json": "4074174ea4040f566f68b9cbad94d6ff6955c59e4cca7393380a43d71fedae2d", + "currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-0.xml": "920e97ee22f0745daf72161b87f21bd2e6d34c6b0864f0808fde4bd34ec8b531", + "currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-0.png": "ce6578c82166c69f929921f371c2e37d04277e60c8ae779d7550ebb6f718c7f2", + "currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-0-frame.json": "814aab371137ef7224b580ad539c4757f586e02be83c0cd21669a80fd9823fe3", + "currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-1.xml": "3968b972a26936f4f9ddd772ca683f8665d6df59300256912ae7da94f1e52287", + "currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-1.png": "f7d77704146f4d29686f97b7d7d22b7aff37d8f28342a4505da90fce7f372114", + "currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-1-frame.json": "e31098814b128dab93638e30ad55b2f68ab497e3072828cd0eb4b8b53219f32d", + "currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-2.xml": "167dcd3240befb4ace05722f535368d8c73800c407f613532410b1500a403309", + "currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-2.png": "7618d64e07c50b4a4037b0d50108452fa62eea7d0acbc2de11e0387e5cb0497d", + "currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-2-frame.json": "7161efa985063b8c0265210a1d5e794afa2b7c70f42008bccf2be3635771fa39", + "currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-case.json": "a4d2ea1442e881b950547978ce12c3df1e13310cf9072b98f5bd3663d2b67f72", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.xml": "167dcd3240befb4ace05722f535368d8c73800c407f613532410b1500a403309", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.png": "332e72edaabad8bd1c0a94547c390a8cfe729898066c7d98ed2649efde8d5b60", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show-frame.json": "16daad1eef0957b1b8bc75a1b86c80f4e5d2987f88e5d2fd9b5ec547ffb7b717", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.xml": "8cf3a90f10d6eec7df233378e7daa8b3383984c115382e891dcc2ab4fb3a3bc7", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.png": "492684a5b7a1eb9989c1eea8f5fd72a805adde22bbc267aa0b09a5ef1f856f6c", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide-frame.json": "6603dc62fe03f29ad0d642eb32d16a958d6319a6edad8c4a851194f5462f7e16", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.xml": "167dcd3240befb4ace05722f535368d8c73800c407f613532410b1500a403309", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.png": "6e48ea0bcbd16e88a2ada009901a23d1ba9b043e09547bbe9798215c04ef2550", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show-frame.json": "34d7d1afd5f68148d05b298170023beee817cc13f54f2e1cf2900ee03f4e85a2", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml": "167dcd3240befb4ace05722f535368d8c73800c407f613532410b1500a403309", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png": "d09b66269e1451273b39620c9dc53bf657638fcc553eaaa4cb5d2a18f41642d6", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json": "48c6dc2b7f9dc8d551893ed1711dd475bdd47470888a6d01ae7fdcb0a378f220", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.xml": "167dcd3240befb4ace05722f535368d8c73800c407f613532410b1500a403309", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.png": "9f997e06fd69cf2d8b84eb19662855271121335d77ac611deec6885474bc4f7d", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch-frame.json": "87226601975f7853a483a07c7d694c0fd771391b1e7f2a6449b7ecb139ef95bc", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu.xml": "8cf3a90f10d6eec7df233378e7daa8b3383984c115382e891dcc2ab4fb3a3bc7", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu.png": "ffe72c1df37f5846a6ee11723660fc51483235507e2e6c2cd3f023402548831a", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json": "538bbab99da53f8d3d879b4e385fe086a19c4b598403e72a0450a24b352644c3", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu-frame.json": "0558d9acf593b72e2c3a0d5e3d0fb1dddadfccbef14a83994c5f798ab2d03927", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml": "c82e0a2a70a8be824768fd2e359d6c6dde6cc829071a0cf164d21aa4b7f542a7", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png": "6adc070dad29a20cf6135fb8041ed28af3ae713fa69cb7287148b12ab16520b8", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json": "c548ae46776c3d0f74e53cc233479bbdf522a33ed4ba33274758e06439f2dd69", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-after-menu.xml": "167dcd3240befb4ace05722f535368d8c73800c407f613532410b1500a403309", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-after-menu.png": "dfa949a4d7f21b9f796b13bd870dfef50d7c82232aa54149a7825e54f3b8fe2b", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-after-menu-frame.json": "a9caf24aa53c8c93f996c3fdb427ccd598101ea3f893eec1a794fa5cd6500733", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-replacement.xml": "8cf3a90f10d6eec7df233378e7daa8b3383984c115382e891dcc2ab4fb3a3bc7", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-replacement.png": "e78864b065f997f29c93b0b9dd638baebe4127bd982d1e5967057303e4a4d5a1", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-replacement-frame.json": "46f429558a4da5d91d4bec4863ab80e365127758c0700b87034ed601bd4deb97", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.xml": "8cf3a90f10d6eec7df233378e7daa8b3383984c115382e891dcc2ab4fb3a3bc7", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.png": "337abefff7a6acbb55b0deda11a8cf6f313ab3a8b25e065567a0e0c635f2108c", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route-frame.json": "0afec2e5b8f08fc51048f5cf6d11f7c7d3bc64c12b6e109be037cfe12b6b1486", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-replacement-show.xml": "99203478870f1f97fcada6a0b85410a81e0085e15cf54f8279d4d9bf2a51d9a9", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-replacement-show.png": "6af05bee3dc1092b17b283f67da7380381a48c2178bdc7cc94ad92299385631e", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-replacement-show-frame.json": "4cff38db38c86cdada7a7da93a53d3449e3044f4586e6c19e9e1ac1471a1530b", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-recreation.xml": "e9132c55f0e6e8486a162c52b8b5755fdd65e5a5ca070755e2b85d1a9c7d8f64", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-recreation.png": "eaa1cc1f34d1dd41e991804f35ba9e497b1d380b7cd8ba95c14165d6b585be2b", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-recreation-frame.json": "b989c155b994b614b111358fca588fc4a1d4d8c4741f701912bf89d1c1dcb923", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.xml": "e9132c55f0e6e8486a162c52b8b5755fdd65e5a5ca070755e2b85d1a9c7d8f64", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.png": "b79f86010ad2c4e8caef8b6c44c646c192ac768442c6e1376a587276fbfaf13f", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner-frame.json": "eb8d0b7ea7c84d00bda951d0214c7eda8f6c3322b25a00e940e23e6e938c8c5a", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.xml": "167dcd3240befb4ace05722f535368d8c73800c407f613532410b1500a403309", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.png": "76c443a135c609f68e9ab51254bb42dd3ad891c3866ae9849c0f1bf158b1cc60", + "emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show-frame.json": "925990b48fea02e6187d86597be7e657ca974cc679cc72ea3d2842e0adbe191e", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.xml": "81f2d687f225eb1c959f51b3693aa3aada1dcd440808571a3f2a38ea3cf1486d", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.png": "85cec1e4fdc5140c1f94f3de7cba0c5c1d1c3d7dabeac499286c66831d396250", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show-frame.json": "554b08aa0d3dd50ff6a54e07176a85fdfd4cceb70052137b8621ef406c550548", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.xml": "32261ab41e6557c4328a00889524164a039337da0a732126d973f8ef6f863c3c", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.png": "30fe5a529d874619223ae8faede8d8fd0d65cc7fc83b22a1e3e76797e85571e6", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide-frame.json": "2da02eff294aeff70b20d3c0dba8d1a085cbe2a5d2588540697e531039a729c0", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.xml": "81f2d687f225eb1c959f51b3693aa3aada1dcd440808571a3f2a38ea3cf1486d", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.png": "e84e605b86db275d7bebd82b768142dcb5cc4068976e273ecfe97a1d38772e5c", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show-frame.json": "80acb74de7e9b2ab66ef6279b09d7d2672c37d7ebfcf1e8c3a82c0e1add4da63", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml": "81f2d687f225eb1c959f51b3693aa3aada1dcd440808571a3f2a38ea3cf1486d", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png": "2a5d4a53ad0639238a786050f49bf4b8cb897bd3eebe654c9ecec26f2ea36b7d", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json": "e691b0299a9a1c4dffba2df31d0545b9859e644812b7cd4b6cd667912fb27c55", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json": "dc66aca81db0b35eadb666dc1679ca0f491ab419df2e6a60df4515bf6b285124", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.xml": "81f2d687f225eb1c959f51b3693aa3aada1dcd440808571a3f2a38ea3cf1486d", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.png": "0888837937ec4ef726199ef58d07f15fa0b6581c046e84c27439a774b2c4dfed", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch-frame.json": "65b05c4f8e0924ea2dc497fef15e685d61b95dab9b90aaca9560bd1f52f3e2cf", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu.xml": "32261ab41e6557c4328a00889524164a039337da0a732126d973f8ef6f863c3c", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu.png": "acad325c26ee065ade8734e83585c709b010bfe0090d5f4324c0a895984684a3", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu-frame.json": "79073ac589a5b64cb416fe6572d734400c17e5d08d6f1370fe5838e2d5e1ced9", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml": "1c1969829c30b837251c0846477eb56290b72ead385c6dfd97b7e5d11d1dde5e", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png": "61139a0f3c7e30887c609206190cead18bde69687171e96ffeb23f1f9ac844ae", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json": "cc42774be675d2c2d1ede544cb6380dde597ce3b06209568ad338f3a9150d1b5", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-after-menu.xml": "81f2d687f225eb1c959f51b3693aa3aada1dcd440808571a3f2a38ea3cf1486d", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-after-menu.png": "f98b776f7cba1e5c9fbdb7d4a5680c6f35741a963fb5a4b0f9aa0426bde005b9", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-after-menu-frame.json": "3b4b146762fb555be2733a45753b1eb5a4cc2d87ed90c0635a9aa2e704056a27", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-replacement.xml": "70c5fb3d69af14aef7b8a4d449732ff1b6bd5e176962759454c6f9f3ab769299", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-replacement.png": "9aa993c58061d583592ae47a7b85f1100f1a02f130158f4a5f0a980d5779dea4", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-replacement-frame.json": "e3ff3c371aa6ce1495b7f322abf9f2b6fc773215146c0929cee3e7af78029ecf", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.xml": "70c5fb3d69af14aef7b8a4d449732ff1b6bd5e176962759454c6f9f3ab769299", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.png": "01eea78447471eb716442da3c5b0dfb662d40e8435dc603d9fd0a0e2d2e9782b", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route-frame.json": "4cb08de0fbd2a9b49001f6623b7534263a8203f9538f85e908f929aae4dba212", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-replacement-show.xml": "6450e63572811592c7168dc9f8241a35d58de5a614bd8d2ffcade433c5e9cd14", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-replacement-show.png": "f47ab52b9df8a52bbea4ae6986b14814bfbe2cdc638571915b35f92559fef129", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-replacement-show-frame.json": "49c394c69554ec6d7894617d2d5468f2932deee1ae8944fe1b099637b829ab24", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-recreation.xml": "70c5fb3d69af14aef7b8a4d449732ff1b6bd5e176962759454c6f9f3ab769299", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-recreation.png": "545a4f0e75626a82c54b03e2c244d60848ae276e9134aed72d63a02f02d4eca7", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-recreation-frame.json": "d41399f1e966e5a52e038ae26e75605a7e20735bfdc2c36d182d41488aa18501", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.xml": "70c5fb3d69af14aef7b8a4d449732ff1b6bd5e176962759454c6f9f3ab769299", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.png": "9ad61fc02daa71ef45a32586f4197b64c9c29676499e575e960e883e26956765", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner-frame.json": "5523738e4fc2045085cd5735d7eb697568a1df56c00183eb6817deef02b46d6d", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.xml": "495dd35c72bb074c90943500bdcb34c2182a70c4fdfcc4171f1a04812258085b", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.png": "5b26029118a9eb43dc400d66f5ccf6ba1c00277c0cb2f08a7d7d804c81c0d1db", + "launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show-frame.json": "b225be89cc82c3fdfbc769e7004c38cadc70155d50f4ef354efd34c13d5d8392" + }, + "preserved_file_count": 573 +} diff --git a/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/tests.log b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/tests.log new file mode 100644 index 00000000..52857a9c --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/tests.log @@ -0,0 +1,51 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=3 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.TouchSearchDeviceTest: +INSTRUMENTATION_STATUS: test=currentKeyboardAccessibilityActionsApplyTheirPublishedVisibility +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=3 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=currentKeyboardAccessibilityActionsApplyTheirPublishedVisibility +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=3 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=3 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=3 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=3 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=3 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=3 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_RESULT: stream= + +Time: 66.51 + +OK (3 tests) + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/final-input-api26100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition-frame.json b/docs/validation/keyboard-toggle/cohorts/final-input-api26100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition-frame.json new file mode 100644 index 00000000..7b60633c --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-input-api26100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition-frame.json @@ -0,0 +1,6 @@ +{ + "diagnostic_only": true, + "phase": "active-japanese-composition", + "synchronization": "Compose idle; hierarchy before PNG; XML geometry not an independent visibility witness", + "scope": "Controlled active Japanese composition keeps direct native navigation with the editor, before and after composition publication" +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-input-api26100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition.xml b/docs/validation/keyboard-toggle/cohorts/final-input-api26100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition.xml new file mode 100644 index 00000000..1c52e7bb --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-input-api26100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition.xml @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-input-api26100/captures/case-activemultilingualcompositionkeepsresultselection.json b/docs/validation/keyboard-toggle/cohorts/final-input-api26100/captures/case-activemultilingualcompositionkeepsresultselection.json new file mode 100644 index 00000000..29c76cd1 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-input-api26100/captures/case-activemultilingualcompositionkeepsresultselection.json @@ -0,0 +1,131 @@ +{ + "diagnostic_only": false, + "scope": "Controlled active Japanese composition keeps direct native navigation with the editor, before and after composition publication", + "case": "activeMultilingualCompositionKeepsResultSelection", + "api": 26, + "font_scale": 1, + "default_ime": "dev.tinycast.android.test\/dev.tinycast.android.NativeInputTestIme", + "input_setup": "Owned silent test IME plus explicit native InputConnection readiness\/commit; no system-keyboard or physical-typing credit", + "contract_completed": true, + "palette_preferences_restored": true, + "emoji_preferences_unchanged": true, + "observations": [ + { + "kind": "controlled-input-ready", + "tag": "emoji-search", + "expected_text_length": 4, + "readiness_attempts": 1 + }, + { + "kind": "observation", + "stage": "explicitly-committed-emoji-search", + "tag": "emoji-search", + "text_length": 4, + "text_sha256": "0282d9b79f42c74c1550b20ff2dd16aafc3fe5d8ae9a00b2f66996d0ae882775", + "text_prefix": "face", + "plain_annotated_equal": true, + "span_styles": [], + "paragraph_styles": "[]", + "string_annotations": "[]", + "selection_start": 4, + "selection_end": 4, + "focused": true, + "no_input_connection_created_for_this_observation": true, + "codepoints": [ + 102, + 97, + 99, + 101 + ], + "route": "emoji", + "window_focus": true, + "query": "", + "emoji_query": "face", + "emoji_selected": 0, + "ime_accepting_text": true, + "uptime_ms": 64598275 + }, + { + "kind": "observation", + "stage": "active-japanese-composition", + "tag": "emoji-search", + "text_length": 3, + "text_sha256": "f22e589664a7450ca0686710eb046f65eff8b26741c1fb1a581ffdebe1edcaa7", + "text_prefix": "にほん", + "plain_annotated_equal": false, + "span_styles": [ + { + "start": 0, + "end": 3, + "decoration": "TextDecoration.Underline", + "style": "SpanStyle(color=Color(0.0, 0.0, 0.0, 0.0, None), brush=null, alpha=NaN, fontSize=Unspecified, fontWeight=null, fontStyle=null, fontSynthesis=null, fontFamily=null, fontFeatureSettings=null, letterSpacing=Unspecified, baselineShift=null, textGeometricTransform=null, localeList=null, background=Color(0.0, 0.0, 0.0, 0.0, None), textDecoration=TextDecoration.Underline, shadow=null, platformStyle=null, drawStyle=null)" + } + ], + "paragraph_styles": "[]", + "string_annotations": "[]", + "selection_start": 3, + "selection_end": 3, + "focused": true, + "no_input_connection_created_for_this_observation": true, + "codepoints": [ + 12395, + 12411, + 12435 + ], + "route": "emoji", + "window_focus": true, + "query": "", + "emoji_query": "にほん", + "emoji_selected": 0, + "ime_accepting_text": true, + "uptime_ms": 64598322 + }, + { + "kind": "direct-key", + "code": 22, + "action": 0, + "handled": true + }, + { + "kind": "direct-key", + "code": 22, + "action": 1, + "handled": false + }, + { + "kind": "observation", + "stage": "active-japanese-after-direct-navigation", + "tag": "emoji-search", + "text_length": 3, + "text_sha256": "f22e589664a7450ca0686710eb046f65eff8b26741c1fb1a581ffdebe1edcaa7", + "text_prefix": "にほん", + "plain_annotated_equal": false, + "span_styles": [ + { + "start": 0, + "end": 3, + "decoration": "TextDecoration.Underline", + "style": "SpanStyle(color=Color(0.0, 0.0, 0.0, 0.0, None), brush=null, alpha=NaN, fontSize=Unspecified, fontWeight=null, fontStyle=null, fontSynthesis=null, fontFamily=null, fontFeatureSettings=null, letterSpacing=Unspecified, baselineShift=null, textGeometricTransform=null, localeList=null, background=Color(0.0, 0.0, 0.0, 0.0, None), textDecoration=TextDecoration.Underline, shadow=null, platformStyle=null, drawStyle=null)" + } + ], + "paragraph_styles": "[]", + "string_annotations": "[]", + "selection_start": 3, + "selection_end": 3, + "focused": true, + "no_input_connection_created_for_this_observation": true, + "codepoints": [ + 12395, + 12411, + 12435 + ], + "route": "emoji", + "window_focus": true, + "query": "", + "emoji_query": "にほん", + "emoji_selected": 0, + "ime_accepting_text": true, + "uptime_ms": 64598327 + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-input-api26100/captures/case-committedemojinavigationandcaretareexact.json b/docs/validation/keyboard-toggle/cohorts/final-input-api26100/captures/case-committedemojinavigationandcaretareexact.json new file mode 100644 index 00000000..42cf9cfc --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-input-api26100/captures/case-committedemojinavigationandcaretareexact.json @@ -0,0 +1,218 @@ +{ + "diagnostic_only": false, + "scope": "Explicitly committed Emoji query supports injected grid navigation, exact caret and selected range", + "case": "committedEmojiNavigationAndCaretAreExact", + "api": 26, + "font_scale": 1, + "default_ime": "dev.tinycast.android.test\/dev.tinycast.android.NativeInputTestIme", + "input_setup": "Owned silent test IME plus explicit native InputConnection readiness\/commit; no system-keyboard or physical-typing credit", + "contract_completed": true, + "palette_preferences_restored": true, + "emoji_preferences_unchanged": true, + "observations": [ + { + "kind": "controlled-input-ready", + "tag": "emoji-search", + "expected_text_length": 4, + "readiness_attempts": 1 + }, + { + "kind": "observation", + "stage": "explicitly-committed-emoji-search", + "tag": "emoji-search", + "text_length": 4, + "text_sha256": "0282d9b79f42c74c1550b20ff2dd16aafc3fe5d8ae9a00b2f66996d0ae882775", + "text_prefix": "face", + "plain_annotated_equal": true, + "span_styles": [], + "paragraph_styles": "[]", + "string_annotations": "[]", + "selection_start": 4, + "selection_end": 4, + "focused": true, + "no_input_connection_created_for_this_observation": true, + "codepoints": [ + 102, + 97, + 99, + 101 + ], + "route": "emoji", + "window_focus": true, + "query": "", + "emoji_query": "face", + "emoji_selected": 0, + "ime_accepting_text": true, + "uptime_ms": 64595650 + }, + { + "kind": "injected-key", + "code": 22, + "action": 0, + "accepted": true + }, + { + "kind": "injected-key", + "code": 22, + "action": 1, + "accepted": true + }, + { + "kind": "injected-key", + "code": 20, + "action": 0, + "accepted": true + }, + { + "kind": "injected-key", + "code": 20, + "action": 1, + "accepted": true + }, + { + "kind": "injected-key", + "code": 21, + "action": 0, + "accepted": true + }, + { + "kind": "injected-key", + "code": 21, + "action": 1, + "accepted": true + }, + { + "kind": "injected-key", + "code": 19, + "action": 0, + "accepted": true + }, + { + "kind": "injected-key", + "code": 19, + "action": 1, + "accepted": true + }, + { + "kind": "injected-key", + "code": 123, + "action": 0, + "accepted": true + }, + { + "kind": "injected-key", + "code": 123, + "action": 1, + "accepted": true + }, + { + "kind": "injected-key", + "code": 122, + "action": 0, + "accepted": true + }, + { + "kind": "injected-key", + "code": 122, + "action": 1, + "accepted": true + }, + { + "kind": "window-key", + "code": 40, + "action": 0, + "flags": 0, + "source": 257, + "device": -1, + "repeat": 0, + "handled": true, + "uptime_ms": 64596905 + }, + { + "kind": "injected-key", + "code": 40, + "action": 0, + "accepted": true + }, + { + "kind": "window-key", + "code": 40, + "action": 1, + "flags": 0, + "source": 257, + "device": -1, + "repeat": 0, + "handled": false, + "uptime_ms": 64596914 + }, + { + "kind": "injected-key", + "code": 40, + "action": 1, + "accepted": true + }, + { + "kind": "window-key", + "code": 21, + "action": 0, + "flags": 0, + "source": 257, + "device": -1, + "repeat": 0, + "handled": true, + "uptime_ms": 64596926 + }, + { + "kind": "injected-key", + "code": 21, + "action": 0, + "accepted": true + }, + { + "kind": "window-key", + "code": 21, + "action": 1, + "flags": 0, + "source": 257, + "device": -1, + "repeat": 0, + "handled": false, + "uptime_ms": 64596929 + }, + { + "kind": "injected-key", + "code": 21, + "action": 1, + "accepted": true + }, + { + "kind": "observation", + "stage": "committed-query-selected-range", + "tag": "emoji-search", + "text_length": 4, + "text_sha256": "0282d9b79f42c74c1550b20ff2dd16aafc3fe5d8ae9a00b2f66996d0ae882775", + "text_prefix": "face", + "plain_annotated_equal": true, + "span_styles": [], + "paragraph_styles": "[]", + "string_annotations": "[]", + "selection_start": 0, + "selection_end": 2, + "focused": true, + "no_input_connection_created_for_this_observation": true, + "codepoints": [ + 102, + 97, + 99, + 101 + ], + "route": "emoji", + "window_focus": true, + "query": "", + "emoji_query": "face", + "emoji_selected": 0, + "ime_accepting_text": true, + "uptime_ms": 64597001 + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-input-api26100/outer.log b/docs/validation/keyboard-toggle/cohorts/final-input-api26100/outer.log new file mode 100644 index 00000000..b468867c --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-input-api26100/outer.log @@ -0,0 +1 @@ +{"completed": true, "passes": 2, "failures": 0, "expected_negative": false, "preserved_file_count": null} diff --git a/docs/validation/keyboard-toggle/cohorts/final-input-api26100/record.json b/docs/validation/keyboard-toggle/cohorts/final-input-api26100/record.json new file mode 100644 index 00000000..7f8f5aa4 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-input-api26100/record.json @@ -0,0 +1,107 @@ +{ + "completed": true, + "expected_negative": false, + "suite": "native-input", + "input_mode": "owned", + "runner_sha256": "775233d14eb064bf6636071d89ade59f8a596c518beeb5f6844ea788c613cb7a", + "apk_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d", + "methods": [ + "committedEmojiNavigationAndCaretAreExact", + "activeMultilingualCompositionKeepsResultSelection" + ], + "api": 26, + "font_scale": 1.0, + "layout": "phone", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "restore-input-method-before-test-apk-stop": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-absence-dev.tinycast.android.test": { + "passed": true + }, + "verify-input-method-after-test-apk-removal": { + "passed": true + }, + "restore-absence-dev.tinycast.android": { + "passed": true + }, + "verify-initial-package-absence": { + "passed": true + } + }, + "passes": 2, + "failures": 0, + "native_expected_outcome": true, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 58.0.3029.125)" + ], + "original_geometry": { + "size": "Physical size: 1080x1920", + "density": "Physical density: 420" + }, + "original_font_scale": "null", + "captures": { + "committedemojinavigationandcaretareexact-committed-four-way-navigation.xml": "b088d531f024799177b42c5529795f4d4fe0f31e8eadcec7ff7640a2ac31684b", + "committedemojinavigationandcaretareexact-committed-four-way-navigation.png": "78c3ae3b9d8596572e74afe17000e46954053e721ac3e46fa993f2cb2fb8ac06", + "committedemojinavigationandcaretareexact-committed-four-way-navigation-frame.json": "c89fda5acb65f03ec6fae122d1ec0270fb5d70fca467d361bdcc039cdaebc11a", + "committedemojinavigationandcaretareexact-committed-query-selected-range.xml": "b088d531f024799177b42c5529795f4d4fe0f31e8eadcec7ff7640a2ac31684b", + "committedemojinavigationandcaretareexact-committed-query-selected-range.png": "61862cb75e011b0370e4b0caf9692440a878fba167bf2c9bc6fc503dddcfc2d1", + "committedemojinavigationandcaretareexact-committed-query-selected-range-frame.json": "90fb582ae52bd82daa7dc747e0bd4cf17c64024807d8ef632f303464e1f2fade", + "case-committedemojinavigationandcaretareexact.json": "e7bf2b217918d84f3c71ad3d8c97664f3d45f5faf7cae2085b3fa1f4a559aa6d", + "activemultilingualcompositionkeepsresultselection-active-japanese-composition.xml": "dd0eff05b382486b3a99600ca15892ea179f975d7ce13247fe07bd9c60262c6b", + "activemultilingualcompositionkeepsresultselection-active-japanese-composition.png": "48201726e6c03772eb03571fa12ac9eb76dc5ad4e9f10275a473928c124e99c5", + "activemultilingualcompositionkeepsresultselection-active-japanese-composition-frame.json": "386677aeb164b77096876bdad86dffc22a44a3cc7fe72b674be113e87e5280b3", + "case-activemultilingualcompositionkeepsresultselection.json": "5a4261a3bad2e3fbf68f14e10e255fd28334d8af95ae080e0c6e4cdd5b79b165" + }, + "ime_restoration_scope": "Four raw secure settings: default, enabled methods, selected subtype and subtype history; verified before test-APK stop and after its removal/replacement", + "ime_restore_observations": [ + { + "query_ms": 62, + "all_raw_fields_equal": false + }, + { + "query_ms": 56, + "all_raw_fields_equal": true + }, + { + "query_ms": 51, + "all_raw_fields_equal": true + }, + { + "query_ms": 52, + "all_raw_fields_equal": true + }, + { + "query_ms": 50, + "all_raw_fields_equal": true + }, + { + "query_ms": 51, + "all_raw_fields_equal": true + } + ] +} diff --git a/docs/validation/keyboard-toggle/cohorts/final-input-api26100/tests.log b/docs/validation/keyboard-toggle/cohorts/final-input-api26100/tests.log new file mode 100644 index 00000000..b69d0fbf --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-input-api26100/tests.log @@ -0,0 +1,37 @@ +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.NativeInputCompatibilityDeviceTest: +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: test=committedEmojiNavigationAndCaretAreExact +INSTRUMENTATION_STATUS: class=dev.tinycast.android.NativeInputCompatibilityDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: test=committedEmojiNavigationAndCaretAreExact +INSTRUMENTATION_STATUS: class=dev.tinycast.android.NativeInputCompatibilityDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: test=activeMultilingualCompositionKeepsResultSelection +INSTRUMENTATION_STATUS: class=dev.tinycast.android.NativeInputCompatibilityDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: test=activeMultilingualCompositionKeepsResultSelection +INSTRUMENTATION_STATUS: class=dev.tinycast.android.NativeInputCompatibilityDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_RESULT: stream= + +Time: 5.151 + +OK (2 tests) + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/final-input-phone100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition-frame.json b/docs/validation/keyboard-toggle/cohorts/final-input-phone100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition-frame.json new file mode 100644 index 00000000..7b60633c --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-input-phone100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition-frame.json @@ -0,0 +1,6 @@ +{ + "diagnostic_only": true, + "phase": "active-japanese-composition", + "synchronization": "Compose idle; hierarchy before PNG; XML geometry not an independent visibility witness", + "scope": "Controlled active Japanese composition keeps direct native navigation with the editor, before and after composition publication" +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-input-phone100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition.xml b/docs/validation/keyboard-toggle/cohorts/final-input-phone100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition.xml new file mode 100644 index 00000000..50def971 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-input-phone100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition.xml @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-input-phone100/captures/case-activemultilingualcompositionkeepsresultselection.json b/docs/validation/keyboard-toggle/cohorts/final-input-phone100/captures/case-activemultilingualcompositionkeepsresultselection.json new file mode 100644 index 00000000..6b49c3ed --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-input-phone100/captures/case-activemultilingualcompositionkeepsresultselection.json @@ -0,0 +1,131 @@ +{ + "diagnostic_only": false, + "scope": "Controlled active Japanese composition keeps direct native navigation with the editor, before and after composition publication", + "case": "activeMultilingualCompositionKeepsResultSelection", + "api": 36, + "font_scale": 1, + "default_ime": "dev.tinycast.android.test\/dev.tinycast.android.NativeInputTestIme", + "input_setup": "Owned silent test IME plus explicit native InputConnection readiness\/commit; no system-keyboard or physical-typing credit", + "contract_completed": true, + "palette_preferences_restored": true, + "emoji_preferences_unchanged": true, + "observations": [ + { + "kind": "controlled-input-ready", + "tag": "emoji-search", + "expected_text_length": 4, + "readiness_attempts": 1 + }, + { + "kind": "observation", + "stage": "explicitly-committed-emoji-search", + "tag": "emoji-search", + "text_length": 4, + "text_sha256": "0282d9b79f42c74c1550b20ff2dd16aafc3fe5d8ae9a00b2f66996d0ae882775", + "text_prefix": "face", + "plain_annotated_equal": true, + "span_styles": [], + "paragraph_styles": "[]", + "string_annotations": "[]", + "selection_start": 4, + "selection_end": 4, + "focused": true, + "no_input_connection_created_for_this_observation": true, + "codepoints": [ + 102, + 97, + 99, + 101 + ], + "route": "emoji", + "window_focus": true, + "query": "", + "emoji_query": "face", + "emoji_selected": 0, + "ime_accepting_text": true, + "uptime_ms": 18015837 + }, + { + "kind": "observation", + "stage": "active-japanese-composition", + "tag": "emoji-search", + "text_length": 3, + "text_sha256": "f22e589664a7450ca0686710eb046f65eff8b26741c1fb1a581ffdebe1edcaa7", + "text_prefix": "にほん", + "plain_annotated_equal": false, + "span_styles": [ + { + "start": 0, + "end": 3, + "decoration": "TextDecoration.Underline", + "style": "SpanStyle(color=Color(0.0, 0.0, 0.0, 0.0, None), brush=null, alpha=NaN, fontSize=Unspecified, fontWeight=null, fontStyle=null, fontSynthesis=null, fontFamily=null, fontFeatureSettings=null, letterSpacing=Unspecified, baselineShift=null, textGeometricTransform=null, localeList=null, background=Color(0.0, 0.0, 0.0, 0.0, None), textDecoration=TextDecoration.Underline, shadow=null, platformStyle=null, drawStyle=null)" + } + ], + "paragraph_styles": "[]", + "string_annotations": "[]", + "selection_start": 3, + "selection_end": 3, + "focused": true, + "no_input_connection_created_for_this_observation": true, + "codepoints": [ + 12395, + 12411, + 12435 + ], + "route": "emoji", + "window_focus": true, + "query": "", + "emoji_query": "にほん", + "emoji_selected": 0, + "ime_accepting_text": true, + "uptime_ms": 18015912 + }, + { + "kind": "direct-key", + "code": 22, + "action": 0, + "handled": true + }, + { + "kind": "direct-key", + "code": 22, + "action": 1, + "handled": false + }, + { + "kind": "observation", + "stage": "active-japanese-after-direct-navigation", + "tag": "emoji-search", + "text_length": 3, + "text_sha256": "f22e589664a7450ca0686710eb046f65eff8b26741c1fb1a581ffdebe1edcaa7", + "text_prefix": "にほん", + "plain_annotated_equal": false, + "span_styles": [ + { + "start": 0, + "end": 3, + "decoration": "TextDecoration.Underline", + "style": "SpanStyle(color=Color(0.0, 0.0, 0.0, 0.0, None), brush=null, alpha=NaN, fontSize=Unspecified, fontWeight=null, fontStyle=null, fontSynthesis=null, fontFamily=null, fontFeatureSettings=null, letterSpacing=Unspecified, baselineShift=null, textGeometricTransform=null, localeList=null, background=Color(0.0, 0.0, 0.0, 0.0, None), textDecoration=TextDecoration.Underline, shadow=null, platformStyle=null, drawStyle=null)" + } + ], + "paragraph_styles": "[]", + "string_annotations": "[]", + "selection_start": 3, + "selection_end": 3, + "focused": true, + "no_input_connection_created_for_this_observation": true, + "codepoints": [ + 12395, + 12411, + 12435 + ], + "route": "emoji", + "window_focus": true, + "query": "", + "emoji_query": "にほん", + "emoji_selected": 0, + "ime_accepting_text": true, + "uptime_ms": 18015918 + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-input-phone100/captures/case-committedemojinavigationandcaretareexact.json b/docs/validation/keyboard-toggle/cohorts/final-input-phone100/captures/case-committedemojinavigationandcaretareexact.json new file mode 100644 index 00000000..04fd9e6c --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-input-phone100/captures/case-committedemojinavigationandcaretareexact.json @@ -0,0 +1,218 @@ +{ + "diagnostic_only": false, + "scope": "Explicitly committed Emoji query supports injected grid navigation, exact caret and selected range", + "case": "committedEmojiNavigationAndCaretAreExact", + "api": 36, + "font_scale": 1, + "default_ime": "dev.tinycast.android.test\/dev.tinycast.android.NativeInputTestIme", + "input_setup": "Owned silent test IME plus explicit native InputConnection readiness\/commit; no system-keyboard or physical-typing credit", + "contract_completed": true, + "palette_preferences_restored": true, + "emoji_preferences_unchanged": true, + "observations": [ + { + "kind": "controlled-input-ready", + "tag": "emoji-search", + "expected_text_length": 4, + "readiness_attempts": 1 + }, + { + "kind": "observation", + "stage": "explicitly-committed-emoji-search", + "tag": "emoji-search", + "text_length": 4, + "text_sha256": "0282d9b79f42c74c1550b20ff2dd16aafc3fe5d8ae9a00b2f66996d0ae882775", + "text_prefix": "face", + "plain_annotated_equal": true, + "span_styles": [], + "paragraph_styles": "[]", + "string_annotations": "[]", + "selection_start": 4, + "selection_end": 4, + "focused": true, + "no_input_connection_created_for_this_observation": true, + "codepoints": [ + 102, + 97, + 99, + 101 + ], + "route": "emoji", + "window_focus": true, + "query": "", + "emoji_query": "face", + "emoji_selected": 0, + "ime_accepting_text": true, + "uptime_ms": 18011431 + }, + { + "kind": "injected-key", + "code": 22, + "action": 0, + "accepted": true + }, + { + "kind": "injected-key", + "code": 22, + "action": 1, + "accepted": true + }, + { + "kind": "injected-key", + "code": 20, + "action": 0, + "accepted": true + }, + { + "kind": "injected-key", + "code": 20, + "action": 1, + "accepted": true + }, + { + "kind": "injected-key", + "code": 21, + "action": 0, + "accepted": true + }, + { + "kind": "injected-key", + "code": 21, + "action": 1, + "accepted": true + }, + { + "kind": "injected-key", + "code": 19, + "action": 0, + "accepted": true + }, + { + "kind": "injected-key", + "code": 19, + "action": 1, + "accepted": true + }, + { + "kind": "injected-key", + "code": 123, + "action": 0, + "accepted": true + }, + { + "kind": "injected-key", + "code": 123, + "action": 1, + "accepted": true + }, + { + "kind": "injected-key", + "code": 122, + "action": 0, + "accepted": true + }, + { + "kind": "injected-key", + "code": 122, + "action": 1, + "accepted": true + }, + { + "kind": "window-key", + "code": 40, + "action": 0, + "flags": 0, + "source": 257, + "device": -1, + "repeat": 0, + "handled": true, + "uptime_ms": 18013766 + }, + { + "kind": "injected-key", + "code": 40, + "action": 0, + "accepted": true + }, + { + "kind": "window-key", + "code": 40, + "action": 1, + "flags": 0, + "source": 257, + "device": -1, + "repeat": 0, + "handled": false, + "uptime_ms": 18013770 + }, + { + "kind": "injected-key", + "code": 40, + "action": 1, + "accepted": true + }, + { + "kind": "window-key", + "code": 21, + "action": 0, + "flags": 0, + "source": 257, + "device": -1, + "repeat": 0, + "handled": true, + "uptime_ms": 18013831 + }, + { + "kind": "injected-key", + "code": 21, + "action": 0, + "accepted": true + }, + { + "kind": "window-key", + "code": 21, + "action": 1, + "flags": 0, + "source": 257, + "device": -1, + "repeat": 0, + "handled": false, + "uptime_ms": 18013834 + }, + { + "kind": "injected-key", + "code": 21, + "action": 1, + "accepted": true + }, + { + "kind": "observation", + "stage": "committed-query-selected-range", + "tag": "emoji-search", + "text_length": 4, + "text_sha256": "0282d9b79f42c74c1550b20ff2dd16aafc3fe5d8ae9a00b2f66996d0ae882775", + "text_prefix": "face", + "plain_annotated_equal": true, + "span_styles": [], + "paragraph_styles": "[]", + "string_annotations": "[]", + "selection_start": 0, + "selection_end": 2, + "focused": true, + "no_input_connection_created_for_this_observation": true, + "codepoints": [ + 102, + 97, + 99, + 101 + ], + "route": "emoji", + "window_focus": true, + "query": "", + "emoji_query": "face", + "emoji_selected": 0, + "ime_accepting_text": true, + "uptime_ms": 18013937 + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-input-phone100/outer.log b/docs/validation/keyboard-toggle/cohorts/final-input-phone100/outer.log new file mode 100644 index 00000000..bcb1de14 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-input-phone100/outer.log @@ -0,0 +1 @@ +{"completed": true, "passes": 2, "failures": 0, "expected_negative": false, "preserved_file_count": 573} diff --git a/docs/validation/keyboard-toggle/cohorts/final-input-phone100/record.json b/docs/validation/keyboard-toggle/cohorts/final-input-phone100/record.json new file mode 100644 index 00000000..fa3677d9 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-input-phone100/record.json @@ -0,0 +1,125 @@ +{ + "completed": true, + "expected_negative": false, + "suite": "native-input", + "input_mode": "owned", + "runner_sha256": "775233d14eb064bf6636071d89ade59f8a596c518beeb5f6844ea788c613cb7a", + "apk_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d", + "methods": [ + "committedEmojiNavigationAndCaretAreExact", + "activeMultilingualCompositionKeepsResultSelection" + ], + "api": 36, + "font_scale": 1.0, + "layout": "phone", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "restore-input-method-before-test-apk-stop": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-input-method-after-original-apks": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 2, + "failures": 0, + "native_expected_outcome": true, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "committedemojinavigationandcaretareexact-committed-four-way-navigation.xml": "5b7657ce96cd0cca156243b126ec2ae4a8ee62fc989a08bd25d0ee3c43cc3b66", + "committedemojinavigationandcaretareexact-committed-four-way-navigation.png": "5ca303a192be05b9cbda636a101bbfafbc6ec819fa72f07922889bdd9c0fb161", + "committedemojinavigationandcaretareexact-committed-four-way-navigation-frame.json": "c89fda5acb65f03ec6fae122d1ec0270fb5d70fca467d361bdcc039cdaebc11a", + "committedemojinavigationandcaretareexact-committed-query-selected-range.xml": "29c872b29b3690fbe701d7fab94c4a2d2f2b741110d184e10181305c43e39ea7", + "committedemojinavigationandcaretareexact-committed-query-selected-range.png": "ae9f9a2a20d92b168ee0abaee54033f70351985948015afb252964a06d150261", + "committedemojinavigationandcaretareexact-committed-query-selected-range-frame.json": "90fb582ae52bd82daa7dc747e0bd4cf17c64024807d8ef632f303464e1f2fade", + "case-committedemojinavigationandcaretareexact.json": "c3bb13bdacd7c620b036c512befafdd3bdf3e31d677a24aa9d6d3c90896694b4", + "activemultilingualcompositionkeepsresultselection-active-japanese-composition.xml": "a1373dbb4211f4bb28da2078b350b0e5c5d5621d3caf8f94ce351d1131b7a947", + "activemultilingualcompositionkeepsresultselection-active-japanese-composition.png": "36f10fc1c21f8b18045336a3c59e21643f2633fde10dfa4b955a2180398670f9", + "activemultilingualcompositionkeepsresultselection-active-japanese-composition-frame.json": "386677aeb164b77096876bdad86dffc22a44a3cc7fe72b674be113e87e5280b3", + "case-activemultilingualcompositionkeepsresultselection.json": "3ed1fb7f1d92527c4f40c666a1910dacaf2e6b299a6240d4fada6327b8d2640c" + }, + "preserved_file_count": 573, + "ime_restoration_scope": "Four raw secure settings: default, enabled methods, selected subtype and subtype history; verified before test-APK stop and after its removal/replacement", + "ime_restore_observations": [ + { + "query_ms": 121, + "all_raw_fields_equal": false + }, + { + "query_ms": 65, + "all_raw_fields_equal": true + }, + { + "query_ms": 66, + "all_raw_fields_equal": true + }, + { + "query_ms": 66, + "all_raw_fields_equal": true + }, + { + "query_ms": 72, + "all_raw_fields_equal": true + } + ] +} diff --git a/docs/validation/keyboard-toggle/cohorts/final-input-phone100/tests.log b/docs/validation/keyboard-toggle/cohorts/final-input-phone100/tests.log new file mode 100644 index 00000000..45ff49a5 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-input-phone100/tests.log @@ -0,0 +1,37 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.NativeInputCompatibilityDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.NativeInputCompatibilityDeviceTest: +INSTRUMENTATION_STATUS: test=committedEmojiNavigationAndCaretAreExact +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.NativeInputCompatibilityDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=committedEmojiNavigationAndCaretAreExact +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.NativeInputCompatibilityDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=activeMultilingualCompositionKeepsResultSelection +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.NativeInputCompatibilityDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=activeMultilingualCompositionKeepsResultSelection +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_RESULT: stream= + +Time: 7.711 + +OK (2 tests) + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..3982b3e5 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,329 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "emojiKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 1, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1856, + 106, + 1982, + 232 + ], + "visible": [ + 1856, + 106, + 1982, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1856, + 106, + 1982, + 232 + ], + "visible": [ + 1856, + 106, + 1982, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": false, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Selected Emoji result", + "full": [ + 218, + 345, + 399, + 492 + ], + "visible": [ + 218, + 345, + 399, + 492 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-result-viewport", + "query": "face", + "before": [ + 186, + 95, + 2155, + 313 + ], + "after": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1856, + 106, + 1982, + 232 + ], + "visible": [ + 1856, + 106, + 1982, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1856, + 106, + 1982, + 232 + ], + "visible": [ + 1856, + 106, + 1982, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1856, + 106, + 1982, + 232 + ], + "visible": [ + 1856, + 106, + 1982, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": false, + "route": "emoji" + }, + { + "kind": "keyboard-result-viewport", + "query": "", + "before": [ + 186, + 95, + 2155, + 313 + ], + "after": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1856, + 106, + 1982, + 232 + ], + "visible": [ + 1856, + 106, + 1982, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json new file mode 100644 index 00000000..1ccf88b5 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-after-hide", + "search": [ + 317, + 106, + 1730, + 232 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml b/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml new file mode 100644 index 00000000..3c95d98d --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml @@ -0,0 +1,250 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json b/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json new file mode 100644 index 00000000..daf36014 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-after-show", + "search": [ + 317, + 106, + 1730, + 232 + ], + "ime_visible": true, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml b/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml new file mode 100644 index 00000000..c87d2711 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml @@ -0,0 +1,356 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json new file mode 100644 index 00000000..8dfefd51 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-before-hide", + "search": [ + 317, + 106, + 1730, + 232 + ], + "ime_visible": true, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml b/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml new file mode 100644 index 00000000..d9883fef --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml @@ -0,0 +1,355 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..05cd5df0 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,354 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 1, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": false, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Selected launcher result", + "full": [ + 207, + 339, + 2134, + 465 + ], + "visible": [ + 207, + 339, + 2134, + 465 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-result-line", + "text": "Settings", + "line": 0, + "full": [ + 322, + 376, + 463, + 429 + ], + "visible": [ + 322, + 376, + 464, + 429 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ], + "complete": true, + "ellipsized": false + }, + { + "kind": "keyboard-result-viewport", + "query": "settings", + "before": [ + 186, + 95, + 2155, + 313 + ], + "after": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": false, + "route": "launcher" + }, + { + "kind": "keyboard-result-viewport", + "query": "", + "before": [ + 186, + 95, + 2155, + 313 + ], + "after": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json new file mode 100644 index 00000000..4736aed9 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-after-hide", + "search": [ + 318, + 106, + 1861, + 232 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml b/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml new file mode 100644 index 00000000..296a2326 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json b/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json new file mode 100644 index 00000000..aaafa467 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-after-show", + "search": [ + 318, + 106, + 1861, + 232 + ], + "ime_visible": true, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml b/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml new file mode 100644 index 00000000..03df5d00 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml @@ -0,0 +1,354 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json new file mode 100644 index 00000000..7d09e5bd --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-before-hide", + "search": [ + 318, + 106, + 1861, + 232 + ], + "ime_visible": true, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml b/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml new file mode 100644 index 00000000..1a6fbfa0 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml @@ -0,0 +1,337 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape100/outer.log b/docs/validation/keyboard-toggle/cohorts/final-landscape100/outer.log new file mode 100644 index 00000000..bcb1de14 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape100/outer.log @@ -0,0 +1 @@ +{"completed": true, "passes": 2, "failures": 0, "expected_negative": false, "preserved_file_count": 573} diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape100/record.json b/docs/validation/keyboard-toggle/cohorts/final-landscape100/record.json new file mode 100644 index 00000000..8047a7e0 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape100/record.json @@ -0,0 +1,135 @@ +{ + "completed": true, + "expected_negative": false, + "suite": "touch-search", + "input_mode": "system", + "runner_sha256": "775233d14eb064bf6636071d89ade59f8a596c518beeb5f6844ea788c613cb7a", + "apk_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d", + "methods": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "api": 36, + "font_scale": 1.0, + "layout": "landscape", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 2, + "failures": 0, + "native_expected_outcome": true, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml": "fece238c151cd43c8645dfda7be0f02c8b93cf9f4036f2ebbafae1a3aef465d6", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png": "932aa31b4e31605ccfc670ac41976d7a22c29b2f2ea029a28444482441221453", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json": "9a3eadc4b50cceb0886feb0af9d1758b3c613cfb8295bd969b9606c0178b9c55", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "fece238c151cd43c8645dfda7be0f02c8b93cf9f4036f2ebbafae1a3aef465d6", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "a09ba7924ecc2b2b3147f6489fb150d32f1c36b95c332f7597e7f180dd3573a8", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "5b9bafd96f811b0cb4b83df751ae0aed3a948cd5b453da1fef483c8610236b86", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "5a7783df7ed6df2c6962466fe977c374c8f8ec2131919a826e26fbc003f24412", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "a8e789a430914f01971d906502dbfccbeade26777f908d75b6dc17ae84a88ecf", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "a4c281c1d1b6e42acb760c721c016e47755a64ae2fd06315b24a8ddd207c0d8c", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml": "bdcbbd0816ad76e7f2b2e90e4d344b5277cd9456df5cb4cd076c0bf280cdff7a", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png": "bef2db9e10e4658458715a34299f61d4e9c6831e9ed0e1cb925484cf67f3cff0", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json": "31b05faebd8ab820a79e7bc65e5ca03c67c4dc5242a1691466449419cb4ad71f", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml": "d034e1ca2d493bd149284993d017b3c4a876d805251713aea0060fb80bd274ae", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png": "76add856f3cc169eb66721cb6c2053e55cfed384547c1ac0b5d66de1b28b40cd", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json": "d3e71c75168bc0998ee8c84980954ac4f0f345ec4d28baaf08c7a55e8994e844", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml": "d034e1ca2d493bd149284993d017b3c4a876d805251713aea0060fb80bd274ae", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png": "25f6ca31220dc05383bc96a24c4c3b184f4d898e48e706126fdb100b67144e39", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json": "4d07f8d03ab85f6dbc240979b55add5a09e8cb0560a582d7add2cf86cf209da2", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml": "bcb8a94c7df79c2c12fb0dc68a60e3b06cc7d6f57c9a665de12f00b6447b1c0a", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png": "a1bc0c4bf400f92fb1709745a78c5ada83a53fdb0dca265cd25e829c0b3084ac", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json": "102baa71e40b73d69523df885daf490c3461c683df3a3531341f6ce70e2b9a27", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml": "d034e1ca2d493bd149284993d017b3c4a876d805251713aea0060fb80bd274ae", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png": "977e4c36b80e695156bb73605ec39ea1ca075c798f37dc610c9e9991f4dd9399", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json": "d7d64a571026d1b201df281a3f96d49977fe9131f475a8b19cae1dcebda73c5d", + "emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "7987e463b650cd9a1e347151d003cce87251478cc2ca80b3b9c15ee2f6f1572d", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml": "a0cc8ca65f82d0275c2c5cc02c57c7f12d2613b29f99905410aa3531da8625ff", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png": "43a865b3a1311fc45acf38ae1a52ff4307450ded78124c480bd9d166ffbd0ad8", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json": "73a1acba609037c73ccf5bd54de8011f86a8861e3f0f4d08f2f45123768e53eb", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "6a7120005b53d59c1282241ce0fd511db43dc1bb91b1c8ad2a8ace78669345fa", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "55b397fdcc427555d594af27a1abcc0f1c751b8570704fecccd8a208e5faf3fb", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "30324492b9b32081f8dbe3393aa8580263fd77079f7fa28dfc5fbbf79271d478", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "d14fb962d969ad55a7b54433725b10affa6083a5b9a5a00671843137427056a0", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "6d164e8630b5ceb1d297e9903d1e1d445fbc8fac802cac8957dc3df6e878d3e4", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "07045a076a61eba2bd5d99b5cb324a6f4431595b5341edc1f0234dc8ae9b4bf7", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml": "5ed960b72ef109cdf2ed280bf51e76249d4785abf937b6f24645184aef3a75c7", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png": "0a96b8e66d91a551e7d9ba86ac4c92c4ba9d2bdea7573299482f910b6c173692", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json": "23c84d4b72caaba22166d5053bfba21da389f68cd0112a507176bbdf2eb17f25", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml": "f706adb846842c0848a4967a268d052fbfdd5c3732ede969977b8b4b4b01be44", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png": "52ea07f8cb7e131d31c43e7c3e4fcf57b2fc4afdcac45e2af9d932d5d1e620bd", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json": "b895f012479205b38e44bd84c15499c5ef76a6abec9869fb57feb6bbb09cd13b", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml": "f706adb846842c0848a4967a268d052fbfdd5c3732ede969977b8b4b4b01be44", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png": "52ea07f8cb7e131d31c43e7c3e4fcf57b2fc4afdcac45e2af9d932d5d1e620bd", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json": "d0fa36552dc1e30233998d8423fc62ba5447efdc7e0a1173799d5a3d860a9fea", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml": "dfec1c16642c141d33f5ec1f69f472eb6b1e4d7011c1f71524233b3e3e360258", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png": "b0b5f44d2819257272986a5c8cc62e915f32b26df7bdae7aa24b09f11ea36d7c", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json": "f76c84dbc50c0767ca3da2c4b0a4a6a6de2c918d8ee24882c3fcf511ce0b596b", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml": "f706adb846842c0848a4967a268d052fbfdd5c3732ede969977b8b4b4b01be44", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png": "d4ed1b2313272e9d7f47fe4e7473b671cbac1a4791ffa8dd63dd6dcc844369f4", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json": "76e3b9ced31235256e12ff1dfb600d8ffeb3054860671b775e32acd75efb1d90", + "launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "0117b62a630b1a45b51dcfa8ef15beccc9b429dc187c0beab943d781eff4fd40" + }, + "preserved_file_count": 573 +} diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape100/tests.log b/docs/validation/keyboard-toggle/cohorts/final-landscape100/tests.log new file mode 100644 index 00000000..96fcc569 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape100/tests.log @@ -0,0 +1,37 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.TouchSearchDeviceTest: +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_RESULT: stream= + +Time: 29.392 + +OK (2 tests) + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..143b0e58 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,329 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "emojiKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 2, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1824, + 107, + 1950, + 233 + ], + "visible": [ + 1824, + 107, + 1950, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1824, + 107, + 1950, + 233 + ], + "visible": [ + 1824, + 107, + 1950, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": false, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Selected Emoji result", + "full": [ + 218, + 409, + 399, + 556 + ], + "visible": [ + 218, + 409, + 399, + 556 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-result-viewport", + "query": "face", + "before": [ + 186, + 95, + 2155, + 313 + ], + "after": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1824, + 107, + 1950, + 233 + ], + "visible": [ + 1824, + 107, + 1950, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1824, + 107, + 1950, + 233 + ], + "visible": [ + 1824, + 107, + 1950, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1824, + 107, + 1950, + 233 + ], + "visible": [ + 1824, + 107, + 1950, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": false, + "route": "emoji" + }, + { + "kind": "keyboard-result-viewport", + "query": "", + "before": [ + 186, + 95, + 2155, + 313 + ], + "after": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1824, + 107, + 1950, + 233 + ], + "visible": [ + 1824, + 107, + 1950, + 233 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json new file mode 100644 index 00000000..4da383ff --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-after-hide", + "search": [ + 317, + 107, + 1698, + 233 + ], + "ime_visible": false, + "api": 36, + "font_scale": 2, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml new file mode 100644 index 00000000..1a017d62 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json new file mode 100644 index 00000000..ebffa3b6 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-after-show", + "search": [ + 317, + 107, + 1698, + 233 + ], + "ime_visible": true, + "api": 36, + "font_scale": 2, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml new file mode 100644 index 00000000..4bb9032e --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml @@ -0,0 +1,356 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json new file mode 100644 index 00000000..ebb8bf7d --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-before-hide", + "search": [ + 317, + 107, + 1698, + 233 + ], + "ime_visible": true, + "api": 36, + "font_scale": 2, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml new file mode 100644 index 00000000..e099e93c --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml @@ -0,0 +1,311 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json new file mode 100644 index 00000000..a9991e89 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-1-after-hide", + "search": [ + 317, + 107, + 1698, + 233 + ], + "ime_visible": false, + "api": 36, + "font_scale": 2, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml new file mode 100644 index 00000000..85afeb66 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json new file mode 100644 index 00000000..2a059c9d --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-1-after-show", + "search": [ + 317, + 107, + 1698, + 233 + ], + "ime_visible": true, + "api": 36, + "font_scale": 2, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml new file mode 100644 index 00000000..d5d653f9 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml @@ -0,0 +1,356 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..270bb78e --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,354 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 2, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": false, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Selected launcher result", + "full": [ + 207, + 402, + 2134, + 621 + ], + "visible": [ + 207, + 402, + 2134, + 621 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-result-line", + "text": "Settings", + "line": 0, + "full": [ + 322, + 418, + 588.30774, + 516 + ], + "visible": [ + 322, + 418, + 590, + 516 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ], + "complete": true, + "ellipsized": false + }, + { + "kind": "keyboard-result-viewport", + "query": "settings", + "before": [ + 186, + 95, + 2155, + 313 + ], + "after": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 313 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": false, + "route": "launcher" + }, + { + "kind": "keyboard-result-viewport", + "query": "", + "before": [ + 186, + 95, + 2155, + 313 + ], + "after": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1987, + 106, + 2113, + 232 + ], + "visible": [ + 1987, + 106, + 2113, + 232 + ], + "palette": [ + 186, + 95, + 2155, + 986 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json new file mode 100644 index 00000000..992a65e7 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-after-hide", + "search": [ + 318, + 106, + 1861, + 232 + ], + "ime_visible": false, + "api": 36, + "font_scale": 2, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml new file mode 100644 index 00000000..bc70c1c2 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json new file mode 100644 index 00000000..98750446 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-after-show", + "search": [ + 318, + 106, + 1861, + 232 + ], + "ime_visible": true, + "api": 36, + "font_scale": 2, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml new file mode 100644 index 00000000..ae42e41f --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml @@ -0,0 +1,353 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json new file mode 100644 index 00000000..b7dece91 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-before-hide", + "search": [ + 318, + 106, + 1861, + 232 + ], + "ime_visible": true, + "api": 36, + "font_scale": 2, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml new file mode 100644 index 00000000..59fd1b74 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml @@ -0,0 +1,326 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json new file mode 100644 index 00000000..4a65f6c2 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-1-after-hide", + "search": [ + 318, + 106, + 1861, + 232 + ], + "ime_visible": false, + "api": 36, + "font_scale": 2, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml new file mode 100644 index 00000000..595a51fb --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json new file mode 100644 index 00000000..6b946d03 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-1-after-show", + "search": [ + 318, + 106, + 1861, + 232 + ], + "ime_visible": true, + "api": 36, + "font_scale": 2, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml new file mode 100644 index 00000000..ba4d5222 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml @@ -0,0 +1,353 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape200/outer.log b/docs/validation/keyboard-toggle/cohorts/final-landscape200/outer.log new file mode 100644 index 00000000..bcb1de14 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape200/outer.log @@ -0,0 +1 @@ +{"completed": true, "passes": 2, "failures": 0, "expected_negative": false, "preserved_file_count": 573} diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape200/record.json b/docs/validation/keyboard-toggle/cohorts/final-landscape200/record.json new file mode 100644 index 00000000..888d3d63 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape200/record.json @@ -0,0 +1,135 @@ +{ + "completed": true, + "expected_negative": false, + "suite": "touch-search", + "input_mode": "system", + "runner_sha256": "775233d14eb064bf6636071d89ade59f8a596c518beeb5f6844ea788c613cb7a", + "apk_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d", + "methods": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "api": 36, + "font_scale": 2.0, + "layout": "landscape", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 2, + "failures": 0, + "native_expected_outcome": true, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml": "4104778e71f55f80c63dce3c6360b3c5c711e1324c28d0e5d29128f4804cc38b", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png": "bb8bf34de97ad228bdd70becf67f95144c1ad7b49b56bd614ea0a9410363cea8", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json": "fd010edfb5b7df9e4c92988af191a61b1e047821d894459fb6f1b4beaba0e03c", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "0e9c9377768ec2f3127e9ff3128f91c76ecb36ff66e6b1527ca52e4cbc29e3c1", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "35fa3bd3b6b17c98e44e11902d690162a309361247106611014812c268d87b4a", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "36af18583a084fae09c1c554508c3d1828aa761d6875890b05031c68d36eef28", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "c785c7cb5dc7489e517bfde3e9cca9031733044937ee9f760c37efe153ab1178", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "7b3f212babf9e4d0ddd81f56d5717b5253ed91de1ffab270c7b74347c742a594", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "25eaf8e602a6b519869334b56598c27ac9454f8ea7ab9a05233f41327bac9b2c", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml": "6bf9d05ca1734927247a34c2fbcc56ec49445d0f0cd46d498c82f1d5a9c035b1", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png": "58f0b5ad3cbc61925b47cd2c31cb49b84524037b146c79062cf2eb8e3895e3f9", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json": "93528d221bffdc7c90bb731b2d842ca5f230c9c19627308ed50a1e0f056f6809", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml": "9867a8963088c6abb8386880763d05e7796aef1fde9fa08284469e1790c60710", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png": "717ed0c1946b725b784990fa466b7176b1603b31fec28736fb6b4d52585a002a", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json": "b1acff232c2b7974a9c4ccad7fabc55581a164bce9016b2e28ec9d7910c3c2bc", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml": "9867a8963088c6abb8386880763d05e7796aef1fde9fa08284469e1790c60710", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png": "38d0fddb758dbf7f242cd7758baae28dd8ce0647c7ea11ffe0c350df040b3493", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json": "8c6c7303a2bf50c6c96136022b68305dd228931e97360868670ebc835f70a125", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml": "2ff0be54bc0d004a1404d29ba598c076bfa4781518cd7352ab2862082f4d1a00", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png": "61a5fff000c1e99fb787334007679fd6d934bd149f09435922591371d53f27ef", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json": "08f1fd054e1eedc9e86300146abc600a84e7e5ac53efaa5e87ecacdf9d4cc2ab", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml": "9867a8963088c6abb8386880763d05e7796aef1fde9fa08284469e1790c60710", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png": "2e3d8af2ecb8af876945ac2ae956c6d51c05e3baecf6d0b98e9a3265ff37841e", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json": "54ef6e140277418d4da4467ff7f0fc5004fa04532d5d212b55bca34f1c4d5941", + "emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "6df0e02b2b57bd06b965ccda10c44cdaff97c52d3ab361a74f83b3f0b02906b1", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml": "8ae2d5a2fafb207468a4a1af961c285cea15d221c228373e3c04ba6847c701b4", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png": "adab54de0014ebad923641d566c3d8ee4f22e5b6a7571d87c11b57b0128c5db9", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json": "e5b6554c76db6c95fff540693e774594a8179427e385d3d7a9a469044652a567", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "00663adf15ed40186fc5923398acc0bb6f50bd4927906482d05c9e990805003f", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "0c1da1044e3fb09db00a4b044aab283ef2b8f599febd76203fa0cdc6eb3fd3b0", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "3aee75b3c779520e9185f1b51a1c081d1d434e38c15856f3d87264cb2be4699e", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "a6194ba5c79eb443d5033a103e07966bd13326861c0472e8a2383d5ee2cfa8af", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "ef05dba85ff199584a25d6f40f5595f5731c9f0875811d60c3d57d0d57869b68", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "1181267a2aebbdf238b8d055342c6e277e328cb3c92b7b609a5f883d6abc1ceb", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml": "e499654611dff64f49da1f6c309c0b8b7ff7d7b37f93d8e8554145f95fb03fa9", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png": "9ec2e841267888bba9cf819e05b8021eb7984a19ede3e060068fad0e8a307fe0", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json": "cd7dc5f93bb3e63c72d8fea055df4a1013ba71817afaadf3daa7e3fdfd1c286b", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml": "a994836758a00455cc2e924c9374f29325bf649059308c04d9738e1c1c1766db", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png": "75f1da295bf1da10c29a9e4a888dce98f489a9e7deb8cb12946634b2200a0f7c", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json": "a7aa7882a7e06e559deb0f6b51f3ac38c0e42fabdcb1bf46d1684ac8f16a4987", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml": "a994836758a00455cc2e924c9374f29325bf649059308c04d9738e1c1c1766db", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png": "724d3dcb30bd14712392a220a7eb1e942fbabaf7b707880b505ab616274d7f72", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json": "417b704268cfa46cc1f5a2706903c8d73fef73984ee54cc57f6fca2dba2892f8", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml": "6d81dbe3e6d3af63469e7574be58983674adc62b0159df620c5d3e8f2cf42f8b", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png": "fffc26b4c6e47b78ef7dd152c6cb61a666bef61f0d882e9c92ec8eed0a059bd1", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json": "6161a81e2bbba64723875ed736d0a45c347898c9312d2ad1c08f6fca9fee928c", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml": "a994836758a00455cc2e924c9374f29325bf649059308c04d9738e1c1c1766db", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png": "eb4610cdf3429e3e803f0b58865c2ba990efb86e27be708dc94b9f26b80222fa", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json": "141de3e9f6d16c353a164a2aca3722efd3c340d7a05420eaef2d23d57b1f683b", + "launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "ecba92601af22a39d80eac49d76953e214ae8b6ed4936acc52913c8dbec2169c" + }, + "preserved_file_count": 573 +} diff --git a/docs/validation/keyboard-toggle/cohorts/final-landscape200/tests.log b/docs/validation/keyboard-toggle/cohorts/final-landscape200/tests.log new file mode 100644 index 00000000..2fd2e827 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-landscape200/tests.log @@ -0,0 +1,37 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.TouchSearchDeviceTest: +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_RESULT: stream= + +Time: 27.494 + +OK (2 tests) + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..bac21d9c --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,329 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "emojiKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 1, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": false, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Selected Emoji result", + "full": [ + 416, + 381, + 520, + 465 + ], + "visible": [ + 416, + 381, + 520, + 465 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-result-viewport", + "query": "face", + "before": [ + 398, + 237, + 1523, + 630 + ], + "after": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": false, + "route": "emoji" + }, + { + "kind": "keyboard-result-viewport", + "query": "", + "before": [ + 398, + 237, + 1523, + 630 + ], + "after": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1352, + 243, + 1424, + 315 + ], + "visible": [ + 1352, + 243, + 1424, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json new file mode 100644 index 00000000..f451c513 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-after-hide", + "search": [ + 473, + 243, + 1280, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml b/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml new file mode 100644 index 00000000..63533f22 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml @@ -0,0 +1,340 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json b/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json new file mode 100644 index 00000000..05b171dc --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-after-show", + "search": [ + 473, + 243, + 1280, + 315 + ], + "ime_visible": true, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml b/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml new file mode 100644 index 00000000..8d58cc9e --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml @@ -0,0 +1,457 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json new file mode 100644 index 00000000..a6b788f8 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-before-hide", + "search": [ + 473, + 243, + 1280, + 315 + ], + "ime_visible": true, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml b/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml new file mode 100644 index 00000000..03f064aa --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml @@ -0,0 +1,456 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..4e608ba1 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,354 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 1, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": false, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Selected launcher result", + "full": [ + 410, + 375, + 1511, + 447 + ], + "visible": [ + 410, + 375, + 1511, + 447 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-result-line", + "text": "Settings", + "line": 0, + "full": [ + 476, + 396, + 558.25, + 426 + ], + "visible": [ + 476, + 396, + 560, + 426 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ], + "complete": true, + "ellipsized": false + }, + { + "kind": "keyboard-result-viewport", + "query": "settings", + "before": [ + 398, + 237, + 1523, + 630 + ], + "after": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": false, + "route": "launcher" + }, + { + "kind": "keyboard-result-viewport", + "query": "", + "before": [ + 398, + 237, + 1523, + 630 + ], + "after": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 950 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json new file mode 100644 index 00000000..1896996b --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-after-hide", + "search": [ + 473, + 243, + 1355, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml b/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml new file mode 100644 index 00000000..277d5e9c --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json b/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json new file mode 100644 index 00000000..e975cb20 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-after-show", + "search": [ + 473, + 243, + 1355, + 315 + ], + "ime_visible": true, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml b/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml new file mode 100644 index 00000000..7743772c --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml @@ -0,0 +1,376 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json new file mode 100644 index 00000000..24691520 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-before-hide", + "search": [ + 473, + 243, + 1355, + 315 + ], + "ime_visible": true, + "api": 36, + "font_scale": 1, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml b/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml new file mode 100644 index 00000000..5a15d752 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml @@ -0,0 +1,367 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet100/outer.log b/docs/validation/keyboard-toggle/cohorts/final-tablet100/outer.log new file mode 100644 index 00000000..bcb1de14 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet100/outer.log @@ -0,0 +1 @@ +{"completed": true, "passes": 2, "failures": 0, "expected_negative": false, "preserved_file_count": 573} diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet100/record.json b/docs/validation/keyboard-toggle/cohorts/final-tablet100/record.json new file mode 100644 index 00000000..c3e056d8 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet100/record.json @@ -0,0 +1,129 @@ +{ + "completed": true, + "expected_negative": false, + "suite": "touch-search", + "input_mode": "system", + "runner_sha256": "775233d14eb064bf6636071d89ade59f8a596c518beeb5f6844ea788c613cb7a", + "apk_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d", + "methods": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "api": 36, + "font_scale": 1.0, + "layout": "tablet", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 2, + "failures": 0, + "native_expected_outcome": true, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml": "e7657fc4ac690a9bffa49b73d8a17f1a397f7ea94463e1999af072f91dc1af2e", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png": "ec11167a8e98fbd3e2eee167f259c75c337878fb61254bc567d282a7c527248b", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json": "47d3a38f3e735533d98a8b7527500306db58e20cf16afa0751ff2b24b3ac69ac", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "e7657fc4ac690a9bffa49b73d8a17f1a397f7ea94463e1999af072f91dc1af2e", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "9fbf0486ab6d9a973004254f8e5f0da0e985b3bb8988385f756a786a46cb15f5", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "2d9dfca03bd30c2836a510f55746a2dc53c3cc1b8cc9e009004e9137be05285e", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "53b439e101b402bac847e65d1c16eccd667185e49265dd023d8e269d86906b4b", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "485b5e60f831d327a99f3f29ecbf4c4ee1f44877041977784e7a048cb82e11a6", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "b0c20464841fe433312c342bfa43d8c4d7a9b8f6d2fef79d7d00cb591367ff4e", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml": "237583143c9ecdafb51d2d8438388dcb026c3bdebec7859793398bcaf64e490d", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png": "928862b702fc9ab23cac95d7040c80ac51ecf8aca0f4b91b935046c070a7cf50", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json": "eddf2999ad79fd92ed594516884c4a01ca0f309287a64013605d4b9275071679", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml": "7e433639952bc823c2d5574c7658b28fa3f0c4d987f740b3a7e865ade9d7cfdc", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png": "4c91f0995344810f893d498c33928a4c31a41bc08b9fdc20ec4f0d3e6d12584b", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json": "7bce0c05151c91e11207e6a5e23d44a965fbc6cdbf3ee5e8c34f02c72a663bc7", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml": "7e433639952bc823c2d5574c7658b28fa3f0c4d987f740b3a7e865ade9d7cfdc", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png": "cc4544e5e36b4a0235ae60be498d26f9ac04f5697536ae430cd051f0844368b3", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json": "5f7fc3dc27ceed2f38710a26a3fb20bf1365a7a746bb39a13ba6d5ade3e7b0b5", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml": "05887539e6cfdca5160ef2070ed6ab275055d1b9427eb0a046c848649c19281c", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png": "b7178765038007378a5aed31e72c324666b62d0fea0731418611db19f3dd0d91", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json": "8a1b8db55f2ccc1efd98413ac8d4b8d856d4cb87b548f91a34494aff3bcba867", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml": "7e433639952bc823c2d5574c7658b28fa3f0c4d987f740b3a7e865ade9d7cfdc", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png": "d960356c02cbc432bedc821ea969730187b87b035a70a1bc12f98b337baa571d", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json": "aef3fc0ec9b8e8541c55b8c4d7b4c97d276023599cd16826ca47ad828799f3a0", + "emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "e1d1ac0d924c19835708fcc59373fb821eeceb3b4b959c1209a8556f516da3cf", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml": "935b2303386f639162d466e6e833958b573ded6c9f0fd3d2dad05a3a0119d8a3", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png": "3ec2e041fcbcd7372825707189d12adc360f17366797482ece2ea3b1fbc7baad", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json": "b00d24a2e6c908048b295351eef8d92d168f839482de4293f222c6a188ccc930", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "935b2303386f639162d466e6e833958b573ded6c9f0fd3d2dad05a3a0119d8a3", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "7739e66d208be7babde43228e02e3d9240d52390b9cbdfee5435926a7b4df161", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "9e959fef3c96a526d457227890ba17d1d596b951179cee8644c24a25dd0f5334", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "13f727c63c112dc2cc07d07a6c1e21f8063fc1949f56337247d0772ffc5f4e35", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "0429abaa0538ab39340a0ce34fed0663348c8758418b133f637c94131e002d84", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "b7048eb8b8a384197c54c64a1742c6d142d29caf99b7e2a59951c658fdbca04f", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml": "5dc780798cce533a20300949bae1f8a4d72da2165f9456a4cf58cdd48f97a092", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png": "7bed18d81c0d8576ac0cfdf7c24c318ceb958c5f27f5a95abcf2a20ccce2a1da", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json": "6465b9de12b18008bed3d7bd65618f23794d0b7fd7989716d80f1cdc34cb00dd", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml": "a6f206fac9aa059a97ac255c38e20820f41cd665a9f2c66bf0858b08959f63b3", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png": "4d1605a43967cd240940c7b23983e8d9d23ab5fa62f6b59040a797be3f817cb8", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json": "750ec5e21a9dc305427797528c12608d4cd2338a6f351c586789dc5c7c1eb3e3", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml": "a6f206fac9aa059a97ac255c38e20820f41cd665a9f2c66bf0858b08959f63b3", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png": "259bbbab8188e8c619925ff6fa7494ff82ecf835bcaa63d0d6c4cd9c5a7d6e2c", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json": "6d219416045ce6a096ef7e2fc870c774c0ec3ba0f9a2cbf5b52f71847318158f", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml": "b44869e41f4d0eef0ccc66567bd7977d0593eabb5a66ab2462faf152dd56e609", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png": "0f60b7b242b4b29f5f032df133480d5903232d507caa931540d9041563aa8218", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json": "93ffc8d68c9990e5fc5fc18bc60c690186c93291fa1783c07d05a6f36b93013b", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml": "a6f206fac9aa059a97ac255c38e20820f41cd665a9f2c66bf0858b08959f63b3", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png": "b26f9dccc6611272918a0ee1a93630c54b78988a3b6723d3bcdd15fc52279dc2", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json": "56e48fc066a801d06df28370c95a89a3a726d73e91d92250d2d8554504740718", + "launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "fbe11d4898b097e66b35a5ed0d2cd27da2bf336695171f47ef3e2c90e3a28e7d" + }, + "preserved_file_count": 573 +} diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet100/tests.log b/docs/validation/keyboard-toggle/cohorts/final-tablet100/tests.log new file mode 100644 index 00000000..f6a4b496 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet100/tests.log @@ -0,0 +1,37 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.TouchSearchDeviceTest: +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_RESULT: stream= + +Time: 34.345 + +OK (2 tests) + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..a4ae6e9a --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,329 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "emojiKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 2, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1333, + 243, + 1405, + 315 + ], + "visible": [ + 1333, + 243, + 1405, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 1134 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1333, + 243, + 1405, + 315 + ], + "visible": [ + 1333, + 243, + 1405, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": false, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Selected Emoji result", + "full": [ + 416, + 417, + 520, + 501 + ], + "visible": [ + 416, + 417, + 520, + 501 + ], + "palette": [ + 398, + 237, + 1523, + 1134 + ] + }, + { + "kind": "keyboard-result-viewport", + "query": "face", + "before": [ + 398, + 237, + 1523, + 630 + ], + "after": [ + 398, + 237, + 1523, + 1134 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1333, + 243, + 1405, + 315 + ], + "visible": [ + 1333, + 243, + 1405, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 1134 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-0", + "query": "face", + "range": [ + 1, + 3 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1333, + 243, + 1405, + 315 + ], + "visible": [ + 1333, + 243, + 1405, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 1134 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1333, + 243, + 1405, + 315 + ], + "visible": [ + 1333, + 243, + 1405, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": false, + "route": "emoji" + }, + { + "kind": "keyboard-result-viewport", + "query": "", + "before": [ + 398, + 237, + 1523, + 630 + ], + "after": [ + 398, + 237, + 1523, + 1134 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1333, + 243, + 1405, + 315 + ], + "visible": [ + 1333, + 243, + 1405, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 1134 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "emoji" + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json new file mode 100644 index 00000000..46c992ee --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-after-hide", + "search": [ + 473, + 243, + 1261, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 2, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml b/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml new file mode 100644 index 00000000..e84afbcc --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml @@ -0,0 +1,337 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json b/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json new file mode 100644 index 00000000..7d465bc9 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-after-show", + "search": [ + 473, + 243, + 1261, + 315 + ], + "ime_visible": true, + "api": 36, + "font_scale": 2, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml b/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml new file mode 100644 index 00000000..35ee2a3b --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml @@ -0,0 +1,481 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json new file mode 100644 index 00000000..84afdad7 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-before-hide", + "search": [ + 473, + 243, + 1261, + 315 + ], + "ime_visible": true, + "api": 36, + "font_scale": 2, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml b/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml new file mode 100644 index 00000000..dcee8556 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml @@ -0,0 +1,468 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json b/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json new file mode 100644 index 00000000..4efd4e42 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json @@ -0,0 +1,354 @@ +{ + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing.", + "case": "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "api": 36, + "font_scale": 2, + "completed": true, + "events": [ + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 1134 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": false, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Selected launcher result", + "full": [ + 410, + 411, + 1511, + 536 + ], + "visible": [ + 410, + 411, + 1511, + 536 + ], + "palette": [ + 398, + 237, + 1523, + 1134 + ] + }, + { + "kind": "keyboard-result-line", + "text": "Settings", + "line": 0, + "full": [ + 476, + 420, + 629.5, + 476 + ], + "visible": [ + 476, + 420, + 631, + 476 + ], + "palette": [ + 398, + 237, + 1523, + 1134 + ], + "complete": true, + "ellipsized": false + }, + { + "kind": "keyboard-result-viewport", + "query": "settings", + "before": [ + 398, + 237, + 1523, + 630 + ], + "after": [ + 398, + 237, + 1523, + 1134 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 1134 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-0", + "query": "settings", + "range": [ + 1, + 5 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "explicit-ime-visibility-setup", + "visible": false + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 1134 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "before-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 630 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "hidden-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": false, + "route": "launcher" + }, + { + "kind": "keyboard-result-viewport", + "query": "", + "before": [ + 398, + 237, + 1523, + 630 + ], + "after": [ + 398, + 237, + 1523, + 1134 + ] + }, + { + "kind": "feedback-control", + "label": "Keyboard", + "full": [ + 1427, + 243, + 1499, + 315 + ], + "visible": [ + 1427, + 243, + 1499, + 315 + ], + "palette": [ + 398, + 237, + 1523, + 1134 + ] + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-1-after-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-search-state", + "phase": "shown-1", + "query": "", + "range": [ + 0, + 0 + ], + "focused": true, + "ime_visible": true, + "route": "launcher" + } + ] +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json new file mode 100644 index 00000000..07d40dda --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-after-hide", + "search": [ + 473, + 243, + 1355, + 315 + ], + "ime_visible": false, + "api": 36, + "font_scale": 2, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml b/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml new file mode 100644 index 00000000..7169048b --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json b/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json new file mode 100644 index 00000000..0eebd31d --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-after-show", + "search": [ + 473, + 243, + 1355, + 315 + ], + "ime_visible": true, + "api": 36, + "font_scale": 2, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml b/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml new file mode 100644 index 00000000..afc21809 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml @@ -0,0 +1,371 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json b/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json new file mode 100644 index 00000000..bb2abb71 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json @@ -0,0 +1,14 @@ +{ + "phase": "keyboard-0-before-hide", + "search": [ + 473, + 243, + 1355, + 315 + ], + "ime_visible": true, + "api": 36, + "font_scale": 2, + "synchronization": "Compose and UiAutomator idle; hierarchy before PNG; XML geometry is not independent visibility proof", + "scope": "Owned header pointer Hide\/Show; editor\/range and initial IME setup are controlled. Selected result target, not full list\/grid typography or physical typing." +} \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml b/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml new file mode 100644 index 00000000..4c0f7f3d --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml @@ -0,0 +1,362 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet200/outer.log b/docs/validation/keyboard-toggle/cohorts/final-tablet200/outer.log new file mode 100644 index 00000000..bcb1de14 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet200/outer.log @@ -0,0 +1 @@ +{"completed": true, "passes": 2, "failures": 0, "expected_negative": false, "preserved_file_count": 573} diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet200/record.json b/docs/validation/keyboard-toggle/cohorts/final-tablet200/record.json new file mode 100644 index 00000000..423ed83e --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet200/record.json @@ -0,0 +1,129 @@ +{ + "completed": true, + "expected_negative": false, + "suite": "touch-search", + "input_mode": "system", + "runner_sha256": "775233d14eb064bf6636071d89ade59f8a596c518beeb5f6844ea788c613cb7a", + "apk_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d", + "methods": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "api": 36, + "font_scale": 2.0, + "layout": "tablet", + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "passes": 2, + "failures": 0, + "native_expected_outcome": true, + "instrumentation_exit_code": 0, + "initialization_error": false, + "provider_before": [ + "Current WebView package (name, version): (com.google.android.webview, 133.0.6943.137)" + ], + "original_geometry": { + "size": "Physical size: 1920x1200", + "density": "Physical density: 240" + }, + "original_font_scale": "1.0", + "captures": { + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml": "016561acc46dc396e6f7ae060f5073c7973918b32f081891fdb83757088f60e4", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png": "c58dfd7a437a661445e2b5a3f50be5720d4de1e70153fe1b09599815f95ad070", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json": "bbbd6e95ba6bd26afd08fc4ced1e0b08802aa586de92d4d54388a0e825e01f51", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "840853200809e044dc2850846972d35ad68ebc45b5a6a4dc845fb0977b188d4d", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "d93facf3a0e8c45c4e33d332ce780af1bda0a846d6eda6e12ba9302589b7f2b8", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "8ca421bdc53974151d4dda86d9cdfafaef2563b0d92b8b75411feae0fd25c187", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "f67362d1f1deb9e1993f66bd68e95204daf915aa9ee9464bcddcd03f7777d700", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "f037d7bc46c526b660a2f27acfe6c34d4bd8b2ea22346928f8c577dc40124c83", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "f6b2ce66aef5075c7618d533cfb854c022c0c45a558efd6d22b94f2770c3fd4e", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml": "63e4443501fdac760acbd4261b700dcc403fb90ac84d287b8e70e84062f9e368", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png": "aa054af8f153cc41b228093259455514363a7a642d5207a4e4d472e4036ee42d", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json": "035e9cb9cfc5c057a012271e1ce3ea74b1a716311282d4d0e0896e7ea17d4eba", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml": "94d6316236f42c03289b013f5d5627db0cdd40baebe1fc143de837e53087a35b", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png": "cb0a219c2e72dcf3b446d62d9b2df7b3ed48c9b8b46e12d6fa7d3ad58792a7f8", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json": "8ebbb018e4c28fd4856d5d2c88a039aeab837f4df9bbbc3362d6476ec954a0ab", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml": "94d6316236f42c03289b013f5d5627db0cdd40baebe1fc143de837e53087a35b", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png": "ee8f8362609a57d7d0424b7c4743c812b95779cd3355c5c5034af275bb6d52cb", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json": "747dc834d6524ad4f96b648033bc79e813265c83c36a1d74e3d8578d5087f321", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml": "cca52d167c9b0c7b2f30bdb6ec3b5e4d55f8dd5dd23a11b6a543d1f2cd071653", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png": "c37297cb4275d94a921ab748c84fd0d829f6193f5cd688e8cd6e2cf232761783", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json": "c5a0c83b1dcc2112c2233589226211a1371b449eda6817549c5ed515c1986ddf", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml": "94d6316236f42c03289b013f5d5627db0cdd40baebe1fc143de837e53087a35b", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png": "fbbe3ecd4a5bd6229295939f92aadb99ba156ac827a903b83624e3e9310ba148", + "emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json": "2226004210f207bda126c76ec168dcfaeaeb84635a14cb36cf43ce0f104a4b88", + "emojikeyboardtogglerevealsresultsandpreservessearch-case.json": "bb6e17fc39462fdf7b037825d3a32967fa59f7388c434aa56c79b06a6c84697e", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml": "807b98abf28adcb640e3951800daa2e695729d7d7574c9b8e8e876821e3bf82f", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png": "49fc928cc3187329b1957b001157742e8dc69bf0abccc529fbf557319c62b11f", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json": "1e511620bdf44f45fc6c5a1a0afb2b45edcf426133a37ee50c139e7191e1313f", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml": "807b98abf28adcb640e3951800daa2e695729d7d7574c9b8e8e876821e3bf82f", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png": "b44bd7a61203585155bd9d8734781d5d37d66abbb9399755b63e769639cf8096", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json": "b57d14345a5f9e17bbeda8209298c79a1fb4217568efe130fe86a60a6f3c4c4c", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml": "fae4f7040529663186ee231891c2951574b9d50f898d9655b2897fc5856e4996", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png": "29a9f25602e62042c318a3c95a56995ae947250646abb0885691316affc1475f", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json": "47945103e56b434cc58564bdc42902531a0fd72b56ab1318382e9b4e9e700894", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml": "aab09add3ef3745dd7e07044f27b347fd0644a227af0fc2fd07d74a1bb3dacf5", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png": "1e8b6ba729c8f8546991176ebcc8df11af51d9f8cee8544391f15e9d9f37a676", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json": "935e6f3e8488c05f00bba7c473c97655bad1107a89213f6ec104cc6ab04f4d35", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml": "d17f52ab96c3ab32a0965fd0bdeeaea4ac0d767ff5bae448f7eb9584b8ac1710", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png": "069b092395a3b6aa19666b088181443431cbf5b802034363bec50030eb2ead77", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json": "d779f0b1803a029a01c7fbd3c086d69e3759f970747cb49b2cb4fe7ec74ba752", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml": "d17f52ab96c3ab32a0965fd0bdeeaea4ac0d767ff5bae448f7eb9584b8ac1710", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png": "746c0ee0f2c277ce30d6830d102e0bf9453a34e32a541d7ca99df32a08230c19", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json": "1c26bbeb748b3b5b5844da1dc20d8359cb479cbfc2ad3f92e49f9dc2cef861fe", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml": "d750364830da46fd4a0dc3614adda5ced44ee20cd6f8bdbee1a5754c189a6b34", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png": "4c70aca93738d60fa612b99f1443d3f01a984f4968a220db5f634fdd95907ab8", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json": "c15136d23a4b158700f121d1a2a0633cfaf1008ec2d4cbb4e5fad191c89517e3", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml": "d17f52ab96c3ab32a0965fd0bdeeaea4ac0d767ff5bae448f7eb9584b8ac1710", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png": "3b20b430f66f7cac7752057d778e32cf5f7ab3dd2ba3c22623224ef110727ea7", + "launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json": "26c83629b6e207deecb1484b993d30c0373eb96810d3b857eca9de4bdd0a0975", + "launcherkeyboardtogglerevealsresultsandpreservessearch-case.json": "ddfa8cc95708e7886fd94d3cc6840342ddbe827a73af14aa7010ae76fba382de" + }, + "preserved_file_count": 573 +} diff --git a/docs/validation/keyboard-toggle/cohorts/final-tablet200/tests.log b/docs/validation/keyboard-toggle/cohorts/final-tablet200/tests.log new file mode 100644 index 00000000..395ecf24 --- /dev/null +++ b/docs/validation/keyboard-toggle/cohorts/final-tablet200/tests.log @@ -0,0 +1,37 @@ +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +dev.tinycast.android.TouchSearchDeviceTest: +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=emojiKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream= +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 1 +INSTRUMENTATION_STATUS: class=dev.tinycast.android.TouchSearchDeviceTest +INSTRUMENTATION_STATUS: current=2 +INSTRUMENTATION_STATUS: id=AndroidJUnitRunner +INSTRUMENTATION_STATUS: numtests=2 +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: test=launcherKeyboardToggleRevealsResultsAndPreservesSearch +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_RESULT: stream= + +Time: 33.479 + +OK (2 tests) + + +INSTRUMENTATION_CODE: -1 diff --git a/docs/validation/keyboard-toggle/collection-source/build-baseline-v2.py b/docs/validation/keyboard-toggle/collection-source/build-baseline-v2.py new file mode 100644 index 00000000..848e8d72 --- /dev/null +++ b/docs/validation/keyboard-toggle/collection-source/build-baseline-v2.py @@ -0,0 +1,9 @@ +from pathlib import Path +import hashlib,json,os,shutil,subprocess,zipfile +b=Path('artifacts/keyboard-toggle');source=(b/'baseline-source-v2.txt').read_text().strip();assert subprocess.check_output(['git','rev-parse','HEAD'],text=True).strip()==source;assert not subprocess.check_output(['git','status','--porcelain']);sha=lambda x:hashlib.sha256(x).hexdigest() +env=dict(os.environ,JAVA_HOME='',ANDROID_HOME='') +with (b/'build-baseline-v2.log').open('xb') as log:subprocess.run(['./gradlew','--no-daemon','--max-workers=1','-Pkotlin.compiler.execution.strategy=in-process','-Dorg.gradle.jvmargs=-Xmx1536m','-PdroidcastBuildCommit='+source,':app:assembleDebug',':app:assembleDebugAndroidTest'],env=env,stdout=log,stderr=subprocess.STDOUT,check=True) +root=b/'baseline-harness';root.mkdir(exist_ok=False);target=root/'app-debug-androidTest.apk';shutil.copy2('app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk',target) +paths=subprocess.check_output(['git','ls-files'],text=True).splitlines();inputs=[p for p in paths if p.startswith(('app/src/','gradle/')) or p in ('app/build.gradle.kts','build.gradle.kts','settings.gradle.kts','gradle.properties','gradlew') or p.startswith('scripts/') and p.endswith('.py')] +with zipfile.ZipFile(target) as z:payload={n:sha(z.read(n)) for n in z.namelist() if not n.endswith('/')} +j={'test_source':source,'source_sha256':{p:sha(Path(p).read_bytes()) for p in inputs},'test_apk_sha256':sha(target.read_bytes()),'test_zip_payload_sha256':payload,'old_app_source':'6c5825bf0da60ad9b452ec4550aa49d60704e677','old_app_sha256':'66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c','scope':'Compile the new pointer contracts against unchanged production sources; baseline controls execute the retained reviewed old APK, not this compilation app.'};(root/'identity.json').write_text(json.dumps(j,indent=2)+'\n');print(json.dumps({'test_source':source,'test_apk_sha256':j['test_apk_sha256'],'inputs':len(inputs)}),flush=True) diff --git a/docs/validation/keyboard-toggle/collection-source/build-baseline-v3.py b/docs/validation/keyboard-toggle/collection-source/build-baseline-v3.py new file mode 100644 index 00000000..580f76fa --- /dev/null +++ b/docs/validation/keyboard-toggle/collection-source/build-baseline-v3.py @@ -0,0 +1,9 @@ +from pathlib import Path +import hashlib,json,os,shutil,subprocess,zipfile +b=Path('artifacts/keyboard-toggle');source=(b/'baseline-source-v3.txt').read_text().strip();assert subprocess.check_output(['git','rev-parse','HEAD'],text=True).strip()==source;assert not subprocess.check_output(['git','status','--porcelain']);sha=lambda x:hashlib.sha256(x).hexdigest() +env=dict(os.environ,JAVA_HOME='',ANDROID_HOME='') +with (b/'build-baseline-v3.log').open('xb') as log:subprocess.run(['./gradlew','--no-daemon','--max-workers=1','-Pkotlin.compiler.execution.strategy=in-process','-Dorg.gradle.jvmargs=-Xmx1536m','-PdroidcastBuildCommit='+source,':app:assembleDebug',':app:assembleDebugAndroidTest'],env=env,stdout=log,stderr=subprocess.STDOUT,check=True) +root=b/'baseline-harness-v3';root.mkdir(exist_ok=False);target=root/'app-debug-androidTest.apk';shutil.copy2('app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk',target) +paths=subprocess.check_output(['git','ls-files'],text=True).splitlines();inputs=[p for p in paths if p.startswith(('app/src/','gradle/')) or p in ('app/build.gradle.kts','build.gradle.kts','settings.gradle.kts','gradle.properties','gradlew') or p.startswith('scripts/') and p.endswith('.py')] +with zipfile.ZipFile(target) as z:payload={n:sha(z.read(n)) for n in z.namelist() if not n.endswith('/')} +j={'test_source':source,'source_sha256':{p:sha(Path(p).read_bytes()) for p in inputs},'test_apk_sha256':sha(target.read_bytes()),'test_zip_payload_sha256':payload,'old_app_source':'6c5825bf0da60ad9b452ec4550aa49d60704e677','old_app_sha256':'66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c','scope':'Compile the new pointer contracts against unchanged production sources; baseline controls execute the retained reviewed old APK, not this compilation app.'};(root/'identity.json').write_text(json.dumps(j,indent=2)+'\n');print(json.dumps({'test_source':source,'test_apk_sha256':j['test_apk_sha256'],'inputs':len(inputs)}),flush=True) diff --git a/docs/validation/keyboard-toggle/collection-source/build-baseline.py b/docs/validation/keyboard-toggle/collection-source/build-baseline.py new file mode 100644 index 00000000..07eb6360 --- /dev/null +++ b/docs/validation/keyboard-toggle/collection-source/build-baseline.py @@ -0,0 +1,9 @@ +from pathlib import Path +import hashlib,json,os,shutil,subprocess,zipfile +b=Path('artifacts/keyboard-toggle');source=(b/'baseline-source.txt').read_text().strip();assert subprocess.check_output(['git','rev-parse','HEAD'],text=True).strip()==source;assert not subprocess.check_output(['git','status','--porcelain']);sha=lambda x:hashlib.sha256(x).hexdigest() +env=dict(os.environ,JAVA_HOME='',ANDROID_HOME='') +with (b/'build-baseline.log').open('xb') as log:subprocess.run(['./gradlew','--no-daemon','--max-workers=1','-Pkotlin.compiler.execution.strategy=in-process','-Dorg.gradle.jvmargs=-Xmx1536m','-PdroidcastBuildCommit='+source,':app:assembleDebug',':app:assembleDebugAndroidTest'],env=env,stdout=log,stderr=subprocess.STDOUT,check=True) +root=b/'baseline-harness';root.mkdir(exist_ok=False);target=root/'app-debug-androidTest.apk';shutil.copy2('app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk',target) +paths=subprocess.check_output(['git','ls-files'],text=True).splitlines();inputs=[p for p in paths if p.startswith(('app/src/','gradle/')) or p in ('app/build.gradle.kts','build.gradle.kts','settings.gradle.kts','gradle.properties','gradlew') or p.startswith('scripts/') and p.endswith('.py')] +with zipfile.ZipFile(target) as z:payload={n:sha(z.read(n)) for n in z.namelist() if not n.endswith('/')} +j={'test_source':source,'source_sha256':{p:sha(Path(p).read_bytes()) for p in inputs},'test_apk_sha256':sha(target.read_bytes()),'test_zip_payload_sha256':payload,'old_app_source':'6c5825bf0da60ad9b452ec4550aa49d60704e677','old_app_sha256':'66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c','scope':'Compile the new pointer contracts against unchanged production sources; baseline controls execute the retained reviewed old APK, not this compilation app.'};(root/'identity.json').write_text(json.dumps(j,indent=2)+'\n');print(json.dumps({'test_source':source,'test_apk_sha256':j['test_apk_sha256'],'inputs':len(inputs)}),flush=True) diff --git a/docs/validation/keyboard-toggle/collection-source/build-final-harness.py b/docs/validation/keyboard-toggle/collection-source/build-final-harness.py new file mode 100644 index 00000000..16434f30 --- /dev/null +++ b/docs/validation/keyboard-toggle/collection-source/build-final-harness.py @@ -0,0 +1,14 @@ +from pathlib import Path +import hashlib,json,os,shutil,subprocess,zipfile +b=Path('artifacts/keyboard-toggle');source='69bd578d528c42296ef4a10fa24d675a8f635408';app_source='f30bebd6c414307a5b5fe690d80dfffe5fc58ccc';assert subprocess.check_output(['git','rev-parse','HEAD'],text=True).strip()==source;assert not subprocess.check_output(['git','status','--porcelain']);sha=lambda x:hashlib.sha256(x).hexdigest();old=json.loads((b/'candidate-v3/identity.json').read_text()) +paths=subprocess.check_output(['git','ls-files'],text=True).splitlines();inputs=[p for p in paths if p.startswith(('app/src/','gradle/')) or p in ('app/build.gradle.kts','build.gradle.kts','settings.gradle.kts','gradle.properties','gradlew') or p.startswith('scripts/') and p.endswith('.py')];vector={p:sha(Path(p).read_bytes()) for p in inputs} +changed={p for p,h in vector.items() if old['source_sha256'].get(p)!=h};assert changed=={'app/src/androidTest/java/dev/tinycast/android/TouchSearchDeviceTest.kt','scripts/test-webview-engine.py'},changed +env=dict(os.environ,JAVA_HOME='',ANDROID_HOME='');common=['./gradlew','--no-daemon','--max-workers=1','-Pkotlin.compiler.execution.strategy=in-process','-Dorg.gradle.jvmargs=-Xmx1536m','-PdroidcastBuildCommit='+app_source] +with (b/'host-final-harness.log').open('xb') as log: + subprocess.run(common+[':app:assembleDebug',':app:assembleDebugAndroidTest',':app:lintDebug'],env=env,stdout=log,stderr=subprocess.STDOUT,check=True);log.flush();root=b/'final-harness';root.mkdir(exist_ok=False);test=root/'app-debug-androidTest.apk';shutil.copy2('app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk',test);app=root/'app-debug.apk';shutil.copy2(b/'candidate-v3/app-debug.apk',app);unused=root/'unused-compiled-app-debug.apk';shutil.copy2('app/build/outputs/apk/debug/app-debug.apk',unused) + payload={} + for label,p in [('app-debug.apk',app),('app-debug-androidTest.apk',test)]: + with zipfile.ZipFile(p) as z:payload[label]={n:sha(z.read(n)) for n in z.namelist() if not n.endswith('/')} + j={'source_commit':source,'app_source':app_source,'test_source':source,'controller_source':source,'build_commit_property':app_source,'source_sha256':vector,'executed_app_source_sha256':old['source_sha256'],'apk_sha256':{'app-debug.apk':sha(app.read_bytes()),'app-debug-androidTest.apk':sha(test.read_bytes())},'zip_payload_sha256':payload,'unchanged_original_assets':old['unchanged_original_assets'],'old_app':old['old_app'],'changed_inputs_since_app_source':sorted(changed),'unused_compiled_app_sha256':sha(unused.read_bytes()),'compiled_app_equals_executed_app':unused.read_bytes()==app.read_bytes(),'jvm_reuse':'343 passed at f30 with all production/build/JVM inputs unchanged; this test-only build does not rerun JVM cases.','scope':'Execute the exact frozen f30 app with this final separately compiled test/controller revision. Only the AndroidTest fixture and its CLI allowlist differ; no stamp-only equivalence is inferred.'};assert j['apk_sha256']['app-debug.apk']==old['apk_sha256']['app-debug.apk'];(root/'identity.json').write_text(json.dumps(j,indent=2)+'\n');(root/'debug-build.log').write_bytes((b/'host-final-harness.log').read_bytes());print(json.dumps({'source_commit':source,'apk_sha256':j['apk_sha256'],'compiled_app_equals_executed_app':j['compiled_app_equals_executed_app']}),flush=True) + subprocess.run(common+['-PdroidcastTestBuildType=benchmark',':app:assembleBenchmark',':app:assembleBenchmarkAndroidTest',':app:lintBenchmark'],env=env,stdout=log,stderr=subprocess.STDOUT,check=True) +print('Final debug/benchmark fixture builds and lint completed',flush=True) diff --git a/docs/validation/keyboard-toggle/collection-source/build-freeze-v1.py b/docs/validation/keyboard-toggle/collection-source/build-freeze-v1.py new file mode 100644 index 00000000..86bb8bb6 --- /dev/null +++ b/docs/validation/keyboard-toggle/collection-source/build-freeze-v1.py @@ -0,0 +1,24 @@ +from pathlib import Path +import hashlib,json,os,shutil,subprocess,zipfile +b=Path('artifacts/keyboard-toggle');source='1355f84cb4f3cc93ae732a5ae9028c42747f0f8e';sha=lambda x:hashlib.sha256(x).hexdigest() +assert subprocess.check_output(['git','rev-parse','HEAD'],text=True).strip()==source +assert not subprocess.check_output(['git','status','--porcelain']) +env=dict(os.environ,JAVA_HOME='',ANDROID_HOME='') +common=['./gradlew','--no-daemon','--max-workers=1','-Pkotlin.compiler.execution.strategy=in-process','-Dorg.gradle.jvmargs=-Xmx1536m','-PdroidcastBuildCommit='+source] +with (b/'host-v1.log').open('xb') as log: + subprocess.run(common+[':app:assembleDebug',':app:assembleDebugAndroidTest',':app:testDebugUnitTest',':app:lintDebug'],env=env,stdout=log,stderr=subprocess.STDOUT,check=True) + log.flush();root=b/'candidate-v1';root.mkdir(exist_ok=False) + paths=subprocess.check_output(['git','ls-files'],text=True).splitlines() + inputs=[p for p in paths if p.startswith(('app/src/','gradle/')) or p in ('app/build.gradle.kts','build.gradle.kts','settings.gradle.kts','gradle.properties','gradlew') or p.startswith('scripts/') and p.endswith('.py')] + j={'source_commit':source,'app_source':source,'test_source':source,'controller_source':source,'build_commit_property':source,'source_sha256':{p:sha(Path(p).read_bytes()) for p in inputs},'apk_sha256':{},'zip_payload_sha256':{}} + for filename,p in [('app-debug.apk',Path('app/build/outputs/apk/debug/app-debug.apk')),('app-debug-androidTest.apk',Path('app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk'))]: + target=root/filename;shutil.copy2(p,target);j['apk_sha256'][filename]=sha(target.read_bytes()) + with zipfile.ZipFile(target) as z:j['zip_payload_sha256'][filename]={n:sha(z.read(n)) for n in z.namelist() if not n.endswith('/')} + old=Path('/artifacts/empty-feedback/candidate-v3/app-debug.apk');assert sha(old.read_bytes())=='66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c' + with zipfile.ZipFile(old) as a,zipfile.ZipFile(root/'app-debug.apk') as c: + assets={n:sha(a.read(n)) for n in a.namelist() if n.startswith('assets/') and not n.endswith('/')};assert assets=={n:sha(c.read(n)) for n in c.namelist() if n.startswith('assets/') and not n.endswith('/')} + j['unchanged_original_assets']=assets;j['old_app']={'source':'6c5825bf0da60ad9b452ec4550aa49d60704e677','sha256':sha(old.read_bytes()),'scope':'Reviewed PR113 app; common instrumentation exercises actual keyboard Show/Hide'} + (root/'debug-build.log').write_bytes((b/'host-v1.log').read_bytes()) + (root/'identity.json').write_text(json.dumps(j,indent=2)+'\n');print('Frozen debug candidate',json.dumps(j['apk_sha256']),flush=True) + subprocess.run(common+['-PdroidcastTestBuildType=benchmark',':app:assembleBenchmark',':app:assembleBenchmarkAndroidTest',':app:lintBenchmark'],env=env,stdout=log,stderr=subprocess.STDOUT,check=True) +print('Debug/JVM/lint and benchmark checks completed',flush=True) diff --git a/docs/validation/keyboard-toggle/collection-source/build-freeze-v2.py b/docs/validation/keyboard-toggle/collection-source/build-freeze-v2.py new file mode 100644 index 00000000..dd143d59 --- /dev/null +++ b/docs/validation/keyboard-toggle/collection-source/build-freeze-v2.py @@ -0,0 +1,24 @@ +from pathlib import Path +import hashlib,json,os,shutil,subprocess,zipfile +b=Path('artifacts/keyboard-toggle');source='411b7f73ffea57b15ffa1c5ff01a468506495467';sha=lambda x:hashlib.sha256(x).hexdigest() +assert subprocess.check_output(['git','rev-parse','HEAD'],text=True).strip()==source +assert not subprocess.check_output(['git','status','--porcelain']) +env=dict(os.environ,JAVA_HOME='',ANDROID_HOME='') +common=['./gradlew','--no-daemon','--max-workers=1','-Pkotlin.compiler.execution.strategy=in-process','-Dorg.gradle.jvmargs=-Xmx1536m','-PdroidcastBuildCommit='+source] +with (b/'host-v2.log').open('xb') as log: + subprocess.run(common+[':app:assembleDebug',':app:assembleDebugAndroidTest',':app:testDebugUnitTest',':app:lintDebug'],env=env,stdout=log,stderr=subprocess.STDOUT,check=True) + log.flush();root=b/'candidate-v2';root.mkdir(exist_ok=False) + paths=subprocess.check_output(['git','ls-files'],text=True).splitlines() + inputs=[p for p in paths if p.startswith(('app/src/','gradle/')) or p in ('app/build.gradle.kts','build.gradle.kts','settings.gradle.kts','gradle.properties','gradlew') or p.startswith('scripts/') and p.endswith('.py')] + j={'source_commit':source,'app_source':source,'test_source':source,'controller_source':source,'build_commit_property':source,'source_sha256':{p:sha(Path(p).read_bytes()) for p in inputs},'apk_sha256':{},'zip_payload_sha256':{}} + for filename,p in [('app-debug.apk',Path('app/build/outputs/apk/debug/app-debug.apk')),('app-debug-androidTest.apk',Path('app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk'))]: + target=root/filename;shutil.copy2(p,target);j['apk_sha256'][filename]=sha(target.read_bytes()) + with zipfile.ZipFile(target) as z:j['zip_payload_sha256'][filename]={n:sha(z.read(n)) for n in z.namelist() if not n.endswith('/')} + old=Path('/artifacts/empty-feedback/candidate-v3/app-debug.apk');assert sha(old.read_bytes())=='66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c' + with zipfile.ZipFile(old) as a,zipfile.ZipFile(root/'app-debug.apk') as c: + assets={n:sha(a.read(n)) for n in a.namelist() if n.startswith('assets/') and not n.endswith('/')};assert assets=={n:sha(c.read(n)) for n in c.namelist() if n.startswith('assets/') and not n.endswith('/')} + j['unchanged_original_assets']=assets;j['old_app']={'source':'6c5825bf0da60ad9b452ec4550aa49d60704e677','sha256':sha(old.read_bytes()),'scope':'Reviewed PR113 app; common instrumentation exercises actual keyboard Show/Hide'} + (root/'debug-build.log').write_bytes((b/'host-v2.log').read_bytes()) + (root/'identity.json').write_text(json.dumps(j,indent=2)+'\n');print('Frozen debug candidate',json.dumps(j['apk_sha256']),flush=True) + subprocess.run(common+['-PdroidcastTestBuildType=benchmark',':app:assembleBenchmark',':app:assembleBenchmarkAndroidTest',':app:lintBenchmark'],env=env,stdout=log,stderr=subprocess.STDOUT,check=True) +print('Debug/JVM/lint and benchmark checks completed',flush=True) diff --git a/docs/validation/keyboard-toggle/collection-source/build-freeze-v3.py b/docs/validation/keyboard-toggle/collection-source/build-freeze-v3.py new file mode 100644 index 00000000..59d02f98 --- /dev/null +++ b/docs/validation/keyboard-toggle/collection-source/build-freeze-v3.py @@ -0,0 +1,24 @@ +from pathlib import Path +import hashlib,json,os,shutil,subprocess,zipfile +b=Path('artifacts/keyboard-toggle');source='f30bebd6c414307a5b5fe690d80dfffe5fc58ccc';sha=lambda x:hashlib.sha256(x).hexdigest() +assert subprocess.check_output(['git','rev-parse','HEAD'],text=True).strip()==source +assert not subprocess.check_output(['git','status','--porcelain']) +env=dict(os.environ,JAVA_HOME='',ANDROID_HOME='') +common=['./gradlew','--no-daemon','--max-workers=1','-Pkotlin.compiler.execution.strategy=in-process','-Dorg.gradle.jvmargs=-Xmx1536m','-PdroidcastBuildCommit='+source] +with (b/'host-v3.log').open('xb') as log: + subprocess.run(common+[':app:assembleDebug',':app:assembleDebugAndroidTest',':app:testDebugUnitTest',':app:lintDebug'],env=env,stdout=log,stderr=subprocess.STDOUT,check=True) + log.flush();root=b/'candidate-v3';root.mkdir(exist_ok=False) + paths=subprocess.check_output(['git','ls-files'],text=True).splitlines() + inputs=[p for p in paths if p.startswith(('app/src/','gradle/')) or p in ('app/build.gradle.kts','build.gradle.kts','settings.gradle.kts','gradle.properties','gradlew') or p.startswith('scripts/') and p.endswith('.py')] + j={'source_commit':source,'app_source':source,'test_source':source,'controller_source':source,'build_commit_property':source,'source_sha256':{p:sha(Path(p).read_bytes()) for p in inputs},'apk_sha256':{},'zip_payload_sha256':{}} + for filename,p in [('app-debug.apk',Path('app/build/outputs/apk/debug/app-debug.apk')),('app-debug-androidTest.apk',Path('app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk'))]: + target=root/filename;shutil.copy2(p,target);j['apk_sha256'][filename]=sha(target.read_bytes()) + with zipfile.ZipFile(target) as z:j['zip_payload_sha256'][filename]={n:sha(z.read(n)) for n in z.namelist() if not n.endswith('/')} + old=Path('/artifacts/empty-feedback/candidate-v3/app-debug.apk');assert sha(old.read_bytes())=='66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c' + with zipfile.ZipFile(old) as a,zipfile.ZipFile(root/'app-debug.apk') as c: + assets={n:sha(a.read(n)) for n in a.namelist() if n.startswith('assets/') and not n.endswith('/')};assert assets=={n:sha(c.read(n)) for n in c.namelist() if n.startswith('assets/') and not n.endswith('/')} + j['unchanged_original_assets']=assets;j['old_app']={'source':'6c5825bf0da60ad9b452ec4550aa49d60704e677','sha256':sha(old.read_bytes()),'scope':'Reviewed PR113 app; common instrumentation exercises actual keyboard Show/Hide'} + (root/'debug-build.log').write_bytes((b/'host-v3.log').read_bytes()) + (root/'identity.json').write_text(json.dumps(j,indent=2)+'\n');print('Frozen debug candidate',json.dumps(j['apk_sha256']),flush=True) + subprocess.run(common+['-PdroidcastTestBuildType=benchmark',':app:assembleBenchmark',':app:assembleBenchmarkAndroidTest',':app:lintBenchmark'],env=env,stdout=log,stderr=subprocess.STDOUT,check=True) +print('Debug/JVM/lint and benchmark checks completed',flush=True) diff --git a/docs/validation/keyboard-toggle/collection-source/calibrate-final-controls.py b/docs/validation/keyboard-toggle/collection-source/calibrate-final-controls.py new file mode 100644 index 00000000..af4f85e7 --- /dev/null +++ b/docs/validation/keyboard-toggle/collection-source/calibrate-final-controls.py @@ -0,0 +1,24 @@ +from pathlib import Path +import hashlib,json +b=Path('artifacts/keyboard-toggle');load=lambda p:json.loads(p.read_text());state=load(b/'native-v4.json');assert state['completed'];out=b/'final-controls-calibration.json';assert not out.exists();controls=[] +for row in state['cohorts']: + if not row['expected_control']:continue + name=row['name'];folder=b/name;r=load(folder/'record.json');log=(folder/'tests.log').read_text();assert r['passes']==0 and r['failures']==2 and not r['completed'] and all(v['passed'] for v in r['cleanup'].values());assert r['test_apk_sha256']==state['apk_sha256']['app-debug-androidTest.apk'];proxy='proxy' in name;w=[] + for method in r['methods']: + p=folder/'captures'/(method.lower()+'-case.json');case=load(p);actions=[e for e in case['events'] if e['kind']=='keyboard-pointer-action'] + if proxy: + frame=load(folder/'captures'/(method.lower()+'-keyboard-guard-obsolete-mode-frame.json'));assert len(actions)==3 and all(e['reached_expected_state'] for e in actions) and not frame['ime_visible'];assert not any(e['kind']=='keyboard-callback-rejected' for e in case['events']) + else:assert len(actions)==2 and actions[0]['expected_visible'] and actions[0]['reached_expected_state'] and actions[1]['label_before']=='Show on-screen keyboard' and actions[1]['ime_before'] and actions[1]['ime_after'] and not actions[1]['expected_visible'] and not actions[1]['reached_expected_state'] + w.append({'method':method,'observed_pointer_actions':actions,'case_sha256':hashlib.sha256(p.read_bytes()).hexdigest()}) + phrase='Obsolete or obstructed keyboard callback must not change visibility: keyboard-guard-obsolete-mode' if proxy else 'Header keyboard action must hide the visible IME';assert log.count(phrase)>=2;controls.append({'cohort':name,'kind':'published-action-proxy' if proxy else 'show-only-button','passes':0,'intended_failures':2,'expected_assertion':phrase,'test_apk_sha256':r['test_apk_sha256'],'app_sha256':r['apk_sha256'],'restoration_checks':len(r['cleanup']),'witnesses':w}) +assert len(controls)==3 +current=[] +for name in ['final-guards-tablet100','final-landscape100','final-landscape200','final-tablet100','final-tablet200']: + folder=b/name;r=load(folder/'record.json');assert r['completed'] + for method in r['methods']: + case=load(folder/'captures'/(method.lower()+'-case.json'));events=case['events'];denials=[e for e in events if e['kind']=='keyboard-callback-rejected'];accepted=[e for e in events if e['kind']=='current-keyboard-accessibility-action'];pointers=[e for e in events if e['kind']=='keyboard-pointer-action'] + if 'CallbacksReject' in method:assert len(denials)==5 and all(e['accepted'] is False for e in denials) + if method.startswith('currentKeyboardAccessibility'):assert len(accepted)==6 and all(e['accepted'] and e['expected_visible']==e['actual_visible'] for e in accepted) + assert all(e['reached_expected_state'] and e['expected_visible']==e['ime_after'] for e in pointers) + current.append({'cohort':name,'method':method,'pointer_transitions':len(pointers),'rejected_owned_actions':len(denials),'accepted_current_accessibility_actions':len(accepted)}) +out.write_text(json.dumps({'all_completed':True,'controls':controls,'current_protocol_counts':current,'scope':'Matched final instrumentation, exact functional assertions and actual IME states. Failed positive-only runner receipts remain failed. Accepted current semantics actions separately establish support; no app error banner, TalkBack gesture or physical queued-input claim.'},indent=2)+'\n');print('Calibrated six intended failures and current accepted/rejected action contracts') diff --git a/docs/validation/keyboard-toggle/collection-source/capture-initial-settings.py b/docs/validation/keyboard-toggle/collection-source/capture-initial-settings.py new file mode 100644 index 00000000..06ffc1c1 --- /dev/null +++ b/docs/validation/keyboard-toggle/collection-source/capture-initial-settings.py @@ -0,0 +1,14 @@ +from pathlib import Path +import json,os,subprocess +b=Path('artifacts/keyboard-toggle');out=b/'private-initial-settings.json';assert not out.exists() +adb='/platform-tools/adb';keys=('default_input_method','enabled_input_methods','selected_input_method_subtype','input_methods_subtype_history');values={};checks={} +for serial,avd,api in [('emulator-5580','Tinycast_Tablet_API_36','36'),('emulator-5598','Droidcast_WebView_API26_27caf3','26')]: + def get(*args):return subprocess.check_output([adb,'-s',serial,*args],text=True,timeout=30).strip() + checks[serial+'-owned-avd']=get('emu','avd','name').splitlines()[0]==avd + checks[serial+'-api']=get('shell','getprop','ro.build.version.sdk')==api + checks[serial+'-unprivileged']=get('shell','id').startswith('uid=2000(') + checks[serial+'-idle']='ActiveInstrumentation{' not in get('shell','dumpsys','activity','processes') + rows=get('shell','for key in '+' '.join(keys)+'; do settings get secure "$key"; done').splitlines();assert len(rows)==4;values[serial]=dict(zip(keys,rows)) +assert all(checks.values()),checks +with os.fdopen(os.open(out,os.O_WRONLY|os.O_CREAT|os.O_EXCL,0o600),'w') as f:json.dump(values,f) +(b/'initial-settings-receipt.json').write_text(json.dumps({'checks':checks,'current_four_field_baseline_saved_privately':True,'scope':'Read-only current baseline after PR113; older original pre-probe IME-history identity remains uncertified. No device mutation.'},indent=2)+'\n');print(json.dumps(checks)) diff --git a/docs/validation/keyboard-toggle/collection-source/final-preservation.py b/docs/validation/keyboard-toggle/collection-source/final-preservation.py new file mode 100644 index 00000000..fe9dcd40 --- /dev/null +++ b/docs/validation/keyboard-toggle/collection-source/final-preservation.py @@ -0,0 +1,18 @@ +from pathlib import Path +import hashlib,importlib.util,json,subprocess,sys +b=Path('artifacts/keyboard-toggle');assert json.loads((b/'native-v4.json').read_text())['completed'];assert json.loads((b/'back-diagnostics.json').read_text())['completed'];out=b/'final-preservation.json';assert not out.exists() +adb='/platform-tools/adb';keys=('default_input_method','enabled_input_methods','selected_input_method_subtype','input_methods_subtype_history');original=json.loads((b/'private-initial-settings.json').read_text());checks={} +for serial in original: + def get(*a):return subprocess.check_output([adb,'-s',serial,*a],text=True,timeout=60).strip() + rows=get('shell','for key in '+' '.join(keys)+'; do settings get secure "$key"; done').splitlines();checks[serial+'-four-ime-fields']=len(rows)==4 and dict(zip(keys,rows))==original[serial] + checks[serial+'-unprivileged']=get('shell','id').startswith('uid=2000(') + checks[serial+'-idle']='ActiveInstrumentation{' not in get('shell','dumpsys','activity','processes') + checks[serial+'-geometry-not-overridden']='Override' not in get('shell','wm','size')+get('shell','wm','density') + cohort='baseline-old-landscape100' if serial=='emulator-5580' else 'final-input-api26100' + checks[serial+'-original-font']=get('shell','settings','get','system','font_scale')==json.loads((b/cohort/'record.json').read_text())['original_font_scale'] +sys.path.insert(0,'scripts');spec=importlib.util.spec_from_file_location('runner','scripts/test-webview-engine.py');runner=importlib.util.module_from_spec(spec);spec.loader.exec_module(runner) +first=b/'baseline-old-landscape100';before=runner.archive_files((first/'private-data-before.tar').read_bytes());before={p:hashlib.sha256(v).hexdigest() for p,v in before.items() if not p.startswith('files/touch-search-lease/')};after=runner.private_app_archive([adb,'-s','emulator-5580'],b/'private-global-after.tar');checks['all-original-modern-app-evidence-files']=before=={p:hashlib.sha256(v).hexdigest() for p,v in after.items()} +for pkg in ('dev.tinycast.android','dev.tinycast.android.test'): + old=(first/('private-original-'+pkg+'.apk')).read_bytes();location=subprocess.check_output([adb,'-s','emulator-5580','shell','pm','path',pkg],text=True,timeout=30).strip().removeprefix('package:');now=subprocess.check_output([adb,'-s','emulator-5580','exec-out','cat',location],timeout=60);checks['original-apk-'+pkg]=hashlib.sha256(old).digest()==hashlib.sha256(now).digest() +checks['legacy-original-package-absence']=not any(subprocess.check_output([adb,'-s','emulator-5598','shell','pm','list','packages',pkg],text=True,timeout=30).strip() for pkg in ('dev.tinycast.android','dev.tinycast.android.test')) +r={'all_passed':all(checks.values()),'checks':checks,'original_modern_file_count':len(before),'scope':'Read-only final equality to this slice current baseline after PR113; private originals/settings and fingerprints excluded. No whole-system/cross-boot identity certification; older pre-probe IME history remains uncertified.'};out.write_text(json.dumps(r,indent=2)+'\n');print(json.dumps({'all_passed':r['all_passed'],'checks':len(checks),'files':len(before)}));assert r['all_passed'] diff --git a/docs/validation/keyboard-toggle/collection-source/publish.py b/docs/validation/keyboard-toggle/collection-source/publish.py new file mode 100644 index 00000000..2611036b --- /dev/null +++ b/docs/validation/keyboard-toggle/collection-source/publish.py @@ -0,0 +1,65 @@ +from pathlib import Path +import hashlib,json,re,xml.etree.ElementTree as ET +b=Path('artifacts/keyboard-toggle');d=Path('docs/validation/keyboard-toggle');images=Path('docs/screenshots/keyboard-toggle');load=lambda p:json.loads(p.read_text());sha=lambda x:hashlib.sha256(x).hexdigest() +def require(v,msg): + if not v:raise ValueError(msg) +final=load(b/'native-v4.json');require(final['completed'],'Final native matrix incomplete');require(load(b/'back-diagnostics.json')['completed'],'Back observations incomplete');require(load(b/'final-preservation.json')['all_passed'],'Final preservation incomplete');require((b/'host-final-harness.log').read_text().count('BUILD SUCCESSFUL')==2,'Final fixture builds incomplete');require(not d.exists() and not images.exists(),'Publication exists; inspect rather than overwrite');d.mkdir(parents=True);images.mkdir(parents=True) +bindings=[];projections=[];retained=[];selected=[] +prefixes=[(str(Path.cwd()),'checkout'),('','supplement-checkout'),('','previous-checkout'),('','java-home'),('','android-sdk'),(str(Path.home()/'.gradle'),'gradle-cache'),(str(Path.home()),'user-home')] +def put(source,target,mode='identity'): + raw=source.read_bytes();data=raw + if mode!='identity': + s=raw.decode();token=lambda label:'<'+label+'>' if mode=='redact-xml' else '<'+label+'>' + for p,label in prefixes:s=s.replace(p,token(label)) + s=re.sub(r'/(?:private/)?var/folders/[^\s\"\x27<>&]+',lambda _:token('temporary-dir'),s);s=re.sub(r'(?/artifacts/empty-feedback/candidate-v3/app-debug.apk');current=b/'final-harness/app-debug.apk';out=b/'back-diagnostics.json';assert not out.exists();method='emojiMenuBackPreservesCallerQueryWithoutKeyboardToggle';r={'completed':False,'test_source':j['test_source'],'test_apk_sha256':j['apk_sha256']['app-debug-androidTest.apk'],'cohorts':[]} +def save():out.write_text(json.dumps(r,indent=2)+'\n') +save() +for label,app in [('old',old),('current',current)]: + name='back-diagnostic-'+label;folder=b/name;assert not folder.exists();row={'name':name,'state':'running','app_sha256':hashlib.sha256(app.read_bytes()).hexdigest()};r['cohorts'].append(row);save() + args=[sys.executable,'scripts/test-webview-engine.py','--serial','emulator-5580','--avd','Tinycast_Tablet_API_36','--apk',str(app),'--test-apk',str(test),'--output',str(folder),'--suite','touch-search','--cases',method,'--layout','tablet','--font-scale','1'] + with (b/(name+'-outer.log')).open('xb') as log:result=subprocess.run(args,stdout=log,stderr=subprocess.STDOUT,env=dict(os.environ,ANDROID_HOME='')) + receipt=json.loads((folder/'record.json').read_text()) if (folder/'record.json').exists() else {};row.update(state='finished',exit_code=result.returncode);row.update({k:receipt.get(k) for k in ('passes','failures','completed','cleanup')});case=folder/'captures'/(method.lower()+'-case.json');events=json.loads(case.read_text())['events'] if case.exists() else [];row['after_injection']=[e for e in events if e['kind']=='back-probe-after-injection'];save();print(json.dumps({'name':name,'passes':row['passes'],'failures':row['failures'],'after_injection':row['after_injection'],'cleanup':len(receipt.get('cleanup',{}))}),flush=True) + if not receipt.get('cleanup') or not all(v['passed'] for v in receipt['cleanup'].values()) or receipt.get('passes',0)+receipt.get('failures',0)!=1:raise SystemExit('Back diagnostic did not complete one restored observation; inspect') +a,c=r['cohorts'];r['matching_query_loss_reproduced']=all(x['failures']==1 and len(x['after_injection'])==1 and x['after_injection'][0]['query']=='' for x in (a,c));r['regression_candidate']=a['passes']==1 and c['failures']==1;r['scope']='Diagnostic observations remain separate from keyboard-toggle credit. Matching loss reproduces only this captured sequence on old/current apps; no root cause, Back repair, or wider platform certification is inferred.';r['completed']=True;save() +if r['regression_candidate']:raise SystemExit('Current-only Back failure requires investigation before merge') diff --git a/docs/validation/keyboard-toggle/collection-source/run-baseline-v3.py b/docs/validation/keyboard-toggle/collection-source/run-baseline-v3.py new file mode 100644 index 00000000..cb00caa2 --- /dev/null +++ b/docs/validation/keyboard-toggle/collection-source/run-baseline-v3.py @@ -0,0 +1,19 @@ +from pathlib import Path +import hashlib,json,os,subprocess,sys,time +b=Path('artifacts/keyboard-toggle');identity=json.loads((b/'baseline-harness-v3/identity.json').read_text());source=identity['test_source'];assert subprocess.check_output(['git','rev-parse','HEAD'],text=True).strip()==source;assert not subprocess.check_output(['git','status','--porcelain']) +app=Path('/artifacts/empty-feedback/candidate-v3/app-debug.apk');test=b/'baseline-harness-v3/app-debug-androidTest.apk';sha=lambda p:hashlib.sha256(p.read_bytes()).hexdigest();assert sha(app)==identity['old_app_sha256'] and sha(test)==identity['test_apk_sha256'] +methods=['launcherKeyboardToggleRevealsResultsAndPreservesSearch','emojiKeyboardToggleRevealsResultsAndPreservesSearch'];out=b/'baseline-controls-v3.json';assert not out.exists();state={'completed':False,'test_source':source,'app_sha256':sha(app),'test_apk_sha256':sha(test),'cohorts':[]} +def save():out.write_text(json.dumps(state,indent=2)+'\n') +save() +for font in (2,1): + name=f'baseline-v3-old-landscape{font}00';folder=b/name;assert not folder.exists();row={'name':name,'state':'running','started':time.time()};state['cohorts'].append(row);save() + command=[sys.executable,'scripts/test-webview-engine.py','--serial','emulator-5580','--avd','Tinycast_Tablet_API_36','--apk',str(app),'--test-apk',str(test),'--output',str(folder),'--suite','touch-search','--cases',','.join(methods),'--layout','landscape','--font-scale',str(font)] + with (b/(name+'-outer.log')).open('xb') as log:r=subprocess.run(command,stdout=log,stderr=subprocess.STDOUT,env=dict(os.environ,ANDROID_HOME='')) + record=json.loads((folder/'record.json').read_text()) if (folder/'record.json').exists() else {};row.update(state='finished',exit_code=r.returncode,finished=time.time());row.update({k:record.get(k) for k in ('passes','failures','completed','cleanup')});save() + log=(folder/'tests.log').read_text() if (folder/'tests.log').exists() else '';valid=r.returncode!=0 and record.get('passes')==0 and record.get('failures')==2 and log.count('Header keyboard action must hide the visible IME')>=2 and record.get('cleanup') and all(v['passed'] for v in record['cleanup'].values()) + if valid: + for method in methods: + case=json.loads((folder/'captures'/(method.lower()+'-case.json')).read_text());actions=[e for e in case['events'] if e['kind']=='keyboard-pointer-action'];valid=valid and len(actions)==2 and actions[0]['expected_visible'] and actions[0]['reached_expected_state'] and actions[1]['label_before']=='Show on-screen keyboard' and actions[1]['ime_before'] and actions[1]['ime_after'] and not actions[1]['expected_visible'] and not actions[1]['reached_expected_state'] + print(json.dumps({'name':name,'passes':record.get('passes'),'failures':record.get('failures'),'intended_functional_failure':bool(valid),'cleanup_checks':len(record.get('cleanup',{}))}),flush=True) + if not valid:raise SystemExit('Baseline did not establish the intended functional failure; retain and inspect') +state['completed']=True;save() diff --git a/docs/validation/keyboard-toggle/collection-source/run-baseline.py b/docs/validation/keyboard-toggle/collection-source/run-baseline.py new file mode 100644 index 00000000..278bf48f --- /dev/null +++ b/docs/validation/keyboard-toggle/collection-source/run-baseline.py @@ -0,0 +1,19 @@ +from pathlib import Path +import hashlib,json,os,subprocess,sys,time +b=Path('artifacts/keyboard-toggle');identity=json.loads((b/'baseline-harness/identity.json').read_text());source=identity['test_source'];assert subprocess.check_output(['git','rev-parse','HEAD'],text=True).strip()==source;assert not subprocess.check_output(['git','status','--porcelain']) +app=Path('/artifacts/empty-feedback/candidate-v3/app-debug.apk');test=b/'baseline-harness/app-debug-androidTest.apk';sha=lambda p:hashlib.sha256(p.read_bytes()).hexdigest();assert sha(app)==identity['old_app_sha256'] and sha(test)==identity['test_apk_sha256'] +methods=['launcherKeyboardToggleRevealsResultsAndPreservesSearch','emojiKeyboardToggleRevealsResultsAndPreservesSearch'];out=b/'baseline-controls.json';assert not out.exists();state={'completed':False,'test_source':source,'app_sha256':sha(app),'test_apk_sha256':sha(test),'cohorts':[]} +def save():out.write_text(json.dumps(state,indent=2)+'\n') +save() +for font in (1,2): + name=f'baseline-old-landscape{font}00';folder=b/name;assert not folder.exists();row={'name':name,'state':'running','started':time.time()};state['cohorts'].append(row);save() + command=[sys.executable,'scripts/test-webview-engine.py','--serial','emulator-5580','--avd','Tinycast_Tablet_API_36','--apk',str(app),'--test-apk',str(test),'--output',str(folder),'--suite','touch-search','--cases',','.join(methods),'--layout','landscape','--font-scale',str(font)] + with (b/(name+'-outer.log')).open('xb') as log:r=subprocess.run(command,stdout=log,stderr=subprocess.STDOUT,env=dict(os.environ,ANDROID_HOME='')) + record=json.loads((folder/'record.json').read_text()) if (folder/'record.json').exists() else {};row.update(state='finished',exit_code=r.returncode,finished=time.time());row.update({k:record.get(k) for k in ('passes','failures','completed','cleanup')});save() + log=(folder/'tests.log').read_text() if (folder/'tests.log').exists() else '';valid=r.returncode!=0 and record.get('passes')==0 and record.get('failures')==2 and log.count('Header keyboard action must hide the visible IME')>=2 and record.get('cleanup') and all(v['passed'] for v in record['cleanup'].values()) + if valid: + for method in methods: + case=json.loads((folder/'captures'/(method.lower()+'-case.json')).read_text());actions=[e for e in case['events'] if e['kind']=='keyboard-pointer-action'];valid=valid and len(actions)==1 and actions[0]['label_before']=='Show on-screen keyboard' and actions[0]['ime_before'] and actions[0]['ime_after'] and not actions[0]['expected_visible'] and not actions[0]['reached_expected_state'] + print(json.dumps({'name':name,'passes':record.get('passes'),'failures':record.get('failures'),'intended_functional_failure':bool(valid),'cleanup_checks':len(record.get('cleanup',{}))}),flush=True) + if not valid:raise SystemExit('Baseline did not establish the intended functional failure; retain and inspect') +state['completed']=True;save() diff --git a/docs/validation/keyboard-toggle/collection-source/run-final.py b/docs/validation/keyboard-toggle/collection-source/run-final.py new file mode 100644 index 00000000..a64b6e47 --- /dev/null +++ b/docs/validation/keyboard-toggle/collection-source/run-final.py @@ -0,0 +1,12 @@ +from pathlib import Path +import json,os,subprocess,sys,time +b=Path('artifacts/keyboard-toggle');out=b/'final-orchestration.json';assert not out.exists();state={'completed':False,'parent_pid':os.getpid(),'phases':[]} +def save():out.write_text(json.dumps(state,indent=2)+'\n') +save() +for name,script,logname in [('back-diagnostics','run-back-diagnostics.py','back-diagnostics.log'),('native-matrix','run-native-v4.py','native-v4.log')]: + row={'name':name,'state':'running','started':time.time()};state['phases'].append(row);save() + with (b/logname).open('xb') as log: + p=subprocess.Popen([sys.executable,str(b/script)],stdout=log,stderr=subprocess.STDOUT);row['child_pid']=p.pid;save();code=p.wait() + row.update(state='finished',finished=time.time(),exit_code=code);save();print(name,code,flush=True) + if code:raise SystemExit(code) +state['completed']=True;save() diff --git a/docs/validation/keyboard-toggle/collection-source/run-native-v1.py b/docs/validation/keyboard-toggle/collection-source/run-native-v1.py new file mode 100644 index 00000000..29d4a7da --- /dev/null +++ b/docs/validation/keyboard-toggle/collection-source/run-native-v1.py @@ -0,0 +1,30 @@ +from pathlib import Path +import hashlib,json,os,subprocess,sys,time +b=Path('artifacts/keyboard-toggle');candidate=b/'candidate-v1';identity=json.loads((candidate/'identity.json').read_text());app=candidate/'app-debug.apk';test=candidate/'app-debug-androidTest.apk';old=Path('/artifacts/empty-feedback/candidate-v3/app-debug.apk');sha=lambda p:hashlib.sha256(p.read_bytes()).hexdigest() +assert sha(app)==identity['apk_sha256']['app-debug.apk'] and sha(test)==identity['apk_sha256']['app-debug-androidTest.apk'] and sha(old)==identity['old_app']['sha256'];assert hashlib.sha256(Path('scripts/test-webview-engine.py').read_bytes()).hexdigest()==identity['source_sha256']['scripts/test-webview-engine.py'] +toggle=['launcherKeyboardToggleRevealsResultsAndPreservesSearch','emojiKeyboardToggleRevealsResultsAndPreservesSearch'];guards=['launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus','emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus'];feedback=['launcherEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable','emojiEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable'];clear=['launcherTouchClearPreservesFocusCategoryAndKeyboard','emojiTouchClearPreservesCategoryGeometryAndKeyboard'];core=['pointerClearRemovesControlledCompositionAndWhitespace','retainedClearCallbacksRejectReplacedSurfacesAndMenus','currentClearUsesLiveQueryAndRecreationRejectsOldCallback'];inputs=['committedEmojiNavigationAndCaretAreExact','activeMultilingualCompositionKeepsResultSelection'] +plan=[('candidate-landscape200',app,'landscape',2,toggle,'touch-search',False,False),('candidate-guards-tablet100',app,'tablet',1,guards,'touch-search',False,False)] +for font in (2,1):plan.append((f'control-old-landscape{font}00',old,'landscape',font,toggle,'touch-search',False,True)) +for layout,font in [('landscape',1),('tablet',1),('tablet',2)]:plan.append((f'candidate-{layout}{font}00',app,layout,font,toggle,'touch-search',False,False)) +for font in (1,2):plan.append((f'candidate-feedback-landscape{font}00',app,'landscape',font,feedback,'touch-search',False,False)) +plan += [('candidate-clear-phone200',app,'phone',2,clear,'touch-search',False,False),('candidate-core-guards-tablet100',app,'tablet',1,core,'touch-search',False,False),('candidate-input-phone100',app,'phone',1,inputs,'native-input',False,False),('candidate-input-api26100',app,'phone',1,inputs,'native-input',True,False)] +state=b/'native-v1.json';assert not state.exists();r={'completed':False,'source':identity['source_commit'],'apk_sha256':identity['apk_sha256'],'cohorts':[]} +def save():state.write_text(json.dumps(r,indent=2)+'\n') +save() +for name,binary,layout,font,methods,suite,legacy,negative in plan: + folder=b/name;assert not folder.exists(),name + command=[sys.executable,'scripts/test-webview-engine.py','--serial','emulator-5598' if legacy else 'emulator-5580','--avd','Droidcast_WebView_API26_27caf3' if legacy else 'Tinycast_Tablet_API_36','--apk',str(binary),'--test-apk',str(test),'--output',str(folder),'--suite',suite,'--cases',','.join(methods),'--layout',layout,'--font-scale',str(font)] + if suite=='native-input':command+=['--input-mode','owned'] + row={'name':name,'methods':methods,'expected_control':negative,'state':'running','started':time.time()};r['cohorts'].append(row);save() + with (b/(name+'-outer.log')).open('xb') as log:result=subprocess.run(command,stdout=log,stderr=subprocess.STDOUT,env=dict(os.environ,ANDROID_HOME='')) + record=json.loads((folder/'record.json').read_text()) if (folder/'record.json').exists() else {};row.update(state='finished',finished=time.time(),exit_code=result.returncode);row.update({k:record.get(k) for k in ('passes','failures','completed','cleanup')});save() + valid=bool(record.get('cleanup')) and all(v['passed'] for v in record['cleanup'].values()) + if negative: + log=(folder/'tests.log').read_text() if (folder/'tests.log').exists() else '';valid=valid and result.returncode!=0 and record.get('passes')==0 and record.get('failures')==2 and log.count('Header keyboard action must hide the visible IME')>=2 + if valid: + for method in methods: + case=json.loads((folder/'captures'/(method.lower()+'-case.json')).read_text());actions=[e for e in case['events'] if e['kind']=='keyboard-pointer-action'];valid=valid and len(actions)==2 and actions[0]['expected_visible'] and actions[0]['reached_expected_state'] and actions[1]['label_before']=='Show on-screen keyboard' and actions[1]['ime_before'] and actions[1]['ime_after'] and not actions[1]['expected_visible'] and not actions[1]['reached_expected_state'] + else:valid=valid and result.returncode==0 and record.get('completed') and record.get('passes')==len(methods) and record.get('failures')==0 + print(json.dumps({'name':name,'passes':record.get('passes'),'failures':record.get('failures'),'accepted_protocol':bool(valid),'checks':len(record.get('cleanup',{}))}),flush=True) + if not valid:raise SystemExit('Native cohort failed its exact contract; retain and inspect before continuing') +r['completed']=True;save() diff --git a/docs/validation/keyboard-toggle/collection-source/run-native-v2.py b/docs/validation/keyboard-toggle/collection-source/run-native-v2.py new file mode 100644 index 00000000..bce27d9c --- /dev/null +++ b/docs/validation/keyboard-toggle/collection-source/run-native-v2.py @@ -0,0 +1,38 @@ +from pathlib import Path +import hashlib,json,os,subprocess,sys,time +b=Path('artifacts/keyboard-toggle');candidate=b/'candidate-v2';identity=json.loads((candidate/'identity.json').read_text());app=candidate/'app-debug.apk';test=candidate/'app-debug-androidTest.apk';old=Path('/artifacts/empty-feedback/candidate-v3/app-debug.apk');sha=lambda p:hashlib.sha256(p.read_bytes()).hexdigest() +assert sha(app)==identity['apk_sha256']['app-debug.apk'] and sha(test)==identity['apk_sha256']['app-debug-androidTest.apk'] and sha(old)==identity['old_app']['sha256'];assert hashlib.sha256(Path('scripts/test-webview-engine.py').read_bytes()).hexdigest()==identity['source_sha256']['scripts/test-webview-engine.py'] +toggle=['launcherKeyboardToggleRevealsResultsAndPreservesSearch','emojiKeyboardToggleRevealsResultsAndPreservesSearch'];guards=['launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus','emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus'];feedback=['launcherEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable','emojiEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable'];clear=['launcherTouchClearPreservesFocusCategoryAndKeyboard','emojiTouchClearPreservesCategoryGeometryAndKeyboard'];core=['pointerClearRemovesControlledCompositionAndWhitespace','retainedClearCallbacksRejectReplacedSurfacesAndMenus','currentClearUsesLiveQueryAndRecreationRejectsOldCallback'];inputs=['committedEmojiNavigationAndCaretAreExact','activeMultilingualCompositionKeepsResultSelection'] +intermediate=b/'candidate-v1/app-debug.apk' +plan=[('candidate-v2-guards-tablet100',app,'tablet',1,guards,'touch-search',False,False),('candidate-v2-landscape200',app,'landscape',2,toggle,'touch-search',False,False),('control-proxy-tablet100',intermediate,'tablet',1,guards,'touch-search',False,True)] +for font in (2,1):plan.append((f'control-old-v2-landscape{font}00',old,'landscape',font,toggle,'touch-search',False,True)) +for layout,font in [('landscape',1),('tablet',1),('tablet',2)]:plan.append((f'candidate-v2-{layout}{font}00',app,layout,font,toggle,'touch-search',False,False)) +for font in (1,2):plan.append((f'candidate-v2-feedback-landscape{font}00',app,'landscape',font,feedback,'touch-search',False,False)) +plan += [('candidate-v2-clear-phone200',app,'phone',2,clear,'touch-search',False,False),('candidate-v2-core-guards-tablet100',app,'tablet',1,core,'touch-search',False,False),('candidate-v2-input-phone100',app,'phone',1,inputs,'native-input',False,False),('candidate-v2-input-api26100',app,'phone',1,inputs,'native-input',True,False)] +state=b/'native-v2.json';assert not state.exists();r={'completed':False,'source':identity['source_commit'],'apk_sha256':identity['apk_sha256'],'cohorts':[]} +def save():state.write_text(json.dumps(r,indent=2)+'\n') +save() +for name,binary,layout,font,methods,suite,legacy,negative in plan: + folder=b/name;assert not folder.exists(),name + command=[sys.executable,'scripts/test-webview-engine.py','--serial','emulator-5598' if legacy else 'emulator-5580','--avd','Droidcast_WebView_API26_27caf3' if legacy else 'Tinycast_Tablet_API_36','--apk',str(binary),'--test-apk',str(test),'--output',str(folder),'--suite',suite,'--cases',','.join(methods),'--layout',layout,'--font-scale',str(font)] + if suite=='native-input':command+=['--input-mode','owned'] + row={'name':name,'methods':methods,'expected_control':negative,'state':'running','started':time.time()};r['cohorts'].append(row);save() + with (b/(name+'-outer.log')).open('xb') as log:result=subprocess.run(command,stdout=log,stderr=subprocess.STDOUT,env=dict(os.environ,ANDROID_HOME='')) + record=json.loads((folder/'record.json').read_text()) if (folder/'record.json').exists() else {};row.update(state='finished',finished=time.time(),exit_code=result.returncode);row.update({k:record.get(k) for k in ('passes','failures','completed','cleanup')});save() + valid=bool(record.get('cleanup')) and all(v['passed'] for v in record['cleanup'].values()) + if negative: + log=(folder/'tests.log').read_text() if (folder/'tests.log').exists() else '' + proxy=name.startswith('control-proxy-') + phrase='Obsolete or obstructed keyboard callback must not change visibility: keyboard-guard-obsolete-mode' if proxy else 'Header keyboard action must hide the visible IME' + valid=valid and result.returncode!=0 and record.get('passes')==0 and record.get('failures')==2 and log.count(phrase)>=2 + if valid: + for method in methods: + case=json.loads((folder/'captures'/(method.lower()+'-case.json')).read_text());actions=[e for e in case['events'] if e['kind']=='keyboard-pointer-action'] + if proxy: + frame=json.loads((folder/'captures'/(method.lower()+'-keyboard-guard-obsolete-mode-frame.json')).read_text());valid=valid and len(actions)==3 and all(e['reached_expected_state'] for e in actions) and not frame['ime_visible'] and not any(e['kind']=='keyboard-callback-rejected' for e in case['events']) + else:valid=valid and len(actions)==2 and actions[0]['expected_visible'] and actions[0]['reached_expected_state'] and actions[1]['label_before']=='Show on-screen keyboard' and actions[1]['ime_before'] and actions[1]['ime_after'] and not actions[1]['expected_visible'] and not actions[1]['reached_expected_state'] + + else:valid=valid and result.returncode==0 and record.get('completed') and record.get('passes')==len(methods) and record.get('failures')==0 + print(json.dumps({'name':name,'passes':record.get('passes'),'failures':record.get('failures'),'accepted_protocol':bool(valid),'checks':len(record.get('cleanup',{}))}),flush=True) + if not valid:raise SystemExit('Native cohort failed its exact contract; retain and inspect before continuing') +r['completed']=True;save() diff --git a/docs/validation/keyboard-toggle/collection-source/run-native-v3.py b/docs/validation/keyboard-toggle/collection-source/run-native-v3.py new file mode 100644 index 00000000..802f014d --- /dev/null +++ b/docs/validation/keyboard-toggle/collection-source/run-native-v3.py @@ -0,0 +1,38 @@ +from pathlib import Path +import hashlib,json,os,subprocess,sys,time +b=Path('artifacts/keyboard-toggle');candidate=b/'candidate-v3';identity=json.loads((candidate/'identity.json').read_text());app=candidate/'app-debug.apk';test=candidate/'app-debug-androidTest.apk';old=Path('/artifacts/empty-feedback/candidate-v3/app-debug.apk');sha=lambda p:hashlib.sha256(p.read_bytes()).hexdigest() +assert sha(app)==identity['apk_sha256']['app-debug.apk'] and sha(test)==identity['apk_sha256']['app-debug-androidTest.apk'] and sha(old)==identity['old_app']['sha256'];assert hashlib.sha256(Path('scripts/test-webview-engine.py').read_bytes()).hexdigest()==identity['source_sha256']['scripts/test-webview-engine.py'] +toggle=['launcherKeyboardToggleRevealsResultsAndPreservesSearch','emojiKeyboardToggleRevealsResultsAndPreservesSearch'];guards=['launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus','emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus'];feedback=['launcherEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable','emojiEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable'];clear=['launcherTouchClearPreservesFocusCategoryAndKeyboard','emojiTouchClearPreservesCategoryGeometryAndKeyboard'];core=['pointerClearRemovesControlledCompositionAndWhitespace','retainedClearCallbacksRejectReplacedSurfacesAndMenus','currentClearUsesLiveQueryAndRecreationRejectsOldCallback'];inputs=['committedEmojiNavigationAndCaretAreExact','activeMultilingualCompositionKeepsResultSelection'] +intermediate=b/'candidate-v1/app-debug.apk' +plan=[('candidate-v3-guards-tablet100',app,'tablet',1,guards,'touch-search',False,False),('candidate-v3-landscape200',app,'landscape',2,toggle,'touch-search',False,False),('control-proxy-v3-tablet100',intermediate,'tablet',1,guards,'touch-search',False,True)] +for font in (2,1):plan.append((f'control-old-v3-landscape{font}00',old,'landscape',font,toggle,'touch-search',False,True)) +for layout,font in [('landscape',1),('tablet',1),('tablet',2)]:plan.append((f'candidate-v3-{layout}{font}00',app,layout,font,toggle,'touch-search',False,False)) +for font in (1,2):plan.append((f'candidate-v3-feedback-landscape{font}00',app,'landscape',font,feedback,'touch-search',False,False)) +plan += [('candidate-v3-clear-phone200',app,'phone',2,clear,'touch-search',False,False),('candidate-v3-core-guards-tablet100',app,'tablet',1,core,'touch-search',False,False),('candidate-v3-input-phone100',app,'phone',1,inputs,'native-input',False,False),('candidate-v3-input-api26100',app,'phone',1,inputs,'native-input',True,False)] +state=b/'native-v3.json';assert not state.exists();r={'completed':False,'source':identity['source_commit'],'apk_sha256':identity['apk_sha256'],'cohorts':[]} +def save():state.write_text(json.dumps(r,indent=2)+'\n') +save() +for name,binary,layout,font,methods,suite,legacy,negative in plan: + folder=b/name;assert not folder.exists(),name + command=[sys.executable,'scripts/test-webview-engine.py','--serial','emulator-5598' if legacy else 'emulator-5580','--avd','Droidcast_WebView_API26_27caf3' if legacy else 'Tinycast_Tablet_API_36','--apk',str(binary),'--test-apk',str(test),'--output',str(folder),'--suite',suite,'--cases',','.join(methods),'--layout',layout,'--font-scale',str(font)] + if suite=='native-input':command+=['--input-mode','owned'] + row={'name':name,'methods':methods,'expected_control':negative,'state':'running','started':time.time()};r['cohorts'].append(row);save() + with (b/(name+'-outer.log')).open('xb') as log:result=subprocess.run(command,stdout=log,stderr=subprocess.STDOUT,env=dict(os.environ,ANDROID_HOME='')) + record=json.loads((folder/'record.json').read_text()) if (folder/'record.json').exists() else {};row.update(state='finished',finished=time.time(),exit_code=result.returncode);row.update({k:record.get(k) for k in ('passes','failures','completed','cleanup')});save() + valid=bool(record.get('cleanup')) and all(v['passed'] for v in record['cleanup'].values()) + if negative: + log=(folder/'tests.log').read_text() if (folder/'tests.log').exists() else '' + proxy=name.startswith('control-proxy-') + phrase='Obsolete or obstructed keyboard callback must not change visibility: keyboard-guard-obsolete-mode' if proxy else 'Header keyboard action must hide the visible IME' + valid=valid and result.returncode!=0 and record.get('passes')==0 and record.get('failures')==2 and log.count(phrase)>=2 + if valid: + for method in methods: + case=json.loads((folder/'captures'/(method.lower()+'-case.json')).read_text());actions=[e for e in case['events'] if e['kind']=='keyboard-pointer-action'] + if proxy: + frame=json.loads((folder/'captures'/(method.lower()+'-keyboard-guard-obsolete-mode-frame.json')).read_text());valid=valid and len(actions)==3 and all(e['reached_expected_state'] for e in actions) and not frame['ime_visible'] and not any(e['kind']=='keyboard-callback-rejected' for e in case['events']) + else:valid=valid and len(actions)==2 and actions[0]['expected_visible'] and actions[0]['reached_expected_state'] and actions[1]['label_before']=='Show on-screen keyboard' and actions[1]['ime_before'] and actions[1]['ime_after'] and not actions[1]['expected_visible'] and not actions[1]['reached_expected_state'] + + else:valid=valid and result.returncode==0 and record.get('completed') and record.get('passes')==len(methods) and record.get('failures')==0 + print(json.dumps({'name':name,'passes':record.get('passes'),'failures':record.get('failures'),'accepted_protocol':bool(valid),'checks':len(record.get('cleanup',{}))}),flush=True) + if not valid:raise SystemExit('Native cohort failed its exact contract; retain and inspect before continuing') +r['completed']=True;save() diff --git a/docs/validation/keyboard-toggle/collection-source/run-native-v4.py b/docs/validation/keyboard-toggle/collection-source/run-native-v4.py new file mode 100644 index 00000000..a13ecbb8 --- /dev/null +++ b/docs/validation/keyboard-toggle/collection-source/run-native-v4.py @@ -0,0 +1,38 @@ +from pathlib import Path +import hashlib,json,os,subprocess,sys,time +b=Path('artifacts/keyboard-toggle');candidate=b/'final-harness';identity=json.loads((candidate/'identity.json').read_text());app=candidate/'app-debug.apk';test=candidate/'app-debug-androidTest.apk';old=Path('/artifacts/empty-feedback/candidate-v3/app-debug.apk');sha=lambda p:hashlib.sha256(p.read_bytes()).hexdigest() +assert sha(app)==identity['apk_sha256']['app-debug.apk'] and sha(test)==identity['apk_sha256']['app-debug-androidTest.apk'] and sha(old)==identity['old_app']['sha256'];assert hashlib.sha256(Path('scripts/test-webview-engine.py').read_bytes()).hexdigest()==identity['source_sha256']['scripts/test-webview-engine.py'] +toggle=['launcherKeyboardToggleRevealsResultsAndPreservesSearch','emojiKeyboardToggleRevealsResultsAndPreservesSearch'];guards=['launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus','emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus'];feedback=['launcherEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable','emojiEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable'];clear=['launcherTouchClearPreservesFocusCategoryAndKeyboard','emojiTouchClearPreservesCategoryGeometryAndKeyboard'];core=['pointerClearRemovesControlledCompositionAndWhitespace','retainedClearCallbacksRejectReplacedSurfacesAndMenus','currentClearUsesLiveQueryAndRecreationRejectsOldCallback'];inputs=['committedEmojiNavigationAndCaretAreExact','activeMultilingualCompositionKeepsResultSelection'] +intermediate=b/'candidate-v1/app-debug.apk' +plan=[('final-guards-tablet100',app,'tablet',1,guards+['currentKeyboardAccessibilityActionsApplyTheirPublishedVisibility'],'touch-search',False,False),('final-landscape200',app,'landscape',2,toggle,'touch-search',False,False),('control-proxy-final-tablet100',intermediate,'tablet',1,guards,'touch-search',False,True)] +for font in (2,1):plan.append((f'control-old-final-landscape{font}00',old,'landscape',font,toggle,'touch-search',False,True)) +for layout,font in [('landscape',1),('tablet',1),('tablet',2)]:plan.append((f'final-{layout}{font}00',app,layout,font,toggle,'touch-search',False,False)) +for font in (1,2):plan.append((f'final-feedback-landscape{font}00',app,'landscape',font,feedback,'touch-search',False,False)) +plan += [('final-clear-phone200',app,'phone',2,clear,'touch-search',False,False),('final-core-guards-tablet100',app,'tablet',1,core,'touch-search',False,False),('final-input-phone100',app,'phone',1,inputs,'native-input',False,False),('final-input-api26100',app,'phone',1,inputs,'native-input',True,False)] +state=b/'native-v4.json';assert not state.exists();r={'completed':False,'source':identity['source_commit'],'app_source':identity['app_source'],'test_source':identity['test_source'],'controller_source':identity['controller_source'],'apk_sha256':identity['apk_sha256'],'cohorts':[]} +def save():state.write_text(json.dumps(r,indent=2)+'\n') +save() +for name,binary,layout,font,methods,suite,legacy,negative in plan: + folder=b/name;assert not folder.exists(),name + command=[sys.executable,'scripts/test-webview-engine.py','--serial','emulator-5598' if legacy else 'emulator-5580','--avd','Droidcast_WebView_API26_27caf3' if legacy else 'Tinycast_Tablet_API_36','--apk',str(binary),'--test-apk',str(test),'--output',str(folder),'--suite',suite,'--cases',','.join(methods),'--layout',layout,'--font-scale',str(font)] + if suite=='native-input':command+=['--input-mode','owned'] + row={'name':name,'methods':methods,'expected_control':negative,'state':'running','started':time.time()};r['cohorts'].append(row);save() + with (b/(name+'-outer.log')).open('xb') as log:result=subprocess.run(command,stdout=log,stderr=subprocess.STDOUT,env=dict(os.environ,ANDROID_HOME='')) + record=json.loads((folder/'record.json').read_text()) if (folder/'record.json').exists() else {};row.update(state='finished',finished=time.time(),exit_code=result.returncode);row.update({k:record.get(k) for k in ('passes','failures','completed','cleanup')});save() + valid=bool(record.get('cleanup')) and all(v['passed'] for v in record['cleanup'].values()) + if negative: + log=(folder/'tests.log').read_text() if (folder/'tests.log').exists() else '' + proxy=name.startswith('control-proxy-') + phrase='Obsolete or obstructed keyboard callback must not change visibility: keyboard-guard-obsolete-mode' if proxy else 'Header keyboard action must hide the visible IME' + valid=valid and result.returncode!=0 and record.get('passes')==0 and record.get('failures')==2 and log.count(phrase)>=2 + if valid: + for method in methods: + case=json.loads((folder/'captures'/(method.lower()+'-case.json')).read_text());actions=[e for e in case['events'] if e['kind']=='keyboard-pointer-action'] + if proxy: + frame=json.loads((folder/'captures'/(method.lower()+'-keyboard-guard-obsolete-mode-frame.json')).read_text());valid=valid and len(actions)==3 and all(e['reached_expected_state'] for e in actions) and not frame['ime_visible'] and not any(e['kind']=='keyboard-callback-rejected' for e in case['events']) + else:valid=valid and len(actions)==2 and actions[0]['expected_visible'] and actions[0]['reached_expected_state'] and actions[1]['label_before']=='Show on-screen keyboard' and actions[1]['ime_before'] and actions[1]['ime_after'] and not actions[1]['expected_visible'] and not actions[1]['reached_expected_state'] + + else:valid=valid and result.returncode==0 and record.get('completed') and record.get('passes')==len(methods) and record.get('failures')==0 + print(json.dumps({'name':name,'passes':record.get('passes'),'failures':record.get('failures'),'accepted_protocol':bool(valid),'checks':len(record.get('cleanup',{}))}),flush=True) + if not valid:raise SystemExit('Native cohort failed its exact contract; retain and inspect before continuing') +r['completed']=True;save() diff --git a/docs/validation/keyboard-toggle/collection-source/verify-final.py b/docs/validation/keyboard-toggle/collection-source/verify-final.py new file mode 100644 index 00000000..af69d86c --- /dev/null +++ b/docs/validation/keyboard-toggle/collection-source/verify-final.py @@ -0,0 +1,24 @@ +from pathlib import Path +import hashlib,json,os,re,subprocess,xml.etree.ElementTree as ET,zipfile +b=Path('artifacts/keyboard-toggle');load=lambda p:json.loads(p.read_text());sha=lambda x:hashlib.sha256(x).hexdigest();out=b/'final-verification.json';assert not out.exists();j=load(b/'final-harness/identity.json');head=subprocess.check_output(['git','rev-parse','HEAD'],text=True).strip();assert head==j['source_commit']=='69bd578d528c42296ef4a10fa24d675a8f635408';old=load(b/'candidate-v3/identity.json') +for p,h in j['source_sha256'].items():assert sha(Path(p).read_bytes())==h and sha(subprocess.check_output(['git','show',head+':'+p]))==h,p +changed={p for p,h in j['source_sha256'].items() if old['source_sha256'].get(p)!=h};assert changed==set(j['changed_inputs_since_app_source'])=={'app/src/androidTest/java/dev/tinycast/android/TouchSearchDeviceTest.kt','scripts/test-webview-engine.py'} +for label,h in j['apk_sha256'].items(): + p=b/'final-harness'/label;assert sha(p.read_bytes())==h + with zipfile.ZipFile(p) as z:assert {n:sha(z.read(n)) for n in z.namelist() if not n.endswith('/')}==j['zip_payload_sha256'][label] +assert (b/'final-harness/app-debug.apk').read_bytes()==(b/'candidate-v3/app-debug.apk').read_bytes() +analyzer='/cmdline-tools/latest/bin/apkanalyzer';env=dict(os.environ,JAVA_HOME='') +for name,label in [('app-debug.apk','app-manifest.xml'),('app-debug-androidTest.apk','test-manifest.xml')]: + p=b/'final-harness'/label;assert not p.exists();data=subprocess.check_output([analyzer,'manifest','print',str(b/'final-harness'/name)],env=env,timeout=45);root=ET.fromstring(data);stamps=[e.attrib.get('{http://schemas.android.com/apk/res/android}value') for e in root.iter('meta-data') if 'commit' in e.attrib.get('{http://schemas.android.com/apk/res/android}name','').lower()];assert (stamps==[j['app_source']]) if name=='app-debug.apk' else not stamps;p.write_bytes(data) +# Retained JVM343 binds exact unchanged production, build and JVM-test sources. +report=load(b/'frozen-host-verification.json');assert report['jvm']['tests']==343 and all(report['jvm'][k]==0 for k in ['failures','errors','skipped']) +for p,h in j['source_sha256'].items(): + if p not in changed:assert h==old['source_sha256'][p] +assert (b/'host-final-harness.log').read_text().count('BUILD SUCCESSFUL')==2 +lint={} +for variant in ['debug','benchmark']: + p=Path(f'app/build/reports/lint-results-{variant}.xml');root=ET.fromstring(p.read_bytes());counts={s:sum(e.attrib.get('severity')==s for e in root.iter('issue')) for s in ['Error','Fatal','Warning']};assert counts['Error']==counts['Fatal']==0;lint[variant]=counts +python={} +for mode in ['normal','optimized']: + p=b/f'python-final-{mode}.log';s=p.read_text();counts=re.findall(r'Ran (\d+) tests? in ([0-9.]+)s',s);assert counts and counts[-1][0]=='135' and re.search(r'^OK$',s,re.M);python[mode]={'cases':135,'seconds':float(counts[-1][1]),'log_sha256':sha(p.read_bytes()),'source_commit':head} +last=old['zip_payload_sha256']['app-debug-androidTest.apk'];current=j['zip_payload_sha256']['app-debug-androidTest.apk'];r={'current_source_commit':head,'source_hash_count':len(j['source_sha256']),'executed_app_source':j['app_source'],'executed_app_sha256':j['apk_sha256']['app-debug.apk'],'test_source':j['test_source'],'test_apk_sha256':j['apk_sha256']['app-debug-androidTest.apk'],'app_bytes_equal_frozen_f30':True,'only_changed_inputs':sorted(changed),'jvm_reuse':report['jvm'],'fresh_fixture_build_successes':2,'fresh_lint':lint,'fresh_python':python,'test_payload_changes':[p for p in sorted(set(last)|set(current)) if last.get(p)!=current.get(p)],'scope':'Current code/input hashes and final APKs verified. App is the exact archived f30 binary; only the fixture/controller change afterward. JVM343 is retained with production/build/JVM inputs unchanged, not rerun by this fixture-only build. No stamp-only equivalence is assumed.'};out.write_text(json.dumps(r,indent=2)+'\n');print(json.dumps({k:r[k] for k in ['source_hash_count','only_changed_inputs','fresh_lint','test_payload_changes']},indent=2)) diff --git a/docs/validation/keyboard-toggle/collection-source/verify-frozen-host.py b/docs/validation/keyboard-toggle/collection-source/verify-frozen-host.py new file mode 100644 index 00000000..b2a274b0 --- /dev/null +++ b/docs/validation/keyboard-toggle/collection-source/verify-frozen-host.py @@ -0,0 +1,51 @@ +from pathlib import Path +import hashlib,json,os,re,subprocess,xml.etree.ElementTree as ET,zipfile +b=Path('artifacts/keyboard-toggle');sha=lambda x:hashlib.sha256(x).hexdigest();load=lambda p:json.loads(p.read_text());out=b/'frozen-host-verification.json';assert not out.exists() +identities={v:load(b/v/'identity.json') for v in ['candidate-v1','candidate-v2','candidate-v3']} +for name,j in identities.items(): + for p,h in j['source_sha256'].items():assert sha(subprocess.check_output(['git','show',j['source_commit']+':'+p]))==h,(name,p) + for f,h in j['apk_sha256'].items(): + p=b/name/f;assert sha(p.read_bytes())==h + with zipfile.ZipFile(p) as z:assert {n:sha(z.read(n)) for n in z.namelist() if not n.endswith('/')}==j['zip_payload_sha256'][f] +for name in ['baseline-harness','baseline-harness-v3']: + j=load(b/name/'identity.json') + for p,h in j['source_sha256'].items():assert sha(subprocess.check_output(['git','show',j['test_source']+':'+p]))==h,(name,p) + p=b/name/'app-debug-androidTest.apk';assert sha(p.read_bytes())==j['test_apk_sha256'] + with zipfile.ZipFile(p) as z:assert {n:sha(z.read(n)) for n in z.namelist() if not n.endswith('/')}==j['test_zip_payload_sha256'] + # Both baseline harnesses compile against production/build source equal to the old reviewed app source. + for p,h in j['source_sha256'].items(): + if p.startswith(('app/src/main/','gradle/')) or p in ('app/build.gradle.kts','build.gradle.kts','settings.gradle.kts','gradle.properties','gradlew'):assert sha(subprocess.check_output(['git','show','6c5825bf0da60ad9b452ec4550aa49d60704e677:'+p]))==h,p +final=identities['candidate-v3'];assert final['source_commit']=='f30bebd6c414307a5b5fe690d80dfffe5fc58ccc' +for p,h in final['source_sha256'].items():assert sha(Path(p).read_bytes())==h,p +prod=[p for p in final['source_sha256'] if p.startswith(('app/src/main/','gradle/')) or p in ('app/build.gradle.kts','build.gradle.kts','settings.gradle.kts','gradle.properties','gradlew')] +for p in prod:assert final['source_sha256'][p]==identities['candidate-v2']['source_sha256'][p],p +python=[p for p in final['source_sha256'] if p.startswith('scripts/') and p.endswith('.py')] +for p in python:assert len({j['source_sha256'][p] for j in identities.values()})==1,p +assets=final['unchanged_original_assets'];assert len(assets)==11 +for j in identities.values():assert j['unchanged_original_assets']==assets +analyzer='/cmdline-tools/latest/bin/apkanalyzer';env=dict(os.environ,JAVA_HOME='') +for name,j in identities.items(): + for f,label in [('app-debug.apk','app-manifest.xml'),('app-debug-androidTest.apk','test-manifest.xml')]: + p=b/name/label;assert not p.exists();data=subprocess.check_output([analyzer,'manifest','print',str(b/name/f)],env=env,timeout=45);root=ET.fromstring(data);stamps=[e.attrib.get('{http://schemas.android.com/apk/res/android}value') for e in root.iter('meta-data') if 'commit' in e.attrib.get('{http://schemas.android.com/apk/res/android}name','').lower()] + assert (stamps==[j['source_commit']]) if f=='app-debug.apk' else not stamps + p.write_bytes(data) +for name in ['baseline-harness','baseline-harness-v3']: + p=b/name/'test-manifest.xml';assert not p.exists();data=subprocess.check_output([analyzer,'manifest','print',str(b/name/'app-debug-androidTest.apk')],env=env,timeout=45);root=ET.fromstring(data);assert not [e for e in root.iter('meta-data') if 'commit' in e.attrib.get('{http://schemas.android.com/apk/res/android}name','').lower()];p.write_bytes(data) +reports=sorted(Path('app/build/test-results/testDebugUnitTest').glob('TEST-*.xml'));jvm={k:0 for k in ['tests','failures','errors','skipped']} +for p in reports: + r=ET.fromstring(p.read_bytes()) + for k in jvm:jvm[k]+=int(r.attrib.get(k,0)) +assert jvm=={'tests':343,'failures':0,'errors':0,'skipped':0},jvm +lint={} +for variant in ['debug','benchmark']: + r=ET.fromstring(Path(f'app/build/reports/lint-results-{variant}.xml').read_bytes());counts={s:sum(e.attrib.get('severity')==s for e in r.iter('issue')) for s in ['Error','Fatal','Warning']};assert counts['Error']==counts['Fatal']==0;lint[variant]=counts +log=(b/'host-v3.log').read_text();assert log.count('BUILD SUCCESSFUL')==2;task=[s for s in log.splitlines() if s.startswith('> Task :app:testDebugUnitTest')];assert len(task)==1 +py={} +for mode in ['normal','optimized']: + p=b/f'python-v1-{mode}.log';s=p.read_text();matches=re.findall(r'Ran (\d+) tests? in ([0-9.]+)s',s);assert matches and matches[-1][0]=='135' and re.search(r'^OK$',s,re.M);py[mode]={'cases':135,'seconds':float(matches[-1][1]),'source_commit':'1355f84cb4f3cc93ae732a5ae9028c42747f0f8e','log_sha256':sha(p.read_bytes())} +differences=[] +for earlier,later in [('candidate-v1','candidate-v2'),('candidate-v2','candidate-v3')]: + for kind in ['app-debug.apk','app-debug-androidTest.apk']: + a=identities[earlier]['zip_payload_sha256'][kind];c=identities[later]['zip_payload_sha256'][kind];differences.append({'from':earlier,'to':later,'apk':kind,'changed_payloads':[p for p in sorted(set(a)|set(c)) if a.get(p)!=c.get(p)]}) +r={'app_build_source':final['source_commit'],'source_count':len(final['source_sha256']),'historical_vectors_and_apk_payloads_match':True,'production_build_sources_equal':'411b7f73ffea57b15ffa1c5ff01a468506495467','production_build_input_count':len(prod),'unchanged_python_source_count':len(python),'python_reuse':py,'unchanged_assets':assets,'manifest_stamps_match':True,'test_manifests_have_no_independent_source_stamp':True,'jvm':dict(jvm,task_line=task[0],report_files=len(reports)),'lint':lint,'build_successes':2,'zip_differences':differences,'scope':'Source/Git/ZIP/manifest inspection and actual host reports. Candidate app binaries remain distinct; no stamp-only reconstruction/equivalence is inferred. Python receipts reuse exact unchanged inputs.'} +out.write_text(json.dumps(r,indent=2)+'\n');print(json.dumps({k:r[k] for k in ['source_count','production_build_input_count','unchanged_python_source_count','jvm','lint','zip_differences']},indent=2)) diff --git a/docs/validation/keyboard-toggle/final-controls-calibration.json b/docs/validation/keyboard-toggle/final-controls-calibration.json new file mode 100644 index 00000000..2ae873bf --- /dev/null +++ b/docs/validation/keyboard-toggle/final-controls-calibration.json @@ -0,0 +1,283 @@ +{ + "all_completed": true, + "controls": [ + { + "cohort": "control-proxy-final-tablet100", + "kind": "published-action-proxy", + "passes": 0, + "intended_failures": 2, + "expected_assertion": "Obsolete or obstructed keyboard callback must not change visibility: keyboard-guard-obsolete-mode", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d", + "app_sha256": "32e2726d35d1c01fe488aa0781a3a0d67d99498699f7121ab4ad2f1be95e5286", + "restoration_checks": 15, + "witnesses": [ + { + "method": "launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "observed_pointer_actions": [ + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-first-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-live-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-live-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + } + ], + "case_sha256": "b97217edde8e460e0573ede2faa0e5cbd937f43026fcf3a282dd445dddea032f" + }, + { + "method": "emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "observed_pointer_actions": [ + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-first-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-live-hide", + "label_before": "Hide on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": false, + "reached_expected_state": true + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-guard-live-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + } + ], + "case_sha256": "b338c38dab75f6c1d2f124d5078945bd66bf9d22890a9ad86f7f1ebef50faf68" + } + ] + }, + { + "cohort": "control-old-final-landscape200", + "kind": "show-only-button", + "passes": 0, + "intended_failures": 2, + "expected_assertion": "Header keyboard action must hide the visible IME", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d", + "app_sha256": "66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c", + "restoration_checks": 17, + "witnesses": [ + { + "method": "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "observed_pointer_actions": [ + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Show on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": true, + "reached_expected_state": false + } + ], + "case_sha256": "55b861597acea563d4881dcf94294c13f7aee4f759f181473e355bd113029545" + }, + { + "method": "emojiKeyboardToggleRevealsResultsAndPreservesSearch", + "observed_pointer_actions": [ + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Show on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": true, + "reached_expected_state": false + } + ], + "case_sha256": "3fb46039ec47f89270b1c0972ec95b4b1c5f8252aea186f34b515872318c529c" + } + ] + }, + { + "cohort": "control-old-final-landscape100", + "kind": "show-only-button", + "passes": 0, + "intended_failures": 2, + "expected_assertion": "Header keyboard action must hide the visible IME", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d", + "app_sha256": "66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c", + "restoration_checks": 17, + "witnesses": [ + { + "method": "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "observed_pointer_actions": [ + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Show on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": true, + "reached_expected_state": false + } + ], + "case_sha256": "cd8e6159eaa739cf0c6973350d36b4479016d94d390007626af0385fd679a42f" + }, + { + "method": "emojiKeyboardToggleRevealsResultsAndPreservesSearch", + "observed_pointer_actions": [ + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-initial-show", + "label_before": "Show on-screen keyboard", + "ime_before": false, + "expected_visible": true, + "ime_after": true, + "reached_expected_state": true + }, + { + "kind": "keyboard-pointer-action", + "phase": "keyboard-0-after-hide", + "label_before": "Show on-screen keyboard", + "ime_before": true, + "expected_visible": false, + "ime_after": true, + "reached_expected_state": false + } + ], + "case_sha256": "2cad14379782102b85a376eef0f3112f13c780eefd10ad4dcd15fca4c24c4cad" + } + ] + } + ], + "current_protocol_counts": [ + { + "cohort": "final-guards-tablet100", + "method": "launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "pointer_transitions": 9, + "rejected_owned_actions": 5, + "accepted_current_accessibility_actions": 0 + }, + { + "cohort": "final-guards-tablet100", + "method": "emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "pointer_transitions": 9, + "rejected_owned_actions": 5, + "accepted_current_accessibility_actions": 0 + }, + { + "cohort": "final-guards-tablet100", + "method": "currentKeyboardAccessibilityActionsApplyTheirPublishedVisibility", + "pointer_transitions": 0, + "rejected_owned_actions": 0, + "accepted_current_accessibility_actions": 6 + }, + { + "cohort": "final-landscape100", + "method": "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "pointer_transitions": 6, + "rejected_owned_actions": 0, + "accepted_current_accessibility_actions": 0 + }, + { + "cohort": "final-landscape100", + "method": "emojiKeyboardToggleRevealsResultsAndPreservesSearch", + "pointer_transitions": 6, + "rejected_owned_actions": 0, + "accepted_current_accessibility_actions": 0 + }, + { + "cohort": "final-landscape200", + "method": "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "pointer_transitions": 6, + "rejected_owned_actions": 0, + "accepted_current_accessibility_actions": 0 + }, + { + "cohort": "final-landscape200", + "method": "emojiKeyboardToggleRevealsResultsAndPreservesSearch", + "pointer_transitions": 6, + "rejected_owned_actions": 0, + "accepted_current_accessibility_actions": 0 + }, + { + "cohort": "final-tablet100", + "method": "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "pointer_transitions": 6, + "rejected_owned_actions": 0, + "accepted_current_accessibility_actions": 0 + }, + { + "cohort": "final-tablet100", + "method": "emojiKeyboardToggleRevealsResultsAndPreservesSearch", + "pointer_transitions": 6, + "rejected_owned_actions": 0, + "accepted_current_accessibility_actions": 0 + }, + { + "cohort": "final-tablet200", + "method": "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "pointer_transitions": 6, + "rejected_owned_actions": 0, + "accepted_current_accessibility_actions": 0 + }, + { + "cohort": "final-tablet200", + "method": "emojiKeyboardToggleRevealsResultsAndPreservesSearch", + "pointer_transitions": 6, + "rejected_owned_actions": 0, + "accepted_current_accessibility_actions": 0 + } + ], + "scope": "Matched final instrumentation, exact functional assertions and actual IME states. Failed positive-only runner receipts remain failed. Accepted current semantics actions separately establish support; no app error banner, TalkBack gesture or physical queued-input claim." +} diff --git a/docs/validation/keyboard-toggle/final-preservation.json b/docs/validation/keyboard-toggle/final-preservation.json new file mode 100644 index 00000000..c7858e41 --- /dev/null +++ b/docs/validation/keyboard-toggle/final-preservation.json @@ -0,0 +1,21 @@ +{ + "all_passed": true, + "checks": { + "emulator-5580-four-ime-fields": true, + "emulator-5580-unprivileged": true, + "emulator-5580-idle": true, + "emulator-5580-geometry-not-overridden": true, + "emulator-5580-original-font": true, + "emulator-5598-four-ime-fields": true, + "emulator-5598-unprivileged": true, + "emulator-5598-idle": true, + "emulator-5598-geometry-not-overridden": true, + "emulator-5598-original-font": true, + "all-original-modern-app-evidence-files": true, + "original-apk-dev.tinycast.android": true, + "original-apk-dev.tinycast.android.test": true, + "legacy-original-package-absence": true + }, + "original_modern_file_count": 573, + "scope": "Read-only final equality to this slice current baseline after PR113; private originals/settings and fingerprints excluded. No whole-system/cross-boot identity certification; older pre-probe IME history remains uncertified." +} diff --git a/docs/validation/keyboard-toggle/final-verification.json b/docs/validation/keyboard-toggle/final-verification.json new file mode 100644 index 00000000..6acfccb9 --- /dev/null +++ b/docs/validation/keyboard-toggle/final-verification.json @@ -0,0 +1,52 @@ +{ + "current_source_commit": "69bd578d528c42296ef4a10fa24d675a8f635408", + "source_hash_count": 255, + "executed_app_source": "f30bebd6c414307a5b5fe690d80dfffe5fc58ccc", + "executed_app_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_source": "69bd578d528c42296ef4a10fa24d675a8f635408", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d", + "app_bytes_equal_frozen_f30": true, + "only_changed_inputs": [ + "app/src/androidTest/java/dev/tinycast/android/TouchSearchDeviceTest.kt", + "scripts/test-webview-engine.py" + ], + "jvm_reuse": { + "tests": 343, + "failures": 0, + "errors": 0, + "skipped": 0, + "task_line": "> Task :app:testDebugUnitTest", + "report_files": 37 + }, + "fresh_fixture_build_successes": 2, + "fresh_lint": { + "debug": { + "Error": 0, + "Fatal": 0, + "Warning": 56 + }, + "benchmark": { + "Error": 0, + "Fatal": 0, + "Warning": 56 + } + }, + "fresh_python": { + "normal": { + "cases": 135, + "seconds": 21.679, + "log_sha256": "d88a3984fec5a5d0bdcbc71f7a3ddd26cc76b057f42309616922115dac276fb5", + "source_commit": "69bd578d528c42296ef4a10fa24d675a8f635408" + }, + "optimized": { + "cases": 135, + "seconds": 21.441, + "log_sha256": "1fc320d835261db23adae5bcbf4f7f5bfc3e2c32b20bf48bb7dba064fabeee0d", + "source_commit": "69bd578d528c42296ef4a10fa24d675a8f635408" + } + }, + "test_payload_changes": [ + "classes3.dex" + ], + "scope": "Current code/input hashes and final APKs verified. App is the exact archived f30 binary; only the fixture/controller change afterward. JVM343 is retained with production/build/JVM inputs unchanged, not rerun by this fixture-only build. No stamp-only equivalence is assumed." +} diff --git a/docs/validation/keyboard-toggle/frozen-host-verification.json b/docs/validation/keyboard-toggle/frozen-host-verification.json new file mode 100644 index 00000000..5f66cc07 --- /dev/null +++ b/docs/validation/keyboard-toggle/frozen-host-verification.json @@ -0,0 +1,99 @@ +{ + "app_build_source": "f30bebd6c414307a5b5fe690d80dfffe5fc58ccc", + "source_count": 255, + "historical_vectors_and_apk_payloads_match": true, + "production_build_sources_equal": "411b7f73ffea57b15ffa1c5ff01a468506495467", + "production_build_input_count": 110, + "unchanged_python_source_count": 39, + "python_reuse": { + "normal": { + "cases": 135, + "seconds": 22.433, + "source_commit": "1355f84cb4f3cc93ae732a5ae9028c42747f0f8e", + "log_sha256": "1316b28e38783e8e019d172ccbbddd33ae3f932a63b3f839ed67088d1692168b" + }, + "optimized": { + "cases": 135, + "seconds": 22.723, + "source_commit": "1355f84cb4f3cc93ae732a5ae9028c42747f0f8e", + "log_sha256": "773915088754da34ef9b26ae2e2fa0d4a8f63e157b2924f09922c27d7c34f4df" + } + }, + "unchanged_assets": { + "assets/ANDROIDSVG-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "assets/ANDROIDSVG-NOTICE": "2e61b715e3553494f46f43e5a88e8d26c56201e0558c8d5ab02946edb4f7dedf", + "assets/COMMONMARK-LICENSE": "11cfcf6da0142fb1971c1f40f5924ddded14454e2793d7f1dd87c9f4abe42dfd", + "assets/COPYING": "14609801e0e520dac851e75d993ca4c75c3842a3be468f6f7f04a16c03c824db", + "assets/GEMOJI-LICENSE": "7ea1d1fd0602e6623b9a65e791499a0ea5a2f5f60f91bfad78cbaeee19da26e6", + "assets/NOTICE.md": "c263e44ea9a845c4e4ec564eeca46ae0fc343f63ffd10685afbf74586647e0f6", + "assets/REACT-LICENSE": "da6d3703ed11cbe42bd212c725957c98da23cbff1998c05fa4b3d976d1a58e93", + "assets/RaycastRuntime.generated.js": "b306b45453cc8507037ff2822066475aae17def757a8ef72d4a4fc64c6494bb7", + "assets/android-runtime.js": "1b5dfa3f5b512f55322f27703bbebf15d1a8c4569c4c1712a6dd64541dd552aa", + "assets/emoji-catalog.tsv": "e49f1cc09c6f487a6e7b55590ecc171dcff390f720a9ce3820fe2038810d5d66", + "assets/extension-workflow-evidence-v1.json": "4e8adc22b7887996140190a999f1c7272556f2dd379d219c88e276e48aea0fa5" + }, + "manifest_stamps_match": true, + "test_manifests_have_no_independent_source_stamp": true, + "jvm": { + "tests": 343, + "failures": 0, + "errors": 0, + "skipped": 0, + "task_line": "> Task :app:testDebugUnitTest", + "report_files": 37 + }, + "lint": { + "debug": { + "Error": 0, + "Fatal": 0, + "Warning": 56 + }, + "benchmark": { + "Error": 0, + "Fatal": 0, + "Warning": 56 + } + }, + "build_successes": 2, + "zip_differences": [ + { + "from": "candidate-v1", + "to": "candidate-v2", + "apk": "app-debug.apk", + "changed_payloads": [ + "AndroidManifest.xml", + "classes3.dex", + "classes4.dex" + ] + }, + { + "from": "candidate-v1", + "to": "candidate-v2", + "apk": "app-debug-androidTest.apk", + "changed_payloads": [ + "classes3.dex", + "classes4.dex" + ] + }, + { + "from": "candidate-v2", + "to": "candidate-v3", + "apk": "app-debug.apk", + "changed_payloads": [ + "AndroidManifest.xml", + "classes3.dex", + "classes4.dex" + ] + }, + { + "from": "candidate-v2", + "to": "candidate-v3", + "apk": "app-debug-androidTest.apk", + "changed_payloads": [ + "classes3.dex", + "classes4.dex" + ] + } + ], + "scope": "Source/Git/ZIP/manifest inspection and actual host reports. Candidate app binaries remain distinct; no stamp-only reconstruction/equivalence is inferred. Python receipts reuse exact unchanged inputs." +} diff --git a/docs/validation/keyboard-toggle/identities/baseline-harness-v3/identity.json b/docs/validation/keyboard-toggle/identities/baseline-harness-v3/identity.json new file mode 100644 index 00000000..04ed99db --- /dev/null +++ b/docs/validation/keyboard-toggle/identities/baseline-harness-v3/identity.json @@ -0,0 +1,387 @@ +{ + "test_source": "723ecda10614dc105e4e971143fcdc01dc81ca7a", + "source_sha256": { + "app/build.gradle.kts": "28f41ac518c91f15c98221d0511870a5409b9f35ae008acfdd5f667db06bcadf", + "app/src/androidTest/AndroidManifest.xml": "63c98a685e9dd67d8150af8981832d34271fb37a92e46444eec52728f559d609", + "app/src/androidTest/assets/owned-detail-fixture.js": "873d3f25f95271029e31779b0920b5955a2908a820a07652b58efa21a2358cfd", + "app/src/androidTest/java/dev/tinycast/android/ActivationDeviceTest.kt": "2f2fe66a5c3628433feeb6db33e02be43ca3f267b39ec541f2e3330fc1142974", + "app/src/androidTest/java/dev/tinycast/android/AssistantDeviceTest.kt": "1ecebcf20fe9aa7aa63701c81500195eddd1ae88618d89f31105fecc58189b6b", + "app/src/androidTest/java/dev/tinycast/android/AssistantTouchDeviceTest.kt": "1f33a283e5b1f05a5a74dbb76bc3ff8920193cd761edd1cce1e61cb733cb9874", + "app/src/androidTest/java/dev/tinycast/android/BackupDeviceTest.kt": "56c56d6a652524f7fc7952b1478552314b1e465ace5c7216385d7f2ea3cf4b6c", + "app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt": "e738e5b09aa6128343abe628ed7f93571b9a87c1eb95e78f00c617aadcf348b4", + "app/src/androidTest/java/dev/tinycast/android/CalculatorIntentDeviceTest.kt": "628ddcef4b50880170fba97cd925fefc5f463f632799d9e2686e7512b2bbc15f", + "app/src/androidTest/java/dev/tinycast/android/ClipboardApiDeviceTest.kt": "e53bbc080d17b59aae6280b7b817a3c81b4df684dcfd5ca787a993d89caf5de4", + "app/src/androidTest/java/dev/tinycast/android/ClipboardEvidence.kt": "c882a7435cdca3bbdf68da66a6e8ef23bce932fb5746ba09c61bded5b9c98e9d", + "app/src/androidTest/java/dev/tinycast/android/ClipboardEvidenceDeviceTest.kt": "dfdb64344886b7e5d4b54f04fa4560f169e8cb8d7b7b238ba08358dcde73f854", + "app/src/androidTest/java/dev/tinycast/android/ClipboardRecoveryActivity.java": "48627f465b10c316cca7fdfa735928095328241b4fb98bf90e5c247add17345d", + "app/src/androidTest/java/dev/tinycast/android/DocumentProviderDeviceTest.kt": "13895d23b8758affd8889461ef660c442d3bfd1bb111fce08a064aa4b582aea2", + "app/src/androidTest/java/dev/tinycast/android/EmojiDeviceTest.kt": "ab9907d4e4acd7e52ed26f12ac14648271e5740784cdba678671ca8ad42fb415", + "app/src/androidTest/java/dev/tinycast/android/EnduranceDeviceTest.kt": "4802d3755ce6bc1cdf8e60c7cf9998a09ced8e0be6d9888f0b9d9a32ee332dc4", + "app/src/androidTest/java/dev/tinycast/android/ExtensionCommandHandoffDeviceTest.kt": "8c47f08b1d49a94dfd520840a0b0349199459da4ece8ff1adcacc46516b37f7b", + "app/src/androidTest/java/dev/tinycast/android/ExtensionDetailDeviceTest.kt": "d5bd83f6d174ca5d5c3c9d68551cc3a78bc90763060410bd5f3b67d9d9642025", + "app/src/androidTest/java/dev/tinycast/android/ExtensionDeviceTest.kt": "3087ff055f70cdf43d2565e22703b9c57445b5c3e1594126d60b0279c32b2640", + "app/src/androidTest/java/dev/tinycast/android/ExtensionEmptyViewDeviceTest.kt": "64e6b1e68c61cf67b24ba02d1e14a72d297b1bdeebbdf1008905d5619ce2558f", + "app/src/androidTest/java/dev/tinycast/android/ExtensionFormDeviceTest.kt": "6418f6ab517ead50a102b4834bff9c40988849fb3a2a1ef20f575d162b32e11b", + "app/src/androidTest/java/dev/tinycast/android/ExtensionGridDeviceTest.kt": "952b4f2988379c1545575d1332f8358acc9053e257a382b7549a27f6b4b40de3", + "app/src/androidTest/java/dev/tinycast/android/ExtensionMarkdownDeviceTest.kt": "e4b7daa9fd914335f572ef41665595104cdae5434682977a2d806ff63ef36c4f", + "app/src/androidTest/java/dev/tinycast/android/ExtensionPasteCopyDeviceTest.kt": "7bdd8e876153d4d46357402eab58cf89c0e8885823d21894c70882ed55b1da8e", + "app/src/androidTest/java/dev/tinycast/android/ExtensionRecordedTestsDeviceTest.kt": "1aa11011270b01a235bb052c6063da7eb5f7f726a7bb19f79aa54e7b8aa4ca42", + "app/src/androidTest/java/dev/tinycast/android/ExtensionSandboxDiagnosticDeviceTest.kt": "3e192cb65d011e021d5b47b6bde765e1136c2ddf7e039b5c9dce6dedbf39da15", + "app/src/androidTest/java/dev/tinycast/android/FeedbackReadabilityDeviceTest.kt": "86096d428b6554bcb6b8c9d7bc39b981baf1fd53f9367a33c97ce03c89020a82", + "app/src/androidTest/java/dev/tinycast/android/FolderDeviceTest.kt": "f3d54b0d788459d34470d2d87c8882cdfe30e8956a8886cd324dd63160f5628d", + "app/src/androidTest/java/dev/tinycast/android/FormDocumentsFixtureActivity.java": "434e72d8a0c977a83cbe6524cc51638eaff9cca5581c570ea58d4068ad2156a9", + "app/src/androidTest/java/dev/tinycast/android/FrozenBundleWorkflowDeviceTest.kt": "9d31d56f739caa2509610cf4c07abf70dfd5ea0aead7ec5c5673bde1ca04bc45", + "app/src/androidTest/java/dev/tinycast/android/InlinePaletteDeviceTest.kt": "ed2cfb9dc3c5218adfe0ae7b3cc1c60a69e6cf8c83ad434c2fc6b87d23bb2727", + "app/src/androidTest/java/dev/tinycast/android/LegacyInputDiagnosticDeviceTest.kt": "4966fac20af96b8597fb38a278d8f3ef89b7e335f3d3b6e5df00fb349ebabc55", + "app/src/androidTest/java/dev/tinycast/android/ModifierHardwareClipboardTest.kt": "141499cea10d4c80b8ef690fd43e985c066d1b420afa23895c32e75de737ec8d", + "app/src/androidTest/java/dev/tinycast/android/ModifierTapDeviceTest.kt": "d33bafba795569c15bab709a9830ca06ecffda9feb754492ec437d55c1d1cae1", + "app/src/androidTest/java/dev/tinycast/android/NativeEditableAssertions.kt": "be979c8e0f3e78b8d0e4482c2653769d732d24871a822b3761f5708a1e6a230b", + "app/src/androidTest/java/dev/tinycast/android/NativeInputCompatibilityDeviceTest.kt": "484dcb406a6b9fbc7851efd883029a43b303bdab799c9385e51a678ab91a51fc", + "app/src/androidTest/java/dev/tinycast/android/NativeInputTestIme.kt": "c3a766ae381e6e4a1b514b3890cdd220616df8e9b88208cdb9aa562ebd8f45ce", + "app/src/androidTest/java/dev/tinycast/android/OwnedFormDocumentsProvider.java": "67c22d543cb2136d81dc3544d8f63df94ce67f9524c7f19dc9c6b1b586713e89", + "app/src/androidTest/java/dev/tinycast/android/PaletteDeviceTest.kt": "7f5861ffec2e762c1e629519802c10d4b31e3bebd49a3c5867013c6aad77f3f4", + "app/src/androidTest/java/dev/tinycast/android/PaletteOverlayTest.kt": "0755f9aa38bdb5785d2cb8902157ce990b5b9825db0ae71847e11c8b1bd4b7aa", + "app/src/androidTest/java/dev/tinycast/android/PaletteStabilityDeviceTest.kt": "87896693541425799e7815d2fc1e3988e29afd9bba346da48183a91fa91be9c9", + "app/src/androidTest/java/dev/tinycast/android/ReadinessDeviceTest.kt": "c6f3ea767e9adc8384a3b662223ab57bef067fca8501509e0415111b711589f3", + "app/src/androidTest/java/dev/tinycast/android/ReadinessRegressionDeviceTest.kt": "3815d7aef28c0943999782217eabe14dd80fdd464476798bd0bf12a1d0be3c4a", + "app/src/androidTest/java/dev/tinycast/android/RecentDocumentDeviceTest.kt": "85af5ed0fd05c0716b8ac14b24e98397829ff8d241695999a0cfc68727923e40", + "app/src/androidTest/java/dev/tinycast/android/ReviewedTextCallerActivity.java": "640609575a0711566bf23f3028a5144e8aeae912604f9b7180912fd2c9b96200", + "app/src/androidTest/java/dev/tinycast/android/ReviewedTextClipboardCrashDeviceTest.kt": "6a1ebc4d90c8b5fa9a07f4b288c20b361297efbeaf7d4423eb211da47b4cf0c0", + "app/src/androidTest/java/dev/tinycast/android/ReviewedTextDeviceTest.kt": "31040a9d92e7e60d8026dda7119a9f7eedd2127ea6f50bfb308849f56b6fc0ac", + "app/src/androidTest/java/dev/tinycast/android/ReviewedTextLifecycleDeviceTest.kt": "2190f43dca4d7a7eca162a7e34f46d6091cfd114d83a5e4509946c1b912ce76f", + "app/src/androidTest/java/dev/tinycast/android/SettingsDeviceTest.kt": "dd9b9a2492c497a2a3ac3218d0833d2e8b536eb904975aa536b08361acc323a9", + "app/src/androidTest/java/dev/tinycast/android/SettingsRouteDeviceTest.kt": "8f6991670e740a07d3a6b30aea270b60e19f6d237c4b7b6afaf25200962ad736", + "app/src/androidTest/java/dev/tinycast/android/ShortcutDeviceTest.kt": "5376ede8474d5eaa4ec7ecb628d1056a5bfc963bd2a292d17d9b86eead8a5415", + "app/src/androidTest/java/dev/tinycast/android/ShortcutReadinessDeviceTest.kt": "41bdf7ab67a6899dc8a0b1b0f697135bc587dc401c9234eb56d25385eadf3dcf", + "app/src/androidTest/java/dev/tinycast/android/SystemSettingsDeviceTest.kt": "80e0c919fbf04916d2441aa3fbc4cccfac534f56c29dfd908e5ae2d917cfe13b", + "app/src/androidTest/java/dev/tinycast/android/TestAutomation.kt": "faad509cd41b06c4cc1087e5de8e0218abca78773603b2050bb2825c880588fb", + "app/src/androidTest/java/dev/tinycast/android/TouchReadabilityDeviceTest.kt": "6801d25bb0d9bc45899b04aeedba474e2ac8e5cc8cb168b6268e0305fb49345e", + "app/src/androidTest/java/dev/tinycast/android/TouchSearchDeviceTest.kt": "f317732adfe34a470d2ab788c3390e70f4b5e9e4324d624364d613ebbafed6f5", + "app/src/androidTest/java/dev/tinycast/android/UpdateDeviceTest.kt": "380e4d7702d2f8c68fd575581309113bc67abf3e5713bdb177cc3b920c4e2787", + "app/src/androidTest/java/dev/tinycast/android/UpdateSelfInstallDeviceTest.kt": "fc94ef400b54ee2cf8378d2b1632fff1521299f188a132f0330e930b40f80ed3", + "app/src/androidTest/java/dev/tinycast/android/UpdateSourceDeviceTest.kt": "76d91931dc044fdeb001a8325a321306011f2b0c54aa631bea25751c59f3ea50", + "app/src/androidTest/java/dev/tinycast/android/UpdateVerificationDeviceTest.kt": "cebe3033132db567affccc5419ec59a9639c87ceb88b20c38ffbba16c13b4592", + "app/src/androidTest/java/dev/tinycast/android/WebViewCompatibilityDeviceTest.kt": "ce5842cad291b9cb77aed19ecb9436dc80de24beb27e018797a7f84fb4a84895", + "app/src/androidTest/java/dev/tinycast/android/WebViewRecoveryDeviceTest.kt": "dd6ccf056187d184dd7fb6aa1eddeb76bd7037f4af21f749dbe379a7a2eeecde", + "app/src/androidTest/res/xml/native_input_test_ime.xml": "4aafc899939ff4b8883a80c6e00f7ff7413a08a603d485a15f1035c07760b50c", + "app/src/main/AndroidManifest.xml": "65fefcf86296b7103c2237f1e29bca7890bf33f6b5056f860c2e39ede371a55b", + "app/src/main/assets/ANDROIDSVG-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "app/src/main/assets/ANDROIDSVG-NOTICE": "2e61b715e3553494f46f43e5a88e8d26c56201e0558c8d5ab02946edb4f7dedf", + "app/src/main/assets/COMMONMARK-LICENSE": "11cfcf6da0142fb1971c1f40f5924ddded14454e2793d7f1dd87c9f4abe42dfd", + "app/src/main/assets/COPYING": "14609801e0e520dac851e75d993ca4c75c3842a3be468f6f7f04a16c03c824db", + "app/src/main/assets/GEMOJI-LICENSE": "7ea1d1fd0602e6623b9a65e791499a0ea5a2f5f60f91bfad78cbaeee19da26e6", + "app/src/main/assets/NOTICE.md": "c263e44ea9a845c4e4ec564eeca46ae0fc343f63ffd10685afbf74586647e0f6", + "app/src/main/assets/REACT-LICENSE": "da6d3703ed11cbe42bd212c725957c98da23cbff1998c05fa4b3d976d1a58e93", + "app/src/main/assets/RaycastRuntime.generated.js": "b306b45453cc8507037ff2822066475aae17def757a8ef72d4a4fc64c6494bb7", + "app/src/main/assets/android-runtime.js": "1b5dfa3f5b512f55322f27703bbebf15d1a8c4569c4c1712a6dd64541dd552aa", + "app/src/main/assets/emoji-catalog.tsv": "e49f1cc09c6f487a6e7b55590ecc171dcff390f720a9ce3820fe2038810d5d66", + "app/src/main/assets/extension-workflow-evidence-v1.json": "4e8adc22b7887996140190a999f1c7272556f2dd379d219c88e276e48aea0fa5", + "app/src/main/java/dev/tinycast/android/AndroidShortcuts.kt": "1738bc2fe26a117f3d00edddf2639cd49d118f9d91bd5f6eff86d6ee6804b68c", + "app/src/main/java/dev/tinycast/android/AssistantActivation.kt": "b5855f87a029362bd06a63136dea7a1572fff716d0c302056f2a3647d9d95560", + "app/src/main/java/dev/tinycast/android/Backup.kt": "97f09aa4c2cf7ef42473be8728be28cadd3f3ab14930a6804590c0544a7c104b", + "app/src/main/java/dev/tinycast/android/BackupUi.kt": "d13aabc798d7fb19746b09d28a38593792792b67e916824776413d2fbe82870f", + "app/src/main/java/dev/tinycast/android/CalculatorActions.kt": "e03e5645069dafb156556efac7bd465f632938f8a5a24a78be72dff0ee5d3947", + "app/src/main/java/dev/tinycast/android/CommandEngine.kt": "b6be72c82b19fb09e1bf44cd4dd4148b3dbb0c39098eb42f89e80f9ffa034f78", + "app/src/main/java/dev/tinycast/android/EmojiCatalog.kt": "4dd39955ec38adea02d0c1974ace2b33d86ae738efea0e59d3e62b9072c10b81", + "app/src/main/java/dev/tinycast/android/EmojiStore.kt": "f7f5dd63af030b9d179c70336f4b52789d23a318020b6f19ac0c24d20ba8cd8e", + "app/src/main/java/dev/tinycast/android/EmojiUi.kt": "09aee8a0f5e6b00d5e9a7a755fa1a04fd88a6354d57fc4152afcdcc1d24f57f3", + "app/src/main/java/dev/tinycast/android/FolderGrantTransaction.kt": "11361d342e1e1598c85b5ea630f174c3a4590cbfaf9b430a30fbea2b9686a5c7", + "app/src/main/java/dev/tinycast/android/FolderIndex.kt": "6f1b1617a39c0c6e954a1b9b4da0d0d6af3ab7eeac25f2619e299621eec83a99", + "app/src/main/java/dev/tinycast/android/FolderSearch.kt": "4fcf90368ed70b49c192ab1b92b6e367d0a61643f928245f8447f542e745b60d", + "app/src/main/java/dev/tinycast/android/FolderSearchUi.kt": "dad0f473544f8e459aa301ad8eb91ec7380cebbe572e3e2be3f94443585a75c6", + "app/src/main/java/dev/tinycast/android/FolderStorageCoordinator.kt": "ff5491baf9d81ff19b04b35e33a503fc1656bfee9d8eb066453fdbe7e0f83bfb", + "app/src/main/java/dev/tinycast/android/MainActivity.kt": "2bc08e693d69ba4668a675c42dbcabb507755f8e3daf9ee01eaf62fd5744efe0", + "app/src/main/java/dev/tinycast/android/PaletteActionCapsule.kt": "f7228cdd6b6988fb049f0aaf1048d69cc8489e802b4cc42a2b4d6f9e7ceea3e0", + "app/src/main/java/dev/tinycast/android/PaletteColumn.kt": "cd6cdc348752bcc20bd631e2216abdd4ee0c91d9606aaab62ce0c01a145dd6aa", + "app/src/main/java/dev/tinycast/android/PaletteDialogs.kt": "99055192ab85f645a9d9c77d96064b06bba2f1435de503bc45be8f56b4de2dc5", + "app/src/main/java/dev/tinycast/android/PaletteFooter.kt": "5b62c907b46e5075975fc22d01771f5ab7c7f53e433692de55d92865231e967f", + "app/src/main/java/dev/tinycast/android/PaletteFrame.kt": "bfbc139e01a4276770644d5f4c1242016839fd98f5e2f21fa8afb31c886bc763", + "app/src/main/java/dev/tinycast/android/PaletteMenuOwnership.kt": "0be25f335246b8e47bf07ea057adf2045a20f9db5bee90a396109adfa7426174", + "app/src/main/java/dev/tinycast/android/PaletteMenus.kt": "43bc24a46a1ea0bac20f096a7d5d5256250c1c1069e0990bc958881830533dd3", + "app/src/main/java/dev/tinycast/android/PaletteScrollHistory.kt": "84e26b8544adc069c9f86e3273acd2254e2189f1680dec592570a261cdf87602", + "app/src/main/java/dev/tinycast/android/PaletteStore.kt": "7434fd21d100108a267e5790ecb705f4ca76c5dd0c86cc5b14bd9644ed58f57d", + "app/src/main/java/dev/tinycast/android/PaletteTheme.kt": "7afa29642b2bda9c9f669eaf6cdefcb977d14417d313547aff1ff807f4e37471", + "app/src/main/java/dev/tinycast/android/PaletteTileService.kt": "6f29825b3560944aae77935bc3abfb6a53e9577735dc622bf80e5ea1a1fbad00", + "app/src/main/java/dev/tinycast/android/PaletteUi.kt": "8c214da6cdc447b48d852c7dfaadbd25d676480fe8e055c6bab8298fe6320f35", + "app/src/main/java/dev/tinycast/android/PaletteViewport.kt": "7af62cfb3e5c210325dcb514246afadc3b5b5adbffda8cdded88100e8b7e44a3", + "app/src/main/java/dev/tinycast/android/RecentDocumentQueries.kt": "b60f5f6ac3458eb3659dd41aef01bcd20be9d59f3841ff0fa77c3eb6ee82c92b", + "app/src/main/java/dev/tinycast/android/ReviewedTextFlow.kt": "7daf246a7b8a608fe61e06f078bf3167c17df8f784f8779977ba6e87914526ea", + "app/src/main/java/dev/tinycast/android/ReviewedTextInput.kt": "ca681bb2c4eb91188a1550650bf5fb5f83569bf8ac954ab22abc0ce05ed17e73", + "app/src/main/java/dev/tinycast/android/ReviewedTextUi.kt": "5ded41175e114968aa1994c93ade551b21121db15c4a4a7ea5ff87deaff00d86", + "app/src/main/java/dev/tinycast/android/SearchClearButton.kt": "0d4b0bc74a48d1c2d13a62fcaec60adfa51c8966199ea71465dd3ecf40510229", + "app/src/main/java/dev/tinycast/android/SettingsActivity.kt": "6c8a09cf51abdfc1f61c305b17e613f7b40f9960168aad2fafebdc31155a3601", + "app/src/main/java/dev/tinycast/android/SettingsUi.kt": "55886d17261a019fcddac77f25e655896217dadd081db6da23a2e519a6bad35b", + "app/src/main/java/dev/tinycast/android/ShortcutReadiness.kt": "83a422a837edc657f1f3faf94c155019eae73f1abcc8761379dcb2051ceed505", + "app/src/main/java/dev/tinycast/android/ShortcutUi.kt": "394fadd7890bbb2dd5f851bd5a290ebf19ad4e05fae64c321e529eeccd35c632", + "app/src/main/java/dev/tinycast/android/Shortcuts.kt": "14e08d112e3cc5689a5717f68dce1334d3c2bf92f4a7cfbc2057fdc96418a9b2", + "app/src/main/java/dev/tinycast/android/SystemSettings.kt": "c5c1535d12627b975f8f582437e53d02b4110f4bfb185d5c8d1e9307debc319a", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionCatalog.kt": "4427ae6610fcf75bc8f7ddeec9b869ab5b6698c9042280f9f0efff7ea3422e1e", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionCommandLaunch.kt": "2b253982bfcaa9c2b04178fcd38a04492e450352a459bdf375abc7948e6950c6", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImageInformation.kt": "8a5d61b8f7d594933c6797d12c60f1888b4f4f4ad7de35a306c206406733b5e0", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImagePolicy.kt": "f393349926cd371a67e3e59af0d0eb4db66d124e035259622c5558efb0035529", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImageTimeout.kt": "16e0fb6b411c4cf30fcbcafc7df536f72da84c1a208f0ea47ba1a0b612d762a8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImageUi.kt": "6da7920fd357a8106015a8a6da6d085fd2b8ae2bf26269c4aee670c84f7b0af0", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImages.kt": "a87f8cf7d311baefd09c62f8a09e282764561bc2fe27b61abe0aec14d8c273f4", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailUi.kt": "15be7bc728b4fa72841db59a6e72e9acece275a5a6315d4ba6b19af22fc06f21", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionEmptyView.kt": "4ab1b0093364ad790235b666fc70ec2642bb40692f3ce7fdb830e6bc514c61dd", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionEngineCompatibility.kt": "36a9b4b35d22bc364ecb1f46d2d9f029e3807315a2d35d2fd231b2a86e8b49c8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionEngineUi.kt": "6972248240f701edcc038ce70428dfd1a716e40894d616918469af3270aaa9cb", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormContract.kt": "6eba4aa3f33b19d4c452212b3bbb33c8ac0cbb8ae8e61963867e83094d6778ed", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormDateUi.kt": "e052fc6c27a78ac0df119c954f7ef43f720ce8ab72462bb712832b6dfdeae18f", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormDocuments.kt": "1071c99bd42ec6265991731022662729fd1ccc0269fee924b229f9ab8c2980fc", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormFileImport.kt": "c91ee69d460190918ee649a61a340429ac0478a59ab5e7ca824db8c17d1f5d00", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormFileUi.kt": "4241a498c65c255db94f833038a1f86a8cb06f27b4cecb3838cc20e953262b01", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormPickerBackdrop.kt": "dff8e4e37d38c1387bfd221f6c43c29272abfa144fff34ada0a0734a9c0f946d", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormSubmission.kt": "7f89b0ef7216cafb22c72a636b3b2998e5d71c9933bcd87d7c65a25b9a2bd9d8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormTagUi.kt": "509187d014c00ca027720e16d22934686d1c0491f10e5e151a27b574cde86a96", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormTypedValues.kt": "bd6b1c9b3e45101715916ee145ad41cfb1b74e206ae733f97d375c119f86af97", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormUi.kt": "bdb8f813a82e1e1860ebb08047b4a449a440ffe6d2a005d97c06debcbf4438c2", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionGridImages.kt": "777de62995b645310418d2f0da8adf87c450d8b7459d1c9abab0e9a02ce84258", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionGridModel.kt": "5b104c726a950f09a7cf890a14c0e4e654dfe8f5ea8b1b41468a0822f42a2f48", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionGridUi.kt": "c66cd6ee6d29cd2cc43d45ddbdc15f175ac5a5a39b332736b4cbddecdbf9e6bf", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionHttp.kt": "88ed57ca318c3e0c45e50f85e3157692d479bdae9636127869556cfb553abfe8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionLinks.kt": "cebfba7010fd2a20423527f8025413c21257ecd8e97ddc0dcb321b1c74db71f1", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionListUi.kt": "b02b632904d5d6be8f7b967cd10ccbc72d7e3d8fff3caf66c4fb444bce7de136", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionMarkdownModel.kt": "723a518700e335179c296e8b9b05ae9a899c8aaf93b8ca02b76476a46879d6ea", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionMarkdownUi.kt": "54d1b8dc6b09e55a7b0adf7d23903c9fb97551673a5695196e2e6f89259e304d", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionMetadataVisuals.kt": "882b7080d8f46cc9c9e2fd96fd1cc5cb0565cbb282bf3b04cad1c31b77a32290", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionPasteCopy.kt": "3ee4dfbb356c6ec02f50d8d525ca805c0d21468f49529b002e054ff9c03c71b8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionPayloadIdentity.kt": "66037b60818bc4941f58551e6c1401c18641a6da43f9f2477db9c9f7838e29f0", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionRuntime.kt": "8df6a1a357a7133ce451930cc174b7382d70db75906724358ae40db664f6402e", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionSelectionDelivery.kt": "f13388787b615343c214a861a619bdba88b6327dc939365a130e9e799169c397", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionSvgPolicy.kt": "1bed94b2ea8e6d2475526a0ed83d85724e32893fafc8b27bd8f2b58a95cd868a", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt": "009e3b23953be18ae09c76a849dd6ce3943dff6b4f2d4b40d846385044851b3f", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionWorkflowEvidence.kt": "98f65f5dbe1578b11fbb20d80f477a63b03659f7b11b1a7a6f526a4d6fe94379", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionWorkflowInspection.kt": "650fdb495d2e1e0ab5331fe8c517baaaffcfe7d15e7f56b5b3f6247a650d01ed", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionWorkflowUi.kt": "93e9af8898ccce7fa1ab8169f08926b1d9fa95ba5657c517d7224f9356488c3d", + "app/src/main/java/dev/tinycast/android/extensions/NodeCpuInfo.kt": "eea176a7259e8f3736878886350610a84a23a6d2799f5337f5c8b07a8fefa398", + "app/src/main/java/dev/tinycast/android/extensions/WeakValueTokens.kt": "5c4d6f5c5b0d7170b554091e1b9cd9d551119ea60d7fe7f03946eb70f498c34d", + "app/src/main/java/dev/tinycast/android/updates/AppUpdates.kt": "63ace29d7dc29e005ffbbdde31cbac4e1d923732604b1e43e6a4db8a3285b508", + "app/src/main/java/dev/tinycast/android/updates/UpdatePolicy.kt": "350a9142ebfc663cd4a0c982ab220fb5f1e3399bfb3207c980ea20fd4c5c4e6e", + "app/src/main/java/dev/tinycast/android/updates/UpdateSource.kt": "aa860f14bd3a9f39e19899f1927fb7a790c54bb4f2704651253d8f867bb3c100", + "app/src/main/java/dev/tinycast/android/updates/UpdateUi.kt": "0bceb6a4221787a58dfb14ee1bcdcd266388720ca8862bd705cfeb10cfe52457", + "app/src/main/res/drawable/ic_launcher.xml": "104e38ffdf3214de23909b7896392f4a974e4fcbcc778c447d5d7a9ce56380af", + "app/src/main/res/drawable/ic_palette_tile.xml": "e063a6c4a1a25d6717a31bc355543d76c7d1babf8e9556e68b1b5e6a2b860748", + "app/src/main/res/values/styles.xml": "de4ad14f9ef41aaa4ffc824af155831579fa1194af5055edd112efee5042f5e1", + "app/src/main/res/xml/assistant_service.xml": "1e9e560563a7d0260fc83126d3a9bf027bf6357adfc811b43bc3224290c77ddf", + "app/src/main/res/xml/data_extraction_rules.xml": "cb4d1da1c1bd38761a9a08cc4d8d1b55839fcc14a6e19badb653f75b23c20eca", + "app/src/main/res/xml/keyboard_service.xml": "b1839c96988c03fea26ce4ed5932b1315013f3d2c16165993afc17368ab7bdd4", + "app/src/test/java/dev/tinycast/android/BackupPlannerTest.kt": "12a55d3644b5094b84cad2e88a5432738021fc8d7c59c232d4e5fc4c2c9a1454", + "app/src/test/java/dev/tinycast/android/CalculatorActionsTest.kt": "e803682a82b89c9703fcfbcbb82424eafef6bae6a13092953a3dc2c877816509", + "app/src/test/java/dev/tinycast/android/CommandEngineTest.kt": "65d9d198e8e1a188e4dcfd5551ced8f558f87a106f42b1d02a1432e8d6b7c234", + "app/src/test/java/dev/tinycast/android/CommonMarkPrimaryConformanceTest.kt": "ceb2ca14cc003385533bdd73b8beefffe92740887537b74c2146160621a23fcd", + "app/src/test/java/dev/tinycast/android/EmojiCatalogTest.kt": "9d70ef96696215e14e561d73f5a41f0b1a8272c3b58e5ad5a8438c31bc53aaa5", + "app/src/test/java/dev/tinycast/android/ExtensionCommandLaunchTest.kt": "f45df47e1740873ed7e771de72a650d9df88cd31bbcf2fd3abf67e3999700291", + "app/src/test/java/dev/tinycast/android/ExtensionDetailImagePolicyTest.kt": "7ec37a8870b70e3df0e3110f8b60ccc94185fedeaf1c39c76a00485dd4ca37d5", + "app/src/test/java/dev/tinycast/android/ExtensionDetailImageTimeoutTest.kt": "839216fc2d395cbd171676f32bfe77b894730a29a12127ec916c1d88b18dfb3d", + "app/src/test/java/dev/tinycast/android/ExtensionEngineCompatibilityTest.kt": "af9e76d4f6e7a6f193603f2db0169c95c7aadaca842d430c6178874f62840b1f", + "app/src/test/java/dev/tinycast/android/ExtensionFormContractTest.kt": "432d658e2a177312105e2ec86db2c59d0625086e86464a7ff946acb61c07e283", + "app/src/test/java/dev/tinycast/android/ExtensionFormFileImportTest.kt": "784f5b78f1dfd0d23ca653b36fc59bd13cba42e68c708c499678ac1ce474b673", + "app/src/test/java/dev/tinycast/android/ExtensionFormSubmissionTest.kt": "4bbdd8068cd95c314f7cf7aa156c7928cd815c5da11ef5f2cab1b4c5d23dd7d5", + "app/src/test/java/dev/tinycast/android/ExtensionFormTypedValuesTest.kt": "3a485a387e1527163d4318c3f0863b743bff02fe4e485adfff490d95cd554395", + "app/src/test/java/dev/tinycast/android/ExtensionFormValuesTest.kt": "6bc5bc8caaa5763e12dc3136bbba1d99249db10387c163cb1efeb0ae03f09d2a", + "app/src/test/java/dev/tinycast/android/ExtensionGridContractTest.kt": "50681a34c624a01867f287c66523d653e1931cf759f5e2926dda60feb85fa2b3", + "app/src/test/java/dev/tinycast/android/ExtensionGridNavigationTest.kt": "94ffe218ed5f9411210c2599db2a10dcd20c1a94655ef53e8cac1c574318b68f", + "app/src/test/java/dev/tinycast/android/ExtensionHttpTest.kt": "76917bbbdcc33dcc90d9b152d5a3e478fd981139e1df1d9edc0916e4f81b8e76", + "app/src/test/java/dev/tinycast/android/ExtensionMarkdownModelTest.kt": "fbeee6a80280ec27b660cc53222ef42f0e9ff5f5ce7ec5e02dede9d6b1c9222b", + "app/src/test/java/dev/tinycast/android/ExtensionMetadataVisualsTest.kt": "6f8653f4ed71138ac4fb0353e427d5b6775f54ec3600177ec6eae49dbc81598e", + "app/src/test/java/dev/tinycast/android/ExtensionPasteCopyTest.kt": "582ebddff12c96a504dd12a502ca851fc5d037e92f1d3ce98240eb162002b3bc", + "app/src/test/java/dev/tinycast/android/ExtensionPayloadIdentityTest.kt": "f59183b3224aab2923d9eb1ae598d1fa5cd2598b9ba80fc9a0db135005ae4e04", + "app/src/test/java/dev/tinycast/android/ExtensionSelectionDeliveryTest.kt": "1ea1e17cf0ea43fa3418a61f71587dbee9ec341b288d17fdaba3c5d3d8da4cb7", + "app/src/test/java/dev/tinycast/android/ExtensionWorkflowEvidenceTest.kt": "cf1589d69a498166b5a5fddd45135cf5b8575ec1d42f13ed4e2927b062b966fd", + "app/src/test/java/dev/tinycast/android/ExtensionWorkflowInspectionTest.kt": "043617c0cb943d76ebcdb5d0cc5bcdcda300069827b9b87a7425a16d084c1255", + "app/src/test/java/dev/tinycast/android/FolderGrantTransactionTest.kt": "ef710edc4ed1eb45782f90c385bc73305217f26882b630cd3e79ee93c59ef118", + "app/src/test/java/dev/tinycast/android/FolderIndexTest.kt": "bd371b19d1678ea876889cfb25505d690a4296c37d042e4cabd38bc7c7e4eff4", + "app/src/test/java/dev/tinycast/android/ModifierTapTest.kt": "bc0f6191ef2837018ca33a71010c1582cd39d0b3713c55acec4f91406a74d4fd", + "app/src/test/java/dev/tinycast/android/PaletteMenuOwnershipTest.kt": "c3134a62d61b5cd7ed810b867a6b40219713f21b798fabf6e659129cfab55506", + "app/src/test/java/dev/tinycast/android/PaletteScrollHistoryTest.kt": "b1610e3c3818e5823f99ded35bc36325042da250cfd48d98c0d6381066cfad5f", + "app/src/test/java/dev/tinycast/android/ReviewedTextInputTest.kt": "4bff225dd9fc1963736ad1f992e3eda3ffff21554c3ebef63d25acfdb41a29f3", + "app/src/test/java/dev/tinycast/android/ShortcutReadinessTest.kt": "45d32b02d4f89f857867d2585f3f5968251e9580edd34d9312bbfc158adc12e1", + "app/src/test/java/dev/tinycast/android/ShortcutTest.kt": "ae8034901d8ca73d704d40992b85ed43a64a021a078ff4eb5b2b853c4f398610", + "app/src/test/java/dev/tinycast/android/SystemSettingsTest.kt": "cdfc38bed12779bb92b0ddaeb79d197733243b24da43ab89d8580ecfd1f1fb51", + "app/src/test/java/dev/tinycast/android/TinycastGridParityTest.kt": "df6ca13f0f0a1e4bfa1f0085e274ed87457a6aa1a69492afa1041128af99c5e3", + "app/src/test/java/dev/tinycast/android/UpdatePolicyTest.kt": "d87ee4f7d6aa7b39b998267bd4d042d0b494ec6a1280d18860f262355c25cbe3", + "app/src/test/java/dev/tinycast/android/WeakValueTokensTest.kt": "ced7bf72628d5dc18fc5fdd30a81e58bb4b4b7f40e4e8c7eb0e77500f7c73566", + "app/src/test/java/dev/tinycast/android/extensions/NodeCpuInfoTest.kt": "5f3a7aae9b24435a4dbca77f9132a4b203ea736b1c76fc9108a51251983c2797", + "app/src/test/js/android-fetch.test.cjs": "2842effb321a11a33816f176f3300cd27a61c1e2ac70c4ed32681d46a129e56e", + "app/src/test/js/android-form-focus.test.cjs": "dd065271386dfdb2552caef1ae6e0c6f30e32783571abd85be328b9864bff8b6", + "app/src/test/js/android-form-submit.test.cjs": "7cbbb553dc2e657951b9195593b11add03597adad2710b4daa3e2cb807f87334", + "app/src/test/resources/commonmark-0.31.2.NOTICE": "610241b963a1a958c9465d99ec3f5778e7c6ef7251f9e119fed4c306b51641de", + "app/src/test/resources/commonmark-0.31.2.tsv": "dc27be954caac0ed8961299ca581a62aa4c68312091e68e52ab1e2bfe6aa5f5f", + "app/src/test/resources/extension-payload-identities-v1.json": "e451cf6b8efa208708db43dcb3a0545db1e73c610b72f488203fb4f147a490ab", + "app/src/test/resources/tinycast-grid-navigation.tsv": "da620f314fc39300beb7a11436715809ac1a9fd230fa4640c7f4f9c34b69aaf7", + "build.gradle.kts": "780d597cbe0f80d0103221a566db7574d1e07b17adca5bdbe7d6c728d77df12a", + "gradle.properties": "e43a00491832254a35cf5a979ef6de17f78c4e159d446be39319d2e3d3e46325", + "gradle/wrapper/gradle-wrapper.jar": "55243ef57851f12b070ad14f7f5bb8302daceeebc5bce5ece5fa6edb23e1145c", + "gradle/wrapper/gradle-wrapper.properties": "13287ffad6cf3064056ddad80d95b855132348930b2dc6c91490588c55b3ac7d", + "gradlew": "aed171fb114f82e6eaea4970a245a200e0582a7dcc8ec0891ca41b6e4a62b754", + "scripts/android_clipboard_recovery.py": "4aa2d03a100791544d282de37a2f62b6f7bfd94c47cc5611b6b6448ed8a946c1", + "scripts/android_form_documents_fixture.py": "ef44f5a9af1397fc8e8ea1924e36c2dec18d5c56c02e22f4925752daf1034841", + "scripts/android_test_cleanup.py": "1f4a1d70d251ec0a8294932388ce881da144c9c7d1c05df54df2c5b246d46373", + "scripts/extension_bundle_snapshot.py": "08ae0408a22e4f4c3c8a8b22af31b6a6a16d304dc0d14d5e489596dd9731a950", + "scripts/extension_manifest_catalog.py": "18c6048a0690e68dba3da1e8d11c5abccac16c3c26aa8803ff80abfd1dabe7e4", + "scripts/generate-emoji.py": "98f43c9a5941b4e65533e31ff7d7eaa4e697d8fecd4c7424297e6957e07abd53", + "scripts/generate-tinycast-grid-oracle.py": "bd53975673883b624d2553cd47687c5a3a760b17181a8c0621715ed1599b3118", + "scripts/package-nightly-update.py": "2a650baee0c7c76eadd360171e19686aad7b960fe34ebc780638c6b231032420", + "scripts/summarize-readiness.py": "e63d9d2ec435d2c369ae0be126bafb0b0507e903b03674f11a77ee10b428fe64", + "scripts/test-api-compatibility.py": "1ba4bf24535130bfd59a5f1d9d4830ca075e7158fc2cbe316696fcadb6108065", + "scripts/test-assistant-touch.py": "fd5a4acfdd19ddc60eb467fea3c7d2e8ab7ac717bea35c76d007577c23235a54", + "scripts/test-calculator-intent.py": "93ef5653c4d0c153d8f216c9fd74557089a964eaab80c84c85ab5460ec58f1a1", + "scripts/test-configurable-shortcuts.py": "56f4581f78265ec2c28faa1da115ae10a8349cf47e10db60bfba3e88f0cc3e73", + "scripts/test-extension-grid.py": "26f15b12f40277cbd3b6b874c58e41ab7e26735ef8e70634e5b5eb53b5652560", + "scripts/test-extension-workflows.py": "c6cce4d533b45655a7763305379107840a93a1a953be0322a869c7505ffc0997", + "scripts/test-global-shortcut.py": "4a0f57d16dfccbd0c7b33d6b78a841ccad030c4bad6fb108ac80f15dc89f6d6a", + "scripts/test-modifier-taps-hardware.py": "b0d2da7fd2410095d65ef20e25cd9b8e90f9b480849dfd5e497f75d4d713139c", + "scripts/test-modifier-taps.py": "8cb08d228371c90f995ae2246ef0a92daf6c81724c11a1ac67374ed0dd347dab", + "scripts/test-readiness-benchmark.py": "1f92dc1989f1ff36c82433d6eaab1e2c896abf7541a24a9b215c109e49d1a7d9", + "scripts/test-restart-files.py": "65f1c311df77634f746cb155d831acf1fa4d8cf05d0e1dabc9d372bf1e842065", + "scripts/test-reviewed-text-input.py": "4e9ab25f0b1bce00277d0dde5a37a29ab8cbbdb9900699c5bdfd9cfa4b9bb248", + "scripts/test-reviewed-text-process-recreation.py": "eecd547c48ad2bbce2d8bae62bbed26a2484e0b5d97ebb7cb989ba98d4de2a23", + "scripts/test-search-header.py": "772cb70442bbf28086beb8087ebce94d02ba6cc10e6acf8c2cf91a0d8d5b39d0", + "scripts/test-self-updates.py": "4ff148ea90c3a148a1eacf74116db288e5e9c282f69e0c331caa6f22b1a40889", + "scripts/test-startup-performance.py": "9ac605bf3347fde625d279767bb8fc4de76ae82f099e7d8351416fa5bc9250ae", + "scripts/test-touch-readability.py": "d9ae59ab3db56d63cb5c959c200263b71acd0e04c305dce4e9ceb8a395933fb6", + "scripts/test-webview-engine.py": "e02a804be8040b5d6ec5b00c09eaa1492b4f702fbbfbcd491099bd5226c4edea", + "scripts/tests/test_android_clipboard_recovery.py": "b260d3adcfa33e2641affebee9bebb1676097b4a24bbdbeb89cef7f3fc889176", + "scripts/tests/test_android_form_documents_fixture.py": "c2b573793d6c5d48fe9dc8e75ffc554e11818e319507080a4b96aa4e24e1fc03", + "scripts/tests/test_android_test_cleanup.py": "49c8831c517f0777f46952376f5d3b783322eeb25f063d69a9b1bc2f8cde01cf", + "scripts/tests/test_extension_bundle_snapshot.py": "382561907129ac58b7e20b963c1afcbc9bc1a03b7e18da64e7d61927a8b15783", + "scripts/tests/test_extension_manifest_catalog.py": "57af21edf39e3e4084453830eed62d3c052ba8d8a4f942d3d69807e2cd4b69a6", + "scripts/tests/test_extension_workflow_guards.py": "1cea982b85cf759e691471cad72b8e2cbdccdf3c2ccc6c483b1ef01b49002a3f", + "scripts/tests/test_private_archive_transport.py": "168c1607d4e1efa7537241cf362316ce354706af33465dc63e73d210ab0327d1", + "scripts/tests/test_private_path_observation.py": "3c0fff3062ac9b43aab67ed4ab2d53b92fa39f9af9e0ada9d197856a1df94e95", + "scripts/tests/test_reviewed_text_archives.py": "0308a50c148c97ed50381e894eabd43ec6e374878f99b810244c24e25f1a626e", + "scripts/tests/test_reviewed_text_runner_guards.py": "a3d489fe141be669374ecd0b3a6231afc5efdf4abfc6a74f7d25efec4e67038c", + "scripts/tests/test_webview_engine_runner.py": "846ee3b34578f92bd3f728eac4044c5ef4481478e3ec9d744e848e0094119168", + "scripts/verify-recorded-workflow-catalog.py": "fc0ec3b595b3a892238a4e0cc19b79ca092e8dcbe3e4af1d261e4874f984c2d5", + "settings.gradle.kts": "6a8db88135b364d8bd2facb607fc4e9e9476c171d2b7f7f3a0892c57a9ee6487" + }, + "test_apk_sha256": "b08f6a53b8b1ba5fe1bbc5309395c6f877aeb6ef1e01e843caabf939cb8aa28c", + "test_zip_payload_sha256": { + "classes.dex": "35f32eb3c6a38b451d1d47b53e49faa8fdca4db12df6e8e6385f44f1f5c1d403", + "classes2.dex": "468450c6993a81875894c0a142093a2e6dad1778f192763895e927a2f07c1d71", + "classes5.dex": "4cb87f7ace7c665d16755b3466eca73c87cc7167104d4b901b704bb2a4c9d30b", + "assets/owned-detail-fixture.js": "873d3f25f95271029e31779b0920b5955a2908a820a07652b58efa21a2358cfd", + "AndroidManifest.xml": "caff3c10989799f80e8bea4722a1e2e143b75cef522c7aff7211e7c79704f416", + "res/color/vector_tint_color.xml": "4bbb4ef3e0e3db260a05d794047a1765e420d699ee5673e90b57ff682a2fe34e", + "res/color/vector_tint_theme_color.xml": "cf34dc5bdb4a6d1568143e115ac4e34448383ac772862ef0fdbb7fe8936c6dd3", + "res/drawable-anydpi-v21/ic_call_answer.xml": "5f6376dfe199d8a6e40033d3e623989d052c9b2f974d00c824fbb8b76fc6fde8", + "res/drawable-anydpi-v21/ic_call_answer_low.xml": "8f9acacabaf2dfb4bb53dab7ce7bec9c1451ce0a0219ffaa41760ea82da3d2d6", + "res/drawable-anydpi-v21/ic_call_answer_video.xml": "5d4cdaae5838ad9442c085f951b766b2808bff13b8c85a14e0bcf8571514492c", + "res/drawable-anydpi-v21/ic_call_answer_video_low.xml": "4a959580080ebb1d822a2459a4234d2abf0dd0b65d9c28bda8c258dafc888c51", + "res/drawable-anydpi-v21/ic_call_decline.xml": "2d825b79cce60203492ff09a04826db0ac8d9eb9bc0fb9fb139ae1aa5cde0f67", + "res/drawable-anydpi-v21/ic_call_decline_low.xml": "c8321364802409baf4d76e2a84e303871585bdc95b0395040c5ecea0e2051105", + "res/drawable-hdpi-v4/ic_call_answer.png": "5c80d88a7b82ef5833255bf70ff1c26c3efb2a92ae90cac222f3200f59e0b1ea", + "res/drawable-hdpi-v4/ic_call_answer_low.png": "5c80d88a7b82ef5833255bf70ff1c26c3efb2a92ae90cac222f3200f59e0b1ea", + "res/drawable-hdpi-v4/ic_call_answer_video.png": "6adcfc9dd1e1b82b985d223fc8a01c8e8f0dd3b9051d38062674b2380af79a50", + "res/drawable-hdpi-v4/ic_call_answer_video_low.png": "6adcfc9dd1e1b82b985d223fc8a01c8e8f0dd3b9051d38062674b2380af79a50", + "res/drawable-hdpi-v4/ic_call_decline.png": "12ec9f9ad5fa3d7d897114af6c2297b66f31cb056e43daffbe80d23f6f66396d", + "res/drawable-hdpi-v4/ic_call_decline_low.png": "12ec9f9ad5fa3d7d897114af6c2297b66f31cb056e43daffbe80d23f6f66396d", + "res/drawable-hdpi-v4/notification_bg_low_normal.9.png": "21f0b55280be10b187ceff8edef4a5a7047683e6e9fcf47de410aa3839f41094", + "res/drawable-hdpi-v4/notification_bg_low_pressed.9.png": "42aee0b03883e94df5e543348a397d1302c1b8221895871a83b81899f5a9647b", + "res/drawable-hdpi-v4/notification_bg_normal.9.png": "0c6328c7b2420570a7ec38b3beb3bac9a29d895ac1ab7239315aba7266418593", + "res/drawable-hdpi-v4/notification_bg_normal_pressed.9.png": "18b328d8017e677d5aad3dbd66bae356b5cac978c6f0670938ea648e51d0eb66", + "res/drawable-hdpi-v4/notification_oversize_large_icon_bg.png": "aa00088d0d9fd97bd92ed9ffd29b54bb69a48a984aa73448ce553fb9d812be41", + "res/drawable-hdpi-v4/notify_panel_notification_icon_bg.png": "8430ec003e003f3f2ba2f78d48fd150e25407667e530e82e87a7d4841c0fd676", + "res/drawable-ldpi-v4/ic_call_answer.png": "6d34a8bb29be26e343781603588506f33bd1b93732a1c1bc9fd84678aa36b178", + "res/drawable-ldpi-v4/ic_call_answer_low.png": "6d34a8bb29be26e343781603588506f33bd1b93732a1c1bc9fd84678aa36b178", + "res/drawable-ldpi-v4/ic_call_answer_video.png": "66356f564f051a568e25071f60da312c418309f9129773aceb2246773458681c", + "res/drawable-ldpi-v4/ic_call_answer_video_low.png": "66356f564f051a568e25071f60da312c418309f9129773aceb2246773458681c", + "res/drawable-ldpi-v4/ic_call_decline.png": "a18cdaaf3742b1a3d4f484fa15d00fa34afb21495884301aafa3213338661ed6", + "res/drawable-ldpi-v4/ic_call_decline_low.png": "a18cdaaf3742b1a3d4f484fa15d00fa34afb21495884301aafa3213338661ed6", + "res/drawable-mdpi-v4/ic_call_answer.png": "f2ff62f473d8a5e00a8b6c81c15be9a0536471c3d5a81e37d04bc3356ea81ca0", + "res/drawable-mdpi-v4/ic_call_answer_low.png": "f2ff62f473d8a5e00a8b6c81c15be9a0536471c3d5a81e37d04bc3356ea81ca0", + "res/drawable-mdpi-v4/ic_call_answer_video.png": "6306048ba5f7eca43e7bdadeefa9412180508486fd543e02de93d2a013e223f0", + "res/drawable-mdpi-v4/ic_call_answer_video_low.png": "6306048ba5f7eca43e7bdadeefa9412180508486fd543e02de93d2a013e223f0", + "res/drawable-mdpi-v4/ic_call_decline.png": "7e87b3e0229126dc3c2bdaddcd8f330f3bb5f7613a05024c3cd6445dd161f788", + "res/drawable-mdpi-v4/ic_call_decline_low.png": "7e87b3e0229126dc3c2bdaddcd8f330f3bb5f7613a05024c3cd6445dd161f788", + "res/drawable-mdpi-v4/notification_bg_low_normal.9.png": "2f7fbda0ba6e53e9a47e2fc0e24e32c447c613a5808c2d6285dc651e83a07ad7", + "res/drawable-mdpi-v4/notification_bg_low_pressed.9.png": "e17761ed280edd93d7141bd504b70f9e9e15a8652288d9e6333bf4ce964ef844", + "res/drawable-mdpi-v4/notification_bg_normal.9.png": "a8676a1793ac8310ffb12986232df66df092d29c242aeedc2b73556c010d38dc", + "res/drawable-mdpi-v4/notification_bg_normal_pressed.9.png": "99c14d6855b8be296d58017d3751b8dc849c47b6d1d80ab614ff9075080e461b", + "res/drawable-mdpi-v4/notify_panel_notification_icon_bg.png": "0d773e62c756422313262846c787e58f67e0ee87e45e1ae9942002e816c4cb9e", + "res/drawable-v21/notification_action_background.xml": "2f768c089cefa18cf7f1fde7f602410bf38998de5f9073a15ea83106c25e3c30", + "res/drawable-xhdpi-v4/ic_call_answer.png": "e64c2e57627e24ec1ed37e67344c2bf31d1d6bdd2d8d715840c1edf0bd1425b6", + "res/drawable-xhdpi-v4/ic_call_answer_low.png": "e64c2e57627e24ec1ed37e67344c2bf31d1d6bdd2d8d715840c1edf0bd1425b6", + "res/drawable-xhdpi-v4/ic_call_answer_video.png": "5d02a81102644428ca639aec3df626eeb4a839a9ddc76fc2b158b04461d7f00f", + "res/drawable-xhdpi-v4/ic_call_answer_video_low.png": "5d02a81102644428ca639aec3df626eeb4a839a9ddc76fc2b158b04461d7f00f", + "res/drawable-xhdpi-v4/ic_call_decline.png": "9a9a30c305022a2f8e075d2ed7d33f5c7711bba8d0d0385511fdb62f89f208e3", + "res/drawable-xhdpi-v4/ic_call_decline_low.png": "9a9a30c305022a2f8e075d2ed7d33f5c7711bba8d0d0385511fdb62f89f208e3", + "res/drawable-xhdpi-v4/notification_bg_low_normal.9.png": "3e09afa21c45372c035598c017c8fb405a6d678e6cb84dc857581cb3b40e482d", + "res/drawable-xhdpi-v4/notification_bg_low_pressed.9.png": "20343222f9f79dd565c3a2248494d452e70820ac1c437173c38badd45f962afd", + "res/drawable-xhdpi-v4/notification_bg_normal.9.png": "559bf783d765c02338e97952bdc9c6689c7ff99090b8c9813369118da8b080f0", + "res/drawable-xhdpi-v4/notification_bg_normal_pressed.9.png": "d27af435101ca4cbec0c840bd30687918cd39eb83aab1487420855623a45998b", + "res/drawable-xhdpi-v4/notify_panel_notification_icon_bg.png": "b44eeda34d7a529c2fe55719eb098fa29707caa91d18de06a7a775d6e6bcf973", + "res/drawable-xxhdpi-v4/ic_call_answer.png": "86763a30af2a934c7c13b123b36443d1d17918b71c6149bc6ee80115b872593d", + "res/drawable-xxhdpi-v4/ic_call_answer_low.png": "86763a30af2a934c7c13b123b36443d1d17918b71c6149bc6ee80115b872593d", + "res/drawable-xxhdpi-v4/ic_call_answer_video.png": "ca48f604262f2b4ef8b100c73130efe2ad33ef8c2a2c1b3516f24f51b7b04665", + "res/drawable-xxhdpi-v4/ic_call_answer_video_low.png": "ca48f604262f2b4ef8b100c73130efe2ad33ef8c2a2c1b3516f24f51b7b04665", + "res/drawable-xxhdpi-v4/ic_call_decline.png": "87adad32e0ec19c4e920420bf3a06c9f94f6128ed0d866a1891628aeab2cef06", + "res/drawable-xxhdpi-v4/ic_call_decline_low.png": "87adad32e0ec19c4e920420bf3a06c9f94f6128ed0d866a1891628aeab2cef06", + "res/drawable-xxxhdpi-v4/ic_call_answer.png": "ec698a3217bce74d8bc4a44bb008f2dbd3d1aebff1af1e9641805143dbf9fa87", + "res/drawable-xxxhdpi-v4/ic_call_answer_low.png": "ec698a3217bce74d8bc4a44bb008f2dbd3d1aebff1af1e9641805143dbf9fa87", + "res/drawable-xxxhdpi-v4/ic_call_answer_video.png": "4c717ce1ffb551c765981add65d1956132d8f522337de2866b045f0a60485426", + "res/drawable-xxxhdpi-v4/ic_call_answer_video_low.png": "4c717ce1ffb551c765981add65d1956132d8f522337de2866b045f0a60485426", + "res/drawable-xxxhdpi-v4/ic_call_decline.png": "ab73b729bb95878120a3bdc8dc915f3aaa1d7070fc644a0de64d40941ad507ed", + "res/drawable-xxxhdpi-v4/ic_call_decline_low.png": "ab73b729bb95878120a3bdc8dc915f3aaa1d7070fc644a0de64d40941ad507ed", + "res/drawable/notification_bg.xml": "20a1a2e83aa9806faeb234fc0a1094bc079adf5a25ef4cfef1491c5ca3b3c745", + "res/drawable/notification_bg_low.xml": "49041ec87bb2ec2a8bc23685c8eb2c2d5297aa39f1412dc7aa6639aeec12ee49", + "res/drawable/notification_icon_background.xml": "b143ee7fcbba209f17607a720502d755f085ec75380ad6fbd6f99de6583f0a40", + "res/drawable/notification_tile_bg.xml": "fb5d113d15ff98da0eab3cb9e178e909ad5e261f30a24add0267e2827b4c7774", + "res/layout-v21/notification_action.xml": "4e046a162878e2f8796c6380f0c5a9a7b40f1ffb251478ecfcbbe3b434bd1178", + "res/layout-v21/notification_action_tombstone.xml": "a9657e68fd0c10ced5011b67b9e37a5ebe262957ef15fa3679a9a1f8784fee21", + "res/layout-v21/notification_template_custom_big.xml": "4879194cce032a3c5ea58d2ec796766b00bb057a4ca4bc11c56ed1830a61c7d2", + "res/layout-v21/notification_template_icon_group.xml": "97d5723ad66c683d88d57918e197cb33d2dc1628aa77299e42e132622c2c948e", + "res/layout/custom_dialog.xml": "edd4e27b3f2407a02248205a2eb50288170e4201249bfeac074749ea60390103", + "res/layout/ime_base_split_test_activity.xml": "37ff040591f96786bfaf9d3d937fedf2f2f97e218c06beb3e7fe8a2442a181a8", + "res/layout/ime_secondary_split_test_activity.xml": "0034556846afe7278a6d1264855405a0c3ae65a81a6a05f9ba4dc0136a589685", + "res/layout/notification_template_part_chronometer.xml": "9ae2b91ed155032cb90ee4cfead57eba2728d0e6ff262d2275ff63516604fc94", + "res/layout/notification_template_part_time.xml": "4a838e479642de5ee2cd1d0785b35d195995fcf27b0b9561140a6cdccbfe3ad6", + "res/xml/native_input_test_ime.xml": "d560413501650fb393941eb5e8e36b30aed25a309dc294cc0435f74d6dfe326d", + "resources.arsc": "a743d0f25129f83afc5a9790dfabdd4c6937b071c930014b432aa9a2fd74e4eb", + "LICENSE-junit.txt": "9648bb2891b9813970bddb68d4be8a5e6ec8280d0180a53dfb29236b579c55bb", + "META-INF/androidx.compose.ui_ui-test-junit4.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-test.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.test.uiautomator_uiautomator.version": "a42caf4a54bbbe27aa45b6efbc6356c5e299b19763e728b6cdb7201b02ebbe36", + "META-INF/kotlinx_coroutines_test.version": "179f9b723b6508aa1d6ce99991e8cd549ca819ee1b9b6102396c47815beffaaf", + "META-INF/services/kotlinx.coroutines.CoroutineExceptionHandler": "1b8e1a088e38c9bc8dd36517de1202651f06a9ca9eb0e6adad7305392289a94c", + "META-INF/services/kotlinx.coroutines.internal.MainDispatcherFactory": "90d3bc46060b2a33332bd2bc8122d5b03dd1a507718db830d5e809cc62c4490d", + "javax/annotation/CheckForNull.java": "4807942043605b325f0fefa243344db0d11e32cebd8f133df2b7c5d8486f2312", + "javax/annotation/CheckForSigned.java": "9c3d742fe9ab8e5fb08d5562ab0cb0255e2960facf94f83349be542b6557f3c1", + "javax/annotation/CheckReturnValue.java": "fc328c2dbc79fb3bc25d47a7f0486410fe8a04e6d6ceadf97f7ed44fa6dc0ebb", + "javax/annotation/Detainted.java": "7d272cf814d47c8cf89dd0d2f283ddfc88a26405122fd98f2842dbcb0789ed0e", + "javax/annotation/MatchesPattern.java": "ff2ffbca3823c1a3f5333630878068c724f67058264cca7396d9abef821897dd", + "javax/annotation/Nonnegative.java": "73b83d783bc7cdf7b5c9f4331a928154c6dc4e97ba349a5e5124e026ba4221b0", + "javax/annotation/Nonnull.java": "eb2d5ac7cd628dd3c59e5f7b14378fea531d5c76857df837cfe8f9a2ece1dddc", + "javax/annotation/Nullable.java": "511c9e8888bbdc13e0388eb5c3a882f43ff21160093b404c870ce94e83a1f509", + "javax/annotation/OverridingMethodsMustInvokeSuper.java": "5d786c4fff3f381babab9f745252dd80ba10210c402bd4c15161ce9b63decca6", + "javax/annotation/ParametersAreNonnullByDefault.java": "94233ca1ca4fb6d457bed883f8369019d4f0016be81d4e5ccfc01f5d50bf946e", + "javax/annotation/PropertyKey.java": "5559001d0f69e49487f1cc0cfa82d37e064b04436ccc7026a3d8a5aa30215d7d", + "javax/annotation/RegEx.java": "7b08d091734672f8f8f320fdaa7cde6ba48c786a2fdca94c9e2407e1e2af2aba", + "javax/annotation/Signed.java": "76633adce590e7c771ef7f727b575f9ae54389539d666677a9ca1a9e4256e374", + "javax/annotation/Syntax.java": "63c05bd38c7c279d147058d6e154a44ee1da62c92cc6849a573bdc6c345869e0", + "javax/annotation/Tainted.java": "9b755d095cf2c4a41a8e064b5bd0ab3e556845048b705d2cc98e8635b8bda6f2", + "javax/annotation/Untainted.java": "e44096a654f825c9f8f3fb9ba099f805155b3daf41918c177d7193558bb11981", + "javax/annotation/WillClose.java": "1c81ea1c7284c37c5d66b436fc63267877667da03b2b646fc6c11ea2a8dfac08", + "javax/annotation/WillCloseWhenClosed.java": "b3c6e342b4dfc4c62d33857f8920cfe077e9f2c31379d8f627495e0c4a06cb13", + "javax/annotation/WillNotClose.java": "6c258758fcf54c9657052dc9e86d0abc780f8a4580804e3a0a8b8b376529e453", + "javax/annotation/concurrent/GuardedBy.java": "f2650971001cbfd4c127487e0115e7a9539d64fd6a98dd8dd0675330ae3b790d", + "javax/annotation/concurrent/Immutable.java": "47f9a076a4396c492a373eec9622a15497b56b633a67af97ca51bd3b1142a08d", + "javax/annotation/concurrent/NotThreadSafe.java": "73060a8907c01ee7a72bfbd9c74a037ff1953bd7a4510b8997fdcec0a5741a19", + "javax/annotation/concurrent/ThreadSafe.java": "bcfd9f7a27af49a6505734ab03259f02a7222d3bd052821caa6d94d930bdfc9a", + "javax/annotation/meta/Exclusive.java": "0b0405f1dc140ac2ebdb4cdd3bbbfdcf19e22d724bc57a89d530b33e8c9b7ff5", + "javax/annotation/meta/Exhaustive.java": "c9b4085041acd1602691ee49535a6a91afc2b67d6bd9d9fb4e1ab2169d627a6f", + "javax/annotation/meta/TypeQualifier.java": "828fffa618ac1cda2fc07fcc0e5e58785aadfe4bc481c0e4e8dc5fc23d662ce5", + "javax/annotation/meta/TypeQualifierDefault.java": "27faa048d7c23bd6d79d3515816ec1f356758ae140c0edc702a74b91f9215395", + "javax/annotation/meta/TypeQualifierNickname.java": "309cf58e837f1bc63183fc9443b231904157f1ac25bfee0e5cebcae52f44eb51", + "javax/annotation/meta/TypeQualifierValidator.java": "4d1e2ca6f465ce130a8233086053acc991e5fd389f7e31c88a0cd19ef32c666a", + "javax/annotation/meta/When.java": "d79dfa99e03fa1eb6d0e6f024833ef16c1029b98975e2e767f760b2dbf4d8790", + "junit/runner/logo.gif": "345b5e2207a524e0019779d13f0f8ae51359f894a230479467761331e3d1ca16", + "junit/runner/smalllogo.gif": "b4819008f181bf3e0b47254f72149c62a556a56fc0358d3143e405b191de2081", + "classes3.dex": "3df849faffe2be9588a7a0bc79356b4361de739f9a8c53552e5028f8f8f0fe2b", + "classes4.dex": "c6bdd2f2359c872c8db9dba169fea72e4cfe3dc4a8a7db61693d2d159770d4b3" + }, + "old_app_source": "6c5825bf0da60ad9b452ec4550aa49d60704e677", + "old_app_sha256": "66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c", + "scope": "Compile the new pointer contracts against unchanged production sources; baseline controls execute the retained reviewed old APK, not this compilation app." +} diff --git a/docs/validation/keyboard-toggle/identities/baseline-harness-v3/test-manifest.xml b/docs/validation/keyboard-toggle/identities/baseline-harness-v3/test-manifest.xml new file mode 100644 index 00000000..ec741fb2 --- /dev/null +++ b/docs/validation/keyboard-toggle/identities/baseline-harness-v3/test-manifest.xml @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/identities/baseline-harness/identity.json b/docs/validation/keyboard-toggle/identities/baseline-harness/identity.json new file mode 100644 index 00000000..43fbedc0 --- /dev/null +++ b/docs/validation/keyboard-toggle/identities/baseline-harness/identity.json @@ -0,0 +1,387 @@ +{ + "test_source": "dfd1b38ce62cf5b029884d33071c830daed39923", + "source_sha256": { + "app/build.gradle.kts": "28f41ac518c91f15c98221d0511870a5409b9f35ae008acfdd5f667db06bcadf", + "app/src/androidTest/AndroidManifest.xml": "63c98a685e9dd67d8150af8981832d34271fb37a92e46444eec52728f559d609", + "app/src/androidTest/assets/owned-detail-fixture.js": "873d3f25f95271029e31779b0920b5955a2908a820a07652b58efa21a2358cfd", + "app/src/androidTest/java/dev/tinycast/android/ActivationDeviceTest.kt": "2f2fe66a5c3628433feeb6db33e02be43ca3f267b39ec541f2e3330fc1142974", + "app/src/androidTest/java/dev/tinycast/android/AssistantDeviceTest.kt": "1ecebcf20fe9aa7aa63701c81500195eddd1ae88618d89f31105fecc58189b6b", + "app/src/androidTest/java/dev/tinycast/android/AssistantTouchDeviceTest.kt": "1f33a283e5b1f05a5a74dbb76bc3ff8920193cd761edd1cce1e61cb733cb9874", + "app/src/androidTest/java/dev/tinycast/android/BackupDeviceTest.kt": "56c56d6a652524f7fc7952b1478552314b1e465ace5c7216385d7f2ea3cf4b6c", + "app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt": "e738e5b09aa6128343abe628ed7f93571b9a87c1eb95e78f00c617aadcf348b4", + "app/src/androidTest/java/dev/tinycast/android/CalculatorIntentDeviceTest.kt": "628ddcef4b50880170fba97cd925fefc5f463f632799d9e2686e7512b2bbc15f", + "app/src/androidTest/java/dev/tinycast/android/ClipboardApiDeviceTest.kt": "e53bbc080d17b59aae6280b7b817a3c81b4df684dcfd5ca787a993d89caf5de4", + "app/src/androidTest/java/dev/tinycast/android/ClipboardEvidence.kt": "c882a7435cdca3bbdf68da66a6e8ef23bce932fb5746ba09c61bded5b9c98e9d", + "app/src/androidTest/java/dev/tinycast/android/ClipboardEvidenceDeviceTest.kt": "dfdb64344886b7e5d4b54f04fa4560f169e8cb8d7b7b238ba08358dcde73f854", + "app/src/androidTest/java/dev/tinycast/android/ClipboardRecoveryActivity.java": "48627f465b10c316cca7fdfa735928095328241b4fb98bf90e5c247add17345d", + "app/src/androidTest/java/dev/tinycast/android/DocumentProviderDeviceTest.kt": "13895d23b8758affd8889461ef660c442d3bfd1bb111fce08a064aa4b582aea2", + "app/src/androidTest/java/dev/tinycast/android/EmojiDeviceTest.kt": "ab9907d4e4acd7e52ed26f12ac14648271e5740784cdba678671ca8ad42fb415", + "app/src/androidTest/java/dev/tinycast/android/EnduranceDeviceTest.kt": "4802d3755ce6bc1cdf8e60c7cf9998a09ced8e0be6d9888f0b9d9a32ee332dc4", + "app/src/androidTest/java/dev/tinycast/android/ExtensionCommandHandoffDeviceTest.kt": "8c47f08b1d49a94dfd520840a0b0349199459da4ece8ff1adcacc46516b37f7b", + "app/src/androidTest/java/dev/tinycast/android/ExtensionDetailDeviceTest.kt": "d5bd83f6d174ca5d5c3c9d68551cc3a78bc90763060410bd5f3b67d9d9642025", + "app/src/androidTest/java/dev/tinycast/android/ExtensionDeviceTest.kt": "3087ff055f70cdf43d2565e22703b9c57445b5c3e1594126d60b0279c32b2640", + "app/src/androidTest/java/dev/tinycast/android/ExtensionEmptyViewDeviceTest.kt": "64e6b1e68c61cf67b24ba02d1e14a72d297b1bdeebbdf1008905d5619ce2558f", + "app/src/androidTest/java/dev/tinycast/android/ExtensionFormDeviceTest.kt": "6418f6ab517ead50a102b4834bff9c40988849fb3a2a1ef20f575d162b32e11b", + "app/src/androidTest/java/dev/tinycast/android/ExtensionGridDeviceTest.kt": "952b4f2988379c1545575d1332f8358acc9053e257a382b7549a27f6b4b40de3", + "app/src/androidTest/java/dev/tinycast/android/ExtensionMarkdownDeviceTest.kt": "e4b7daa9fd914335f572ef41665595104cdae5434682977a2d806ff63ef36c4f", + "app/src/androidTest/java/dev/tinycast/android/ExtensionPasteCopyDeviceTest.kt": "7bdd8e876153d4d46357402eab58cf89c0e8885823d21894c70882ed55b1da8e", + "app/src/androidTest/java/dev/tinycast/android/ExtensionRecordedTestsDeviceTest.kt": "1aa11011270b01a235bb052c6063da7eb5f7f726a7bb19f79aa54e7b8aa4ca42", + "app/src/androidTest/java/dev/tinycast/android/ExtensionSandboxDiagnosticDeviceTest.kt": "3e192cb65d011e021d5b47b6bde765e1136c2ddf7e039b5c9dce6dedbf39da15", + "app/src/androidTest/java/dev/tinycast/android/FeedbackReadabilityDeviceTest.kt": "86096d428b6554bcb6b8c9d7bc39b981baf1fd53f9367a33c97ce03c89020a82", + "app/src/androidTest/java/dev/tinycast/android/FolderDeviceTest.kt": "f3d54b0d788459d34470d2d87c8882cdfe30e8956a8886cd324dd63160f5628d", + "app/src/androidTest/java/dev/tinycast/android/FormDocumentsFixtureActivity.java": "434e72d8a0c977a83cbe6524cc51638eaff9cca5581c570ea58d4068ad2156a9", + "app/src/androidTest/java/dev/tinycast/android/FrozenBundleWorkflowDeviceTest.kt": "9d31d56f739caa2509610cf4c07abf70dfd5ea0aead7ec5c5673bde1ca04bc45", + "app/src/androidTest/java/dev/tinycast/android/InlinePaletteDeviceTest.kt": "ed2cfb9dc3c5218adfe0ae7b3cc1c60a69e6cf8c83ad434c2fc6b87d23bb2727", + "app/src/androidTest/java/dev/tinycast/android/LegacyInputDiagnosticDeviceTest.kt": "4966fac20af96b8597fb38a278d8f3ef89b7e335f3d3b6e5df00fb349ebabc55", + "app/src/androidTest/java/dev/tinycast/android/ModifierHardwareClipboardTest.kt": "141499cea10d4c80b8ef690fd43e985c066d1b420afa23895c32e75de737ec8d", + "app/src/androidTest/java/dev/tinycast/android/ModifierTapDeviceTest.kt": "d33bafba795569c15bab709a9830ca06ecffda9feb754492ec437d55c1d1cae1", + "app/src/androidTest/java/dev/tinycast/android/NativeEditableAssertions.kt": "be979c8e0f3e78b8d0e4482c2653769d732d24871a822b3761f5708a1e6a230b", + "app/src/androidTest/java/dev/tinycast/android/NativeInputCompatibilityDeviceTest.kt": "484dcb406a6b9fbc7851efd883029a43b303bdab799c9385e51a678ab91a51fc", + "app/src/androidTest/java/dev/tinycast/android/NativeInputTestIme.kt": "c3a766ae381e6e4a1b514b3890cdd220616df8e9b88208cdb9aa562ebd8f45ce", + "app/src/androidTest/java/dev/tinycast/android/OwnedFormDocumentsProvider.java": "67c22d543cb2136d81dc3544d8f63df94ce67f9524c7f19dc9c6b1b586713e89", + "app/src/androidTest/java/dev/tinycast/android/PaletteDeviceTest.kt": "7f5861ffec2e762c1e629519802c10d4b31e3bebd49a3c5867013c6aad77f3f4", + "app/src/androidTest/java/dev/tinycast/android/PaletteOverlayTest.kt": "0755f9aa38bdb5785d2cb8902157ce990b5b9825db0ae71847e11c8b1bd4b7aa", + "app/src/androidTest/java/dev/tinycast/android/PaletteStabilityDeviceTest.kt": "87896693541425799e7815d2fc1e3988e29afd9bba346da48183a91fa91be9c9", + "app/src/androidTest/java/dev/tinycast/android/ReadinessDeviceTest.kt": "c6f3ea767e9adc8384a3b662223ab57bef067fca8501509e0415111b711589f3", + "app/src/androidTest/java/dev/tinycast/android/ReadinessRegressionDeviceTest.kt": "3815d7aef28c0943999782217eabe14dd80fdd464476798bd0bf12a1d0be3c4a", + "app/src/androidTest/java/dev/tinycast/android/RecentDocumentDeviceTest.kt": "85af5ed0fd05c0716b8ac14b24e98397829ff8d241695999a0cfc68727923e40", + "app/src/androidTest/java/dev/tinycast/android/ReviewedTextCallerActivity.java": "640609575a0711566bf23f3028a5144e8aeae912604f9b7180912fd2c9b96200", + "app/src/androidTest/java/dev/tinycast/android/ReviewedTextClipboardCrashDeviceTest.kt": "6a1ebc4d90c8b5fa9a07f4b288c20b361297efbeaf7d4423eb211da47b4cf0c0", + "app/src/androidTest/java/dev/tinycast/android/ReviewedTextDeviceTest.kt": "31040a9d92e7e60d8026dda7119a9f7eedd2127ea6f50bfb308849f56b6fc0ac", + "app/src/androidTest/java/dev/tinycast/android/ReviewedTextLifecycleDeviceTest.kt": "2190f43dca4d7a7eca162a7e34f46d6091cfd114d83a5e4509946c1b912ce76f", + "app/src/androidTest/java/dev/tinycast/android/SettingsDeviceTest.kt": "dd9b9a2492c497a2a3ac3218d0833d2e8b536eb904975aa536b08361acc323a9", + "app/src/androidTest/java/dev/tinycast/android/SettingsRouteDeviceTest.kt": "8f6991670e740a07d3a6b30aea270b60e19f6d237c4b7b6afaf25200962ad736", + "app/src/androidTest/java/dev/tinycast/android/ShortcutDeviceTest.kt": "5376ede8474d5eaa4ec7ecb628d1056a5bfc963bd2a292d17d9b86eead8a5415", + "app/src/androidTest/java/dev/tinycast/android/ShortcutReadinessDeviceTest.kt": "41bdf7ab67a6899dc8a0b1b0f697135bc587dc401c9234eb56d25385eadf3dcf", + "app/src/androidTest/java/dev/tinycast/android/SystemSettingsDeviceTest.kt": "80e0c919fbf04916d2441aa3fbc4cccfac534f56c29dfd908e5ae2d917cfe13b", + "app/src/androidTest/java/dev/tinycast/android/TestAutomation.kt": "faad509cd41b06c4cc1087e5de8e0218abca78773603b2050bb2825c880588fb", + "app/src/androidTest/java/dev/tinycast/android/TouchReadabilityDeviceTest.kt": "6801d25bb0d9bc45899b04aeedba474e2ac8e5cc8cb168b6268e0305fb49345e", + "app/src/androidTest/java/dev/tinycast/android/TouchSearchDeviceTest.kt": "977be5b8f3bdc78a519a68583acdedea7f9f0f441163c006513374ba3336bb66", + "app/src/androidTest/java/dev/tinycast/android/UpdateDeviceTest.kt": "380e4d7702d2f8c68fd575581309113bc67abf3e5713bdb177cc3b920c4e2787", + "app/src/androidTest/java/dev/tinycast/android/UpdateSelfInstallDeviceTest.kt": "fc94ef400b54ee2cf8378d2b1632fff1521299f188a132f0330e930b40f80ed3", + "app/src/androidTest/java/dev/tinycast/android/UpdateSourceDeviceTest.kt": "76d91931dc044fdeb001a8325a321306011f2b0c54aa631bea25751c59f3ea50", + "app/src/androidTest/java/dev/tinycast/android/UpdateVerificationDeviceTest.kt": "cebe3033132db567affccc5419ec59a9639c87ceb88b20c38ffbba16c13b4592", + "app/src/androidTest/java/dev/tinycast/android/WebViewCompatibilityDeviceTest.kt": "ce5842cad291b9cb77aed19ecb9436dc80de24beb27e018797a7f84fb4a84895", + "app/src/androidTest/java/dev/tinycast/android/WebViewRecoveryDeviceTest.kt": "dd6ccf056187d184dd7fb6aa1eddeb76bd7037f4af21f749dbe379a7a2eeecde", + "app/src/androidTest/res/xml/native_input_test_ime.xml": "4aafc899939ff4b8883a80c6e00f7ff7413a08a603d485a15f1035c07760b50c", + "app/src/main/AndroidManifest.xml": "65fefcf86296b7103c2237f1e29bca7890bf33f6b5056f860c2e39ede371a55b", + "app/src/main/assets/ANDROIDSVG-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "app/src/main/assets/ANDROIDSVG-NOTICE": "2e61b715e3553494f46f43e5a88e8d26c56201e0558c8d5ab02946edb4f7dedf", + "app/src/main/assets/COMMONMARK-LICENSE": "11cfcf6da0142fb1971c1f40f5924ddded14454e2793d7f1dd87c9f4abe42dfd", + "app/src/main/assets/COPYING": "14609801e0e520dac851e75d993ca4c75c3842a3be468f6f7f04a16c03c824db", + "app/src/main/assets/GEMOJI-LICENSE": "7ea1d1fd0602e6623b9a65e791499a0ea5a2f5f60f91bfad78cbaeee19da26e6", + "app/src/main/assets/NOTICE.md": "c263e44ea9a845c4e4ec564eeca46ae0fc343f63ffd10685afbf74586647e0f6", + "app/src/main/assets/REACT-LICENSE": "da6d3703ed11cbe42bd212c725957c98da23cbff1998c05fa4b3d976d1a58e93", + "app/src/main/assets/RaycastRuntime.generated.js": "b306b45453cc8507037ff2822066475aae17def757a8ef72d4a4fc64c6494bb7", + "app/src/main/assets/android-runtime.js": "1b5dfa3f5b512f55322f27703bbebf15d1a8c4569c4c1712a6dd64541dd552aa", + "app/src/main/assets/emoji-catalog.tsv": "e49f1cc09c6f487a6e7b55590ecc171dcff390f720a9ce3820fe2038810d5d66", + "app/src/main/assets/extension-workflow-evidence-v1.json": "4e8adc22b7887996140190a999f1c7272556f2dd379d219c88e276e48aea0fa5", + "app/src/main/java/dev/tinycast/android/AndroidShortcuts.kt": "1738bc2fe26a117f3d00edddf2639cd49d118f9d91bd5f6eff86d6ee6804b68c", + "app/src/main/java/dev/tinycast/android/AssistantActivation.kt": "b5855f87a029362bd06a63136dea7a1572fff716d0c302056f2a3647d9d95560", + "app/src/main/java/dev/tinycast/android/Backup.kt": "97f09aa4c2cf7ef42473be8728be28cadd3f3ab14930a6804590c0544a7c104b", + "app/src/main/java/dev/tinycast/android/BackupUi.kt": "d13aabc798d7fb19746b09d28a38593792792b67e916824776413d2fbe82870f", + "app/src/main/java/dev/tinycast/android/CalculatorActions.kt": "e03e5645069dafb156556efac7bd465f632938f8a5a24a78be72dff0ee5d3947", + "app/src/main/java/dev/tinycast/android/CommandEngine.kt": "b6be72c82b19fb09e1bf44cd4dd4148b3dbb0c39098eb42f89e80f9ffa034f78", + "app/src/main/java/dev/tinycast/android/EmojiCatalog.kt": "4dd39955ec38adea02d0c1974ace2b33d86ae738efea0e59d3e62b9072c10b81", + "app/src/main/java/dev/tinycast/android/EmojiStore.kt": "f7f5dd63af030b9d179c70336f4b52789d23a318020b6f19ac0c24d20ba8cd8e", + "app/src/main/java/dev/tinycast/android/EmojiUi.kt": "09aee8a0f5e6b00d5e9a7a755fa1a04fd88a6354d57fc4152afcdcc1d24f57f3", + "app/src/main/java/dev/tinycast/android/FolderGrantTransaction.kt": "11361d342e1e1598c85b5ea630f174c3a4590cbfaf9b430a30fbea2b9686a5c7", + "app/src/main/java/dev/tinycast/android/FolderIndex.kt": "6f1b1617a39c0c6e954a1b9b4da0d0d6af3ab7eeac25f2619e299621eec83a99", + "app/src/main/java/dev/tinycast/android/FolderSearch.kt": "4fcf90368ed70b49c192ab1b92b6e367d0a61643f928245f8447f542e745b60d", + "app/src/main/java/dev/tinycast/android/FolderSearchUi.kt": "dad0f473544f8e459aa301ad8eb91ec7380cebbe572e3e2be3f94443585a75c6", + "app/src/main/java/dev/tinycast/android/FolderStorageCoordinator.kt": "ff5491baf9d81ff19b04b35e33a503fc1656bfee9d8eb066453fdbe7e0f83bfb", + "app/src/main/java/dev/tinycast/android/MainActivity.kt": "2bc08e693d69ba4668a675c42dbcabb507755f8e3daf9ee01eaf62fd5744efe0", + "app/src/main/java/dev/tinycast/android/PaletteActionCapsule.kt": "f7228cdd6b6988fb049f0aaf1048d69cc8489e802b4cc42a2b4d6f9e7ceea3e0", + "app/src/main/java/dev/tinycast/android/PaletteColumn.kt": "cd6cdc348752bcc20bd631e2216abdd4ee0c91d9606aaab62ce0c01a145dd6aa", + "app/src/main/java/dev/tinycast/android/PaletteDialogs.kt": "99055192ab85f645a9d9c77d96064b06bba2f1435de503bc45be8f56b4de2dc5", + "app/src/main/java/dev/tinycast/android/PaletteFooter.kt": "5b62c907b46e5075975fc22d01771f5ab7c7f53e433692de55d92865231e967f", + "app/src/main/java/dev/tinycast/android/PaletteFrame.kt": "bfbc139e01a4276770644d5f4c1242016839fd98f5e2f21fa8afb31c886bc763", + "app/src/main/java/dev/tinycast/android/PaletteMenuOwnership.kt": "0be25f335246b8e47bf07ea057adf2045a20f9db5bee90a396109adfa7426174", + "app/src/main/java/dev/tinycast/android/PaletteMenus.kt": "43bc24a46a1ea0bac20f096a7d5d5256250c1c1069e0990bc958881830533dd3", + "app/src/main/java/dev/tinycast/android/PaletteScrollHistory.kt": "84e26b8544adc069c9f86e3273acd2254e2189f1680dec592570a261cdf87602", + "app/src/main/java/dev/tinycast/android/PaletteStore.kt": "7434fd21d100108a267e5790ecb705f4ca76c5dd0c86cc5b14bd9644ed58f57d", + "app/src/main/java/dev/tinycast/android/PaletteTheme.kt": "7afa29642b2bda9c9f669eaf6cdefcb977d14417d313547aff1ff807f4e37471", + "app/src/main/java/dev/tinycast/android/PaletteTileService.kt": "6f29825b3560944aae77935bc3abfb6a53e9577735dc622bf80e5ea1a1fbad00", + "app/src/main/java/dev/tinycast/android/PaletteUi.kt": "8c214da6cdc447b48d852c7dfaadbd25d676480fe8e055c6bab8298fe6320f35", + "app/src/main/java/dev/tinycast/android/PaletteViewport.kt": "7af62cfb3e5c210325dcb514246afadc3b5b5adbffda8cdded88100e8b7e44a3", + "app/src/main/java/dev/tinycast/android/RecentDocumentQueries.kt": "b60f5f6ac3458eb3659dd41aef01bcd20be9d59f3841ff0fa77c3eb6ee82c92b", + "app/src/main/java/dev/tinycast/android/ReviewedTextFlow.kt": "7daf246a7b8a608fe61e06f078bf3167c17df8f784f8779977ba6e87914526ea", + "app/src/main/java/dev/tinycast/android/ReviewedTextInput.kt": "ca681bb2c4eb91188a1550650bf5fb5f83569bf8ac954ab22abc0ce05ed17e73", + "app/src/main/java/dev/tinycast/android/ReviewedTextUi.kt": "5ded41175e114968aa1994c93ade551b21121db15c4a4a7ea5ff87deaff00d86", + "app/src/main/java/dev/tinycast/android/SearchClearButton.kt": "0d4b0bc74a48d1c2d13a62fcaec60adfa51c8966199ea71465dd3ecf40510229", + "app/src/main/java/dev/tinycast/android/SettingsActivity.kt": "6c8a09cf51abdfc1f61c305b17e613f7b40f9960168aad2fafebdc31155a3601", + "app/src/main/java/dev/tinycast/android/SettingsUi.kt": "55886d17261a019fcddac77f25e655896217dadd081db6da23a2e519a6bad35b", + "app/src/main/java/dev/tinycast/android/ShortcutReadiness.kt": "83a422a837edc657f1f3faf94c155019eae73f1abcc8761379dcb2051ceed505", + "app/src/main/java/dev/tinycast/android/ShortcutUi.kt": "394fadd7890bbb2dd5f851bd5a290ebf19ad4e05fae64c321e529eeccd35c632", + "app/src/main/java/dev/tinycast/android/Shortcuts.kt": "14e08d112e3cc5689a5717f68dce1334d3c2bf92f4a7cfbc2057fdc96418a9b2", + "app/src/main/java/dev/tinycast/android/SystemSettings.kt": "c5c1535d12627b975f8f582437e53d02b4110f4bfb185d5c8d1e9307debc319a", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionCatalog.kt": "4427ae6610fcf75bc8f7ddeec9b869ab5b6698c9042280f9f0efff7ea3422e1e", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionCommandLaunch.kt": "2b253982bfcaa9c2b04178fcd38a04492e450352a459bdf375abc7948e6950c6", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImageInformation.kt": "8a5d61b8f7d594933c6797d12c60f1888b4f4f4ad7de35a306c206406733b5e0", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImagePolicy.kt": "f393349926cd371a67e3e59af0d0eb4db66d124e035259622c5558efb0035529", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImageTimeout.kt": "16e0fb6b411c4cf30fcbcafc7df536f72da84c1a208f0ea47ba1a0b612d762a8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImageUi.kt": "6da7920fd357a8106015a8a6da6d085fd2b8ae2bf26269c4aee670c84f7b0af0", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImages.kt": "a87f8cf7d311baefd09c62f8a09e282764561bc2fe27b61abe0aec14d8c273f4", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailUi.kt": "15be7bc728b4fa72841db59a6e72e9acece275a5a6315d4ba6b19af22fc06f21", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionEmptyView.kt": "4ab1b0093364ad790235b666fc70ec2642bb40692f3ce7fdb830e6bc514c61dd", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionEngineCompatibility.kt": "36a9b4b35d22bc364ecb1f46d2d9f029e3807315a2d35d2fd231b2a86e8b49c8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionEngineUi.kt": "6972248240f701edcc038ce70428dfd1a716e40894d616918469af3270aaa9cb", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormContract.kt": "6eba4aa3f33b19d4c452212b3bbb33c8ac0cbb8ae8e61963867e83094d6778ed", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormDateUi.kt": "e052fc6c27a78ac0df119c954f7ef43f720ce8ab72462bb712832b6dfdeae18f", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormDocuments.kt": "1071c99bd42ec6265991731022662729fd1ccc0269fee924b229f9ab8c2980fc", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormFileImport.kt": "c91ee69d460190918ee649a61a340429ac0478a59ab5e7ca824db8c17d1f5d00", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormFileUi.kt": "4241a498c65c255db94f833038a1f86a8cb06f27b4cecb3838cc20e953262b01", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormPickerBackdrop.kt": "dff8e4e37d38c1387bfd221f6c43c29272abfa144fff34ada0a0734a9c0f946d", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormSubmission.kt": "7f89b0ef7216cafb22c72a636b3b2998e5d71c9933bcd87d7c65a25b9a2bd9d8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormTagUi.kt": "509187d014c00ca027720e16d22934686d1c0491f10e5e151a27b574cde86a96", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormTypedValues.kt": "bd6b1c9b3e45101715916ee145ad41cfb1b74e206ae733f97d375c119f86af97", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormUi.kt": "bdb8f813a82e1e1860ebb08047b4a449a440ffe6d2a005d97c06debcbf4438c2", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionGridImages.kt": "777de62995b645310418d2f0da8adf87c450d8b7459d1c9abab0e9a02ce84258", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionGridModel.kt": "5b104c726a950f09a7cf890a14c0e4e654dfe8f5ea8b1b41468a0822f42a2f48", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionGridUi.kt": "c66cd6ee6d29cd2cc43d45ddbdc15f175ac5a5a39b332736b4cbddecdbf9e6bf", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionHttp.kt": "88ed57ca318c3e0c45e50f85e3157692d479bdae9636127869556cfb553abfe8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionLinks.kt": "cebfba7010fd2a20423527f8025413c21257ecd8e97ddc0dcb321b1c74db71f1", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionListUi.kt": "b02b632904d5d6be8f7b967cd10ccbc72d7e3d8fff3caf66c4fb444bce7de136", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionMarkdownModel.kt": "723a518700e335179c296e8b9b05ae9a899c8aaf93b8ca02b76476a46879d6ea", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionMarkdownUi.kt": "54d1b8dc6b09e55a7b0adf7d23903c9fb97551673a5695196e2e6f89259e304d", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionMetadataVisuals.kt": "882b7080d8f46cc9c9e2fd96fd1cc5cb0565cbb282bf3b04cad1c31b77a32290", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionPasteCopy.kt": "3ee4dfbb356c6ec02f50d8d525ca805c0d21468f49529b002e054ff9c03c71b8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionPayloadIdentity.kt": "66037b60818bc4941f58551e6c1401c18641a6da43f9f2477db9c9f7838e29f0", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionRuntime.kt": "8df6a1a357a7133ce451930cc174b7382d70db75906724358ae40db664f6402e", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionSelectionDelivery.kt": "f13388787b615343c214a861a619bdba88b6327dc939365a130e9e799169c397", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionSvgPolicy.kt": "1bed94b2ea8e6d2475526a0ed83d85724e32893fafc8b27bd8f2b58a95cd868a", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt": "009e3b23953be18ae09c76a849dd6ce3943dff6b4f2d4b40d846385044851b3f", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionWorkflowEvidence.kt": "98f65f5dbe1578b11fbb20d80f477a63b03659f7b11b1a7a6f526a4d6fe94379", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionWorkflowInspection.kt": "650fdb495d2e1e0ab5331fe8c517baaaffcfe7d15e7f56b5b3f6247a650d01ed", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionWorkflowUi.kt": "93e9af8898ccce7fa1ab8169f08926b1d9fa95ba5657c517d7224f9356488c3d", + "app/src/main/java/dev/tinycast/android/extensions/NodeCpuInfo.kt": "eea176a7259e8f3736878886350610a84a23a6d2799f5337f5c8b07a8fefa398", + "app/src/main/java/dev/tinycast/android/extensions/WeakValueTokens.kt": "5c4d6f5c5b0d7170b554091e1b9cd9d551119ea60d7fe7f03946eb70f498c34d", + "app/src/main/java/dev/tinycast/android/updates/AppUpdates.kt": "63ace29d7dc29e005ffbbdde31cbac4e1d923732604b1e43e6a4db8a3285b508", + "app/src/main/java/dev/tinycast/android/updates/UpdatePolicy.kt": "350a9142ebfc663cd4a0c982ab220fb5f1e3399bfb3207c980ea20fd4c5c4e6e", + "app/src/main/java/dev/tinycast/android/updates/UpdateSource.kt": "aa860f14bd3a9f39e19899f1927fb7a790c54bb4f2704651253d8f867bb3c100", + "app/src/main/java/dev/tinycast/android/updates/UpdateUi.kt": "0bceb6a4221787a58dfb14ee1bcdcd266388720ca8862bd705cfeb10cfe52457", + "app/src/main/res/drawable/ic_launcher.xml": "104e38ffdf3214de23909b7896392f4a974e4fcbcc778c447d5d7a9ce56380af", + "app/src/main/res/drawable/ic_palette_tile.xml": "e063a6c4a1a25d6717a31bc355543d76c7d1babf8e9556e68b1b5e6a2b860748", + "app/src/main/res/values/styles.xml": "de4ad14f9ef41aaa4ffc824af155831579fa1194af5055edd112efee5042f5e1", + "app/src/main/res/xml/assistant_service.xml": "1e9e560563a7d0260fc83126d3a9bf027bf6357adfc811b43bc3224290c77ddf", + "app/src/main/res/xml/data_extraction_rules.xml": "cb4d1da1c1bd38761a9a08cc4d8d1b55839fcc14a6e19badb653f75b23c20eca", + "app/src/main/res/xml/keyboard_service.xml": "b1839c96988c03fea26ce4ed5932b1315013f3d2c16165993afc17368ab7bdd4", + "app/src/test/java/dev/tinycast/android/BackupPlannerTest.kt": "12a55d3644b5094b84cad2e88a5432738021fc8d7c59c232d4e5fc4c2c9a1454", + "app/src/test/java/dev/tinycast/android/CalculatorActionsTest.kt": "e803682a82b89c9703fcfbcbb82424eafef6bae6a13092953a3dc2c877816509", + "app/src/test/java/dev/tinycast/android/CommandEngineTest.kt": "65d9d198e8e1a188e4dcfd5551ced8f558f87a106f42b1d02a1432e8d6b7c234", + "app/src/test/java/dev/tinycast/android/CommonMarkPrimaryConformanceTest.kt": "ceb2ca14cc003385533bdd73b8beefffe92740887537b74c2146160621a23fcd", + "app/src/test/java/dev/tinycast/android/EmojiCatalogTest.kt": "9d70ef96696215e14e561d73f5a41f0b1a8272c3b58e5ad5a8438c31bc53aaa5", + "app/src/test/java/dev/tinycast/android/ExtensionCommandLaunchTest.kt": "f45df47e1740873ed7e771de72a650d9df88cd31bbcf2fd3abf67e3999700291", + "app/src/test/java/dev/tinycast/android/ExtensionDetailImagePolicyTest.kt": "7ec37a8870b70e3df0e3110f8b60ccc94185fedeaf1c39c76a00485dd4ca37d5", + "app/src/test/java/dev/tinycast/android/ExtensionDetailImageTimeoutTest.kt": "839216fc2d395cbd171676f32bfe77b894730a29a12127ec916c1d88b18dfb3d", + "app/src/test/java/dev/tinycast/android/ExtensionEngineCompatibilityTest.kt": "af9e76d4f6e7a6f193603f2db0169c95c7aadaca842d430c6178874f62840b1f", + "app/src/test/java/dev/tinycast/android/ExtensionFormContractTest.kt": "432d658e2a177312105e2ec86db2c59d0625086e86464a7ff946acb61c07e283", + "app/src/test/java/dev/tinycast/android/ExtensionFormFileImportTest.kt": "784f5b78f1dfd0d23ca653b36fc59bd13cba42e68c708c499678ac1ce474b673", + "app/src/test/java/dev/tinycast/android/ExtensionFormSubmissionTest.kt": "4bbdd8068cd95c314f7cf7aa156c7928cd815c5da11ef5f2cab1b4c5d23dd7d5", + "app/src/test/java/dev/tinycast/android/ExtensionFormTypedValuesTest.kt": "3a485a387e1527163d4318c3f0863b743bff02fe4e485adfff490d95cd554395", + "app/src/test/java/dev/tinycast/android/ExtensionFormValuesTest.kt": "6bc5bc8caaa5763e12dc3136bbba1d99249db10387c163cb1efeb0ae03f09d2a", + "app/src/test/java/dev/tinycast/android/ExtensionGridContractTest.kt": "50681a34c624a01867f287c66523d653e1931cf759f5e2926dda60feb85fa2b3", + "app/src/test/java/dev/tinycast/android/ExtensionGridNavigationTest.kt": "94ffe218ed5f9411210c2599db2a10dcd20c1a94655ef53e8cac1c574318b68f", + "app/src/test/java/dev/tinycast/android/ExtensionHttpTest.kt": "76917bbbdcc33dcc90d9b152d5a3e478fd981139e1df1d9edc0916e4f81b8e76", + "app/src/test/java/dev/tinycast/android/ExtensionMarkdownModelTest.kt": "fbeee6a80280ec27b660cc53222ef42f0e9ff5f5ce7ec5e02dede9d6b1c9222b", + "app/src/test/java/dev/tinycast/android/ExtensionMetadataVisualsTest.kt": "6f8653f4ed71138ac4fb0353e427d5b6775f54ec3600177ec6eae49dbc81598e", + "app/src/test/java/dev/tinycast/android/ExtensionPasteCopyTest.kt": "582ebddff12c96a504dd12a502ca851fc5d037e92f1d3ce98240eb162002b3bc", + "app/src/test/java/dev/tinycast/android/ExtensionPayloadIdentityTest.kt": "f59183b3224aab2923d9eb1ae598d1fa5cd2598b9ba80fc9a0db135005ae4e04", + "app/src/test/java/dev/tinycast/android/ExtensionSelectionDeliveryTest.kt": "1ea1e17cf0ea43fa3418a61f71587dbee9ec341b288d17fdaba3c5d3d8da4cb7", + "app/src/test/java/dev/tinycast/android/ExtensionWorkflowEvidenceTest.kt": "cf1589d69a498166b5a5fddd45135cf5b8575ec1d42f13ed4e2927b062b966fd", + "app/src/test/java/dev/tinycast/android/ExtensionWorkflowInspectionTest.kt": "043617c0cb943d76ebcdb5d0cc5bcdcda300069827b9b87a7425a16d084c1255", + "app/src/test/java/dev/tinycast/android/FolderGrantTransactionTest.kt": "ef710edc4ed1eb45782f90c385bc73305217f26882b630cd3e79ee93c59ef118", + "app/src/test/java/dev/tinycast/android/FolderIndexTest.kt": "bd371b19d1678ea876889cfb25505d690a4296c37d042e4cabd38bc7c7e4eff4", + "app/src/test/java/dev/tinycast/android/ModifierTapTest.kt": "bc0f6191ef2837018ca33a71010c1582cd39d0b3713c55acec4f91406a74d4fd", + "app/src/test/java/dev/tinycast/android/PaletteMenuOwnershipTest.kt": "c3134a62d61b5cd7ed810b867a6b40219713f21b798fabf6e659129cfab55506", + "app/src/test/java/dev/tinycast/android/PaletteScrollHistoryTest.kt": "b1610e3c3818e5823f99ded35bc36325042da250cfd48d98c0d6381066cfad5f", + "app/src/test/java/dev/tinycast/android/ReviewedTextInputTest.kt": "4bff225dd9fc1963736ad1f992e3eda3ffff21554c3ebef63d25acfdb41a29f3", + "app/src/test/java/dev/tinycast/android/ShortcutReadinessTest.kt": "45d32b02d4f89f857867d2585f3f5968251e9580edd34d9312bbfc158adc12e1", + "app/src/test/java/dev/tinycast/android/ShortcutTest.kt": "ae8034901d8ca73d704d40992b85ed43a64a021a078ff4eb5b2b853c4f398610", + "app/src/test/java/dev/tinycast/android/SystemSettingsTest.kt": "cdfc38bed12779bb92b0ddaeb79d197733243b24da43ab89d8580ecfd1f1fb51", + "app/src/test/java/dev/tinycast/android/TinycastGridParityTest.kt": "df6ca13f0f0a1e4bfa1f0085e274ed87457a6aa1a69492afa1041128af99c5e3", + "app/src/test/java/dev/tinycast/android/UpdatePolicyTest.kt": "d87ee4f7d6aa7b39b998267bd4d042d0b494ec6a1280d18860f262355c25cbe3", + "app/src/test/java/dev/tinycast/android/WeakValueTokensTest.kt": "ced7bf72628d5dc18fc5fdd30a81e58bb4b4b7f40e4e8c7eb0e77500f7c73566", + "app/src/test/java/dev/tinycast/android/extensions/NodeCpuInfoTest.kt": "5f3a7aae9b24435a4dbca77f9132a4b203ea736b1c76fc9108a51251983c2797", + "app/src/test/js/android-fetch.test.cjs": "2842effb321a11a33816f176f3300cd27a61c1e2ac70c4ed32681d46a129e56e", + "app/src/test/js/android-form-focus.test.cjs": "dd065271386dfdb2552caef1ae6e0c6f30e32783571abd85be328b9864bff8b6", + "app/src/test/js/android-form-submit.test.cjs": "7cbbb553dc2e657951b9195593b11add03597adad2710b4daa3e2cb807f87334", + "app/src/test/resources/commonmark-0.31.2.NOTICE": "610241b963a1a958c9465d99ec3f5778e7c6ef7251f9e119fed4c306b51641de", + "app/src/test/resources/commonmark-0.31.2.tsv": "dc27be954caac0ed8961299ca581a62aa4c68312091e68e52ab1e2bfe6aa5f5f", + "app/src/test/resources/extension-payload-identities-v1.json": "e451cf6b8efa208708db43dcb3a0545db1e73c610b72f488203fb4f147a490ab", + "app/src/test/resources/tinycast-grid-navigation.tsv": "da620f314fc39300beb7a11436715809ac1a9fd230fa4640c7f4f9c34b69aaf7", + "build.gradle.kts": "780d597cbe0f80d0103221a566db7574d1e07b17adca5bdbe7d6c728d77df12a", + "gradle.properties": "e43a00491832254a35cf5a979ef6de17f78c4e159d446be39319d2e3d3e46325", + "gradle/wrapper/gradle-wrapper.jar": "55243ef57851f12b070ad14f7f5bb8302daceeebc5bce5ece5fa6edb23e1145c", + "gradle/wrapper/gradle-wrapper.properties": "13287ffad6cf3064056ddad80d95b855132348930b2dc6c91490588c55b3ac7d", + "gradlew": "aed171fb114f82e6eaea4970a245a200e0582a7dcc8ec0891ca41b6e4a62b754", + "scripts/android_clipboard_recovery.py": "4aa2d03a100791544d282de37a2f62b6f7bfd94c47cc5611b6b6448ed8a946c1", + "scripts/android_form_documents_fixture.py": "ef44f5a9af1397fc8e8ea1924e36c2dec18d5c56c02e22f4925752daf1034841", + "scripts/android_test_cleanup.py": "1f4a1d70d251ec0a8294932388ce881da144c9c7d1c05df54df2c5b246d46373", + "scripts/extension_bundle_snapshot.py": "08ae0408a22e4f4c3c8a8b22af31b6a6a16d304dc0d14d5e489596dd9731a950", + "scripts/extension_manifest_catalog.py": "18c6048a0690e68dba3da1e8d11c5abccac16c3c26aa8803ff80abfd1dabe7e4", + "scripts/generate-emoji.py": "98f43c9a5941b4e65533e31ff7d7eaa4e697d8fecd4c7424297e6957e07abd53", + "scripts/generate-tinycast-grid-oracle.py": "bd53975673883b624d2553cd47687c5a3a760b17181a8c0621715ed1599b3118", + "scripts/package-nightly-update.py": "2a650baee0c7c76eadd360171e19686aad7b960fe34ebc780638c6b231032420", + "scripts/summarize-readiness.py": "e63d9d2ec435d2c369ae0be126bafb0b0507e903b03674f11a77ee10b428fe64", + "scripts/test-api-compatibility.py": "1ba4bf24535130bfd59a5f1d9d4830ca075e7158fc2cbe316696fcadb6108065", + "scripts/test-assistant-touch.py": "fd5a4acfdd19ddc60eb467fea3c7d2e8ab7ac717bea35c76d007577c23235a54", + "scripts/test-calculator-intent.py": "93ef5653c4d0c153d8f216c9fd74557089a964eaab80c84c85ab5460ec58f1a1", + "scripts/test-configurable-shortcuts.py": "56f4581f78265ec2c28faa1da115ae10a8349cf47e10db60bfba3e88f0cc3e73", + "scripts/test-extension-grid.py": "26f15b12f40277cbd3b6b874c58e41ab7e26735ef8e70634e5b5eb53b5652560", + "scripts/test-extension-workflows.py": "c6cce4d533b45655a7763305379107840a93a1a953be0322a869c7505ffc0997", + "scripts/test-global-shortcut.py": "4a0f57d16dfccbd0c7b33d6b78a841ccad030c4bad6fb108ac80f15dc89f6d6a", + "scripts/test-modifier-taps-hardware.py": "b0d2da7fd2410095d65ef20e25cd9b8e90f9b480849dfd5e497f75d4d713139c", + "scripts/test-modifier-taps.py": "8cb08d228371c90f995ae2246ef0a92daf6c81724c11a1ac67374ed0dd347dab", + "scripts/test-readiness-benchmark.py": "1f92dc1989f1ff36c82433d6eaab1e2c896abf7541a24a9b215c109e49d1a7d9", + "scripts/test-restart-files.py": "65f1c311df77634f746cb155d831acf1fa4d8cf05d0e1dabc9d372bf1e842065", + "scripts/test-reviewed-text-input.py": "4e9ab25f0b1bce00277d0dde5a37a29ab8cbbdb9900699c5bdfd9cfa4b9bb248", + "scripts/test-reviewed-text-process-recreation.py": "eecd547c48ad2bbce2d8bae62bbed26a2484e0b5d97ebb7cb989ba98d4de2a23", + "scripts/test-search-header.py": "772cb70442bbf28086beb8087ebce94d02ba6cc10e6acf8c2cf91a0d8d5b39d0", + "scripts/test-self-updates.py": "4ff148ea90c3a148a1eacf74116db288e5e9c282f69e0c331caa6f22b1a40889", + "scripts/test-startup-performance.py": "9ac605bf3347fde625d279767bb8fc4de76ae82f099e7d8351416fa5bc9250ae", + "scripts/test-touch-readability.py": "d9ae59ab3db56d63cb5c959c200263b71acd0e04c305dce4e9ceb8a395933fb6", + "scripts/test-webview-engine.py": "e02a804be8040b5d6ec5b00c09eaa1492b4f702fbbfbcd491099bd5226c4edea", + "scripts/tests/test_android_clipboard_recovery.py": "b260d3adcfa33e2641affebee9bebb1676097b4a24bbdbeb89cef7f3fc889176", + "scripts/tests/test_android_form_documents_fixture.py": "c2b573793d6c5d48fe9dc8e75ffc554e11818e319507080a4b96aa4e24e1fc03", + "scripts/tests/test_android_test_cleanup.py": "49c8831c517f0777f46952376f5d3b783322eeb25f063d69a9b1bc2f8cde01cf", + "scripts/tests/test_extension_bundle_snapshot.py": "382561907129ac58b7e20b963c1afcbc9bc1a03b7e18da64e7d61927a8b15783", + "scripts/tests/test_extension_manifest_catalog.py": "57af21edf39e3e4084453830eed62d3c052ba8d8a4f942d3d69807e2cd4b69a6", + "scripts/tests/test_extension_workflow_guards.py": "1cea982b85cf759e691471cad72b8e2cbdccdf3c2ccc6c483b1ef01b49002a3f", + "scripts/tests/test_private_archive_transport.py": "168c1607d4e1efa7537241cf362316ce354706af33465dc63e73d210ab0327d1", + "scripts/tests/test_private_path_observation.py": "3c0fff3062ac9b43aab67ed4ab2d53b92fa39f9af9e0ada9d197856a1df94e95", + "scripts/tests/test_reviewed_text_archives.py": "0308a50c148c97ed50381e894eabd43ec6e374878f99b810244c24e25f1a626e", + "scripts/tests/test_reviewed_text_runner_guards.py": "a3d489fe141be669374ecd0b3a6231afc5efdf4abfc6a74f7d25efec4e67038c", + "scripts/tests/test_webview_engine_runner.py": "846ee3b34578f92bd3f728eac4044c5ef4481478e3ec9d744e848e0094119168", + "scripts/verify-recorded-workflow-catalog.py": "fc0ec3b595b3a892238a4e0cc19b79ca092e8dcbe3e4af1d261e4874f984c2d5", + "settings.gradle.kts": "6a8db88135b364d8bd2facb607fc4e9e9476c171d2b7f7f3a0892c57a9ee6487" + }, + "test_apk_sha256": "ba781590ada744782b7ccfa9d055db96bd3810a303e50f6e18bb2672c5305062", + "test_zip_payload_sha256": { + "classes.dex": "35f32eb3c6a38b451d1d47b53e49faa8fdca4db12df6e8e6385f44f1f5c1d403", + "classes2.dex": "468450c6993a81875894c0a142093a2e6dad1778f192763895e927a2f07c1d71", + "classes3.dex": "0313599387afcfc6eb9e70f0f99a6d3d0869da4f652fbb127aa2e50feee171cf", + "classes4.dex": "f965a33ce4c83341f1321d10a2e8a8d82c84bc73bd124956933d76e50bd9f869", + "classes5.dex": "4cb87f7ace7c665d16755b3466eca73c87cc7167104d4b901b704bb2a4c9d30b", + "assets/owned-detail-fixture.js": "873d3f25f95271029e31779b0920b5955a2908a820a07652b58efa21a2358cfd", + "AndroidManifest.xml": "caff3c10989799f80e8bea4722a1e2e143b75cef522c7aff7211e7c79704f416", + "res/color/vector_tint_color.xml": "4bbb4ef3e0e3db260a05d794047a1765e420d699ee5673e90b57ff682a2fe34e", + "res/color/vector_tint_theme_color.xml": "cf34dc5bdb4a6d1568143e115ac4e34448383ac772862ef0fdbb7fe8936c6dd3", + "res/drawable-anydpi-v21/ic_call_answer.xml": "5f6376dfe199d8a6e40033d3e623989d052c9b2f974d00c824fbb8b76fc6fde8", + "res/drawable-anydpi-v21/ic_call_answer_low.xml": "8f9acacabaf2dfb4bb53dab7ce7bec9c1451ce0a0219ffaa41760ea82da3d2d6", + "res/drawable-anydpi-v21/ic_call_answer_video.xml": "5d4cdaae5838ad9442c085f951b766b2808bff13b8c85a14e0bcf8571514492c", + "res/drawable-anydpi-v21/ic_call_answer_video_low.xml": "4a959580080ebb1d822a2459a4234d2abf0dd0b65d9c28bda8c258dafc888c51", + "res/drawable-anydpi-v21/ic_call_decline.xml": "2d825b79cce60203492ff09a04826db0ac8d9eb9bc0fb9fb139ae1aa5cde0f67", + "res/drawable-anydpi-v21/ic_call_decline_low.xml": "c8321364802409baf4d76e2a84e303871585bdc95b0395040c5ecea0e2051105", + "res/drawable-hdpi-v4/ic_call_answer.png": "5c80d88a7b82ef5833255bf70ff1c26c3efb2a92ae90cac222f3200f59e0b1ea", + "res/drawable-hdpi-v4/ic_call_answer_low.png": "5c80d88a7b82ef5833255bf70ff1c26c3efb2a92ae90cac222f3200f59e0b1ea", + "res/drawable-hdpi-v4/ic_call_answer_video.png": "6adcfc9dd1e1b82b985d223fc8a01c8e8f0dd3b9051d38062674b2380af79a50", + "res/drawable-hdpi-v4/ic_call_answer_video_low.png": "6adcfc9dd1e1b82b985d223fc8a01c8e8f0dd3b9051d38062674b2380af79a50", + "res/drawable-hdpi-v4/ic_call_decline.png": "12ec9f9ad5fa3d7d897114af6c2297b66f31cb056e43daffbe80d23f6f66396d", + "res/drawable-hdpi-v4/ic_call_decline_low.png": "12ec9f9ad5fa3d7d897114af6c2297b66f31cb056e43daffbe80d23f6f66396d", + "res/drawable-hdpi-v4/notification_bg_low_normal.9.png": "21f0b55280be10b187ceff8edef4a5a7047683e6e9fcf47de410aa3839f41094", + "res/drawable-hdpi-v4/notification_bg_low_pressed.9.png": "42aee0b03883e94df5e543348a397d1302c1b8221895871a83b81899f5a9647b", + "res/drawable-hdpi-v4/notification_bg_normal.9.png": "0c6328c7b2420570a7ec38b3beb3bac9a29d895ac1ab7239315aba7266418593", + "res/drawable-hdpi-v4/notification_bg_normal_pressed.9.png": "18b328d8017e677d5aad3dbd66bae356b5cac978c6f0670938ea648e51d0eb66", + "res/drawable-hdpi-v4/notification_oversize_large_icon_bg.png": "aa00088d0d9fd97bd92ed9ffd29b54bb69a48a984aa73448ce553fb9d812be41", + "res/drawable-hdpi-v4/notify_panel_notification_icon_bg.png": "8430ec003e003f3f2ba2f78d48fd150e25407667e530e82e87a7d4841c0fd676", + "res/drawable-ldpi-v4/ic_call_answer.png": "6d34a8bb29be26e343781603588506f33bd1b93732a1c1bc9fd84678aa36b178", + "res/drawable-ldpi-v4/ic_call_answer_low.png": "6d34a8bb29be26e343781603588506f33bd1b93732a1c1bc9fd84678aa36b178", + "res/drawable-ldpi-v4/ic_call_answer_video.png": "66356f564f051a568e25071f60da312c418309f9129773aceb2246773458681c", + "res/drawable-ldpi-v4/ic_call_answer_video_low.png": "66356f564f051a568e25071f60da312c418309f9129773aceb2246773458681c", + "res/drawable-ldpi-v4/ic_call_decline.png": "a18cdaaf3742b1a3d4f484fa15d00fa34afb21495884301aafa3213338661ed6", + "res/drawable-ldpi-v4/ic_call_decline_low.png": "a18cdaaf3742b1a3d4f484fa15d00fa34afb21495884301aafa3213338661ed6", + "res/drawable-mdpi-v4/ic_call_answer.png": "f2ff62f473d8a5e00a8b6c81c15be9a0536471c3d5a81e37d04bc3356ea81ca0", + "res/drawable-mdpi-v4/ic_call_answer_low.png": "f2ff62f473d8a5e00a8b6c81c15be9a0536471c3d5a81e37d04bc3356ea81ca0", + "res/drawable-mdpi-v4/ic_call_answer_video.png": "6306048ba5f7eca43e7bdadeefa9412180508486fd543e02de93d2a013e223f0", + "res/drawable-mdpi-v4/ic_call_answer_video_low.png": "6306048ba5f7eca43e7bdadeefa9412180508486fd543e02de93d2a013e223f0", + "res/drawable-mdpi-v4/ic_call_decline.png": "7e87b3e0229126dc3c2bdaddcd8f330f3bb5f7613a05024c3cd6445dd161f788", + "res/drawable-mdpi-v4/ic_call_decline_low.png": "7e87b3e0229126dc3c2bdaddcd8f330f3bb5f7613a05024c3cd6445dd161f788", + "res/drawable-mdpi-v4/notification_bg_low_normal.9.png": "2f7fbda0ba6e53e9a47e2fc0e24e32c447c613a5808c2d6285dc651e83a07ad7", + "res/drawable-mdpi-v4/notification_bg_low_pressed.9.png": "e17761ed280edd93d7141bd504b70f9e9e15a8652288d9e6333bf4ce964ef844", + "res/drawable-mdpi-v4/notification_bg_normal.9.png": "a8676a1793ac8310ffb12986232df66df092d29c242aeedc2b73556c010d38dc", + "res/drawable-mdpi-v4/notification_bg_normal_pressed.9.png": "99c14d6855b8be296d58017d3751b8dc849c47b6d1d80ab614ff9075080e461b", + "res/drawable-mdpi-v4/notify_panel_notification_icon_bg.png": "0d773e62c756422313262846c787e58f67e0ee87e45e1ae9942002e816c4cb9e", + "res/drawable-v21/notification_action_background.xml": "2f768c089cefa18cf7f1fde7f602410bf38998de5f9073a15ea83106c25e3c30", + "res/drawable-xhdpi-v4/ic_call_answer.png": "e64c2e57627e24ec1ed37e67344c2bf31d1d6bdd2d8d715840c1edf0bd1425b6", + "res/drawable-xhdpi-v4/ic_call_answer_low.png": "e64c2e57627e24ec1ed37e67344c2bf31d1d6bdd2d8d715840c1edf0bd1425b6", + "res/drawable-xhdpi-v4/ic_call_answer_video.png": "5d02a81102644428ca639aec3df626eeb4a839a9ddc76fc2b158b04461d7f00f", + "res/drawable-xhdpi-v4/ic_call_answer_video_low.png": "5d02a81102644428ca639aec3df626eeb4a839a9ddc76fc2b158b04461d7f00f", + "res/drawable-xhdpi-v4/ic_call_decline.png": "9a9a30c305022a2f8e075d2ed7d33f5c7711bba8d0d0385511fdb62f89f208e3", + "res/drawable-xhdpi-v4/ic_call_decline_low.png": "9a9a30c305022a2f8e075d2ed7d33f5c7711bba8d0d0385511fdb62f89f208e3", + "res/drawable-xhdpi-v4/notification_bg_low_normal.9.png": "3e09afa21c45372c035598c017c8fb405a6d678e6cb84dc857581cb3b40e482d", + "res/drawable-xhdpi-v4/notification_bg_low_pressed.9.png": "20343222f9f79dd565c3a2248494d452e70820ac1c437173c38badd45f962afd", + "res/drawable-xhdpi-v4/notification_bg_normal.9.png": "559bf783d765c02338e97952bdc9c6689c7ff99090b8c9813369118da8b080f0", + "res/drawable-xhdpi-v4/notification_bg_normal_pressed.9.png": "d27af435101ca4cbec0c840bd30687918cd39eb83aab1487420855623a45998b", + "res/drawable-xhdpi-v4/notify_panel_notification_icon_bg.png": "b44eeda34d7a529c2fe55719eb098fa29707caa91d18de06a7a775d6e6bcf973", + "res/drawable-xxhdpi-v4/ic_call_answer.png": "86763a30af2a934c7c13b123b36443d1d17918b71c6149bc6ee80115b872593d", + "res/drawable-xxhdpi-v4/ic_call_answer_low.png": "86763a30af2a934c7c13b123b36443d1d17918b71c6149bc6ee80115b872593d", + "res/drawable-xxhdpi-v4/ic_call_answer_video.png": "ca48f604262f2b4ef8b100c73130efe2ad33ef8c2a2c1b3516f24f51b7b04665", + "res/drawable-xxhdpi-v4/ic_call_answer_video_low.png": "ca48f604262f2b4ef8b100c73130efe2ad33ef8c2a2c1b3516f24f51b7b04665", + "res/drawable-xxhdpi-v4/ic_call_decline.png": "87adad32e0ec19c4e920420bf3a06c9f94f6128ed0d866a1891628aeab2cef06", + "res/drawable-xxhdpi-v4/ic_call_decline_low.png": "87adad32e0ec19c4e920420bf3a06c9f94f6128ed0d866a1891628aeab2cef06", + "res/drawable-xxxhdpi-v4/ic_call_answer.png": "ec698a3217bce74d8bc4a44bb008f2dbd3d1aebff1af1e9641805143dbf9fa87", + "res/drawable-xxxhdpi-v4/ic_call_answer_low.png": "ec698a3217bce74d8bc4a44bb008f2dbd3d1aebff1af1e9641805143dbf9fa87", + "res/drawable-xxxhdpi-v4/ic_call_answer_video.png": "4c717ce1ffb551c765981add65d1956132d8f522337de2866b045f0a60485426", + "res/drawable-xxxhdpi-v4/ic_call_answer_video_low.png": "4c717ce1ffb551c765981add65d1956132d8f522337de2866b045f0a60485426", + "res/drawable-xxxhdpi-v4/ic_call_decline.png": "ab73b729bb95878120a3bdc8dc915f3aaa1d7070fc644a0de64d40941ad507ed", + "res/drawable-xxxhdpi-v4/ic_call_decline_low.png": "ab73b729bb95878120a3bdc8dc915f3aaa1d7070fc644a0de64d40941ad507ed", + "res/drawable/notification_bg.xml": "20a1a2e83aa9806faeb234fc0a1094bc079adf5a25ef4cfef1491c5ca3b3c745", + "res/drawable/notification_bg_low.xml": "49041ec87bb2ec2a8bc23685c8eb2c2d5297aa39f1412dc7aa6639aeec12ee49", + "res/drawable/notification_icon_background.xml": "b143ee7fcbba209f17607a720502d755f085ec75380ad6fbd6f99de6583f0a40", + "res/drawable/notification_tile_bg.xml": "fb5d113d15ff98da0eab3cb9e178e909ad5e261f30a24add0267e2827b4c7774", + "res/layout-v21/notification_action.xml": "4e046a162878e2f8796c6380f0c5a9a7b40f1ffb251478ecfcbbe3b434bd1178", + "res/layout-v21/notification_action_tombstone.xml": "a9657e68fd0c10ced5011b67b9e37a5ebe262957ef15fa3679a9a1f8784fee21", + "res/layout-v21/notification_template_custom_big.xml": "4879194cce032a3c5ea58d2ec796766b00bb057a4ca4bc11c56ed1830a61c7d2", + "res/layout-v21/notification_template_icon_group.xml": "97d5723ad66c683d88d57918e197cb33d2dc1628aa77299e42e132622c2c948e", + "res/layout/custom_dialog.xml": "edd4e27b3f2407a02248205a2eb50288170e4201249bfeac074749ea60390103", + "res/layout/ime_base_split_test_activity.xml": "37ff040591f96786bfaf9d3d937fedf2f2f97e218c06beb3e7fe8a2442a181a8", + "res/layout/ime_secondary_split_test_activity.xml": "0034556846afe7278a6d1264855405a0c3ae65a81a6a05f9ba4dc0136a589685", + "res/layout/notification_template_part_chronometer.xml": "9ae2b91ed155032cb90ee4cfead57eba2728d0e6ff262d2275ff63516604fc94", + "res/layout/notification_template_part_time.xml": "4a838e479642de5ee2cd1d0785b35d195995fcf27b0b9561140a6cdccbfe3ad6", + "res/xml/native_input_test_ime.xml": "d560413501650fb393941eb5e8e36b30aed25a309dc294cc0435f74d6dfe326d", + "resources.arsc": "a743d0f25129f83afc5a9790dfabdd4c6937b071c930014b432aa9a2fd74e4eb", + "LICENSE-junit.txt": "9648bb2891b9813970bddb68d4be8a5e6ec8280d0180a53dfb29236b579c55bb", + "META-INF/androidx.compose.ui_ui-test-junit4.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-test.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.test.uiautomator_uiautomator.version": "a42caf4a54bbbe27aa45b6efbc6356c5e299b19763e728b6cdb7201b02ebbe36", + "META-INF/kotlinx_coroutines_test.version": "179f9b723b6508aa1d6ce99991e8cd549ca819ee1b9b6102396c47815beffaaf", + "META-INF/services/kotlinx.coroutines.CoroutineExceptionHandler": "1b8e1a088e38c9bc8dd36517de1202651f06a9ca9eb0e6adad7305392289a94c", + "META-INF/services/kotlinx.coroutines.internal.MainDispatcherFactory": "90d3bc46060b2a33332bd2bc8122d5b03dd1a507718db830d5e809cc62c4490d", + "javax/annotation/CheckForNull.java": "4807942043605b325f0fefa243344db0d11e32cebd8f133df2b7c5d8486f2312", + "javax/annotation/CheckForSigned.java": "9c3d742fe9ab8e5fb08d5562ab0cb0255e2960facf94f83349be542b6557f3c1", + "javax/annotation/CheckReturnValue.java": "fc328c2dbc79fb3bc25d47a7f0486410fe8a04e6d6ceadf97f7ed44fa6dc0ebb", + "javax/annotation/Detainted.java": "7d272cf814d47c8cf89dd0d2f283ddfc88a26405122fd98f2842dbcb0789ed0e", + "javax/annotation/MatchesPattern.java": "ff2ffbca3823c1a3f5333630878068c724f67058264cca7396d9abef821897dd", + "javax/annotation/Nonnegative.java": "73b83d783bc7cdf7b5c9f4331a928154c6dc4e97ba349a5e5124e026ba4221b0", + "javax/annotation/Nonnull.java": "eb2d5ac7cd628dd3c59e5f7b14378fea531d5c76857df837cfe8f9a2ece1dddc", + "javax/annotation/Nullable.java": "511c9e8888bbdc13e0388eb5c3a882f43ff21160093b404c870ce94e83a1f509", + "javax/annotation/OverridingMethodsMustInvokeSuper.java": "5d786c4fff3f381babab9f745252dd80ba10210c402bd4c15161ce9b63decca6", + "javax/annotation/ParametersAreNonnullByDefault.java": "94233ca1ca4fb6d457bed883f8369019d4f0016be81d4e5ccfc01f5d50bf946e", + "javax/annotation/PropertyKey.java": "5559001d0f69e49487f1cc0cfa82d37e064b04436ccc7026a3d8a5aa30215d7d", + "javax/annotation/RegEx.java": "7b08d091734672f8f8f320fdaa7cde6ba48c786a2fdca94c9e2407e1e2af2aba", + "javax/annotation/Signed.java": "76633adce590e7c771ef7f727b575f9ae54389539d666677a9ca1a9e4256e374", + "javax/annotation/Syntax.java": "63c05bd38c7c279d147058d6e154a44ee1da62c92cc6849a573bdc6c345869e0", + "javax/annotation/Tainted.java": "9b755d095cf2c4a41a8e064b5bd0ab3e556845048b705d2cc98e8635b8bda6f2", + "javax/annotation/Untainted.java": "e44096a654f825c9f8f3fb9ba099f805155b3daf41918c177d7193558bb11981", + "javax/annotation/WillClose.java": "1c81ea1c7284c37c5d66b436fc63267877667da03b2b646fc6c11ea2a8dfac08", + "javax/annotation/WillCloseWhenClosed.java": "b3c6e342b4dfc4c62d33857f8920cfe077e9f2c31379d8f627495e0c4a06cb13", + "javax/annotation/WillNotClose.java": "6c258758fcf54c9657052dc9e86d0abc780f8a4580804e3a0a8b8b376529e453", + "javax/annotation/concurrent/GuardedBy.java": "f2650971001cbfd4c127487e0115e7a9539d64fd6a98dd8dd0675330ae3b790d", + "javax/annotation/concurrent/Immutable.java": "47f9a076a4396c492a373eec9622a15497b56b633a67af97ca51bd3b1142a08d", + "javax/annotation/concurrent/NotThreadSafe.java": "73060a8907c01ee7a72bfbd9c74a037ff1953bd7a4510b8997fdcec0a5741a19", + "javax/annotation/concurrent/ThreadSafe.java": "bcfd9f7a27af49a6505734ab03259f02a7222d3bd052821caa6d94d930bdfc9a", + "javax/annotation/meta/Exclusive.java": "0b0405f1dc140ac2ebdb4cdd3bbbfdcf19e22d724bc57a89d530b33e8c9b7ff5", + "javax/annotation/meta/Exhaustive.java": "c9b4085041acd1602691ee49535a6a91afc2b67d6bd9d9fb4e1ab2169d627a6f", + "javax/annotation/meta/TypeQualifier.java": "828fffa618ac1cda2fc07fcc0e5e58785aadfe4bc481c0e4e8dc5fc23d662ce5", + "javax/annotation/meta/TypeQualifierDefault.java": "27faa048d7c23bd6d79d3515816ec1f356758ae140c0edc702a74b91f9215395", + "javax/annotation/meta/TypeQualifierNickname.java": "309cf58e837f1bc63183fc9443b231904157f1ac25bfee0e5cebcae52f44eb51", + "javax/annotation/meta/TypeQualifierValidator.java": "4d1e2ca6f465ce130a8233086053acc991e5fd389f7e31c88a0cd19ef32c666a", + "javax/annotation/meta/When.java": "d79dfa99e03fa1eb6d0e6f024833ef16c1029b98975e2e767f760b2dbf4d8790", + "junit/runner/logo.gif": "345b5e2207a524e0019779d13f0f8ae51359f894a230479467761331e3d1ca16", + "junit/runner/smalllogo.gif": "b4819008f181bf3e0b47254f72149c62a556a56fc0358d3143e405b191de2081" + }, + "old_app_source": "6c5825bf0da60ad9b452ec4550aa49d60704e677", + "old_app_sha256": "66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c", + "scope": "Compile the new pointer contracts against unchanged production sources; baseline controls execute the retained reviewed old APK, not this compilation app." +} diff --git a/docs/validation/keyboard-toggle/identities/baseline-harness/test-manifest.xml b/docs/validation/keyboard-toggle/identities/baseline-harness/test-manifest.xml new file mode 100644 index 00000000..ec741fb2 --- /dev/null +++ b/docs/validation/keyboard-toggle/identities/baseline-harness/test-manifest.xml @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/identities/candidate-v1/app-manifest.xml b/docs/validation/keyboard-toggle/identities/candidate-v1/app-manifest.xml new file mode 100644 index 00000000..c25bd493 --- /dev/null +++ b/docs/validation/keyboard-toggle/identities/candidate-v1/app-manifest.xml @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/identities/candidate-v1/identity.json b/docs/validation/keyboard-toggle/identities/candidate-v1/identity.json new file mode 100644 index 00000000..5d367259 --- /dev/null +++ b/docs/validation/keyboard-toggle/identities/candidate-v1/identity.json @@ -0,0 +1,581 @@ +{ + "source_commit": "1355f84cb4f3cc93ae732a5ae9028c42747f0f8e", + "app_source": "1355f84cb4f3cc93ae732a5ae9028c42747f0f8e", + "test_source": "1355f84cb4f3cc93ae732a5ae9028c42747f0f8e", + "controller_source": "1355f84cb4f3cc93ae732a5ae9028c42747f0f8e", + "build_commit_property": "1355f84cb4f3cc93ae732a5ae9028c42747f0f8e", + "source_sha256": { + "app/build.gradle.kts": "28f41ac518c91f15c98221d0511870a5409b9f35ae008acfdd5f667db06bcadf", + "app/src/androidTest/AndroidManifest.xml": "63c98a685e9dd67d8150af8981832d34271fb37a92e46444eec52728f559d609", + "app/src/androidTest/assets/owned-detail-fixture.js": "873d3f25f95271029e31779b0920b5955a2908a820a07652b58efa21a2358cfd", + "app/src/androidTest/java/dev/tinycast/android/ActivationDeviceTest.kt": "2f2fe66a5c3628433feeb6db33e02be43ca3f267b39ec541f2e3330fc1142974", + "app/src/androidTest/java/dev/tinycast/android/AssistantDeviceTest.kt": "1ecebcf20fe9aa7aa63701c81500195eddd1ae88618d89f31105fecc58189b6b", + "app/src/androidTest/java/dev/tinycast/android/AssistantTouchDeviceTest.kt": "1f33a283e5b1f05a5a74dbb76bc3ff8920193cd761edd1cce1e61cb733cb9874", + "app/src/androidTest/java/dev/tinycast/android/BackupDeviceTest.kt": "56c56d6a652524f7fc7952b1478552314b1e465ace5c7216385d7f2ea3cf4b6c", + "app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt": "e738e5b09aa6128343abe628ed7f93571b9a87c1eb95e78f00c617aadcf348b4", + "app/src/androidTest/java/dev/tinycast/android/CalculatorIntentDeviceTest.kt": "628ddcef4b50880170fba97cd925fefc5f463f632799d9e2686e7512b2bbc15f", + "app/src/androidTest/java/dev/tinycast/android/ClipboardApiDeviceTest.kt": "e53bbc080d17b59aae6280b7b817a3c81b4df684dcfd5ca787a993d89caf5de4", + "app/src/androidTest/java/dev/tinycast/android/ClipboardEvidence.kt": "c882a7435cdca3bbdf68da66a6e8ef23bce932fb5746ba09c61bded5b9c98e9d", + "app/src/androidTest/java/dev/tinycast/android/ClipboardEvidenceDeviceTest.kt": "dfdb64344886b7e5d4b54f04fa4560f169e8cb8d7b7b238ba08358dcde73f854", + "app/src/androidTest/java/dev/tinycast/android/ClipboardRecoveryActivity.java": "48627f465b10c316cca7fdfa735928095328241b4fb98bf90e5c247add17345d", + "app/src/androidTest/java/dev/tinycast/android/DocumentProviderDeviceTest.kt": "13895d23b8758affd8889461ef660c442d3bfd1bb111fce08a064aa4b582aea2", + "app/src/androidTest/java/dev/tinycast/android/EmojiDeviceTest.kt": "ab9907d4e4acd7e52ed26f12ac14648271e5740784cdba678671ca8ad42fb415", + "app/src/androidTest/java/dev/tinycast/android/EnduranceDeviceTest.kt": "4802d3755ce6bc1cdf8e60c7cf9998a09ced8e0be6d9888f0b9d9a32ee332dc4", + "app/src/androidTest/java/dev/tinycast/android/ExtensionCommandHandoffDeviceTest.kt": "8c47f08b1d49a94dfd520840a0b0349199459da4ece8ff1adcacc46516b37f7b", + "app/src/androidTest/java/dev/tinycast/android/ExtensionDetailDeviceTest.kt": "d5bd83f6d174ca5d5c3c9d68551cc3a78bc90763060410bd5f3b67d9d9642025", + "app/src/androidTest/java/dev/tinycast/android/ExtensionDeviceTest.kt": "3087ff055f70cdf43d2565e22703b9c57445b5c3e1594126d60b0279c32b2640", + "app/src/androidTest/java/dev/tinycast/android/ExtensionEmptyViewDeviceTest.kt": "64e6b1e68c61cf67b24ba02d1e14a72d297b1bdeebbdf1008905d5619ce2558f", + "app/src/androidTest/java/dev/tinycast/android/ExtensionFormDeviceTest.kt": "6418f6ab517ead50a102b4834bff9c40988849fb3a2a1ef20f575d162b32e11b", + "app/src/androidTest/java/dev/tinycast/android/ExtensionGridDeviceTest.kt": "952b4f2988379c1545575d1332f8358acc9053e257a382b7549a27f6b4b40de3", + "app/src/androidTest/java/dev/tinycast/android/ExtensionMarkdownDeviceTest.kt": "e4b7daa9fd914335f572ef41665595104cdae5434682977a2d806ff63ef36c4f", + "app/src/androidTest/java/dev/tinycast/android/ExtensionPasteCopyDeviceTest.kt": "7bdd8e876153d4d46357402eab58cf89c0e8885823d21894c70882ed55b1da8e", + "app/src/androidTest/java/dev/tinycast/android/ExtensionRecordedTestsDeviceTest.kt": "1aa11011270b01a235bb052c6063da7eb5f7f726a7bb19f79aa54e7b8aa4ca42", + "app/src/androidTest/java/dev/tinycast/android/ExtensionSandboxDiagnosticDeviceTest.kt": "3e192cb65d011e021d5b47b6bde765e1136c2ddf7e039b5c9dce6dedbf39da15", + "app/src/androidTest/java/dev/tinycast/android/FeedbackReadabilityDeviceTest.kt": "86096d428b6554bcb6b8c9d7bc39b981baf1fd53f9367a33c97ce03c89020a82", + "app/src/androidTest/java/dev/tinycast/android/FolderDeviceTest.kt": "f3d54b0d788459d34470d2d87c8882cdfe30e8956a8886cd324dd63160f5628d", + "app/src/androidTest/java/dev/tinycast/android/FormDocumentsFixtureActivity.java": "434e72d8a0c977a83cbe6524cc51638eaff9cca5581c570ea58d4068ad2156a9", + "app/src/androidTest/java/dev/tinycast/android/FrozenBundleWorkflowDeviceTest.kt": "9d31d56f739caa2509610cf4c07abf70dfd5ea0aead7ec5c5673bde1ca04bc45", + "app/src/androidTest/java/dev/tinycast/android/InlinePaletteDeviceTest.kt": "ed2cfb9dc3c5218adfe0ae7b3cc1c60a69e6cf8c83ad434c2fc6b87d23bb2727", + "app/src/androidTest/java/dev/tinycast/android/LegacyInputDiagnosticDeviceTest.kt": "4966fac20af96b8597fb38a278d8f3ef89b7e335f3d3b6e5df00fb349ebabc55", + "app/src/androidTest/java/dev/tinycast/android/ModifierHardwareClipboardTest.kt": "141499cea10d4c80b8ef690fd43e985c066d1b420afa23895c32e75de737ec8d", + "app/src/androidTest/java/dev/tinycast/android/ModifierTapDeviceTest.kt": "d33bafba795569c15bab709a9830ca06ecffda9feb754492ec437d55c1d1cae1", + "app/src/androidTest/java/dev/tinycast/android/NativeEditableAssertions.kt": "be979c8e0f3e78b8d0e4482c2653769d732d24871a822b3761f5708a1e6a230b", + "app/src/androidTest/java/dev/tinycast/android/NativeInputCompatibilityDeviceTest.kt": "484dcb406a6b9fbc7851efd883029a43b303bdab799c9385e51a678ab91a51fc", + "app/src/androidTest/java/dev/tinycast/android/NativeInputTestIme.kt": "c3a766ae381e6e4a1b514b3890cdd220616df8e9b88208cdb9aa562ebd8f45ce", + "app/src/androidTest/java/dev/tinycast/android/OwnedFormDocumentsProvider.java": "67c22d543cb2136d81dc3544d8f63df94ce67f9524c7f19dc9c6b1b586713e89", + "app/src/androidTest/java/dev/tinycast/android/PaletteDeviceTest.kt": "7f5861ffec2e762c1e629519802c10d4b31e3bebd49a3c5867013c6aad77f3f4", + "app/src/androidTest/java/dev/tinycast/android/PaletteOverlayTest.kt": "0755f9aa38bdb5785d2cb8902157ce990b5b9825db0ae71847e11c8b1bd4b7aa", + "app/src/androidTest/java/dev/tinycast/android/PaletteStabilityDeviceTest.kt": "87896693541425799e7815d2fc1e3988e29afd9bba346da48183a91fa91be9c9", + "app/src/androidTest/java/dev/tinycast/android/ReadinessDeviceTest.kt": "c6f3ea767e9adc8384a3b662223ab57bef067fca8501509e0415111b711589f3", + "app/src/androidTest/java/dev/tinycast/android/ReadinessRegressionDeviceTest.kt": "3815d7aef28c0943999782217eabe14dd80fdd464476798bd0bf12a1d0be3c4a", + "app/src/androidTest/java/dev/tinycast/android/RecentDocumentDeviceTest.kt": "85af5ed0fd05c0716b8ac14b24e98397829ff8d241695999a0cfc68727923e40", + "app/src/androidTest/java/dev/tinycast/android/ReviewedTextCallerActivity.java": "640609575a0711566bf23f3028a5144e8aeae912604f9b7180912fd2c9b96200", + "app/src/androidTest/java/dev/tinycast/android/ReviewedTextClipboardCrashDeviceTest.kt": "6a1ebc4d90c8b5fa9a07f4b288c20b361297efbeaf7d4423eb211da47b4cf0c0", + "app/src/androidTest/java/dev/tinycast/android/ReviewedTextDeviceTest.kt": "31040a9d92e7e60d8026dda7119a9f7eedd2127ea6f50bfb308849f56b6fc0ac", + "app/src/androidTest/java/dev/tinycast/android/ReviewedTextLifecycleDeviceTest.kt": "2190f43dca4d7a7eca162a7e34f46d6091cfd114d83a5e4509946c1b912ce76f", + "app/src/androidTest/java/dev/tinycast/android/SettingsDeviceTest.kt": "dd9b9a2492c497a2a3ac3218d0833d2e8b536eb904975aa536b08361acc323a9", + "app/src/androidTest/java/dev/tinycast/android/SettingsRouteDeviceTest.kt": "8f6991670e740a07d3a6b30aea270b60e19f6d237c4b7b6afaf25200962ad736", + "app/src/androidTest/java/dev/tinycast/android/ShortcutDeviceTest.kt": "5376ede8474d5eaa4ec7ecb628d1056a5bfc963bd2a292d17d9b86eead8a5415", + "app/src/androidTest/java/dev/tinycast/android/ShortcutReadinessDeviceTest.kt": "41bdf7ab67a6899dc8a0b1b0f697135bc587dc401c9234eb56d25385eadf3dcf", + "app/src/androidTest/java/dev/tinycast/android/SystemSettingsDeviceTest.kt": "80e0c919fbf04916d2441aa3fbc4cccfac534f56c29dfd908e5ae2d917cfe13b", + "app/src/androidTest/java/dev/tinycast/android/TestAutomation.kt": "faad509cd41b06c4cc1087e5de8e0218abca78773603b2050bb2825c880588fb", + "app/src/androidTest/java/dev/tinycast/android/TouchReadabilityDeviceTest.kt": "6801d25bb0d9bc45899b04aeedba474e2ac8e5cc8cb168b6268e0305fb49345e", + "app/src/androidTest/java/dev/tinycast/android/TouchSearchDeviceTest.kt": "2b5160e88627fa2bcaeb4ddafc71d48f0d9acdf251369860b4f28580411e1c38", + "app/src/androidTest/java/dev/tinycast/android/UpdateDeviceTest.kt": "380e4d7702d2f8c68fd575581309113bc67abf3e5713bdb177cc3b920c4e2787", + "app/src/androidTest/java/dev/tinycast/android/UpdateSelfInstallDeviceTest.kt": "fc94ef400b54ee2cf8378d2b1632fff1521299f188a132f0330e930b40f80ed3", + "app/src/androidTest/java/dev/tinycast/android/UpdateSourceDeviceTest.kt": "76d91931dc044fdeb001a8325a321306011f2b0c54aa631bea25751c59f3ea50", + "app/src/androidTest/java/dev/tinycast/android/UpdateVerificationDeviceTest.kt": "cebe3033132db567affccc5419ec59a9639c87ceb88b20c38ffbba16c13b4592", + "app/src/androidTest/java/dev/tinycast/android/WebViewCompatibilityDeviceTest.kt": "ce5842cad291b9cb77aed19ecb9436dc80de24beb27e018797a7f84fb4a84895", + "app/src/androidTest/java/dev/tinycast/android/WebViewRecoveryDeviceTest.kt": "dd6ccf056187d184dd7fb6aa1eddeb76bd7037f4af21f749dbe379a7a2eeecde", + "app/src/androidTest/res/xml/native_input_test_ime.xml": "4aafc899939ff4b8883a80c6e00f7ff7413a08a603d485a15f1035c07760b50c", + "app/src/main/AndroidManifest.xml": "65fefcf86296b7103c2237f1e29bca7890bf33f6b5056f860c2e39ede371a55b", + "app/src/main/assets/ANDROIDSVG-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "app/src/main/assets/ANDROIDSVG-NOTICE": "2e61b715e3553494f46f43e5a88e8d26c56201e0558c8d5ab02946edb4f7dedf", + "app/src/main/assets/COMMONMARK-LICENSE": "11cfcf6da0142fb1971c1f40f5924ddded14454e2793d7f1dd87c9f4abe42dfd", + "app/src/main/assets/COPYING": "14609801e0e520dac851e75d993ca4c75c3842a3be468f6f7f04a16c03c824db", + "app/src/main/assets/GEMOJI-LICENSE": "7ea1d1fd0602e6623b9a65e791499a0ea5a2f5f60f91bfad78cbaeee19da26e6", + "app/src/main/assets/NOTICE.md": "c263e44ea9a845c4e4ec564eeca46ae0fc343f63ffd10685afbf74586647e0f6", + "app/src/main/assets/REACT-LICENSE": "da6d3703ed11cbe42bd212c725957c98da23cbff1998c05fa4b3d976d1a58e93", + "app/src/main/assets/RaycastRuntime.generated.js": "b306b45453cc8507037ff2822066475aae17def757a8ef72d4a4fc64c6494bb7", + "app/src/main/assets/android-runtime.js": "1b5dfa3f5b512f55322f27703bbebf15d1a8c4569c4c1712a6dd64541dd552aa", + "app/src/main/assets/emoji-catalog.tsv": "e49f1cc09c6f487a6e7b55590ecc171dcff390f720a9ce3820fe2038810d5d66", + "app/src/main/assets/extension-workflow-evidence-v1.json": "4e8adc22b7887996140190a999f1c7272556f2dd379d219c88e276e48aea0fa5", + "app/src/main/java/dev/tinycast/android/AndroidShortcuts.kt": "1738bc2fe26a117f3d00edddf2639cd49d118f9d91bd5f6eff86d6ee6804b68c", + "app/src/main/java/dev/tinycast/android/AssistantActivation.kt": "b5855f87a029362bd06a63136dea7a1572fff716d0c302056f2a3647d9d95560", + "app/src/main/java/dev/tinycast/android/Backup.kt": "97f09aa4c2cf7ef42473be8728be28cadd3f3ab14930a6804590c0544a7c104b", + "app/src/main/java/dev/tinycast/android/BackupUi.kt": "d13aabc798d7fb19746b09d28a38593792792b67e916824776413d2fbe82870f", + "app/src/main/java/dev/tinycast/android/CalculatorActions.kt": "e03e5645069dafb156556efac7bd465f632938f8a5a24a78be72dff0ee5d3947", + "app/src/main/java/dev/tinycast/android/CommandEngine.kt": "b6be72c82b19fb09e1bf44cd4dd4148b3dbb0c39098eb42f89e80f9ffa034f78", + "app/src/main/java/dev/tinycast/android/EmojiCatalog.kt": "4dd39955ec38adea02d0c1974ace2b33d86ae738efea0e59d3e62b9072c10b81", + "app/src/main/java/dev/tinycast/android/EmojiStore.kt": "f7f5dd63af030b9d179c70336f4b52789d23a318020b6f19ac0c24d20ba8cd8e", + "app/src/main/java/dev/tinycast/android/EmojiUi.kt": "e15b3a4b62f422dccf3ee25b724194889680210d2d43e3ff0353c368538f42f3", + "app/src/main/java/dev/tinycast/android/FolderGrantTransaction.kt": "11361d342e1e1598c85b5ea630f174c3a4590cbfaf9b430a30fbea2b9686a5c7", + "app/src/main/java/dev/tinycast/android/FolderIndex.kt": "6f1b1617a39c0c6e954a1b9b4da0d0d6af3ab7eeac25f2619e299621eec83a99", + "app/src/main/java/dev/tinycast/android/FolderSearch.kt": "4fcf90368ed70b49c192ab1b92b6e367d0a61643f928245f8447f542e745b60d", + "app/src/main/java/dev/tinycast/android/FolderSearchUi.kt": "dad0f473544f8e459aa301ad8eb91ec7380cebbe572e3e2be3f94443585a75c6", + "app/src/main/java/dev/tinycast/android/FolderStorageCoordinator.kt": "ff5491baf9d81ff19b04b35e33a503fc1656bfee9d8eb066453fdbe7e0f83bfb", + "app/src/main/java/dev/tinycast/android/MainActivity.kt": "2bc08e693d69ba4668a675c42dbcabb507755f8e3daf9ee01eaf62fd5744efe0", + "app/src/main/java/dev/tinycast/android/PaletteActionCapsule.kt": "f7228cdd6b6988fb049f0aaf1048d69cc8489e802b4cc42a2b4d6f9e7ceea3e0", + "app/src/main/java/dev/tinycast/android/PaletteColumn.kt": "cd6cdc348752bcc20bd631e2216abdd4ee0c91d9606aaab62ce0c01a145dd6aa", + "app/src/main/java/dev/tinycast/android/PaletteDialogs.kt": "99055192ab85f645a9d9c77d96064b06bba2f1435de503bc45be8f56b4de2dc5", + "app/src/main/java/dev/tinycast/android/PaletteFooter.kt": "5b62c907b46e5075975fc22d01771f5ab7c7f53e433692de55d92865231e967f", + "app/src/main/java/dev/tinycast/android/PaletteFrame.kt": "bfbc139e01a4276770644d5f4c1242016839fd98f5e2f21fa8afb31c886bc763", + "app/src/main/java/dev/tinycast/android/PaletteMenuOwnership.kt": "0be25f335246b8e47bf07ea057adf2045a20f9db5bee90a396109adfa7426174", + "app/src/main/java/dev/tinycast/android/PaletteMenus.kt": "43bc24a46a1ea0bac20f096a7d5d5256250c1c1069e0990bc958881830533dd3", + "app/src/main/java/dev/tinycast/android/PaletteScrollHistory.kt": "84e26b8544adc069c9f86e3273acd2254e2189f1680dec592570a261cdf87602", + "app/src/main/java/dev/tinycast/android/PaletteStore.kt": "7434fd21d100108a267e5790ecb705f4ca76c5dd0c86cc5b14bd9644ed58f57d", + "app/src/main/java/dev/tinycast/android/PaletteTheme.kt": "7afa29642b2bda9c9f669eaf6cdefcb977d14417d313547aff1ff807f4e37471", + "app/src/main/java/dev/tinycast/android/PaletteTileService.kt": "6f29825b3560944aae77935bc3abfb6a53e9577735dc622bf80e5ea1a1fbad00", + "app/src/main/java/dev/tinycast/android/PaletteUi.kt": "ae274c6ca3da3afc06a72bf14e77b86e22af35e67b77f4ef9c56984e58d0a3fa", + "app/src/main/java/dev/tinycast/android/PaletteViewport.kt": "7af62cfb3e5c210325dcb514246afadc3b5b5adbffda8cdded88100e8b7e44a3", + "app/src/main/java/dev/tinycast/android/RecentDocumentQueries.kt": "b60f5f6ac3458eb3659dd41aef01bcd20be9d59f3841ff0fa77c3eb6ee82c92b", + "app/src/main/java/dev/tinycast/android/ReviewedTextFlow.kt": "7daf246a7b8a608fe61e06f078bf3167c17df8f784f8779977ba6e87914526ea", + "app/src/main/java/dev/tinycast/android/ReviewedTextInput.kt": "ca681bb2c4eb91188a1550650bf5fb5f83569bf8ac954ab22abc0ce05ed17e73", + "app/src/main/java/dev/tinycast/android/ReviewedTextUi.kt": "5ded41175e114968aa1994c93ade551b21121db15c4a4a7ea5ff87deaff00d86", + "app/src/main/java/dev/tinycast/android/SearchClearButton.kt": "0d4b0bc74a48d1c2d13a62fcaec60adfa51c8966199ea71465dd3ecf40510229", + "app/src/main/java/dev/tinycast/android/SearchKeyboardButton.kt": "de0ca9aabf86115c30b2bacd3d73c85b250dd98fff36839950cefc0d0328889f", + "app/src/main/java/dev/tinycast/android/SettingsActivity.kt": "6c8a09cf51abdfc1f61c305b17e613f7b40f9960168aad2fafebdc31155a3601", + "app/src/main/java/dev/tinycast/android/SettingsUi.kt": "55886d17261a019fcddac77f25e655896217dadd081db6da23a2e519a6bad35b", + "app/src/main/java/dev/tinycast/android/ShortcutReadiness.kt": "83a422a837edc657f1f3faf94c155019eae73f1abcc8761379dcb2051ceed505", + "app/src/main/java/dev/tinycast/android/ShortcutUi.kt": "394fadd7890bbb2dd5f851bd5a290ebf19ad4e05fae64c321e529eeccd35c632", + "app/src/main/java/dev/tinycast/android/Shortcuts.kt": "14e08d112e3cc5689a5717f68dce1334d3c2bf92f4a7cfbc2057fdc96418a9b2", + "app/src/main/java/dev/tinycast/android/SystemSettings.kt": "c5c1535d12627b975f8f582437e53d02b4110f4bfb185d5c8d1e9307debc319a", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionCatalog.kt": "4427ae6610fcf75bc8f7ddeec9b869ab5b6698c9042280f9f0efff7ea3422e1e", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionCommandLaunch.kt": "2b253982bfcaa9c2b04178fcd38a04492e450352a459bdf375abc7948e6950c6", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImageInformation.kt": "8a5d61b8f7d594933c6797d12c60f1888b4f4f4ad7de35a306c206406733b5e0", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImagePolicy.kt": "f393349926cd371a67e3e59af0d0eb4db66d124e035259622c5558efb0035529", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImageTimeout.kt": "16e0fb6b411c4cf30fcbcafc7df536f72da84c1a208f0ea47ba1a0b612d762a8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImageUi.kt": "6da7920fd357a8106015a8a6da6d085fd2b8ae2bf26269c4aee670c84f7b0af0", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImages.kt": "a87f8cf7d311baefd09c62f8a09e282764561bc2fe27b61abe0aec14d8c273f4", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailUi.kt": "15be7bc728b4fa72841db59a6e72e9acece275a5a6315d4ba6b19af22fc06f21", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionEmptyView.kt": "4ab1b0093364ad790235b666fc70ec2642bb40692f3ce7fdb830e6bc514c61dd", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionEngineCompatibility.kt": "36a9b4b35d22bc364ecb1f46d2d9f029e3807315a2d35d2fd231b2a86e8b49c8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionEngineUi.kt": "6972248240f701edcc038ce70428dfd1a716e40894d616918469af3270aaa9cb", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormContract.kt": "6eba4aa3f33b19d4c452212b3bbb33c8ac0cbb8ae8e61963867e83094d6778ed", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormDateUi.kt": "e052fc6c27a78ac0df119c954f7ef43f720ce8ab72462bb712832b6dfdeae18f", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormDocuments.kt": "1071c99bd42ec6265991731022662729fd1ccc0269fee924b229f9ab8c2980fc", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormFileImport.kt": "c91ee69d460190918ee649a61a340429ac0478a59ab5e7ca824db8c17d1f5d00", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormFileUi.kt": "4241a498c65c255db94f833038a1f86a8cb06f27b4cecb3838cc20e953262b01", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormPickerBackdrop.kt": "dff8e4e37d38c1387bfd221f6c43c29272abfa144fff34ada0a0734a9c0f946d", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormSubmission.kt": "7f89b0ef7216cafb22c72a636b3b2998e5d71c9933bcd87d7c65a25b9a2bd9d8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormTagUi.kt": "509187d014c00ca027720e16d22934686d1c0491f10e5e151a27b574cde86a96", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormTypedValues.kt": "bd6b1c9b3e45101715916ee145ad41cfb1b74e206ae733f97d375c119f86af97", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormUi.kt": "bdb8f813a82e1e1860ebb08047b4a449a440ffe6d2a005d97c06debcbf4438c2", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionGridImages.kt": "777de62995b645310418d2f0da8adf87c450d8b7459d1c9abab0e9a02ce84258", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionGridModel.kt": "5b104c726a950f09a7cf890a14c0e4e654dfe8f5ea8b1b41468a0822f42a2f48", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionGridUi.kt": "c66cd6ee6d29cd2cc43d45ddbdc15f175ac5a5a39b332736b4cbddecdbf9e6bf", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionHttp.kt": "88ed57ca318c3e0c45e50f85e3157692d479bdae9636127869556cfb553abfe8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionLinks.kt": "cebfba7010fd2a20423527f8025413c21257ecd8e97ddc0dcb321b1c74db71f1", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionListUi.kt": "b02b632904d5d6be8f7b967cd10ccbc72d7e3d8fff3caf66c4fb444bce7de136", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionMarkdownModel.kt": "723a518700e335179c296e8b9b05ae9a899c8aaf93b8ca02b76476a46879d6ea", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionMarkdownUi.kt": "54d1b8dc6b09e55a7b0adf7d23903c9fb97551673a5695196e2e6f89259e304d", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionMetadataVisuals.kt": "882b7080d8f46cc9c9e2fd96fd1cc5cb0565cbb282bf3b04cad1c31b77a32290", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionPasteCopy.kt": "3ee4dfbb356c6ec02f50d8d525ca805c0d21468f49529b002e054ff9c03c71b8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionPayloadIdentity.kt": "66037b60818bc4941f58551e6c1401c18641a6da43f9f2477db9c9f7838e29f0", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionRuntime.kt": "8df6a1a357a7133ce451930cc174b7382d70db75906724358ae40db664f6402e", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionSelectionDelivery.kt": "f13388787b615343c214a861a619bdba88b6327dc939365a130e9e799169c397", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionSvgPolicy.kt": "1bed94b2ea8e6d2475526a0ed83d85724e32893fafc8b27bd8f2b58a95cd868a", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt": "009e3b23953be18ae09c76a849dd6ce3943dff6b4f2d4b40d846385044851b3f", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionWorkflowEvidence.kt": "98f65f5dbe1578b11fbb20d80f477a63b03659f7b11b1a7a6f526a4d6fe94379", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionWorkflowInspection.kt": "650fdb495d2e1e0ab5331fe8c517baaaffcfe7d15e7f56b5b3f6247a650d01ed", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionWorkflowUi.kt": "93e9af8898ccce7fa1ab8169f08926b1d9fa95ba5657c517d7224f9356488c3d", + "app/src/main/java/dev/tinycast/android/extensions/NodeCpuInfo.kt": "eea176a7259e8f3736878886350610a84a23a6d2799f5337f5c8b07a8fefa398", + "app/src/main/java/dev/tinycast/android/extensions/WeakValueTokens.kt": "5c4d6f5c5b0d7170b554091e1b9cd9d551119ea60d7fe7f03946eb70f498c34d", + "app/src/main/java/dev/tinycast/android/updates/AppUpdates.kt": "63ace29d7dc29e005ffbbdde31cbac4e1d923732604b1e43e6a4db8a3285b508", + "app/src/main/java/dev/tinycast/android/updates/UpdatePolicy.kt": "350a9142ebfc663cd4a0c982ab220fb5f1e3399bfb3207c980ea20fd4c5c4e6e", + "app/src/main/java/dev/tinycast/android/updates/UpdateSource.kt": "aa860f14bd3a9f39e19899f1927fb7a790c54bb4f2704651253d8f867bb3c100", + "app/src/main/java/dev/tinycast/android/updates/UpdateUi.kt": "0bceb6a4221787a58dfb14ee1bcdcd266388720ca8862bd705cfeb10cfe52457", + "app/src/main/res/drawable/ic_launcher.xml": "104e38ffdf3214de23909b7896392f4a974e4fcbcc778c447d5d7a9ce56380af", + "app/src/main/res/drawable/ic_palette_tile.xml": "e063a6c4a1a25d6717a31bc355543d76c7d1babf8e9556e68b1b5e6a2b860748", + "app/src/main/res/values/styles.xml": "de4ad14f9ef41aaa4ffc824af155831579fa1194af5055edd112efee5042f5e1", + "app/src/main/res/xml/assistant_service.xml": "1e9e560563a7d0260fc83126d3a9bf027bf6357adfc811b43bc3224290c77ddf", + "app/src/main/res/xml/data_extraction_rules.xml": "cb4d1da1c1bd38761a9a08cc4d8d1b55839fcc14a6e19badb653f75b23c20eca", + "app/src/main/res/xml/keyboard_service.xml": "b1839c96988c03fea26ce4ed5932b1315013f3d2c16165993afc17368ab7bdd4", + "app/src/test/java/dev/tinycast/android/BackupPlannerTest.kt": "12a55d3644b5094b84cad2e88a5432738021fc8d7c59c232d4e5fc4c2c9a1454", + "app/src/test/java/dev/tinycast/android/CalculatorActionsTest.kt": "e803682a82b89c9703fcfbcbb82424eafef6bae6a13092953a3dc2c877816509", + "app/src/test/java/dev/tinycast/android/CommandEngineTest.kt": "65d9d198e8e1a188e4dcfd5551ced8f558f87a106f42b1d02a1432e8d6b7c234", + "app/src/test/java/dev/tinycast/android/CommonMarkPrimaryConformanceTest.kt": "ceb2ca14cc003385533bdd73b8beefffe92740887537b74c2146160621a23fcd", + "app/src/test/java/dev/tinycast/android/EmojiCatalogTest.kt": "9d70ef96696215e14e561d73f5a41f0b1a8272c3b58e5ad5a8438c31bc53aaa5", + "app/src/test/java/dev/tinycast/android/ExtensionCommandLaunchTest.kt": "f45df47e1740873ed7e771de72a650d9df88cd31bbcf2fd3abf67e3999700291", + "app/src/test/java/dev/tinycast/android/ExtensionDetailImagePolicyTest.kt": "7ec37a8870b70e3df0e3110f8b60ccc94185fedeaf1c39c76a00485dd4ca37d5", + "app/src/test/java/dev/tinycast/android/ExtensionDetailImageTimeoutTest.kt": "839216fc2d395cbd171676f32bfe77b894730a29a12127ec916c1d88b18dfb3d", + "app/src/test/java/dev/tinycast/android/ExtensionEngineCompatibilityTest.kt": "af9e76d4f6e7a6f193603f2db0169c95c7aadaca842d430c6178874f62840b1f", + "app/src/test/java/dev/tinycast/android/ExtensionFormContractTest.kt": "432d658e2a177312105e2ec86db2c59d0625086e86464a7ff946acb61c07e283", + "app/src/test/java/dev/tinycast/android/ExtensionFormFileImportTest.kt": "784f5b78f1dfd0d23ca653b36fc59bd13cba42e68c708c499678ac1ce474b673", + "app/src/test/java/dev/tinycast/android/ExtensionFormSubmissionTest.kt": "4bbdd8068cd95c314f7cf7aa156c7928cd815c5da11ef5f2cab1b4c5d23dd7d5", + "app/src/test/java/dev/tinycast/android/ExtensionFormTypedValuesTest.kt": "3a485a387e1527163d4318c3f0863b743bff02fe4e485adfff490d95cd554395", + "app/src/test/java/dev/tinycast/android/ExtensionFormValuesTest.kt": "6bc5bc8caaa5763e12dc3136bbba1d99249db10387c163cb1efeb0ae03f09d2a", + "app/src/test/java/dev/tinycast/android/ExtensionGridContractTest.kt": "50681a34c624a01867f287c66523d653e1931cf759f5e2926dda60feb85fa2b3", + "app/src/test/java/dev/tinycast/android/ExtensionGridNavigationTest.kt": "94ffe218ed5f9411210c2599db2a10dcd20c1a94655ef53e8cac1c574318b68f", + "app/src/test/java/dev/tinycast/android/ExtensionHttpTest.kt": "76917bbbdcc33dcc90d9b152d5a3e478fd981139e1df1d9edc0916e4f81b8e76", + "app/src/test/java/dev/tinycast/android/ExtensionMarkdownModelTest.kt": "fbeee6a80280ec27b660cc53222ef42f0e9ff5f5ce7ec5e02dede9d6b1c9222b", + "app/src/test/java/dev/tinycast/android/ExtensionMetadataVisualsTest.kt": "6f8653f4ed71138ac4fb0353e427d5b6775f54ec3600177ec6eae49dbc81598e", + "app/src/test/java/dev/tinycast/android/ExtensionPasteCopyTest.kt": "582ebddff12c96a504dd12a502ca851fc5d037e92f1d3ce98240eb162002b3bc", + "app/src/test/java/dev/tinycast/android/ExtensionPayloadIdentityTest.kt": "f59183b3224aab2923d9eb1ae598d1fa5cd2598b9ba80fc9a0db135005ae4e04", + "app/src/test/java/dev/tinycast/android/ExtensionSelectionDeliveryTest.kt": "1ea1e17cf0ea43fa3418a61f71587dbee9ec341b288d17fdaba3c5d3d8da4cb7", + "app/src/test/java/dev/tinycast/android/ExtensionWorkflowEvidenceTest.kt": "cf1589d69a498166b5a5fddd45135cf5b8575ec1d42f13ed4e2927b062b966fd", + "app/src/test/java/dev/tinycast/android/ExtensionWorkflowInspectionTest.kt": "043617c0cb943d76ebcdb5d0cc5bcdcda300069827b9b87a7425a16d084c1255", + "app/src/test/java/dev/tinycast/android/FolderGrantTransactionTest.kt": "ef710edc4ed1eb45782f90c385bc73305217f26882b630cd3e79ee93c59ef118", + "app/src/test/java/dev/tinycast/android/FolderIndexTest.kt": "bd371b19d1678ea876889cfb25505d690a4296c37d042e4cabd38bc7c7e4eff4", + "app/src/test/java/dev/tinycast/android/ModifierTapTest.kt": "bc0f6191ef2837018ca33a71010c1582cd39d0b3713c55acec4f91406a74d4fd", + "app/src/test/java/dev/tinycast/android/PaletteMenuOwnershipTest.kt": "c3134a62d61b5cd7ed810b867a6b40219713f21b798fabf6e659129cfab55506", + "app/src/test/java/dev/tinycast/android/PaletteScrollHistoryTest.kt": "b1610e3c3818e5823f99ded35bc36325042da250cfd48d98c0d6381066cfad5f", + "app/src/test/java/dev/tinycast/android/ReviewedTextInputTest.kt": "4bff225dd9fc1963736ad1f992e3eda3ffff21554c3ebef63d25acfdb41a29f3", + "app/src/test/java/dev/tinycast/android/ShortcutReadinessTest.kt": "45d32b02d4f89f857867d2585f3f5968251e9580edd34d9312bbfc158adc12e1", + "app/src/test/java/dev/tinycast/android/ShortcutTest.kt": "ae8034901d8ca73d704d40992b85ed43a64a021a078ff4eb5b2b853c4f398610", + "app/src/test/java/dev/tinycast/android/SystemSettingsTest.kt": "cdfc38bed12779bb92b0ddaeb79d197733243b24da43ab89d8580ecfd1f1fb51", + "app/src/test/java/dev/tinycast/android/TinycastGridParityTest.kt": "df6ca13f0f0a1e4bfa1f0085e274ed87457a6aa1a69492afa1041128af99c5e3", + "app/src/test/java/dev/tinycast/android/UpdatePolicyTest.kt": "d87ee4f7d6aa7b39b998267bd4d042d0b494ec6a1280d18860f262355c25cbe3", + "app/src/test/java/dev/tinycast/android/WeakValueTokensTest.kt": "ced7bf72628d5dc18fc5fdd30a81e58bb4b4b7f40e4e8c7eb0e77500f7c73566", + "app/src/test/java/dev/tinycast/android/extensions/NodeCpuInfoTest.kt": "5f3a7aae9b24435a4dbca77f9132a4b203ea736b1c76fc9108a51251983c2797", + "app/src/test/js/android-fetch.test.cjs": "2842effb321a11a33816f176f3300cd27a61c1e2ac70c4ed32681d46a129e56e", + "app/src/test/js/android-form-focus.test.cjs": "dd065271386dfdb2552caef1ae6e0c6f30e32783571abd85be328b9864bff8b6", + "app/src/test/js/android-form-submit.test.cjs": "7cbbb553dc2e657951b9195593b11add03597adad2710b4daa3e2cb807f87334", + "app/src/test/resources/commonmark-0.31.2.NOTICE": "610241b963a1a958c9465d99ec3f5778e7c6ef7251f9e119fed4c306b51641de", + "app/src/test/resources/commonmark-0.31.2.tsv": "dc27be954caac0ed8961299ca581a62aa4c68312091e68e52ab1e2bfe6aa5f5f", + "app/src/test/resources/extension-payload-identities-v1.json": "e451cf6b8efa208708db43dcb3a0545db1e73c610b72f488203fb4f147a490ab", + "app/src/test/resources/tinycast-grid-navigation.tsv": "da620f314fc39300beb7a11436715809ac1a9fd230fa4640c7f4f9c34b69aaf7", + "build.gradle.kts": "780d597cbe0f80d0103221a566db7574d1e07b17adca5bdbe7d6c728d77df12a", + "gradle.properties": "e43a00491832254a35cf5a979ef6de17f78c4e159d446be39319d2e3d3e46325", + "gradle/wrapper/gradle-wrapper.jar": "55243ef57851f12b070ad14f7f5bb8302daceeebc5bce5ece5fa6edb23e1145c", + "gradle/wrapper/gradle-wrapper.properties": "13287ffad6cf3064056ddad80d95b855132348930b2dc6c91490588c55b3ac7d", + "gradlew": "aed171fb114f82e6eaea4970a245a200e0582a7dcc8ec0891ca41b6e4a62b754", + "scripts/android_clipboard_recovery.py": "4aa2d03a100791544d282de37a2f62b6f7bfd94c47cc5611b6b6448ed8a946c1", + "scripts/android_form_documents_fixture.py": "ef44f5a9af1397fc8e8ea1924e36c2dec18d5c56c02e22f4925752daf1034841", + "scripts/android_test_cleanup.py": "1f4a1d70d251ec0a8294932388ce881da144c9c7d1c05df54df2c5b246d46373", + "scripts/extension_bundle_snapshot.py": "08ae0408a22e4f4c3c8a8b22af31b6a6a16d304dc0d14d5e489596dd9731a950", + "scripts/extension_manifest_catalog.py": "18c6048a0690e68dba3da1e8d11c5abccac16c3c26aa8803ff80abfd1dabe7e4", + "scripts/generate-emoji.py": "98f43c9a5941b4e65533e31ff7d7eaa4e697d8fecd4c7424297e6957e07abd53", + "scripts/generate-tinycast-grid-oracle.py": "bd53975673883b624d2553cd47687c5a3a760b17181a8c0621715ed1599b3118", + "scripts/package-nightly-update.py": "2a650baee0c7c76eadd360171e19686aad7b960fe34ebc780638c6b231032420", + "scripts/summarize-readiness.py": "e63d9d2ec435d2c369ae0be126bafb0b0507e903b03674f11a77ee10b428fe64", + "scripts/test-api-compatibility.py": "1ba4bf24535130bfd59a5f1d9d4830ca075e7158fc2cbe316696fcadb6108065", + "scripts/test-assistant-touch.py": "fd5a4acfdd19ddc60eb467fea3c7d2e8ab7ac717bea35c76d007577c23235a54", + "scripts/test-calculator-intent.py": "93ef5653c4d0c153d8f216c9fd74557089a964eaab80c84c85ab5460ec58f1a1", + "scripts/test-configurable-shortcuts.py": "56f4581f78265ec2c28faa1da115ae10a8349cf47e10db60bfba3e88f0cc3e73", + "scripts/test-extension-grid.py": "26f15b12f40277cbd3b6b874c58e41ab7e26735ef8e70634e5b5eb53b5652560", + "scripts/test-extension-workflows.py": "c6cce4d533b45655a7763305379107840a93a1a953be0322a869c7505ffc0997", + "scripts/test-global-shortcut.py": "4a0f57d16dfccbd0c7b33d6b78a841ccad030c4bad6fb108ac80f15dc89f6d6a", + "scripts/test-modifier-taps-hardware.py": "b0d2da7fd2410095d65ef20e25cd9b8e90f9b480849dfd5e497f75d4d713139c", + "scripts/test-modifier-taps.py": "8cb08d228371c90f995ae2246ef0a92daf6c81724c11a1ac67374ed0dd347dab", + "scripts/test-readiness-benchmark.py": "1f92dc1989f1ff36c82433d6eaab1e2c896abf7541a24a9b215c109e49d1a7d9", + "scripts/test-restart-files.py": "65f1c311df77634f746cb155d831acf1fa4d8cf05d0e1dabc9d372bf1e842065", + "scripts/test-reviewed-text-input.py": "4e9ab25f0b1bce00277d0dde5a37a29ab8cbbdb9900699c5bdfd9cfa4b9bb248", + "scripts/test-reviewed-text-process-recreation.py": "eecd547c48ad2bbce2d8bae62bbed26a2484e0b5d97ebb7cb989ba98d4de2a23", + "scripts/test-search-header.py": "772cb70442bbf28086beb8087ebce94d02ba6cc10e6acf8c2cf91a0d8d5b39d0", + "scripts/test-self-updates.py": "4ff148ea90c3a148a1eacf74116db288e5e9c282f69e0c331caa6f22b1a40889", + "scripts/test-startup-performance.py": "9ac605bf3347fde625d279767bb8fc4de76ae82f099e7d8351416fa5bc9250ae", + "scripts/test-touch-readability.py": "d9ae59ab3db56d63cb5c959c200263b71acd0e04c305dce4e9ceb8a395933fb6", + "scripts/test-webview-engine.py": "d7fc4bccc15eca35d2af00fcb7a9cda594a3c5fe5fb336785b3a2efea4745c1a", + "scripts/tests/test_android_clipboard_recovery.py": "b260d3adcfa33e2641affebee9bebb1676097b4a24bbdbeb89cef7f3fc889176", + "scripts/tests/test_android_form_documents_fixture.py": "c2b573793d6c5d48fe9dc8e75ffc554e11818e319507080a4b96aa4e24e1fc03", + "scripts/tests/test_android_test_cleanup.py": "49c8831c517f0777f46952376f5d3b783322eeb25f063d69a9b1bc2f8cde01cf", + "scripts/tests/test_extension_bundle_snapshot.py": "382561907129ac58b7e20b963c1afcbc9bc1a03b7e18da64e7d61927a8b15783", + "scripts/tests/test_extension_manifest_catalog.py": "57af21edf39e3e4084453830eed62d3c052ba8d8a4f942d3d69807e2cd4b69a6", + "scripts/tests/test_extension_workflow_guards.py": "1cea982b85cf759e691471cad72b8e2cbdccdf3c2ccc6c483b1ef01b49002a3f", + "scripts/tests/test_private_archive_transport.py": "168c1607d4e1efa7537241cf362316ce354706af33465dc63e73d210ab0327d1", + "scripts/tests/test_private_path_observation.py": "3c0fff3062ac9b43aab67ed4ab2d53b92fa39f9af9e0ada9d197856a1df94e95", + "scripts/tests/test_reviewed_text_archives.py": "0308a50c148c97ed50381e894eabd43ec6e374878f99b810244c24e25f1a626e", + "scripts/tests/test_reviewed_text_runner_guards.py": "a3d489fe141be669374ecd0b3a6231afc5efdf4abfc6a74f7d25efec4e67038c", + "scripts/tests/test_webview_engine_runner.py": "846ee3b34578f92bd3f728eac4044c5ef4481478e3ec9d744e848e0094119168", + "scripts/verify-recorded-workflow-catalog.py": "fc0ec3b595b3a892238a4e0cc19b79ca092e8dcbe3e4af1d261e4874f984c2d5", + "settings.gradle.kts": "6a8db88135b364d8bd2facb607fc4e9e9476c171d2b7f7f3a0892c57a9ee6487" + }, + "apk_sha256": { + "app-debug.apk": "32e2726d35d1c01fe488aa0781a3a0d67d99498699f7121ab4ad2f1be95e5286", + "app-debug-androidTest.apk": "931201bf4e68fbe15577ab310d4cc829cb8c4c9d1809a67f919cf93b01d2f14c" + }, + "zip_payload_sha256": { + "app-debug.apk": { + "META-INF/com/android/build/gradle/app-metadata.properties": "75bc66260aeed5c7da9ef86b1ee98fe13298d9dd0bc438ee5a963d5eb224f68d", + "classes.dex": "02040ff106a54d6dd8ed10f6192541cb671f62f166bf413798e0fca382d390b4", + "classes2.dex": "21fe524b9ec548ac16c1cd9813dee74787a7fee1b5bd0a7719f0a9807c43a39b", + "classes5.dex": "2b4eaca1be7a4156ef80f400b13d93c8a8f82de2b4f61ffbd2ea2080bfa20788", + "classes6.dex": "4cb87f7ace7c665d16755b3466eca73c87cc7167104d4b901b704bb2a4c9d30b", + "classes7.dex": "04459089f64d575513ce6b9ed9fdcc3cb12fb2817ed84a2b73e8b0d3f0392f68", + "lib/arm64-v8a/libandroidx.graphics.path.so": "41e9a793c43a0f4fddb19e33f346bace464f30f888ba7b9eaf96294ea115bfb6", + "lib/armeabi-v7a/libandroidx.graphics.path.so": "41399eba6fc2a60f6f14642375c1824f3cf25eb8fec7397d753730a3ceda3e2b", + "lib/x86/libandroidx.graphics.path.so": "eb0570b41fd3bff25d8204a967c03bd7550719e768b791f680cc40cbe35f29af", + "lib/x86_64/libandroidx.graphics.path.so": "4e56c996f13670e70082658de7880c4020eabf4f25e43387f88ed78a713fc9f0", + "assets/ANDROIDSVG-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "assets/ANDROIDSVG-NOTICE": "2e61b715e3553494f46f43e5a88e8d26c56201e0558c8d5ab02946edb4f7dedf", + "assets/COMMONMARK-LICENSE": "11cfcf6da0142fb1971c1f40f5924ddded14454e2793d7f1dd87c9f4abe42dfd", + "assets/COPYING": "14609801e0e520dac851e75d993ca4c75c3842a3be468f6f7f04a16c03c824db", + "assets/GEMOJI-LICENSE": "7ea1d1fd0602e6623b9a65e791499a0ea5a2f5f60f91bfad78cbaeee19da26e6", + "assets/NOTICE.md": "c263e44ea9a845c4e4ec564eeca46ae0fc343f63ffd10685afbf74586647e0f6", + "assets/REACT-LICENSE": "da6d3703ed11cbe42bd212c725957c98da23cbff1998c05fa4b3d976d1a58e93", + "assets/RaycastRuntime.generated.js": "b306b45453cc8507037ff2822066475aae17def757a8ef72d4a4fc64c6494bb7", + "assets/android-runtime.js": "1b5dfa3f5b512f55322f27703bbebf15d1a8c4569c4c1712a6dd64541dd552aa", + "assets/emoji-catalog.tsv": "e49f1cc09c6f487a6e7b55590ecc171dcff390f720a9ce3820fe2038810d5d66", + "assets/extension-workflow-evidence-v1.json": "4e8adc22b7887996140190a999f1c7272556f2dd379d219c88e276e48aea0fa5", + "res/color/vector_tint_color.xml": "4bbb4ef3e0e3db260a05d794047a1765e420d699ee5673e90b57ff682a2fe34e", + "res/color/vector_tint_theme_color.xml": "cf34dc5bdb4a6d1568143e115ac4e34448383ac772862ef0fdbb7fe8936c6dd3", + "res/drawable-anydpi-v21/ic_call_answer.xml": "5f6376dfe199d8a6e40033d3e623989d052c9b2f974d00c824fbb8b76fc6fde8", + "res/drawable-anydpi-v21/ic_call_answer_low.xml": "8f9acacabaf2dfb4bb53dab7ce7bec9c1451ce0a0219ffaa41760ea82da3d2d6", + "res/drawable-anydpi-v21/ic_call_answer_video.xml": "5d4cdaae5838ad9442c085f951b766b2808bff13b8c85a14e0bcf8571514492c", + "res/drawable-anydpi-v21/ic_call_answer_video_low.xml": "4a959580080ebb1d822a2459a4234d2abf0dd0b65d9c28bda8c258dafc888c51", + "res/drawable-anydpi-v21/ic_call_decline.xml": "2d825b79cce60203492ff09a04826db0ac8d9eb9bc0fb9fb139ae1aa5cde0f67", + "res/drawable-anydpi-v21/ic_call_decline_low.xml": "c8321364802409baf4d76e2a84e303871585bdc95b0395040c5ecea0e2051105", + "res/drawable-hdpi-v4/ic_call_answer.png": "5c80d88a7b82ef5833255bf70ff1c26c3efb2a92ae90cac222f3200f59e0b1ea", + "res/drawable-hdpi-v4/ic_call_answer_low.png": "5c80d88a7b82ef5833255bf70ff1c26c3efb2a92ae90cac222f3200f59e0b1ea", + "res/drawable-hdpi-v4/ic_call_answer_video.png": "6adcfc9dd1e1b82b985d223fc8a01c8e8f0dd3b9051d38062674b2380af79a50", + "res/drawable-hdpi-v4/ic_call_answer_video_low.png": "6adcfc9dd1e1b82b985d223fc8a01c8e8f0dd3b9051d38062674b2380af79a50", + "res/drawable-hdpi-v4/ic_call_decline.png": "12ec9f9ad5fa3d7d897114af6c2297b66f31cb056e43daffbe80d23f6f66396d", + "res/drawable-hdpi-v4/ic_call_decline_low.png": "12ec9f9ad5fa3d7d897114af6c2297b66f31cb056e43daffbe80d23f6f66396d", + "res/drawable-hdpi-v4/notification_bg_low_normal.9.png": "21f0b55280be10b187ceff8edef4a5a7047683e6e9fcf47de410aa3839f41094", + "res/drawable-hdpi-v4/notification_bg_low_pressed.9.png": "42aee0b03883e94df5e543348a397d1302c1b8221895871a83b81899f5a9647b", + "res/drawable-hdpi-v4/notification_bg_normal.9.png": "0c6328c7b2420570a7ec38b3beb3bac9a29d895ac1ab7239315aba7266418593", + "res/drawable-hdpi-v4/notification_bg_normal_pressed.9.png": "18b328d8017e677d5aad3dbd66bae356b5cac978c6f0670938ea648e51d0eb66", + "res/drawable-hdpi-v4/notification_oversize_large_icon_bg.png": "aa00088d0d9fd97bd92ed9ffd29b54bb69a48a984aa73448ce553fb9d812be41", + "res/drawable-hdpi-v4/notify_panel_notification_icon_bg.png": "8430ec003e003f3f2ba2f78d48fd150e25407667e530e82e87a7d4841c0fd676", + "res/drawable-ldpi-v4/ic_call_answer.png": "6d34a8bb29be26e343781603588506f33bd1b93732a1c1bc9fd84678aa36b178", + "res/drawable-ldpi-v4/ic_call_answer_low.png": "6d34a8bb29be26e343781603588506f33bd1b93732a1c1bc9fd84678aa36b178", + "res/drawable-ldpi-v4/ic_call_answer_video.png": "66356f564f051a568e25071f60da312c418309f9129773aceb2246773458681c", + "res/drawable-ldpi-v4/ic_call_answer_video_low.png": "66356f564f051a568e25071f60da312c418309f9129773aceb2246773458681c", + "res/drawable-ldpi-v4/ic_call_decline.png": "a18cdaaf3742b1a3d4f484fa15d00fa34afb21495884301aafa3213338661ed6", + "res/drawable-ldpi-v4/ic_call_decline_low.png": "a18cdaaf3742b1a3d4f484fa15d00fa34afb21495884301aafa3213338661ed6", + "res/drawable-mdpi-v4/ic_call_answer.png": "f2ff62f473d8a5e00a8b6c81c15be9a0536471c3d5a81e37d04bc3356ea81ca0", + "res/drawable-mdpi-v4/ic_call_answer_low.png": "f2ff62f473d8a5e00a8b6c81c15be9a0536471c3d5a81e37d04bc3356ea81ca0", + "res/drawable-mdpi-v4/ic_call_answer_video.png": "6306048ba5f7eca43e7bdadeefa9412180508486fd543e02de93d2a013e223f0", + "res/drawable-mdpi-v4/ic_call_answer_video_low.png": "6306048ba5f7eca43e7bdadeefa9412180508486fd543e02de93d2a013e223f0", + "res/drawable-mdpi-v4/ic_call_decline.png": "7e87b3e0229126dc3c2bdaddcd8f330f3bb5f7613a05024c3cd6445dd161f788", + "res/drawable-mdpi-v4/ic_call_decline_low.png": "7e87b3e0229126dc3c2bdaddcd8f330f3bb5f7613a05024c3cd6445dd161f788", + "res/drawable-mdpi-v4/notification_bg_low_normal.9.png": "2f7fbda0ba6e53e9a47e2fc0e24e32c447c613a5808c2d6285dc651e83a07ad7", + "res/drawable-mdpi-v4/notification_bg_low_pressed.9.png": "e17761ed280edd93d7141bd504b70f9e9e15a8652288d9e6333bf4ce964ef844", + "res/drawable-mdpi-v4/notification_bg_normal.9.png": "a8676a1793ac8310ffb12986232df66df092d29c242aeedc2b73556c010d38dc", + "res/drawable-mdpi-v4/notification_bg_normal_pressed.9.png": "99c14d6855b8be296d58017d3751b8dc849c47b6d1d80ab614ff9075080e461b", + "res/drawable-mdpi-v4/notify_panel_notification_icon_bg.png": "0d773e62c756422313262846c787e58f67e0ee87e45e1ae9942002e816c4cb9e", + "res/drawable-v21/notification_action_background.xml": "2f768c089cefa18cf7f1fde7f602410bf38998de5f9073a15ea83106c25e3c30", + "res/drawable-xhdpi-v4/ic_call_answer.png": "e64c2e57627e24ec1ed37e67344c2bf31d1d6bdd2d8d715840c1edf0bd1425b6", + "res/drawable-xhdpi-v4/ic_call_answer_low.png": "e64c2e57627e24ec1ed37e67344c2bf31d1d6bdd2d8d715840c1edf0bd1425b6", + "res/drawable-xhdpi-v4/ic_call_answer_video.png": "5d02a81102644428ca639aec3df626eeb4a839a9ddc76fc2b158b04461d7f00f", + "res/drawable-xhdpi-v4/ic_call_answer_video_low.png": "5d02a81102644428ca639aec3df626eeb4a839a9ddc76fc2b158b04461d7f00f", + "res/drawable-xhdpi-v4/ic_call_decline.png": "9a9a30c305022a2f8e075d2ed7d33f5c7711bba8d0d0385511fdb62f89f208e3", + "res/drawable-xhdpi-v4/ic_call_decline_low.png": "9a9a30c305022a2f8e075d2ed7d33f5c7711bba8d0d0385511fdb62f89f208e3", + "res/drawable-xhdpi-v4/notification_bg_low_normal.9.png": "3e09afa21c45372c035598c017c8fb405a6d678e6cb84dc857581cb3b40e482d", + "res/drawable-xhdpi-v4/notification_bg_low_pressed.9.png": "20343222f9f79dd565c3a2248494d452e70820ac1c437173c38badd45f962afd", + "res/drawable-xhdpi-v4/notification_bg_normal.9.png": "559bf783d765c02338e97952bdc9c6689c7ff99090b8c9813369118da8b080f0", + "res/drawable-xhdpi-v4/notification_bg_normal_pressed.9.png": "d27af435101ca4cbec0c840bd30687918cd39eb83aab1487420855623a45998b", + "res/drawable-xhdpi-v4/notify_panel_notification_icon_bg.png": "b44eeda34d7a529c2fe55719eb098fa29707caa91d18de06a7a775d6e6bcf973", + "res/drawable-xxhdpi-v4/ic_call_answer.png": "86763a30af2a934c7c13b123b36443d1d17918b71c6149bc6ee80115b872593d", + "res/drawable-xxhdpi-v4/ic_call_answer_low.png": "86763a30af2a934c7c13b123b36443d1d17918b71c6149bc6ee80115b872593d", + "res/drawable-xxhdpi-v4/ic_call_answer_video.png": "ca48f604262f2b4ef8b100c73130efe2ad33ef8c2a2c1b3516f24f51b7b04665", + "res/drawable-xxhdpi-v4/ic_call_answer_video_low.png": "ca48f604262f2b4ef8b100c73130efe2ad33ef8c2a2c1b3516f24f51b7b04665", + "res/drawable-xxhdpi-v4/ic_call_decline.png": "87adad32e0ec19c4e920420bf3a06c9f94f6128ed0d866a1891628aeab2cef06", + "res/drawable-xxhdpi-v4/ic_call_decline_low.png": "87adad32e0ec19c4e920420bf3a06c9f94f6128ed0d866a1891628aeab2cef06", + "res/drawable-xxxhdpi-v4/ic_call_answer.png": "ec698a3217bce74d8bc4a44bb008f2dbd3d1aebff1af1e9641805143dbf9fa87", + "res/drawable-xxxhdpi-v4/ic_call_answer_low.png": "ec698a3217bce74d8bc4a44bb008f2dbd3d1aebff1af1e9641805143dbf9fa87", + "res/drawable-xxxhdpi-v4/ic_call_answer_video.png": "4c717ce1ffb551c765981add65d1956132d8f522337de2866b045f0a60485426", + "res/drawable-xxxhdpi-v4/ic_call_answer_video_low.png": "4c717ce1ffb551c765981add65d1956132d8f522337de2866b045f0a60485426", + "res/drawable-xxxhdpi-v4/ic_call_decline.png": "ab73b729bb95878120a3bdc8dc915f3aaa1d7070fc644a0de64d40941ad507ed", + "res/drawable-xxxhdpi-v4/ic_call_decline_low.png": "ab73b729bb95878120a3bdc8dc915f3aaa1d7070fc644a0de64d40941ad507ed", + "res/drawable/ic_launcher.xml": "65a462fe84c64e76de6f6999e09b195ca227a5232453356a4743a17dae08882f", + "res/drawable/ic_palette_tile.xml": "099260576b37718ecf049e1405bcb60d989584dda8710e0905dd00d97edb3440", + "res/drawable/notification_bg.xml": "65ef0869565cde9539d285ee8b5e0156e4ba3bfc7fde288b3d78a96ead8bed62", + "res/drawable/notification_bg_low.xml": "a349184bd1ffb192438415fa98cb2ea5b9294a656d6f276f365b9b2753552777", + "res/drawable/notification_icon_background.xml": "b143ee7fcbba209f17607a720502d755f085ec75380ad6fbd6f99de6583f0a40", + "res/drawable/notification_tile_bg.xml": "42fb6470d6c3d395ab726d928ca23ba8573011a646b7475a89c9b17ec8c0f9bb", + "res/layout-v21/notification_action.xml": "e07d16d0717fb7a1f030dd43f76be647125f9abd78ebcee3bbd861b8df02fe90", + "res/layout-v21/notification_action_tombstone.xml": "c2f8eb9372d806f5f6532e507f4e5767091f681f7d2e9b7f5a64d134e6ed7717", + "res/layout-v21/notification_template_custom_big.xml": "2bcb3cb25a65b175c9880f60411239a019c2ded7cbaf3701d3650ebd1fd971ea", + "res/layout-v21/notification_template_icon_group.xml": "97d5723ad66c683d88d57918e197cb33d2dc1628aa77299e42e132622c2c948e", + "res/layout/custom_dialog.xml": "edd4e27b3f2407a02248205a2eb50288170e4201249bfeac074749ea60390103", + "res/layout/ime_base_split_test_activity.xml": "37ff040591f96786bfaf9d3d937fedf2f2f97e218c06beb3e7fe8a2442a181a8", + "res/layout/ime_secondary_split_test_activity.xml": "0034556846afe7278a6d1264855405a0c3ae65a81a6a05f9ba4dc0136a589685", + "res/layout/notification_template_part_chronometer.xml": "8bd30447bb9347f4c3dd38ff034f141000c7a952ac25760fc8a0c67f76b5bdb7", + "res/layout/notification_template_part_time.xml": "a8664275b4a0fad8ac25724d8d577fb5cd98c4e99a24fc362dbb56fb960aee84", + "res/xml/assistant_service.xml": "461b22a285e6d4cc97c23a8aa9f13802c16f20eff91d1ce1ca4739a527b6c99d", + "res/xml/data_extraction_rules.xml": "1d2dc5515fa0bfac79b6a028056f23ef2e9fd0c9091c9b13c15b52b78a751ab0", + "res/xml/keyboard_service.xml": "688f6294b5c093499f1253d5eb72c5fef80324d0c7e3bdcdff193c8ad9e851e6", + "resources.arsc": "5f13aba27cdb9bef26e38933801042374f3cba444e3fa3c145c99166eace2fb2", + "DebugProbesKt.bin": "ae8a082dd609313835ba93c3ef479a3af9903977d7bdc81df45bbd209ec7d0da", + "META-INF/LICENSE.txt": "523bfd872d038632d258f340a482d067a10e8d82b8e8ff3081755c5f8ccc1658", + "META-INF/androidx.activity_activity-compose.version": "118705d21506adb8d7c06a51156bb59497679f644fb4ae3d14bbbfc366643124", + "META-INF/androidx.activity_activity-ktx.version": "118705d21506adb8d7c06a51156bb59497679f644fb4ae3d14bbbfc366643124", + "META-INF/androidx.activity_activity.version": "118705d21506adb8d7c06a51156bb59497679f644fb4ae3d14bbbfc366643124", + "META-INF/androidx.annotation_annotation-experimental.version": "7d072b48526b023950e4c48db01e8c273554a6401119f5691e7589ba9bc65d9d", + "META-INF/androidx.arch.core_core-runtime.version": "1b7c606370188534dac5561fba2b2988093829697fce9e6e8832e9291d24ed00", + "META-INF/androidx.autofill_autofill.version": "59854984853104df5c353e2f681a15fc7924742f9a2e468c29af248dce45ce03", + "META-INF/androidx.compose.animation_animation-core.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.animation_animation.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.foundation_foundation-layout.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.foundation_foundation.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.material3_material3.version": "10e2e117b01523891ca271a615ae36e9d5e52348fd7d642f66727602c1b8dcbe", + "META-INF/androidx.compose.material_material-icons-core.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.material_material-ripple.version": "bb7320d831e7a151aa901c35e7326c752fa2ef5024f30768c42319b8bed171ed", + "META-INF/androidx.compose.material_material.version": "59854984853104df5c353e2f681a15fc7924742f9a2e468c29af248dce45ce03", + "META-INF/androidx.compose.runtime_runtime-saveable.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.runtime_runtime.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-geometry.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-graphics.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-test-manifest.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-text.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-tooling-data.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-tooling-preview.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-tooling.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-unit.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-util.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.core_core-ktx.version": "ca0bc79c4cde0ad64e1ec9df2882425197b5ba85704a4ac6bd67f8f99936eb25", + "META-INF/androidx.core_core-viewtree.version": "59854984853104df5c353e2f681a15fc7924742f9a2e468c29af248dce45ce03", + "META-INF/androidx.core_core.version": "ca0bc79c4cde0ad64e1ec9df2882425197b5ba85704a4ac6bd67f8f99936eb25", + "META-INF/androidx.customview_customview-poolingcontainer.version": "59854984853104df5c353e2f681a15fc7924742f9a2e468c29af248dce45ce03", + "META-INF/androidx.emoji2_emoji2.version": "64d23f858ef51b0f996e4966d4e27c0371b437e2d2787890b1f7ad22d4ec5663", + "META-INF/androidx.graphics_graphics-path.version": "44e161e4495cac2cf7858043e9e6418e9579f0ddcfae826f9a372622968ce066", + "META-INF/androidx.interpolator_interpolator.version": "59854984853104df5c353e2f681a15fc7924742f9a2e468c29af248dce45ce03", + "META-INF/androidx.lifecycle_lifecycle-livedata-core.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-process.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-runtime-compose.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-runtime-ktx.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-runtime.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-viewmodel-compose.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-viewmodel-ktx.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-viewmodel-savedstate.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-viewmodel.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.profileinstaller_profileinstaller.version": "78b591400c56b7b67b8cb3b2b8a8e65e9093897f02ce0878e6b5405c68620fa7", + "META-INF/androidx.savedstate_savedstate-ktx.version": "6cf4e084b47f33c9b02ef79279d157833868f8f70514169a768be353ee328fea", + "META-INF/androidx.savedstate_savedstate.version": "6cf4e084b47f33c9b02ef79279d157833868f8f70514169a768be353ee328fea", + "META-INF/androidx.startup_startup-runtime.version": "cc52f678848b814373757b460383bf61960e4943c203735adde0a350b3e50989", + "META-INF/androidx.tracing_tracing.version": "59854984853104df5c353e2f681a15fc7924742f9a2e468c29af248dce45ce03", + "META-INF/androidx.versionedparcelable_versionedparcelable.version": "cc52f678848b814373757b460383bf61960e4943c203735adde0a350b3e50989", + "META-INF/kotlinx_coroutines_android.version": "179f9b723b6508aa1d6ce99991e8cd549ca819ee1b9b6102396c47815beffaaf", + "META-INF/kotlinx_coroutines_core.version": "179f9b723b6508aa1d6ce99991e8cd549ca819ee1b9b6102396c47815beffaaf", + "META-INF/services/kotlinx.coroutines.CoroutineExceptionHandler": "3129b8edf6db07de6f8ff47695e2177c8bba4eed2962d3085c719e5acbb58a33", + "META-INF/services/kotlinx.coroutines.internal.MainDispatcherFactory": "a1ea77ea8f93f419256b6e66f29713f950d8d6e90442b608d880a48003b5eb72", + "kotlin/annotation/annotation.kotlin_builtins": "5f75d4352e432664b2a235c472b991cf88365c73f5fcb5e1f9cc2cbe4b410abe", + "kotlin/collections/collections.kotlin_builtins": "0e654e03a38e119de0f4d11633711bd57e1e8b1a876eda74a90100a2a6e7daa4", + "kotlin/concurrent/atomics/atomics.kotlin_builtins": "955035527393d165a22da4cb9d992f42b4a30b6f070918f3e2b1f2678f83cc9d", + "kotlin/coroutines/coroutines.kotlin_builtins": "98ab3a3c18fcb237528dd63fa489815c583e1d6c13debd2a27ac6d74ccf8717b", + "kotlin/internal/internal.kotlin_builtins": "64712f94840e6b3f8123f522f32d08c46f083d87c312a74901f7c00224de775e", + "kotlin/kotlin.kotlin_builtins": "c4240215bc20e71b01cc62b43edebd02749b3249d7daa8e7f1dc1514f064c274", + "kotlin/ranges/ranges.kotlin_builtins": "f9d35b836ccb5380803aab5e6c76d708b1536fc6c82f27185e8cff5913824e1c", + "kotlin/reflect/reflect.kotlin_builtins": "23ecbc7cbb354f31ba37a1be1793d3bb53c00c92cdcf3867759d09d938a1d7c3", + "org/commonmark/internal/util/entities.txt": "fea6cf4d3bd2aa7ffd421116551654e2a22e40a17e4cd087c8725138113bad69", + "classes3.dex": "fc73c4b4a89b2efa604ba7bce4614916874d3826a8c2bc6177f1b31c90e09358", + "classes4.dex": "cbb0f9738fec02701ed94b8f085103723ebc76517f885b321ceb30167727451d", + "AndroidManifest.xml": "0e9f24c4a54ba160bc6f58a6604213a96c912b6b0ab0842b92fc4f934ac5cfd6" + }, + "app-debug-androidTest.apk": { + "classes.dex": "35f32eb3c6a38b451d1d47b53e49faa8fdca4db12df6e8e6385f44f1f5c1d403", + "classes2.dex": "468450c6993a81875894c0a142093a2e6dad1778f192763895e927a2f07c1d71", + "classes5.dex": "4cb87f7ace7c665d16755b3466eca73c87cc7167104d4b901b704bb2a4c9d30b", + "assets/owned-detail-fixture.js": "873d3f25f95271029e31779b0920b5955a2908a820a07652b58efa21a2358cfd", + "AndroidManifest.xml": "caff3c10989799f80e8bea4722a1e2e143b75cef522c7aff7211e7c79704f416", + "res/color/vector_tint_color.xml": "4bbb4ef3e0e3db260a05d794047a1765e420d699ee5673e90b57ff682a2fe34e", + "res/color/vector_tint_theme_color.xml": "cf34dc5bdb4a6d1568143e115ac4e34448383ac772862ef0fdbb7fe8936c6dd3", + "res/drawable-anydpi-v21/ic_call_answer.xml": "5f6376dfe199d8a6e40033d3e623989d052c9b2f974d00c824fbb8b76fc6fde8", + "res/drawable-anydpi-v21/ic_call_answer_low.xml": "8f9acacabaf2dfb4bb53dab7ce7bec9c1451ce0a0219ffaa41760ea82da3d2d6", + "res/drawable-anydpi-v21/ic_call_answer_video.xml": "5d4cdaae5838ad9442c085f951b766b2808bff13b8c85a14e0bcf8571514492c", + "res/drawable-anydpi-v21/ic_call_answer_video_low.xml": "4a959580080ebb1d822a2459a4234d2abf0dd0b65d9c28bda8c258dafc888c51", + "res/drawable-anydpi-v21/ic_call_decline.xml": "2d825b79cce60203492ff09a04826db0ac8d9eb9bc0fb9fb139ae1aa5cde0f67", + "res/drawable-anydpi-v21/ic_call_decline_low.xml": "c8321364802409baf4d76e2a84e303871585bdc95b0395040c5ecea0e2051105", + "res/drawable-hdpi-v4/ic_call_answer.png": "5c80d88a7b82ef5833255bf70ff1c26c3efb2a92ae90cac222f3200f59e0b1ea", + "res/drawable-hdpi-v4/ic_call_answer_low.png": "5c80d88a7b82ef5833255bf70ff1c26c3efb2a92ae90cac222f3200f59e0b1ea", + "res/drawable-hdpi-v4/ic_call_answer_video.png": "6adcfc9dd1e1b82b985d223fc8a01c8e8f0dd3b9051d38062674b2380af79a50", + "res/drawable-hdpi-v4/ic_call_answer_video_low.png": "6adcfc9dd1e1b82b985d223fc8a01c8e8f0dd3b9051d38062674b2380af79a50", + "res/drawable-hdpi-v4/ic_call_decline.png": "12ec9f9ad5fa3d7d897114af6c2297b66f31cb056e43daffbe80d23f6f66396d", + "res/drawable-hdpi-v4/ic_call_decline_low.png": "12ec9f9ad5fa3d7d897114af6c2297b66f31cb056e43daffbe80d23f6f66396d", + "res/drawable-hdpi-v4/notification_bg_low_normal.9.png": "21f0b55280be10b187ceff8edef4a5a7047683e6e9fcf47de410aa3839f41094", + "res/drawable-hdpi-v4/notification_bg_low_pressed.9.png": "42aee0b03883e94df5e543348a397d1302c1b8221895871a83b81899f5a9647b", + "res/drawable-hdpi-v4/notification_bg_normal.9.png": "0c6328c7b2420570a7ec38b3beb3bac9a29d895ac1ab7239315aba7266418593", + "res/drawable-hdpi-v4/notification_bg_normal_pressed.9.png": "18b328d8017e677d5aad3dbd66bae356b5cac978c6f0670938ea648e51d0eb66", + "res/drawable-hdpi-v4/notification_oversize_large_icon_bg.png": "aa00088d0d9fd97bd92ed9ffd29b54bb69a48a984aa73448ce553fb9d812be41", + "res/drawable-hdpi-v4/notify_panel_notification_icon_bg.png": "8430ec003e003f3f2ba2f78d48fd150e25407667e530e82e87a7d4841c0fd676", + "res/drawable-ldpi-v4/ic_call_answer.png": "6d34a8bb29be26e343781603588506f33bd1b93732a1c1bc9fd84678aa36b178", + "res/drawable-ldpi-v4/ic_call_answer_low.png": "6d34a8bb29be26e343781603588506f33bd1b93732a1c1bc9fd84678aa36b178", + "res/drawable-ldpi-v4/ic_call_answer_video.png": "66356f564f051a568e25071f60da312c418309f9129773aceb2246773458681c", + "res/drawable-ldpi-v4/ic_call_answer_video_low.png": "66356f564f051a568e25071f60da312c418309f9129773aceb2246773458681c", + "res/drawable-ldpi-v4/ic_call_decline.png": "a18cdaaf3742b1a3d4f484fa15d00fa34afb21495884301aafa3213338661ed6", + "res/drawable-ldpi-v4/ic_call_decline_low.png": "a18cdaaf3742b1a3d4f484fa15d00fa34afb21495884301aafa3213338661ed6", + "res/drawable-mdpi-v4/ic_call_answer.png": "f2ff62f473d8a5e00a8b6c81c15be9a0536471c3d5a81e37d04bc3356ea81ca0", + "res/drawable-mdpi-v4/ic_call_answer_low.png": "f2ff62f473d8a5e00a8b6c81c15be9a0536471c3d5a81e37d04bc3356ea81ca0", + "res/drawable-mdpi-v4/ic_call_answer_video.png": "6306048ba5f7eca43e7bdadeefa9412180508486fd543e02de93d2a013e223f0", + "res/drawable-mdpi-v4/ic_call_answer_video_low.png": "6306048ba5f7eca43e7bdadeefa9412180508486fd543e02de93d2a013e223f0", + "res/drawable-mdpi-v4/ic_call_decline.png": "7e87b3e0229126dc3c2bdaddcd8f330f3bb5f7613a05024c3cd6445dd161f788", + "res/drawable-mdpi-v4/ic_call_decline_low.png": "7e87b3e0229126dc3c2bdaddcd8f330f3bb5f7613a05024c3cd6445dd161f788", + "res/drawable-mdpi-v4/notification_bg_low_normal.9.png": "2f7fbda0ba6e53e9a47e2fc0e24e32c447c613a5808c2d6285dc651e83a07ad7", + "res/drawable-mdpi-v4/notification_bg_low_pressed.9.png": "e17761ed280edd93d7141bd504b70f9e9e15a8652288d9e6333bf4ce964ef844", + "res/drawable-mdpi-v4/notification_bg_normal.9.png": "a8676a1793ac8310ffb12986232df66df092d29c242aeedc2b73556c010d38dc", + "res/drawable-mdpi-v4/notification_bg_normal_pressed.9.png": "99c14d6855b8be296d58017d3751b8dc849c47b6d1d80ab614ff9075080e461b", + "res/drawable-mdpi-v4/notify_panel_notification_icon_bg.png": "0d773e62c756422313262846c787e58f67e0ee87e45e1ae9942002e816c4cb9e", + "res/drawable-v21/notification_action_background.xml": "2f768c089cefa18cf7f1fde7f602410bf38998de5f9073a15ea83106c25e3c30", + "res/drawable-xhdpi-v4/ic_call_answer.png": "e64c2e57627e24ec1ed37e67344c2bf31d1d6bdd2d8d715840c1edf0bd1425b6", + "res/drawable-xhdpi-v4/ic_call_answer_low.png": "e64c2e57627e24ec1ed37e67344c2bf31d1d6bdd2d8d715840c1edf0bd1425b6", + "res/drawable-xhdpi-v4/ic_call_answer_video.png": "5d02a81102644428ca639aec3df626eeb4a839a9ddc76fc2b158b04461d7f00f", + "res/drawable-xhdpi-v4/ic_call_answer_video_low.png": "5d02a81102644428ca639aec3df626eeb4a839a9ddc76fc2b158b04461d7f00f", + "res/drawable-xhdpi-v4/ic_call_decline.png": "9a9a30c305022a2f8e075d2ed7d33f5c7711bba8d0d0385511fdb62f89f208e3", + "res/drawable-xhdpi-v4/ic_call_decline_low.png": "9a9a30c305022a2f8e075d2ed7d33f5c7711bba8d0d0385511fdb62f89f208e3", + "res/drawable-xhdpi-v4/notification_bg_low_normal.9.png": "3e09afa21c45372c035598c017c8fb405a6d678e6cb84dc857581cb3b40e482d", + "res/drawable-xhdpi-v4/notification_bg_low_pressed.9.png": "20343222f9f79dd565c3a2248494d452e70820ac1c437173c38badd45f962afd", + "res/drawable-xhdpi-v4/notification_bg_normal.9.png": "559bf783d765c02338e97952bdc9c6689c7ff99090b8c9813369118da8b080f0", + "res/drawable-xhdpi-v4/notification_bg_normal_pressed.9.png": "d27af435101ca4cbec0c840bd30687918cd39eb83aab1487420855623a45998b", + "res/drawable-xhdpi-v4/notify_panel_notification_icon_bg.png": "b44eeda34d7a529c2fe55719eb098fa29707caa91d18de06a7a775d6e6bcf973", + "res/drawable-xxhdpi-v4/ic_call_answer.png": "86763a30af2a934c7c13b123b36443d1d17918b71c6149bc6ee80115b872593d", + "res/drawable-xxhdpi-v4/ic_call_answer_low.png": "86763a30af2a934c7c13b123b36443d1d17918b71c6149bc6ee80115b872593d", + "res/drawable-xxhdpi-v4/ic_call_answer_video.png": "ca48f604262f2b4ef8b100c73130efe2ad33ef8c2a2c1b3516f24f51b7b04665", + "res/drawable-xxhdpi-v4/ic_call_answer_video_low.png": "ca48f604262f2b4ef8b100c73130efe2ad33ef8c2a2c1b3516f24f51b7b04665", + "res/drawable-xxhdpi-v4/ic_call_decline.png": "87adad32e0ec19c4e920420bf3a06c9f94f6128ed0d866a1891628aeab2cef06", + "res/drawable-xxhdpi-v4/ic_call_decline_low.png": "87adad32e0ec19c4e920420bf3a06c9f94f6128ed0d866a1891628aeab2cef06", + "res/drawable-xxxhdpi-v4/ic_call_answer.png": "ec698a3217bce74d8bc4a44bb008f2dbd3d1aebff1af1e9641805143dbf9fa87", + "res/drawable-xxxhdpi-v4/ic_call_answer_low.png": "ec698a3217bce74d8bc4a44bb008f2dbd3d1aebff1af1e9641805143dbf9fa87", + "res/drawable-xxxhdpi-v4/ic_call_answer_video.png": "4c717ce1ffb551c765981add65d1956132d8f522337de2866b045f0a60485426", + "res/drawable-xxxhdpi-v4/ic_call_answer_video_low.png": "4c717ce1ffb551c765981add65d1956132d8f522337de2866b045f0a60485426", + "res/drawable-xxxhdpi-v4/ic_call_decline.png": "ab73b729bb95878120a3bdc8dc915f3aaa1d7070fc644a0de64d40941ad507ed", + "res/drawable-xxxhdpi-v4/ic_call_decline_low.png": "ab73b729bb95878120a3bdc8dc915f3aaa1d7070fc644a0de64d40941ad507ed", + "res/drawable/notification_bg.xml": "20a1a2e83aa9806faeb234fc0a1094bc079adf5a25ef4cfef1491c5ca3b3c745", + "res/drawable/notification_bg_low.xml": "49041ec87bb2ec2a8bc23685c8eb2c2d5297aa39f1412dc7aa6639aeec12ee49", + "res/drawable/notification_icon_background.xml": "b143ee7fcbba209f17607a720502d755f085ec75380ad6fbd6f99de6583f0a40", + "res/drawable/notification_tile_bg.xml": "fb5d113d15ff98da0eab3cb9e178e909ad5e261f30a24add0267e2827b4c7774", + "res/layout-v21/notification_action.xml": "4e046a162878e2f8796c6380f0c5a9a7b40f1ffb251478ecfcbbe3b434bd1178", + "res/layout-v21/notification_action_tombstone.xml": "a9657e68fd0c10ced5011b67b9e37a5ebe262957ef15fa3679a9a1f8784fee21", + "res/layout-v21/notification_template_custom_big.xml": "4879194cce032a3c5ea58d2ec796766b00bb057a4ca4bc11c56ed1830a61c7d2", + "res/layout-v21/notification_template_icon_group.xml": "97d5723ad66c683d88d57918e197cb33d2dc1628aa77299e42e132622c2c948e", + "res/layout/custom_dialog.xml": "edd4e27b3f2407a02248205a2eb50288170e4201249bfeac074749ea60390103", + "res/layout/ime_base_split_test_activity.xml": "37ff040591f96786bfaf9d3d937fedf2f2f97e218c06beb3e7fe8a2442a181a8", + "res/layout/ime_secondary_split_test_activity.xml": "0034556846afe7278a6d1264855405a0c3ae65a81a6a05f9ba4dc0136a589685", + "res/layout/notification_template_part_chronometer.xml": "9ae2b91ed155032cb90ee4cfead57eba2728d0e6ff262d2275ff63516604fc94", + "res/layout/notification_template_part_time.xml": "4a838e479642de5ee2cd1d0785b35d195995fcf27b0b9561140a6cdccbfe3ad6", + "res/xml/native_input_test_ime.xml": "d560413501650fb393941eb5e8e36b30aed25a309dc294cc0435f74d6dfe326d", + "resources.arsc": "a743d0f25129f83afc5a9790dfabdd4c6937b071c930014b432aa9a2fd74e4eb", + "LICENSE-junit.txt": "9648bb2891b9813970bddb68d4be8a5e6ec8280d0180a53dfb29236b579c55bb", + "META-INF/androidx.compose.ui_ui-test-junit4.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-test.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.test.uiautomator_uiautomator.version": "a42caf4a54bbbe27aa45b6efbc6356c5e299b19763e728b6cdb7201b02ebbe36", + "META-INF/kotlinx_coroutines_test.version": "179f9b723b6508aa1d6ce99991e8cd549ca819ee1b9b6102396c47815beffaaf", + "META-INF/services/kotlinx.coroutines.CoroutineExceptionHandler": "1b8e1a088e38c9bc8dd36517de1202651f06a9ca9eb0e6adad7305392289a94c", + "META-INF/services/kotlinx.coroutines.internal.MainDispatcherFactory": "90d3bc46060b2a33332bd2bc8122d5b03dd1a507718db830d5e809cc62c4490d", + "javax/annotation/CheckForNull.java": "4807942043605b325f0fefa243344db0d11e32cebd8f133df2b7c5d8486f2312", + "javax/annotation/CheckForSigned.java": "9c3d742fe9ab8e5fb08d5562ab0cb0255e2960facf94f83349be542b6557f3c1", + "javax/annotation/CheckReturnValue.java": "fc328c2dbc79fb3bc25d47a7f0486410fe8a04e6d6ceadf97f7ed44fa6dc0ebb", + "javax/annotation/Detainted.java": "7d272cf814d47c8cf89dd0d2f283ddfc88a26405122fd98f2842dbcb0789ed0e", + "javax/annotation/MatchesPattern.java": "ff2ffbca3823c1a3f5333630878068c724f67058264cca7396d9abef821897dd", + "javax/annotation/Nonnegative.java": "73b83d783bc7cdf7b5c9f4331a928154c6dc4e97ba349a5e5124e026ba4221b0", + "javax/annotation/Nonnull.java": "eb2d5ac7cd628dd3c59e5f7b14378fea531d5c76857df837cfe8f9a2ece1dddc", + "javax/annotation/Nullable.java": "511c9e8888bbdc13e0388eb5c3a882f43ff21160093b404c870ce94e83a1f509", + "javax/annotation/OverridingMethodsMustInvokeSuper.java": "5d786c4fff3f381babab9f745252dd80ba10210c402bd4c15161ce9b63decca6", + "javax/annotation/ParametersAreNonnullByDefault.java": "94233ca1ca4fb6d457bed883f8369019d4f0016be81d4e5ccfc01f5d50bf946e", + "javax/annotation/PropertyKey.java": "5559001d0f69e49487f1cc0cfa82d37e064b04436ccc7026a3d8a5aa30215d7d", + "javax/annotation/RegEx.java": "7b08d091734672f8f8f320fdaa7cde6ba48c786a2fdca94c9e2407e1e2af2aba", + "javax/annotation/Signed.java": "76633adce590e7c771ef7f727b575f9ae54389539d666677a9ca1a9e4256e374", + "javax/annotation/Syntax.java": "63c05bd38c7c279d147058d6e154a44ee1da62c92cc6849a573bdc6c345869e0", + "javax/annotation/Tainted.java": "9b755d095cf2c4a41a8e064b5bd0ab3e556845048b705d2cc98e8635b8bda6f2", + "javax/annotation/Untainted.java": "e44096a654f825c9f8f3fb9ba099f805155b3daf41918c177d7193558bb11981", + "javax/annotation/WillClose.java": "1c81ea1c7284c37c5d66b436fc63267877667da03b2b646fc6c11ea2a8dfac08", + "javax/annotation/WillCloseWhenClosed.java": "b3c6e342b4dfc4c62d33857f8920cfe077e9f2c31379d8f627495e0c4a06cb13", + "javax/annotation/WillNotClose.java": "6c258758fcf54c9657052dc9e86d0abc780f8a4580804e3a0a8b8b376529e453", + "javax/annotation/concurrent/GuardedBy.java": "f2650971001cbfd4c127487e0115e7a9539d64fd6a98dd8dd0675330ae3b790d", + "javax/annotation/concurrent/Immutable.java": "47f9a076a4396c492a373eec9622a15497b56b633a67af97ca51bd3b1142a08d", + "javax/annotation/concurrent/NotThreadSafe.java": "73060a8907c01ee7a72bfbd9c74a037ff1953bd7a4510b8997fdcec0a5741a19", + "javax/annotation/concurrent/ThreadSafe.java": "bcfd9f7a27af49a6505734ab03259f02a7222d3bd052821caa6d94d930bdfc9a", + "javax/annotation/meta/Exclusive.java": "0b0405f1dc140ac2ebdb4cdd3bbbfdcf19e22d724bc57a89d530b33e8c9b7ff5", + "javax/annotation/meta/Exhaustive.java": "c9b4085041acd1602691ee49535a6a91afc2b67d6bd9d9fb4e1ab2169d627a6f", + "javax/annotation/meta/TypeQualifier.java": "828fffa618ac1cda2fc07fcc0e5e58785aadfe4bc481c0e4e8dc5fc23d662ce5", + "javax/annotation/meta/TypeQualifierDefault.java": "27faa048d7c23bd6d79d3515816ec1f356758ae140c0edc702a74b91f9215395", + "javax/annotation/meta/TypeQualifierNickname.java": "309cf58e837f1bc63183fc9443b231904157f1ac25bfee0e5cebcae52f44eb51", + "javax/annotation/meta/TypeQualifierValidator.java": "4d1e2ca6f465ce130a8233086053acc991e5fd389f7e31c88a0cd19ef32c666a", + "javax/annotation/meta/When.java": "d79dfa99e03fa1eb6d0e6f024833ef16c1029b98975e2e767f760b2dbf4d8790", + "junit/runner/logo.gif": "345b5e2207a524e0019779d13f0f8ae51359f894a230479467761331e3d1ca16", + "junit/runner/smalllogo.gif": "b4819008f181bf3e0b47254f72149c62a556a56fc0358d3143e405b191de2081", + "classes3.dex": "8d9d70cc74fbf93b7ac2af239358a662373a99f6b806f7e7cf7a526c0f99eb4f", + "classes4.dex": "642edef0b1665970aaa120384b092b44e9a74fc5b83b325d6fbb8dd85a5433a7" + } + }, + "unchanged_original_assets": { + "assets/ANDROIDSVG-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "assets/ANDROIDSVG-NOTICE": "2e61b715e3553494f46f43e5a88e8d26c56201e0558c8d5ab02946edb4f7dedf", + "assets/COMMONMARK-LICENSE": "11cfcf6da0142fb1971c1f40f5924ddded14454e2793d7f1dd87c9f4abe42dfd", + "assets/COPYING": "14609801e0e520dac851e75d993ca4c75c3842a3be468f6f7f04a16c03c824db", + "assets/GEMOJI-LICENSE": "7ea1d1fd0602e6623b9a65e791499a0ea5a2f5f60f91bfad78cbaeee19da26e6", + "assets/NOTICE.md": "c263e44ea9a845c4e4ec564eeca46ae0fc343f63ffd10685afbf74586647e0f6", + "assets/REACT-LICENSE": "da6d3703ed11cbe42bd212c725957c98da23cbff1998c05fa4b3d976d1a58e93", + "assets/RaycastRuntime.generated.js": "b306b45453cc8507037ff2822066475aae17def757a8ef72d4a4fc64c6494bb7", + "assets/android-runtime.js": "1b5dfa3f5b512f55322f27703bbebf15d1a8c4569c4c1712a6dd64541dd552aa", + "assets/emoji-catalog.tsv": "e49f1cc09c6f487a6e7b55590ecc171dcff390f720a9ce3820fe2038810d5d66", + "assets/extension-workflow-evidence-v1.json": "4e8adc22b7887996140190a999f1c7272556f2dd379d219c88e276e48aea0fa5" + }, + "old_app": { + "source": "6c5825bf0da60ad9b452ec4550aa49d60704e677", + "sha256": "66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c", + "scope": "Reviewed PR113 app; common instrumentation exercises actual keyboard Show/Hide" + } +} diff --git a/docs/validation/keyboard-toggle/identities/candidate-v1/test-manifest.xml b/docs/validation/keyboard-toggle/identities/candidate-v1/test-manifest.xml new file mode 100644 index 00000000..ec741fb2 --- /dev/null +++ b/docs/validation/keyboard-toggle/identities/candidate-v1/test-manifest.xml @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/identities/candidate-v2/app-manifest.xml b/docs/validation/keyboard-toggle/identities/candidate-v2/app-manifest.xml new file mode 100644 index 00000000..9930430e --- /dev/null +++ b/docs/validation/keyboard-toggle/identities/candidate-v2/app-manifest.xml @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/identities/candidate-v2/identity.json b/docs/validation/keyboard-toggle/identities/candidate-v2/identity.json new file mode 100644 index 00000000..644f0ae7 --- /dev/null +++ b/docs/validation/keyboard-toggle/identities/candidate-v2/identity.json @@ -0,0 +1,581 @@ +{ + "source_commit": "411b7f73ffea57b15ffa1c5ff01a468506495467", + "app_source": "411b7f73ffea57b15ffa1c5ff01a468506495467", + "test_source": "411b7f73ffea57b15ffa1c5ff01a468506495467", + "controller_source": "411b7f73ffea57b15ffa1c5ff01a468506495467", + "build_commit_property": "411b7f73ffea57b15ffa1c5ff01a468506495467", + "source_sha256": { + "app/build.gradle.kts": "28f41ac518c91f15c98221d0511870a5409b9f35ae008acfdd5f667db06bcadf", + "app/src/androidTest/AndroidManifest.xml": "63c98a685e9dd67d8150af8981832d34271fb37a92e46444eec52728f559d609", + "app/src/androidTest/assets/owned-detail-fixture.js": "873d3f25f95271029e31779b0920b5955a2908a820a07652b58efa21a2358cfd", + "app/src/androidTest/java/dev/tinycast/android/ActivationDeviceTest.kt": "2f2fe66a5c3628433feeb6db33e02be43ca3f267b39ec541f2e3330fc1142974", + "app/src/androidTest/java/dev/tinycast/android/AssistantDeviceTest.kt": "1ecebcf20fe9aa7aa63701c81500195eddd1ae88618d89f31105fecc58189b6b", + "app/src/androidTest/java/dev/tinycast/android/AssistantTouchDeviceTest.kt": "1f33a283e5b1f05a5a74dbb76bc3ff8920193cd761edd1cce1e61cb733cb9874", + "app/src/androidTest/java/dev/tinycast/android/BackupDeviceTest.kt": "56c56d6a652524f7fc7952b1478552314b1e465ace5c7216385d7f2ea3cf4b6c", + "app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt": "e738e5b09aa6128343abe628ed7f93571b9a87c1eb95e78f00c617aadcf348b4", + "app/src/androidTest/java/dev/tinycast/android/CalculatorIntentDeviceTest.kt": "628ddcef4b50880170fba97cd925fefc5f463f632799d9e2686e7512b2bbc15f", + "app/src/androidTest/java/dev/tinycast/android/ClipboardApiDeviceTest.kt": "e53bbc080d17b59aae6280b7b817a3c81b4df684dcfd5ca787a993d89caf5de4", + "app/src/androidTest/java/dev/tinycast/android/ClipboardEvidence.kt": "c882a7435cdca3bbdf68da66a6e8ef23bce932fb5746ba09c61bded5b9c98e9d", + "app/src/androidTest/java/dev/tinycast/android/ClipboardEvidenceDeviceTest.kt": "dfdb64344886b7e5d4b54f04fa4560f169e8cb8d7b7b238ba08358dcde73f854", + "app/src/androidTest/java/dev/tinycast/android/ClipboardRecoveryActivity.java": "48627f465b10c316cca7fdfa735928095328241b4fb98bf90e5c247add17345d", + "app/src/androidTest/java/dev/tinycast/android/DocumentProviderDeviceTest.kt": "13895d23b8758affd8889461ef660c442d3bfd1bb111fce08a064aa4b582aea2", + "app/src/androidTest/java/dev/tinycast/android/EmojiDeviceTest.kt": "ab9907d4e4acd7e52ed26f12ac14648271e5740784cdba678671ca8ad42fb415", + "app/src/androidTest/java/dev/tinycast/android/EnduranceDeviceTest.kt": "4802d3755ce6bc1cdf8e60c7cf9998a09ced8e0be6d9888f0b9d9a32ee332dc4", + "app/src/androidTest/java/dev/tinycast/android/ExtensionCommandHandoffDeviceTest.kt": "8c47f08b1d49a94dfd520840a0b0349199459da4ece8ff1adcacc46516b37f7b", + "app/src/androidTest/java/dev/tinycast/android/ExtensionDetailDeviceTest.kt": "d5bd83f6d174ca5d5c3c9d68551cc3a78bc90763060410bd5f3b67d9d9642025", + "app/src/androidTest/java/dev/tinycast/android/ExtensionDeviceTest.kt": "3087ff055f70cdf43d2565e22703b9c57445b5c3e1594126d60b0279c32b2640", + "app/src/androidTest/java/dev/tinycast/android/ExtensionEmptyViewDeviceTest.kt": "64e6b1e68c61cf67b24ba02d1e14a72d297b1bdeebbdf1008905d5619ce2558f", + "app/src/androidTest/java/dev/tinycast/android/ExtensionFormDeviceTest.kt": "6418f6ab517ead50a102b4834bff9c40988849fb3a2a1ef20f575d162b32e11b", + "app/src/androidTest/java/dev/tinycast/android/ExtensionGridDeviceTest.kt": "952b4f2988379c1545575d1332f8358acc9053e257a382b7549a27f6b4b40de3", + "app/src/androidTest/java/dev/tinycast/android/ExtensionMarkdownDeviceTest.kt": "e4b7daa9fd914335f572ef41665595104cdae5434682977a2d806ff63ef36c4f", + "app/src/androidTest/java/dev/tinycast/android/ExtensionPasteCopyDeviceTest.kt": "7bdd8e876153d4d46357402eab58cf89c0e8885823d21894c70882ed55b1da8e", + "app/src/androidTest/java/dev/tinycast/android/ExtensionRecordedTestsDeviceTest.kt": "1aa11011270b01a235bb052c6063da7eb5f7f726a7bb19f79aa54e7b8aa4ca42", + "app/src/androidTest/java/dev/tinycast/android/ExtensionSandboxDiagnosticDeviceTest.kt": "3e192cb65d011e021d5b47b6bde765e1136c2ddf7e039b5c9dce6dedbf39da15", + "app/src/androidTest/java/dev/tinycast/android/FeedbackReadabilityDeviceTest.kt": "86096d428b6554bcb6b8c9d7bc39b981baf1fd53f9367a33c97ce03c89020a82", + "app/src/androidTest/java/dev/tinycast/android/FolderDeviceTest.kt": "f3d54b0d788459d34470d2d87c8882cdfe30e8956a8886cd324dd63160f5628d", + "app/src/androidTest/java/dev/tinycast/android/FormDocumentsFixtureActivity.java": "434e72d8a0c977a83cbe6524cc51638eaff9cca5581c570ea58d4068ad2156a9", + "app/src/androidTest/java/dev/tinycast/android/FrozenBundleWorkflowDeviceTest.kt": "9d31d56f739caa2509610cf4c07abf70dfd5ea0aead7ec5c5673bde1ca04bc45", + "app/src/androidTest/java/dev/tinycast/android/InlinePaletteDeviceTest.kt": "ed2cfb9dc3c5218adfe0ae7b3cc1c60a69e6cf8c83ad434c2fc6b87d23bb2727", + "app/src/androidTest/java/dev/tinycast/android/LegacyInputDiagnosticDeviceTest.kt": "4966fac20af96b8597fb38a278d8f3ef89b7e335f3d3b6e5df00fb349ebabc55", + "app/src/androidTest/java/dev/tinycast/android/ModifierHardwareClipboardTest.kt": "141499cea10d4c80b8ef690fd43e985c066d1b420afa23895c32e75de737ec8d", + "app/src/androidTest/java/dev/tinycast/android/ModifierTapDeviceTest.kt": "d33bafba795569c15bab709a9830ca06ecffda9feb754492ec437d55c1d1cae1", + "app/src/androidTest/java/dev/tinycast/android/NativeEditableAssertions.kt": "be979c8e0f3e78b8d0e4482c2653769d732d24871a822b3761f5708a1e6a230b", + "app/src/androidTest/java/dev/tinycast/android/NativeInputCompatibilityDeviceTest.kt": "484dcb406a6b9fbc7851efd883029a43b303bdab799c9385e51a678ab91a51fc", + "app/src/androidTest/java/dev/tinycast/android/NativeInputTestIme.kt": "c3a766ae381e6e4a1b514b3890cdd220616df8e9b88208cdb9aa562ebd8f45ce", + "app/src/androidTest/java/dev/tinycast/android/OwnedFormDocumentsProvider.java": "67c22d543cb2136d81dc3544d8f63df94ce67f9524c7f19dc9c6b1b586713e89", + "app/src/androidTest/java/dev/tinycast/android/PaletteDeviceTest.kt": "7f5861ffec2e762c1e629519802c10d4b31e3bebd49a3c5867013c6aad77f3f4", + "app/src/androidTest/java/dev/tinycast/android/PaletteOverlayTest.kt": "0755f9aa38bdb5785d2cb8902157ce990b5b9825db0ae71847e11c8b1bd4b7aa", + "app/src/androidTest/java/dev/tinycast/android/PaletteStabilityDeviceTest.kt": "87896693541425799e7815d2fc1e3988e29afd9bba346da48183a91fa91be9c9", + "app/src/androidTest/java/dev/tinycast/android/ReadinessDeviceTest.kt": "c6f3ea767e9adc8384a3b662223ab57bef067fca8501509e0415111b711589f3", + "app/src/androidTest/java/dev/tinycast/android/ReadinessRegressionDeviceTest.kt": "3815d7aef28c0943999782217eabe14dd80fdd464476798bd0bf12a1d0be3c4a", + "app/src/androidTest/java/dev/tinycast/android/RecentDocumentDeviceTest.kt": "85af5ed0fd05c0716b8ac14b24e98397829ff8d241695999a0cfc68727923e40", + "app/src/androidTest/java/dev/tinycast/android/ReviewedTextCallerActivity.java": "640609575a0711566bf23f3028a5144e8aeae912604f9b7180912fd2c9b96200", + "app/src/androidTest/java/dev/tinycast/android/ReviewedTextClipboardCrashDeviceTest.kt": "6a1ebc4d90c8b5fa9a07f4b288c20b361297efbeaf7d4423eb211da47b4cf0c0", + "app/src/androidTest/java/dev/tinycast/android/ReviewedTextDeviceTest.kt": "31040a9d92e7e60d8026dda7119a9f7eedd2127ea6f50bfb308849f56b6fc0ac", + "app/src/androidTest/java/dev/tinycast/android/ReviewedTextLifecycleDeviceTest.kt": "2190f43dca4d7a7eca162a7e34f46d6091cfd114d83a5e4509946c1b912ce76f", + "app/src/androidTest/java/dev/tinycast/android/SettingsDeviceTest.kt": "dd9b9a2492c497a2a3ac3218d0833d2e8b536eb904975aa536b08361acc323a9", + "app/src/androidTest/java/dev/tinycast/android/SettingsRouteDeviceTest.kt": "8f6991670e740a07d3a6b30aea270b60e19f6d237c4b7b6afaf25200962ad736", + "app/src/androidTest/java/dev/tinycast/android/ShortcutDeviceTest.kt": "5376ede8474d5eaa4ec7ecb628d1056a5bfc963bd2a292d17d9b86eead8a5415", + "app/src/androidTest/java/dev/tinycast/android/ShortcutReadinessDeviceTest.kt": "41bdf7ab67a6899dc8a0b1b0f697135bc587dc401c9234eb56d25385eadf3dcf", + "app/src/androidTest/java/dev/tinycast/android/SystemSettingsDeviceTest.kt": "80e0c919fbf04916d2441aa3fbc4cccfac534f56c29dfd908e5ae2d917cfe13b", + "app/src/androidTest/java/dev/tinycast/android/TestAutomation.kt": "faad509cd41b06c4cc1087e5de8e0218abca78773603b2050bb2825c880588fb", + "app/src/androidTest/java/dev/tinycast/android/TouchReadabilityDeviceTest.kt": "6801d25bb0d9bc45899b04aeedba474e2ac8e5cc8cb168b6268e0305fb49345e", + "app/src/androidTest/java/dev/tinycast/android/TouchSearchDeviceTest.kt": "85a135c962100cca846e7088123761bf3c17d91505c7ee954120e03102a2b63a", + "app/src/androidTest/java/dev/tinycast/android/UpdateDeviceTest.kt": "380e4d7702d2f8c68fd575581309113bc67abf3e5713bdb177cc3b920c4e2787", + "app/src/androidTest/java/dev/tinycast/android/UpdateSelfInstallDeviceTest.kt": "fc94ef400b54ee2cf8378d2b1632fff1521299f188a132f0330e930b40f80ed3", + "app/src/androidTest/java/dev/tinycast/android/UpdateSourceDeviceTest.kt": "76d91931dc044fdeb001a8325a321306011f2b0c54aa631bea25751c59f3ea50", + "app/src/androidTest/java/dev/tinycast/android/UpdateVerificationDeviceTest.kt": "cebe3033132db567affccc5419ec59a9639c87ceb88b20c38ffbba16c13b4592", + "app/src/androidTest/java/dev/tinycast/android/WebViewCompatibilityDeviceTest.kt": "ce5842cad291b9cb77aed19ecb9436dc80de24beb27e018797a7f84fb4a84895", + "app/src/androidTest/java/dev/tinycast/android/WebViewRecoveryDeviceTest.kt": "dd6ccf056187d184dd7fb6aa1eddeb76bd7037f4af21f749dbe379a7a2eeecde", + "app/src/androidTest/res/xml/native_input_test_ime.xml": "4aafc899939ff4b8883a80c6e00f7ff7413a08a603d485a15f1035c07760b50c", + "app/src/main/AndroidManifest.xml": "65fefcf86296b7103c2237f1e29bca7890bf33f6b5056f860c2e39ede371a55b", + "app/src/main/assets/ANDROIDSVG-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "app/src/main/assets/ANDROIDSVG-NOTICE": "2e61b715e3553494f46f43e5a88e8d26c56201e0558c8d5ab02946edb4f7dedf", + "app/src/main/assets/COMMONMARK-LICENSE": "11cfcf6da0142fb1971c1f40f5924ddded14454e2793d7f1dd87c9f4abe42dfd", + "app/src/main/assets/COPYING": "14609801e0e520dac851e75d993ca4c75c3842a3be468f6f7f04a16c03c824db", + "app/src/main/assets/GEMOJI-LICENSE": "7ea1d1fd0602e6623b9a65e791499a0ea5a2f5f60f91bfad78cbaeee19da26e6", + "app/src/main/assets/NOTICE.md": "c263e44ea9a845c4e4ec564eeca46ae0fc343f63ffd10685afbf74586647e0f6", + "app/src/main/assets/REACT-LICENSE": "da6d3703ed11cbe42bd212c725957c98da23cbff1998c05fa4b3d976d1a58e93", + "app/src/main/assets/RaycastRuntime.generated.js": "b306b45453cc8507037ff2822066475aae17def757a8ef72d4a4fc64c6494bb7", + "app/src/main/assets/android-runtime.js": "1b5dfa3f5b512f55322f27703bbebf15d1a8c4569c4c1712a6dd64541dd552aa", + "app/src/main/assets/emoji-catalog.tsv": "e49f1cc09c6f487a6e7b55590ecc171dcff390f720a9ce3820fe2038810d5d66", + "app/src/main/assets/extension-workflow-evidence-v1.json": "4e8adc22b7887996140190a999f1c7272556f2dd379d219c88e276e48aea0fa5", + "app/src/main/java/dev/tinycast/android/AndroidShortcuts.kt": "1738bc2fe26a117f3d00edddf2639cd49d118f9d91bd5f6eff86d6ee6804b68c", + "app/src/main/java/dev/tinycast/android/AssistantActivation.kt": "b5855f87a029362bd06a63136dea7a1572fff716d0c302056f2a3647d9d95560", + "app/src/main/java/dev/tinycast/android/Backup.kt": "97f09aa4c2cf7ef42473be8728be28cadd3f3ab14930a6804590c0544a7c104b", + "app/src/main/java/dev/tinycast/android/BackupUi.kt": "d13aabc798d7fb19746b09d28a38593792792b67e916824776413d2fbe82870f", + "app/src/main/java/dev/tinycast/android/CalculatorActions.kt": "e03e5645069dafb156556efac7bd465f632938f8a5a24a78be72dff0ee5d3947", + "app/src/main/java/dev/tinycast/android/CommandEngine.kt": "b6be72c82b19fb09e1bf44cd4dd4148b3dbb0c39098eb42f89e80f9ffa034f78", + "app/src/main/java/dev/tinycast/android/EmojiCatalog.kt": "4dd39955ec38adea02d0c1974ace2b33d86ae738efea0e59d3e62b9072c10b81", + "app/src/main/java/dev/tinycast/android/EmojiStore.kt": "f7f5dd63af030b9d179c70336f4b52789d23a318020b6f19ac0c24d20ba8cd8e", + "app/src/main/java/dev/tinycast/android/EmojiUi.kt": "e15b3a4b62f422dccf3ee25b724194889680210d2d43e3ff0353c368538f42f3", + "app/src/main/java/dev/tinycast/android/FolderGrantTransaction.kt": "11361d342e1e1598c85b5ea630f174c3a4590cbfaf9b430a30fbea2b9686a5c7", + "app/src/main/java/dev/tinycast/android/FolderIndex.kt": "6f1b1617a39c0c6e954a1b9b4da0d0d6af3ab7eeac25f2619e299621eec83a99", + "app/src/main/java/dev/tinycast/android/FolderSearch.kt": "4fcf90368ed70b49c192ab1b92b6e367d0a61643f928245f8447f542e745b60d", + "app/src/main/java/dev/tinycast/android/FolderSearchUi.kt": "dad0f473544f8e459aa301ad8eb91ec7380cebbe572e3e2be3f94443585a75c6", + "app/src/main/java/dev/tinycast/android/FolderStorageCoordinator.kt": "ff5491baf9d81ff19b04b35e33a503fc1656bfee9d8eb066453fdbe7e0f83bfb", + "app/src/main/java/dev/tinycast/android/MainActivity.kt": "2bc08e693d69ba4668a675c42dbcabb507755f8e3daf9ee01eaf62fd5744efe0", + "app/src/main/java/dev/tinycast/android/PaletteActionCapsule.kt": "f7228cdd6b6988fb049f0aaf1048d69cc8489e802b4cc42a2b4d6f9e7ceea3e0", + "app/src/main/java/dev/tinycast/android/PaletteColumn.kt": "cd6cdc348752bcc20bd631e2216abdd4ee0c91d9606aaab62ce0c01a145dd6aa", + "app/src/main/java/dev/tinycast/android/PaletteDialogs.kt": "99055192ab85f645a9d9c77d96064b06bba2f1435de503bc45be8f56b4de2dc5", + "app/src/main/java/dev/tinycast/android/PaletteFooter.kt": "5b62c907b46e5075975fc22d01771f5ab7c7f53e433692de55d92865231e967f", + "app/src/main/java/dev/tinycast/android/PaletteFrame.kt": "bfbc139e01a4276770644d5f4c1242016839fd98f5e2f21fa8afb31c886bc763", + "app/src/main/java/dev/tinycast/android/PaletteMenuOwnership.kt": "0be25f335246b8e47bf07ea057adf2045a20f9db5bee90a396109adfa7426174", + "app/src/main/java/dev/tinycast/android/PaletteMenus.kt": "43bc24a46a1ea0bac20f096a7d5d5256250c1c1069e0990bc958881830533dd3", + "app/src/main/java/dev/tinycast/android/PaletteScrollHistory.kt": "84e26b8544adc069c9f86e3273acd2254e2189f1680dec592570a261cdf87602", + "app/src/main/java/dev/tinycast/android/PaletteStore.kt": "7434fd21d100108a267e5790ecb705f4ca76c5dd0c86cc5b14bd9644ed58f57d", + "app/src/main/java/dev/tinycast/android/PaletteTheme.kt": "7afa29642b2bda9c9f669eaf6cdefcb977d14417d313547aff1ff807f4e37471", + "app/src/main/java/dev/tinycast/android/PaletteTileService.kt": "6f29825b3560944aae77935bc3abfb6a53e9577735dc622bf80e5ea1a1fbad00", + "app/src/main/java/dev/tinycast/android/PaletteUi.kt": "ae274c6ca3da3afc06a72bf14e77b86e22af35e67b77f4ef9c56984e58d0a3fa", + "app/src/main/java/dev/tinycast/android/PaletteViewport.kt": "7af62cfb3e5c210325dcb514246afadc3b5b5adbffda8cdded88100e8b7e44a3", + "app/src/main/java/dev/tinycast/android/RecentDocumentQueries.kt": "b60f5f6ac3458eb3659dd41aef01bcd20be9d59f3841ff0fa77c3eb6ee82c92b", + "app/src/main/java/dev/tinycast/android/ReviewedTextFlow.kt": "7daf246a7b8a608fe61e06f078bf3167c17df8f784f8779977ba6e87914526ea", + "app/src/main/java/dev/tinycast/android/ReviewedTextInput.kt": "ca681bb2c4eb91188a1550650bf5fb5f83569bf8ac954ab22abc0ce05ed17e73", + "app/src/main/java/dev/tinycast/android/ReviewedTextUi.kt": "5ded41175e114968aa1994c93ade551b21121db15c4a4a7ea5ff87deaff00d86", + "app/src/main/java/dev/tinycast/android/SearchClearButton.kt": "0d4b0bc74a48d1c2d13a62fcaec60adfa51c8966199ea71465dd3ecf40510229", + "app/src/main/java/dev/tinycast/android/SearchKeyboardButton.kt": "bc563f664a6498035de8c8629a919869184904aa696ca0dc821fa68c2c4a3d84", + "app/src/main/java/dev/tinycast/android/SettingsActivity.kt": "6c8a09cf51abdfc1f61c305b17e613f7b40f9960168aad2fafebdc31155a3601", + "app/src/main/java/dev/tinycast/android/SettingsUi.kt": "55886d17261a019fcddac77f25e655896217dadd081db6da23a2e519a6bad35b", + "app/src/main/java/dev/tinycast/android/ShortcutReadiness.kt": "83a422a837edc657f1f3faf94c155019eae73f1abcc8761379dcb2051ceed505", + "app/src/main/java/dev/tinycast/android/ShortcutUi.kt": "394fadd7890bbb2dd5f851bd5a290ebf19ad4e05fae64c321e529eeccd35c632", + "app/src/main/java/dev/tinycast/android/Shortcuts.kt": "14e08d112e3cc5689a5717f68dce1334d3c2bf92f4a7cfbc2057fdc96418a9b2", + "app/src/main/java/dev/tinycast/android/SystemSettings.kt": "c5c1535d12627b975f8f582437e53d02b4110f4bfb185d5c8d1e9307debc319a", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionCatalog.kt": "4427ae6610fcf75bc8f7ddeec9b869ab5b6698c9042280f9f0efff7ea3422e1e", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionCommandLaunch.kt": "2b253982bfcaa9c2b04178fcd38a04492e450352a459bdf375abc7948e6950c6", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImageInformation.kt": "8a5d61b8f7d594933c6797d12c60f1888b4f4f4ad7de35a306c206406733b5e0", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImagePolicy.kt": "f393349926cd371a67e3e59af0d0eb4db66d124e035259622c5558efb0035529", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImageTimeout.kt": "16e0fb6b411c4cf30fcbcafc7df536f72da84c1a208f0ea47ba1a0b612d762a8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImageUi.kt": "6da7920fd357a8106015a8a6da6d085fd2b8ae2bf26269c4aee670c84f7b0af0", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImages.kt": "a87f8cf7d311baefd09c62f8a09e282764561bc2fe27b61abe0aec14d8c273f4", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailUi.kt": "15be7bc728b4fa72841db59a6e72e9acece275a5a6315d4ba6b19af22fc06f21", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionEmptyView.kt": "4ab1b0093364ad790235b666fc70ec2642bb40692f3ce7fdb830e6bc514c61dd", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionEngineCompatibility.kt": "36a9b4b35d22bc364ecb1f46d2d9f029e3807315a2d35d2fd231b2a86e8b49c8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionEngineUi.kt": "6972248240f701edcc038ce70428dfd1a716e40894d616918469af3270aaa9cb", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormContract.kt": "6eba4aa3f33b19d4c452212b3bbb33c8ac0cbb8ae8e61963867e83094d6778ed", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormDateUi.kt": "e052fc6c27a78ac0df119c954f7ef43f720ce8ab72462bb712832b6dfdeae18f", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormDocuments.kt": "1071c99bd42ec6265991731022662729fd1ccc0269fee924b229f9ab8c2980fc", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormFileImport.kt": "c91ee69d460190918ee649a61a340429ac0478a59ab5e7ca824db8c17d1f5d00", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormFileUi.kt": "4241a498c65c255db94f833038a1f86a8cb06f27b4cecb3838cc20e953262b01", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormPickerBackdrop.kt": "dff8e4e37d38c1387bfd221f6c43c29272abfa144fff34ada0a0734a9c0f946d", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormSubmission.kt": "7f89b0ef7216cafb22c72a636b3b2998e5d71c9933bcd87d7c65a25b9a2bd9d8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormTagUi.kt": "509187d014c00ca027720e16d22934686d1c0491f10e5e151a27b574cde86a96", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormTypedValues.kt": "bd6b1c9b3e45101715916ee145ad41cfb1b74e206ae733f97d375c119f86af97", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormUi.kt": "bdb8f813a82e1e1860ebb08047b4a449a440ffe6d2a005d97c06debcbf4438c2", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionGridImages.kt": "777de62995b645310418d2f0da8adf87c450d8b7459d1c9abab0e9a02ce84258", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionGridModel.kt": "5b104c726a950f09a7cf890a14c0e4e654dfe8f5ea8b1b41468a0822f42a2f48", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionGridUi.kt": "c66cd6ee6d29cd2cc43d45ddbdc15f175ac5a5a39b332736b4cbddecdbf9e6bf", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionHttp.kt": "88ed57ca318c3e0c45e50f85e3157692d479bdae9636127869556cfb553abfe8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionLinks.kt": "cebfba7010fd2a20423527f8025413c21257ecd8e97ddc0dcb321b1c74db71f1", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionListUi.kt": "b02b632904d5d6be8f7b967cd10ccbc72d7e3d8fff3caf66c4fb444bce7de136", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionMarkdownModel.kt": "723a518700e335179c296e8b9b05ae9a899c8aaf93b8ca02b76476a46879d6ea", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionMarkdownUi.kt": "54d1b8dc6b09e55a7b0adf7d23903c9fb97551673a5695196e2e6f89259e304d", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionMetadataVisuals.kt": "882b7080d8f46cc9c9e2fd96fd1cc5cb0565cbb282bf3b04cad1c31b77a32290", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionPasteCopy.kt": "3ee4dfbb356c6ec02f50d8d525ca805c0d21468f49529b002e054ff9c03c71b8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionPayloadIdentity.kt": "66037b60818bc4941f58551e6c1401c18641a6da43f9f2477db9c9f7838e29f0", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionRuntime.kt": "8df6a1a357a7133ce451930cc174b7382d70db75906724358ae40db664f6402e", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionSelectionDelivery.kt": "f13388787b615343c214a861a619bdba88b6327dc939365a130e9e799169c397", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionSvgPolicy.kt": "1bed94b2ea8e6d2475526a0ed83d85724e32893fafc8b27bd8f2b58a95cd868a", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt": "009e3b23953be18ae09c76a849dd6ce3943dff6b4f2d4b40d846385044851b3f", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionWorkflowEvidence.kt": "98f65f5dbe1578b11fbb20d80f477a63b03659f7b11b1a7a6f526a4d6fe94379", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionWorkflowInspection.kt": "650fdb495d2e1e0ab5331fe8c517baaaffcfe7d15e7f56b5b3f6247a650d01ed", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionWorkflowUi.kt": "93e9af8898ccce7fa1ab8169f08926b1d9fa95ba5657c517d7224f9356488c3d", + "app/src/main/java/dev/tinycast/android/extensions/NodeCpuInfo.kt": "eea176a7259e8f3736878886350610a84a23a6d2799f5337f5c8b07a8fefa398", + "app/src/main/java/dev/tinycast/android/extensions/WeakValueTokens.kt": "5c4d6f5c5b0d7170b554091e1b9cd9d551119ea60d7fe7f03946eb70f498c34d", + "app/src/main/java/dev/tinycast/android/updates/AppUpdates.kt": "63ace29d7dc29e005ffbbdde31cbac4e1d923732604b1e43e6a4db8a3285b508", + "app/src/main/java/dev/tinycast/android/updates/UpdatePolicy.kt": "350a9142ebfc663cd4a0c982ab220fb5f1e3399bfb3207c980ea20fd4c5c4e6e", + "app/src/main/java/dev/tinycast/android/updates/UpdateSource.kt": "aa860f14bd3a9f39e19899f1927fb7a790c54bb4f2704651253d8f867bb3c100", + "app/src/main/java/dev/tinycast/android/updates/UpdateUi.kt": "0bceb6a4221787a58dfb14ee1bcdcd266388720ca8862bd705cfeb10cfe52457", + "app/src/main/res/drawable/ic_launcher.xml": "104e38ffdf3214de23909b7896392f4a974e4fcbcc778c447d5d7a9ce56380af", + "app/src/main/res/drawable/ic_palette_tile.xml": "e063a6c4a1a25d6717a31bc355543d76c7d1babf8e9556e68b1b5e6a2b860748", + "app/src/main/res/values/styles.xml": "de4ad14f9ef41aaa4ffc824af155831579fa1194af5055edd112efee5042f5e1", + "app/src/main/res/xml/assistant_service.xml": "1e9e560563a7d0260fc83126d3a9bf027bf6357adfc811b43bc3224290c77ddf", + "app/src/main/res/xml/data_extraction_rules.xml": "cb4d1da1c1bd38761a9a08cc4d8d1b55839fcc14a6e19badb653f75b23c20eca", + "app/src/main/res/xml/keyboard_service.xml": "b1839c96988c03fea26ce4ed5932b1315013f3d2c16165993afc17368ab7bdd4", + "app/src/test/java/dev/tinycast/android/BackupPlannerTest.kt": "12a55d3644b5094b84cad2e88a5432738021fc8d7c59c232d4e5fc4c2c9a1454", + "app/src/test/java/dev/tinycast/android/CalculatorActionsTest.kt": "e803682a82b89c9703fcfbcbb82424eafef6bae6a13092953a3dc2c877816509", + "app/src/test/java/dev/tinycast/android/CommandEngineTest.kt": "65d9d198e8e1a188e4dcfd5551ced8f558f87a106f42b1d02a1432e8d6b7c234", + "app/src/test/java/dev/tinycast/android/CommonMarkPrimaryConformanceTest.kt": "ceb2ca14cc003385533bdd73b8beefffe92740887537b74c2146160621a23fcd", + "app/src/test/java/dev/tinycast/android/EmojiCatalogTest.kt": "9d70ef96696215e14e561d73f5a41f0b1a8272c3b58e5ad5a8438c31bc53aaa5", + "app/src/test/java/dev/tinycast/android/ExtensionCommandLaunchTest.kt": "f45df47e1740873ed7e771de72a650d9df88cd31bbcf2fd3abf67e3999700291", + "app/src/test/java/dev/tinycast/android/ExtensionDetailImagePolicyTest.kt": "7ec37a8870b70e3df0e3110f8b60ccc94185fedeaf1c39c76a00485dd4ca37d5", + "app/src/test/java/dev/tinycast/android/ExtensionDetailImageTimeoutTest.kt": "839216fc2d395cbd171676f32bfe77b894730a29a12127ec916c1d88b18dfb3d", + "app/src/test/java/dev/tinycast/android/ExtensionEngineCompatibilityTest.kt": "af9e76d4f6e7a6f193603f2db0169c95c7aadaca842d430c6178874f62840b1f", + "app/src/test/java/dev/tinycast/android/ExtensionFormContractTest.kt": "432d658e2a177312105e2ec86db2c59d0625086e86464a7ff946acb61c07e283", + "app/src/test/java/dev/tinycast/android/ExtensionFormFileImportTest.kt": "784f5b78f1dfd0d23ca653b36fc59bd13cba42e68c708c499678ac1ce474b673", + "app/src/test/java/dev/tinycast/android/ExtensionFormSubmissionTest.kt": "4bbdd8068cd95c314f7cf7aa156c7928cd815c5da11ef5f2cab1b4c5d23dd7d5", + "app/src/test/java/dev/tinycast/android/ExtensionFormTypedValuesTest.kt": "3a485a387e1527163d4318c3f0863b743bff02fe4e485adfff490d95cd554395", + "app/src/test/java/dev/tinycast/android/ExtensionFormValuesTest.kt": "6bc5bc8caaa5763e12dc3136bbba1d99249db10387c163cb1efeb0ae03f09d2a", + "app/src/test/java/dev/tinycast/android/ExtensionGridContractTest.kt": "50681a34c624a01867f287c66523d653e1931cf759f5e2926dda60feb85fa2b3", + "app/src/test/java/dev/tinycast/android/ExtensionGridNavigationTest.kt": "94ffe218ed5f9411210c2599db2a10dcd20c1a94655ef53e8cac1c574318b68f", + "app/src/test/java/dev/tinycast/android/ExtensionHttpTest.kt": "76917bbbdcc33dcc90d9b152d5a3e478fd981139e1df1d9edc0916e4f81b8e76", + "app/src/test/java/dev/tinycast/android/ExtensionMarkdownModelTest.kt": "fbeee6a80280ec27b660cc53222ef42f0e9ff5f5ce7ec5e02dede9d6b1c9222b", + "app/src/test/java/dev/tinycast/android/ExtensionMetadataVisualsTest.kt": "6f8653f4ed71138ac4fb0353e427d5b6775f54ec3600177ec6eae49dbc81598e", + "app/src/test/java/dev/tinycast/android/ExtensionPasteCopyTest.kt": "582ebddff12c96a504dd12a502ca851fc5d037e92f1d3ce98240eb162002b3bc", + "app/src/test/java/dev/tinycast/android/ExtensionPayloadIdentityTest.kt": "f59183b3224aab2923d9eb1ae598d1fa5cd2598b9ba80fc9a0db135005ae4e04", + "app/src/test/java/dev/tinycast/android/ExtensionSelectionDeliveryTest.kt": "1ea1e17cf0ea43fa3418a61f71587dbee9ec341b288d17fdaba3c5d3d8da4cb7", + "app/src/test/java/dev/tinycast/android/ExtensionWorkflowEvidenceTest.kt": "cf1589d69a498166b5a5fddd45135cf5b8575ec1d42f13ed4e2927b062b966fd", + "app/src/test/java/dev/tinycast/android/ExtensionWorkflowInspectionTest.kt": "043617c0cb943d76ebcdb5d0cc5bcdcda300069827b9b87a7425a16d084c1255", + "app/src/test/java/dev/tinycast/android/FolderGrantTransactionTest.kt": "ef710edc4ed1eb45782f90c385bc73305217f26882b630cd3e79ee93c59ef118", + "app/src/test/java/dev/tinycast/android/FolderIndexTest.kt": "bd371b19d1678ea876889cfb25505d690a4296c37d042e4cabd38bc7c7e4eff4", + "app/src/test/java/dev/tinycast/android/ModifierTapTest.kt": "bc0f6191ef2837018ca33a71010c1582cd39d0b3713c55acec4f91406a74d4fd", + "app/src/test/java/dev/tinycast/android/PaletteMenuOwnershipTest.kt": "c3134a62d61b5cd7ed810b867a6b40219713f21b798fabf6e659129cfab55506", + "app/src/test/java/dev/tinycast/android/PaletteScrollHistoryTest.kt": "b1610e3c3818e5823f99ded35bc36325042da250cfd48d98c0d6381066cfad5f", + "app/src/test/java/dev/tinycast/android/ReviewedTextInputTest.kt": "4bff225dd9fc1963736ad1f992e3eda3ffff21554c3ebef63d25acfdb41a29f3", + "app/src/test/java/dev/tinycast/android/ShortcutReadinessTest.kt": "45d32b02d4f89f857867d2585f3f5968251e9580edd34d9312bbfc158adc12e1", + "app/src/test/java/dev/tinycast/android/ShortcutTest.kt": "ae8034901d8ca73d704d40992b85ed43a64a021a078ff4eb5b2b853c4f398610", + "app/src/test/java/dev/tinycast/android/SystemSettingsTest.kt": "cdfc38bed12779bb92b0ddaeb79d197733243b24da43ab89d8580ecfd1f1fb51", + "app/src/test/java/dev/tinycast/android/TinycastGridParityTest.kt": "df6ca13f0f0a1e4bfa1f0085e274ed87457a6aa1a69492afa1041128af99c5e3", + "app/src/test/java/dev/tinycast/android/UpdatePolicyTest.kt": "d87ee4f7d6aa7b39b998267bd4d042d0b494ec6a1280d18860f262355c25cbe3", + "app/src/test/java/dev/tinycast/android/WeakValueTokensTest.kt": "ced7bf72628d5dc18fc5fdd30a81e58bb4b4b7f40e4e8c7eb0e77500f7c73566", + "app/src/test/java/dev/tinycast/android/extensions/NodeCpuInfoTest.kt": "5f3a7aae9b24435a4dbca77f9132a4b203ea736b1c76fc9108a51251983c2797", + "app/src/test/js/android-fetch.test.cjs": "2842effb321a11a33816f176f3300cd27a61c1e2ac70c4ed32681d46a129e56e", + "app/src/test/js/android-form-focus.test.cjs": "dd065271386dfdb2552caef1ae6e0c6f30e32783571abd85be328b9864bff8b6", + "app/src/test/js/android-form-submit.test.cjs": "7cbbb553dc2e657951b9195593b11add03597adad2710b4daa3e2cb807f87334", + "app/src/test/resources/commonmark-0.31.2.NOTICE": "610241b963a1a958c9465d99ec3f5778e7c6ef7251f9e119fed4c306b51641de", + "app/src/test/resources/commonmark-0.31.2.tsv": "dc27be954caac0ed8961299ca581a62aa4c68312091e68e52ab1e2bfe6aa5f5f", + "app/src/test/resources/extension-payload-identities-v1.json": "e451cf6b8efa208708db43dcb3a0545db1e73c610b72f488203fb4f147a490ab", + "app/src/test/resources/tinycast-grid-navigation.tsv": "da620f314fc39300beb7a11436715809ac1a9fd230fa4640c7f4f9c34b69aaf7", + "build.gradle.kts": "780d597cbe0f80d0103221a566db7574d1e07b17adca5bdbe7d6c728d77df12a", + "gradle.properties": "e43a00491832254a35cf5a979ef6de17f78c4e159d446be39319d2e3d3e46325", + "gradle/wrapper/gradle-wrapper.jar": "55243ef57851f12b070ad14f7f5bb8302daceeebc5bce5ece5fa6edb23e1145c", + "gradle/wrapper/gradle-wrapper.properties": "13287ffad6cf3064056ddad80d95b855132348930b2dc6c91490588c55b3ac7d", + "gradlew": "aed171fb114f82e6eaea4970a245a200e0582a7dcc8ec0891ca41b6e4a62b754", + "scripts/android_clipboard_recovery.py": "4aa2d03a100791544d282de37a2f62b6f7bfd94c47cc5611b6b6448ed8a946c1", + "scripts/android_form_documents_fixture.py": "ef44f5a9af1397fc8e8ea1924e36c2dec18d5c56c02e22f4925752daf1034841", + "scripts/android_test_cleanup.py": "1f4a1d70d251ec0a8294932388ce881da144c9c7d1c05df54df2c5b246d46373", + "scripts/extension_bundle_snapshot.py": "08ae0408a22e4f4c3c8a8b22af31b6a6a16d304dc0d14d5e489596dd9731a950", + "scripts/extension_manifest_catalog.py": "18c6048a0690e68dba3da1e8d11c5abccac16c3c26aa8803ff80abfd1dabe7e4", + "scripts/generate-emoji.py": "98f43c9a5941b4e65533e31ff7d7eaa4e697d8fecd4c7424297e6957e07abd53", + "scripts/generate-tinycast-grid-oracle.py": "bd53975673883b624d2553cd47687c5a3a760b17181a8c0621715ed1599b3118", + "scripts/package-nightly-update.py": "2a650baee0c7c76eadd360171e19686aad7b960fe34ebc780638c6b231032420", + "scripts/summarize-readiness.py": "e63d9d2ec435d2c369ae0be126bafb0b0507e903b03674f11a77ee10b428fe64", + "scripts/test-api-compatibility.py": "1ba4bf24535130bfd59a5f1d9d4830ca075e7158fc2cbe316696fcadb6108065", + "scripts/test-assistant-touch.py": "fd5a4acfdd19ddc60eb467fea3c7d2e8ab7ac717bea35c76d007577c23235a54", + "scripts/test-calculator-intent.py": "93ef5653c4d0c153d8f216c9fd74557089a964eaab80c84c85ab5460ec58f1a1", + "scripts/test-configurable-shortcuts.py": "56f4581f78265ec2c28faa1da115ae10a8349cf47e10db60bfba3e88f0cc3e73", + "scripts/test-extension-grid.py": "26f15b12f40277cbd3b6b874c58e41ab7e26735ef8e70634e5b5eb53b5652560", + "scripts/test-extension-workflows.py": "c6cce4d533b45655a7763305379107840a93a1a953be0322a869c7505ffc0997", + "scripts/test-global-shortcut.py": "4a0f57d16dfccbd0c7b33d6b78a841ccad030c4bad6fb108ac80f15dc89f6d6a", + "scripts/test-modifier-taps-hardware.py": "b0d2da7fd2410095d65ef20e25cd9b8e90f9b480849dfd5e497f75d4d713139c", + "scripts/test-modifier-taps.py": "8cb08d228371c90f995ae2246ef0a92daf6c81724c11a1ac67374ed0dd347dab", + "scripts/test-readiness-benchmark.py": "1f92dc1989f1ff36c82433d6eaab1e2c896abf7541a24a9b215c109e49d1a7d9", + "scripts/test-restart-files.py": "65f1c311df77634f746cb155d831acf1fa4d8cf05d0e1dabc9d372bf1e842065", + "scripts/test-reviewed-text-input.py": "4e9ab25f0b1bce00277d0dde5a37a29ab8cbbdb9900699c5bdfd9cfa4b9bb248", + "scripts/test-reviewed-text-process-recreation.py": "eecd547c48ad2bbce2d8bae62bbed26a2484e0b5d97ebb7cb989ba98d4de2a23", + "scripts/test-search-header.py": "772cb70442bbf28086beb8087ebce94d02ba6cc10e6acf8c2cf91a0d8d5b39d0", + "scripts/test-self-updates.py": "4ff148ea90c3a148a1eacf74116db288e5e9c282f69e0c331caa6f22b1a40889", + "scripts/test-startup-performance.py": "9ac605bf3347fde625d279767bb8fc4de76ae82f099e7d8351416fa5bc9250ae", + "scripts/test-touch-readability.py": "d9ae59ab3db56d63cb5c959c200263b71acd0e04c305dce4e9ceb8a395933fb6", + "scripts/test-webview-engine.py": "d7fc4bccc15eca35d2af00fcb7a9cda594a3c5fe5fb336785b3a2efea4745c1a", + "scripts/tests/test_android_clipboard_recovery.py": "b260d3adcfa33e2641affebee9bebb1676097b4a24bbdbeb89cef7f3fc889176", + "scripts/tests/test_android_form_documents_fixture.py": "c2b573793d6c5d48fe9dc8e75ffc554e11818e319507080a4b96aa4e24e1fc03", + "scripts/tests/test_android_test_cleanup.py": "49c8831c517f0777f46952376f5d3b783322eeb25f063d69a9b1bc2f8cde01cf", + "scripts/tests/test_extension_bundle_snapshot.py": "382561907129ac58b7e20b963c1afcbc9bc1a03b7e18da64e7d61927a8b15783", + "scripts/tests/test_extension_manifest_catalog.py": "57af21edf39e3e4084453830eed62d3c052ba8d8a4f942d3d69807e2cd4b69a6", + "scripts/tests/test_extension_workflow_guards.py": "1cea982b85cf759e691471cad72b8e2cbdccdf3c2ccc6c483b1ef01b49002a3f", + "scripts/tests/test_private_archive_transport.py": "168c1607d4e1efa7537241cf362316ce354706af33465dc63e73d210ab0327d1", + "scripts/tests/test_private_path_observation.py": "3c0fff3062ac9b43aab67ed4ab2d53b92fa39f9af9e0ada9d197856a1df94e95", + "scripts/tests/test_reviewed_text_archives.py": "0308a50c148c97ed50381e894eabd43ec6e374878f99b810244c24e25f1a626e", + "scripts/tests/test_reviewed_text_runner_guards.py": "a3d489fe141be669374ecd0b3a6231afc5efdf4abfc6a74f7d25efec4e67038c", + "scripts/tests/test_webview_engine_runner.py": "846ee3b34578f92bd3f728eac4044c5ef4481478e3ec9d744e848e0094119168", + "scripts/verify-recorded-workflow-catalog.py": "fc0ec3b595b3a892238a4e0cc19b79ca092e8dcbe3e4af1d261e4874f984c2d5", + "settings.gradle.kts": "6a8db88135b364d8bd2facb607fc4e9e9476c171d2b7f7f3a0892c57a9ee6487" + }, + "apk_sha256": { + "app-debug.apk": "1291d0619b6f70ae90c4d25f759a444fbf32827ffa3ee36233f91006fdf8b2ac", + "app-debug-androidTest.apk": "f4925b8c25e900ed336a48f9bfdabd0358bf158818938fd4cdbd47b57b58e1a9" + }, + "zip_payload_sha256": { + "app-debug.apk": { + "META-INF/com/android/build/gradle/app-metadata.properties": "75bc66260aeed5c7da9ef86b1ee98fe13298d9dd0bc438ee5a963d5eb224f68d", + "classes.dex": "02040ff106a54d6dd8ed10f6192541cb671f62f166bf413798e0fca382d390b4", + "classes2.dex": "21fe524b9ec548ac16c1cd9813dee74787a7fee1b5bd0a7719f0a9807c43a39b", + "classes5.dex": "2b4eaca1be7a4156ef80f400b13d93c8a8f82de2b4f61ffbd2ea2080bfa20788", + "classes6.dex": "4cb87f7ace7c665d16755b3466eca73c87cc7167104d4b901b704bb2a4c9d30b", + "classes7.dex": "04459089f64d575513ce6b9ed9fdcc3cb12fb2817ed84a2b73e8b0d3f0392f68", + "lib/arm64-v8a/libandroidx.graphics.path.so": "41e9a793c43a0f4fddb19e33f346bace464f30f888ba7b9eaf96294ea115bfb6", + "lib/armeabi-v7a/libandroidx.graphics.path.so": "41399eba6fc2a60f6f14642375c1824f3cf25eb8fec7397d753730a3ceda3e2b", + "lib/x86/libandroidx.graphics.path.so": "eb0570b41fd3bff25d8204a967c03bd7550719e768b791f680cc40cbe35f29af", + "lib/x86_64/libandroidx.graphics.path.so": "4e56c996f13670e70082658de7880c4020eabf4f25e43387f88ed78a713fc9f0", + "assets/ANDROIDSVG-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "assets/ANDROIDSVG-NOTICE": "2e61b715e3553494f46f43e5a88e8d26c56201e0558c8d5ab02946edb4f7dedf", + "assets/COMMONMARK-LICENSE": "11cfcf6da0142fb1971c1f40f5924ddded14454e2793d7f1dd87c9f4abe42dfd", + "assets/COPYING": "14609801e0e520dac851e75d993ca4c75c3842a3be468f6f7f04a16c03c824db", + "assets/GEMOJI-LICENSE": "7ea1d1fd0602e6623b9a65e791499a0ea5a2f5f60f91bfad78cbaeee19da26e6", + "assets/NOTICE.md": "c263e44ea9a845c4e4ec564eeca46ae0fc343f63ffd10685afbf74586647e0f6", + "assets/REACT-LICENSE": "da6d3703ed11cbe42bd212c725957c98da23cbff1998c05fa4b3d976d1a58e93", + "assets/RaycastRuntime.generated.js": "b306b45453cc8507037ff2822066475aae17def757a8ef72d4a4fc64c6494bb7", + "assets/android-runtime.js": "1b5dfa3f5b512f55322f27703bbebf15d1a8c4569c4c1712a6dd64541dd552aa", + "assets/emoji-catalog.tsv": "e49f1cc09c6f487a6e7b55590ecc171dcff390f720a9ce3820fe2038810d5d66", + "assets/extension-workflow-evidence-v1.json": "4e8adc22b7887996140190a999f1c7272556f2dd379d219c88e276e48aea0fa5", + "res/color/vector_tint_color.xml": "4bbb4ef3e0e3db260a05d794047a1765e420d699ee5673e90b57ff682a2fe34e", + "res/color/vector_tint_theme_color.xml": "cf34dc5bdb4a6d1568143e115ac4e34448383ac772862ef0fdbb7fe8936c6dd3", + "res/drawable-anydpi-v21/ic_call_answer.xml": "5f6376dfe199d8a6e40033d3e623989d052c9b2f974d00c824fbb8b76fc6fde8", + "res/drawable-anydpi-v21/ic_call_answer_low.xml": "8f9acacabaf2dfb4bb53dab7ce7bec9c1451ce0a0219ffaa41760ea82da3d2d6", + "res/drawable-anydpi-v21/ic_call_answer_video.xml": "5d4cdaae5838ad9442c085f951b766b2808bff13b8c85a14e0bcf8571514492c", + "res/drawable-anydpi-v21/ic_call_answer_video_low.xml": "4a959580080ebb1d822a2459a4234d2abf0dd0b65d9c28bda8c258dafc888c51", + "res/drawable-anydpi-v21/ic_call_decline.xml": "2d825b79cce60203492ff09a04826db0ac8d9eb9bc0fb9fb139ae1aa5cde0f67", + "res/drawable-anydpi-v21/ic_call_decline_low.xml": "c8321364802409baf4d76e2a84e303871585bdc95b0395040c5ecea0e2051105", + "res/drawable-hdpi-v4/ic_call_answer.png": "5c80d88a7b82ef5833255bf70ff1c26c3efb2a92ae90cac222f3200f59e0b1ea", + "res/drawable-hdpi-v4/ic_call_answer_low.png": "5c80d88a7b82ef5833255bf70ff1c26c3efb2a92ae90cac222f3200f59e0b1ea", + "res/drawable-hdpi-v4/ic_call_answer_video.png": "6adcfc9dd1e1b82b985d223fc8a01c8e8f0dd3b9051d38062674b2380af79a50", + "res/drawable-hdpi-v4/ic_call_answer_video_low.png": "6adcfc9dd1e1b82b985d223fc8a01c8e8f0dd3b9051d38062674b2380af79a50", + "res/drawable-hdpi-v4/ic_call_decline.png": "12ec9f9ad5fa3d7d897114af6c2297b66f31cb056e43daffbe80d23f6f66396d", + "res/drawable-hdpi-v4/ic_call_decline_low.png": "12ec9f9ad5fa3d7d897114af6c2297b66f31cb056e43daffbe80d23f6f66396d", + "res/drawable-hdpi-v4/notification_bg_low_normal.9.png": "21f0b55280be10b187ceff8edef4a5a7047683e6e9fcf47de410aa3839f41094", + "res/drawable-hdpi-v4/notification_bg_low_pressed.9.png": "42aee0b03883e94df5e543348a397d1302c1b8221895871a83b81899f5a9647b", + "res/drawable-hdpi-v4/notification_bg_normal.9.png": "0c6328c7b2420570a7ec38b3beb3bac9a29d895ac1ab7239315aba7266418593", + "res/drawable-hdpi-v4/notification_bg_normal_pressed.9.png": "18b328d8017e677d5aad3dbd66bae356b5cac978c6f0670938ea648e51d0eb66", + "res/drawable-hdpi-v4/notification_oversize_large_icon_bg.png": "aa00088d0d9fd97bd92ed9ffd29b54bb69a48a984aa73448ce553fb9d812be41", + "res/drawable-hdpi-v4/notify_panel_notification_icon_bg.png": "8430ec003e003f3f2ba2f78d48fd150e25407667e530e82e87a7d4841c0fd676", + "res/drawable-ldpi-v4/ic_call_answer.png": "6d34a8bb29be26e343781603588506f33bd1b93732a1c1bc9fd84678aa36b178", + "res/drawable-ldpi-v4/ic_call_answer_low.png": "6d34a8bb29be26e343781603588506f33bd1b93732a1c1bc9fd84678aa36b178", + "res/drawable-ldpi-v4/ic_call_answer_video.png": "66356f564f051a568e25071f60da312c418309f9129773aceb2246773458681c", + "res/drawable-ldpi-v4/ic_call_answer_video_low.png": "66356f564f051a568e25071f60da312c418309f9129773aceb2246773458681c", + "res/drawable-ldpi-v4/ic_call_decline.png": "a18cdaaf3742b1a3d4f484fa15d00fa34afb21495884301aafa3213338661ed6", + "res/drawable-ldpi-v4/ic_call_decline_low.png": "a18cdaaf3742b1a3d4f484fa15d00fa34afb21495884301aafa3213338661ed6", + "res/drawable-mdpi-v4/ic_call_answer.png": "f2ff62f473d8a5e00a8b6c81c15be9a0536471c3d5a81e37d04bc3356ea81ca0", + "res/drawable-mdpi-v4/ic_call_answer_low.png": "f2ff62f473d8a5e00a8b6c81c15be9a0536471c3d5a81e37d04bc3356ea81ca0", + "res/drawable-mdpi-v4/ic_call_answer_video.png": "6306048ba5f7eca43e7bdadeefa9412180508486fd543e02de93d2a013e223f0", + "res/drawable-mdpi-v4/ic_call_answer_video_low.png": "6306048ba5f7eca43e7bdadeefa9412180508486fd543e02de93d2a013e223f0", + "res/drawable-mdpi-v4/ic_call_decline.png": "7e87b3e0229126dc3c2bdaddcd8f330f3bb5f7613a05024c3cd6445dd161f788", + "res/drawable-mdpi-v4/ic_call_decline_low.png": "7e87b3e0229126dc3c2bdaddcd8f330f3bb5f7613a05024c3cd6445dd161f788", + "res/drawable-mdpi-v4/notification_bg_low_normal.9.png": "2f7fbda0ba6e53e9a47e2fc0e24e32c447c613a5808c2d6285dc651e83a07ad7", + "res/drawable-mdpi-v4/notification_bg_low_pressed.9.png": "e17761ed280edd93d7141bd504b70f9e9e15a8652288d9e6333bf4ce964ef844", + "res/drawable-mdpi-v4/notification_bg_normal.9.png": "a8676a1793ac8310ffb12986232df66df092d29c242aeedc2b73556c010d38dc", + "res/drawable-mdpi-v4/notification_bg_normal_pressed.9.png": "99c14d6855b8be296d58017d3751b8dc849c47b6d1d80ab614ff9075080e461b", + "res/drawable-mdpi-v4/notify_panel_notification_icon_bg.png": "0d773e62c756422313262846c787e58f67e0ee87e45e1ae9942002e816c4cb9e", + "res/drawable-v21/notification_action_background.xml": "2f768c089cefa18cf7f1fde7f602410bf38998de5f9073a15ea83106c25e3c30", + "res/drawable-xhdpi-v4/ic_call_answer.png": "e64c2e57627e24ec1ed37e67344c2bf31d1d6bdd2d8d715840c1edf0bd1425b6", + "res/drawable-xhdpi-v4/ic_call_answer_low.png": "e64c2e57627e24ec1ed37e67344c2bf31d1d6bdd2d8d715840c1edf0bd1425b6", + "res/drawable-xhdpi-v4/ic_call_answer_video.png": "5d02a81102644428ca639aec3df626eeb4a839a9ddc76fc2b158b04461d7f00f", + "res/drawable-xhdpi-v4/ic_call_answer_video_low.png": "5d02a81102644428ca639aec3df626eeb4a839a9ddc76fc2b158b04461d7f00f", + "res/drawable-xhdpi-v4/ic_call_decline.png": "9a9a30c305022a2f8e075d2ed7d33f5c7711bba8d0d0385511fdb62f89f208e3", + "res/drawable-xhdpi-v4/ic_call_decline_low.png": "9a9a30c305022a2f8e075d2ed7d33f5c7711bba8d0d0385511fdb62f89f208e3", + "res/drawable-xhdpi-v4/notification_bg_low_normal.9.png": "3e09afa21c45372c035598c017c8fb405a6d678e6cb84dc857581cb3b40e482d", + "res/drawable-xhdpi-v4/notification_bg_low_pressed.9.png": "20343222f9f79dd565c3a2248494d452e70820ac1c437173c38badd45f962afd", + "res/drawable-xhdpi-v4/notification_bg_normal.9.png": "559bf783d765c02338e97952bdc9c6689c7ff99090b8c9813369118da8b080f0", + "res/drawable-xhdpi-v4/notification_bg_normal_pressed.9.png": "d27af435101ca4cbec0c840bd30687918cd39eb83aab1487420855623a45998b", + "res/drawable-xhdpi-v4/notify_panel_notification_icon_bg.png": "b44eeda34d7a529c2fe55719eb098fa29707caa91d18de06a7a775d6e6bcf973", + "res/drawable-xxhdpi-v4/ic_call_answer.png": "86763a30af2a934c7c13b123b36443d1d17918b71c6149bc6ee80115b872593d", + "res/drawable-xxhdpi-v4/ic_call_answer_low.png": "86763a30af2a934c7c13b123b36443d1d17918b71c6149bc6ee80115b872593d", + "res/drawable-xxhdpi-v4/ic_call_answer_video.png": "ca48f604262f2b4ef8b100c73130efe2ad33ef8c2a2c1b3516f24f51b7b04665", + "res/drawable-xxhdpi-v4/ic_call_answer_video_low.png": "ca48f604262f2b4ef8b100c73130efe2ad33ef8c2a2c1b3516f24f51b7b04665", + "res/drawable-xxhdpi-v4/ic_call_decline.png": "87adad32e0ec19c4e920420bf3a06c9f94f6128ed0d866a1891628aeab2cef06", + "res/drawable-xxhdpi-v4/ic_call_decline_low.png": "87adad32e0ec19c4e920420bf3a06c9f94f6128ed0d866a1891628aeab2cef06", + "res/drawable-xxxhdpi-v4/ic_call_answer.png": "ec698a3217bce74d8bc4a44bb008f2dbd3d1aebff1af1e9641805143dbf9fa87", + "res/drawable-xxxhdpi-v4/ic_call_answer_low.png": "ec698a3217bce74d8bc4a44bb008f2dbd3d1aebff1af1e9641805143dbf9fa87", + "res/drawable-xxxhdpi-v4/ic_call_answer_video.png": "4c717ce1ffb551c765981add65d1956132d8f522337de2866b045f0a60485426", + "res/drawable-xxxhdpi-v4/ic_call_answer_video_low.png": "4c717ce1ffb551c765981add65d1956132d8f522337de2866b045f0a60485426", + "res/drawable-xxxhdpi-v4/ic_call_decline.png": "ab73b729bb95878120a3bdc8dc915f3aaa1d7070fc644a0de64d40941ad507ed", + "res/drawable-xxxhdpi-v4/ic_call_decline_low.png": "ab73b729bb95878120a3bdc8dc915f3aaa1d7070fc644a0de64d40941ad507ed", + "res/drawable/ic_launcher.xml": "65a462fe84c64e76de6f6999e09b195ca227a5232453356a4743a17dae08882f", + "res/drawable/ic_palette_tile.xml": "099260576b37718ecf049e1405bcb60d989584dda8710e0905dd00d97edb3440", + "res/drawable/notification_bg.xml": "65ef0869565cde9539d285ee8b5e0156e4ba3bfc7fde288b3d78a96ead8bed62", + "res/drawable/notification_bg_low.xml": "a349184bd1ffb192438415fa98cb2ea5b9294a656d6f276f365b9b2753552777", + "res/drawable/notification_icon_background.xml": "b143ee7fcbba209f17607a720502d755f085ec75380ad6fbd6f99de6583f0a40", + "res/drawable/notification_tile_bg.xml": "42fb6470d6c3d395ab726d928ca23ba8573011a646b7475a89c9b17ec8c0f9bb", + "res/layout-v21/notification_action.xml": "e07d16d0717fb7a1f030dd43f76be647125f9abd78ebcee3bbd861b8df02fe90", + "res/layout-v21/notification_action_tombstone.xml": "c2f8eb9372d806f5f6532e507f4e5767091f681f7d2e9b7f5a64d134e6ed7717", + "res/layout-v21/notification_template_custom_big.xml": "2bcb3cb25a65b175c9880f60411239a019c2ded7cbaf3701d3650ebd1fd971ea", + "res/layout-v21/notification_template_icon_group.xml": "97d5723ad66c683d88d57918e197cb33d2dc1628aa77299e42e132622c2c948e", + "res/layout/custom_dialog.xml": "edd4e27b3f2407a02248205a2eb50288170e4201249bfeac074749ea60390103", + "res/layout/ime_base_split_test_activity.xml": "37ff040591f96786bfaf9d3d937fedf2f2f97e218c06beb3e7fe8a2442a181a8", + "res/layout/ime_secondary_split_test_activity.xml": "0034556846afe7278a6d1264855405a0c3ae65a81a6a05f9ba4dc0136a589685", + "res/layout/notification_template_part_chronometer.xml": "8bd30447bb9347f4c3dd38ff034f141000c7a952ac25760fc8a0c67f76b5bdb7", + "res/layout/notification_template_part_time.xml": "a8664275b4a0fad8ac25724d8d577fb5cd98c4e99a24fc362dbb56fb960aee84", + "res/xml/assistant_service.xml": "461b22a285e6d4cc97c23a8aa9f13802c16f20eff91d1ce1ca4739a527b6c99d", + "res/xml/data_extraction_rules.xml": "1d2dc5515fa0bfac79b6a028056f23ef2e9fd0c9091c9b13c15b52b78a751ab0", + "res/xml/keyboard_service.xml": "688f6294b5c093499f1253d5eb72c5fef80324d0c7e3bdcdff193c8ad9e851e6", + "resources.arsc": "5f13aba27cdb9bef26e38933801042374f3cba444e3fa3c145c99166eace2fb2", + "DebugProbesKt.bin": "ae8a082dd609313835ba93c3ef479a3af9903977d7bdc81df45bbd209ec7d0da", + "META-INF/LICENSE.txt": "523bfd872d038632d258f340a482d067a10e8d82b8e8ff3081755c5f8ccc1658", + "META-INF/androidx.activity_activity-compose.version": "118705d21506adb8d7c06a51156bb59497679f644fb4ae3d14bbbfc366643124", + "META-INF/androidx.activity_activity-ktx.version": "118705d21506adb8d7c06a51156bb59497679f644fb4ae3d14bbbfc366643124", + "META-INF/androidx.activity_activity.version": "118705d21506adb8d7c06a51156bb59497679f644fb4ae3d14bbbfc366643124", + "META-INF/androidx.annotation_annotation-experimental.version": "7d072b48526b023950e4c48db01e8c273554a6401119f5691e7589ba9bc65d9d", + "META-INF/androidx.arch.core_core-runtime.version": "1b7c606370188534dac5561fba2b2988093829697fce9e6e8832e9291d24ed00", + "META-INF/androidx.autofill_autofill.version": "59854984853104df5c353e2f681a15fc7924742f9a2e468c29af248dce45ce03", + "META-INF/androidx.compose.animation_animation-core.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.animation_animation.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.foundation_foundation-layout.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.foundation_foundation.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.material3_material3.version": "10e2e117b01523891ca271a615ae36e9d5e52348fd7d642f66727602c1b8dcbe", + "META-INF/androidx.compose.material_material-icons-core.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.material_material-ripple.version": "bb7320d831e7a151aa901c35e7326c752fa2ef5024f30768c42319b8bed171ed", + "META-INF/androidx.compose.material_material.version": "59854984853104df5c353e2f681a15fc7924742f9a2e468c29af248dce45ce03", + "META-INF/androidx.compose.runtime_runtime-saveable.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.runtime_runtime.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-geometry.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-graphics.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-test-manifest.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-text.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-tooling-data.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-tooling-preview.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-tooling.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-unit.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-util.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.core_core-ktx.version": "ca0bc79c4cde0ad64e1ec9df2882425197b5ba85704a4ac6bd67f8f99936eb25", + "META-INF/androidx.core_core-viewtree.version": "59854984853104df5c353e2f681a15fc7924742f9a2e468c29af248dce45ce03", + "META-INF/androidx.core_core.version": "ca0bc79c4cde0ad64e1ec9df2882425197b5ba85704a4ac6bd67f8f99936eb25", + "META-INF/androidx.customview_customview-poolingcontainer.version": "59854984853104df5c353e2f681a15fc7924742f9a2e468c29af248dce45ce03", + "META-INF/androidx.emoji2_emoji2.version": "64d23f858ef51b0f996e4966d4e27c0371b437e2d2787890b1f7ad22d4ec5663", + "META-INF/androidx.graphics_graphics-path.version": "44e161e4495cac2cf7858043e9e6418e9579f0ddcfae826f9a372622968ce066", + "META-INF/androidx.interpolator_interpolator.version": "59854984853104df5c353e2f681a15fc7924742f9a2e468c29af248dce45ce03", + "META-INF/androidx.lifecycle_lifecycle-livedata-core.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-process.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-runtime-compose.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-runtime-ktx.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-runtime.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-viewmodel-compose.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-viewmodel-ktx.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-viewmodel-savedstate.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-viewmodel.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.profileinstaller_profileinstaller.version": "78b591400c56b7b67b8cb3b2b8a8e65e9093897f02ce0878e6b5405c68620fa7", + "META-INF/androidx.savedstate_savedstate-ktx.version": "6cf4e084b47f33c9b02ef79279d157833868f8f70514169a768be353ee328fea", + "META-INF/androidx.savedstate_savedstate.version": "6cf4e084b47f33c9b02ef79279d157833868f8f70514169a768be353ee328fea", + "META-INF/androidx.startup_startup-runtime.version": "cc52f678848b814373757b460383bf61960e4943c203735adde0a350b3e50989", + "META-INF/androidx.tracing_tracing.version": "59854984853104df5c353e2f681a15fc7924742f9a2e468c29af248dce45ce03", + "META-INF/androidx.versionedparcelable_versionedparcelable.version": "cc52f678848b814373757b460383bf61960e4943c203735adde0a350b3e50989", + "META-INF/kotlinx_coroutines_android.version": "179f9b723b6508aa1d6ce99991e8cd549ca819ee1b9b6102396c47815beffaaf", + "META-INF/kotlinx_coroutines_core.version": "179f9b723b6508aa1d6ce99991e8cd549ca819ee1b9b6102396c47815beffaaf", + "META-INF/services/kotlinx.coroutines.CoroutineExceptionHandler": "3129b8edf6db07de6f8ff47695e2177c8bba4eed2962d3085c719e5acbb58a33", + "META-INF/services/kotlinx.coroutines.internal.MainDispatcherFactory": "a1ea77ea8f93f419256b6e66f29713f950d8d6e90442b608d880a48003b5eb72", + "kotlin/annotation/annotation.kotlin_builtins": "5f75d4352e432664b2a235c472b991cf88365c73f5fcb5e1f9cc2cbe4b410abe", + "kotlin/collections/collections.kotlin_builtins": "0e654e03a38e119de0f4d11633711bd57e1e8b1a876eda74a90100a2a6e7daa4", + "kotlin/concurrent/atomics/atomics.kotlin_builtins": "955035527393d165a22da4cb9d992f42b4a30b6f070918f3e2b1f2678f83cc9d", + "kotlin/coroutines/coroutines.kotlin_builtins": "98ab3a3c18fcb237528dd63fa489815c583e1d6c13debd2a27ac6d74ccf8717b", + "kotlin/internal/internal.kotlin_builtins": "64712f94840e6b3f8123f522f32d08c46f083d87c312a74901f7c00224de775e", + "kotlin/kotlin.kotlin_builtins": "c4240215bc20e71b01cc62b43edebd02749b3249d7daa8e7f1dc1514f064c274", + "kotlin/ranges/ranges.kotlin_builtins": "f9d35b836ccb5380803aab5e6c76d708b1536fc6c82f27185e8cff5913824e1c", + "kotlin/reflect/reflect.kotlin_builtins": "23ecbc7cbb354f31ba37a1be1793d3bb53c00c92cdcf3867759d09d938a1d7c3", + "org/commonmark/internal/util/entities.txt": "fea6cf4d3bd2aa7ffd421116551654e2a22e40a17e4cd087c8725138113bad69", + "classes3.dex": "50759b1bc96a7ef34a20021e736808ee89c5f1ceb81fe9e6150ec5845066fec8", + "classes4.dex": "50b6fa61bd692e74e671ca3feeb3456d86cd05da1e8a14a4bf2bee9df3027178", + "AndroidManifest.xml": "4980737669ed6fe594fdfd33ef5fbff0de9ca5d0f1b0b31034118c3c5bcb66d7" + }, + "app-debug-androidTest.apk": { + "classes.dex": "35f32eb3c6a38b451d1d47b53e49faa8fdca4db12df6e8e6385f44f1f5c1d403", + "classes2.dex": "468450c6993a81875894c0a142093a2e6dad1778f192763895e927a2f07c1d71", + "classes5.dex": "4cb87f7ace7c665d16755b3466eca73c87cc7167104d4b901b704bb2a4c9d30b", + "assets/owned-detail-fixture.js": "873d3f25f95271029e31779b0920b5955a2908a820a07652b58efa21a2358cfd", + "AndroidManifest.xml": "caff3c10989799f80e8bea4722a1e2e143b75cef522c7aff7211e7c79704f416", + "res/color/vector_tint_color.xml": "4bbb4ef3e0e3db260a05d794047a1765e420d699ee5673e90b57ff682a2fe34e", + "res/color/vector_tint_theme_color.xml": "cf34dc5bdb4a6d1568143e115ac4e34448383ac772862ef0fdbb7fe8936c6dd3", + "res/drawable-anydpi-v21/ic_call_answer.xml": "5f6376dfe199d8a6e40033d3e623989d052c9b2f974d00c824fbb8b76fc6fde8", + "res/drawable-anydpi-v21/ic_call_answer_low.xml": "8f9acacabaf2dfb4bb53dab7ce7bec9c1451ce0a0219ffaa41760ea82da3d2d6", + "res/drawable-anydpi-v21/ic_call_answer_video.xml": "5d4cdaae5838ad9442c085f951b766b2808bff13b8c85a14e0bcf8571514492c", + "res/drawable-anydpi-v21/ic_call_answer_video_low.xml": "4a959580080ebb1d822a2459a4234d2abf0dd0b65d9c28bda8c258dafc888c51", + "res/drawable-anydpi-v21/ic_call_decline.xml": "2d825b79cce60203492ff09a04826db0ac8d9eb9bc0fb9fb139ae1aa5cde0f67", + "res/drawable-anydpi-v21/ic_call_decline_low.xml": "c8321364802409baf4d76e2a84e303871585bdc95b0395040c5ecea0e2051105", + "res/drawable-hdpi-v4/ic_call_answer.png": "5c80d88a7b82ef5833255bf70ff1c26c3efb2a92ae90cac222f3200f59e0b1ea", + "res/drawable-hdpi-v4/ic_call_answer_low.png": "5c80d88a7b82ef5833255bf70ff1c26c3efb2a92ae90cac222f3200f59e0b1ea", + "res/drawable-hdpi-v4/ic_call_answer_video.png": "6adcfc9dd1e1b82b985d223fc8a01c8e8f0dd3b9051d38062674b2380af79a50", + "res/drawable-hdpi-v4/ic_call_answer_video_low.png": "6adcfc9dd1e1b82b985d223fc8a01c8e8f0dd3b9051d38062674b2380af79a50", + "res/drawable-hdpi-v4/ic_call_decline.png": "12ec9f9ad5fa3d7d897114af6c2297b66f31cb056e43daffbe80d23f6f66396d", + "res/drawable-hdpi-v4/ic_call_decline_low.png": "12ec9f9ad5fa3d7d897114af6c2297b66f31cb056e43daffbe80d23f6f66396d", + "res/drawable-hdpi-v4/notification_bg_low_normal.9.png": "21f0b55280be10b187ceff8edef4a5a7047683e6e9fcf47de410aa3839f41094", + "res/drawable-hdpi-v4/notification_bg_low_pressed.9.png": "42aee0b03883e94df5e543348a397d1302c1b8221895871a83b81899f5a9647b", + "res/drawable-hdpi-v4/notification_bg_normal.9.png": "0c6328c7b2420570a7ec38b3beb3bac9a29d895ac1ab7239315aba7266418593", + "res/drawable-hdpi-v4/notification_bg_normal_pressed.9.png": "18b328d8017e677d5aad3dbd66bae356b5cac978c6f0670938ea648e51d0eb66", + "res/drawable-hdpi-v4/notification_oversize_large_icon_bg.png": "aa00088d0d9fd97bd92ed9ffd29b54bb69a48a984aa73448ce553fb9d812be41", + "res/drawable-hdpi-v4/notify_panel_notification_icon_bg.png": "8430ec003e003f3f2ba2f78d48fd150e25407667e530e82e87a7d4841c0fd676", + "res/drawable-ldpi-v4/ic_call_answer.png": "6d34a8bb29be26e343781603588506f33bd1b93732a1c1bc9fd84678aa36b178", + "res/drawable-ldpi-v4/ic_call_answer_low.png": "6d34a8bb29be26e343781603588506f33bd1b93732a1c1bc9fd84678aa36b178", + "res/drawable-ldpi-v4/ic_call_answer_video.png": "66356f564f051a568e25071f60da312c418309f9129773aceb2246773458681c", + "res/drawable-ldpi-v4/ic_call_answer_video_low.png": "66356f564f051a568e25071f60da312c418309f9129773aceb2246773458681c", + "res/drawable-ldpi-v4/ic_call_decline.png": "a18cdaaf3742b1a3d4f484fa15d00fa34afb21495884301aafa3213338661ed6", + "res/drawable-ldpi-v4/ic_call_decline_low.png": "a18cdaaf3742b1a3d4f484fa15d00fa34afb21495884301aafa3213338661ed6", + "res/drawable-mdpi-v4/ic_call_answer.png": "f2ff62f473d8a5e00a8b6c81c15be9a0536471c3d5a81e37d04bc3356ea81ca0", + "res/drawable-mdpi-v4/ic_call_answer_low.png": "f2ff62f473d8a5e00a8b6c81c15be9a0536471c3d5a81e37d04bc3356ea81ca0", + "res/drawable-mdpi-v4/ic_call_answer_video.png": "6306048ba5f7eca43e7bdadeefa9412180508486fd543e02de93d2a013e223f0", + "res/drawable-mdpi-v4/ic_call_answer_video_low.png": "6306048ba5f7eca43e7bdadeefa9412180508486fd543e02de93d2a013e223f0", + "res/drawable-mdpi-v4/ic_call_decline.png": "7e87b3e0229126dc3c2bdaddcd8f330f3bb5f7613a05024c3cd6445dd161f788", + "res/drawable-mdpi-v4/ic_call_decline_low.png": "7e87b3e0229126dc3c2bdaddcd8f330f3bb5f7613a05024c3cd6445dd161f788", + "res/drawable-mdpi-v4/notification_bg_low_normal.9.png": "2f7fbda0ba6e53e9a47e2fc0e24e32c447c613a5808c2d6285dc651e83a07ad7", + "res/drawable-mdpi-v4/notification_bg_low_pressed.9.png": "e17761ed280edd93d7141bd504b70f9e9e15a8652288d9e6333bf4ce964ef844", + "res/drawable-mdpi-v4/notification_bg_normal.9.png": "a8676a1793ac8310ffb12986232df66df092d29c242aeedc2b73556c010d38dc", + "res/drawable-mdpi-v4/notification_bg_normal_pressed.9.png": "99c14d6855b8be296d58017d3751b8dc849c47b6d1d80ab614ff9075080e461b", + "res/drawable-mdpi-v4/notify_panel_notification_icon_bg.png": "0d773e62c756422313262846c787e58f67e0ee87e45e1ae9942002e816c4cb9e", + "res/drawable-v21/notification_action_background.xml": "2f768c089cefa18cf7f1fde7f602410bf38998de5f9073a15ea83106c25e3c30", + "res/drawable-xhdpi-v4/ic_call_answer.png": "e64c2e57627e24ec1ed37e67344c2bf31d1d6bdd2d8d715840c1edf0bd1425b6", + "res/drawable-xhdpi-v4/ic_call_answer_low.png": "e64c2e57627e24ec1ed37e67344c2bf31d1d6bdd2d8d715840c1edf0bd1425b6", + "res/drawable-xhdpi-v4/ic_call_answer_video.png": "5d02a81102644428ca639aec3df626eeb4a839a9ddc76fc2b158b04461d7f00f", + "res/drawable-xhdpi-v4/ic_call_answer_video_low.png": "5d02a81102644428ca639aec3df626eeb4a839a9ddc76fc2b158b04461d7f00f", + "res/drawable-xhdpi-v4/ic_call_decline.png": "9a9a30c305022a2f8e075d2ed7d33f5c7711bba8d0d0385511fdb62f89f208e3", + "res/drawable-xhdpi-v4/ic_call_decline_low.png": "9a9a30c305022a2f8e075d2ed7d33f5c7711bba8d0d0385511fdb62f89f208e3", + "res/drawable-xhdpi-v4/notification_bg_low_normal.9.png": "3e09afa21c45372c035598c017c8fb405a6d678e6cb84dc857581cb3b40e482d", + "res/drawable-xhdpi-v4/notification_bg_low_pressed.9.png": "20343222f9f79dd565c3a2248494d452e70820ac1c437173c38badd45f962afd", + "res/drawable-xhdpi-v4/notification_bg_normal.9.png": "559bf783d765c02338e97952bdc9c6689c7ff99090b8c9813369118da8b080f0", + "res/drawable-xhdpi-v4/notification_bg_normal_pressed.9.png": "d27af435101ca4cbec0c840bd30687918cd39eb83aab1487420855623a45998b", + "res/drawable-xhdpi-v4/notify_panel_notification_icon_bg.png": "b44eeda34d7a529c2fe55719eb098fa29707caa91d18de06a7a775d6e6bcf973", + "res/drawable-xxhdpi-v4/ic_call_answer.png": "86763a30af2a934c7c13b123b36443d1d17918b71c6149bc6ee80115b872593d", + "res/drawable-xxhdpi-v4/ic_call_answer_low.png": "86763a30af2a934c7c13b123b36443d1d17918b71c6149bc6ee80115b872593d", + "res/drawable-xxhdpi-v4/ic_call_answer_video.png": "ca48f604262f2b4ef8b100c73130efe2ad33ef8c2a2c1b3516f24f51b7b04665", + "res/drawable-xxhdpi-v4/ic_call_answer_video_low.png": "ca48f604262f2b4ef8b100c73130efe2ad33ef8c2a2c1b3516f24f51b7b04665", + "res/drawable-xxhdpi-v4/ic_call_decline.png": "87adad32e0ec19c4e920420bf3a06c9f94f6128ed0d866a1891628aeab2cef06", + "res/drawable-xxhdpi-v4/ic_call_decline_low.png": "87adad32e0ec19c4e920420bf3a06c9f94f6128ed0d866a1891628aeab2cef06", + "res/drawable-xxxhdpi-v4/ic_call_answer.png": "ec698a3217bce74d8bc4a44bb008f2dbd3d1aebff1af1e9641805143dbf9fa87", + "res/drawable-xxxhdpi-v4/ic_call_answer_low.png": "ec698a3217bce74d8bc4a44bb008f2dbd3d1aebff1af1e9641805143dbf9fa87", + "res/drawable-xxxhdpi-v4/ic_call_answer_video.png": "4c717ce1ffb551c765981add65d1956132d8f522337de2866b045f0a60485426", + "res/drawable-xxxhdpi-v4/ic_call_answer_video_low.png": "4c717ce1ffb551c765981add65d1956132d8f522337de2866b045f0a60485426", + "res/drawable-xxxhdpi-v4/ic_call_decline.png": "ab73b729bb95878120a3bdc8dc915f3aaa1d7070fc644a0de64d40941ad507ed", + "res/drawable-xxxhdpi-v4/ic_call_decline_low.png": "ab73b729bb95878120a3bdc8dc915f3aaa1d7070fc644a0de64d40941ad507ed", + "res/drawable/notification_bg.xml": "20a1a2e83aa9806faeb234fc0a1094bc079adf5a25ef4cfef1491c5ca3b3c745", + "res/drawable/notification_bg_low.xml": "49041ec87bb2ec2a8bc23685c8eb2c2d5297aa39f1412dc7aa6639aeec12ee49", + "res/drawable/notification_icon_background.xml": "b143ee7fcbba209f17607a720502d755f085ec75380ad6fbd6f99de6583f0a40", + "res/drawable/notification_tile_bg.xml": "fb5d113d15ff98da0eab3cb9e178e909ad5e261f30a24add0267e2827b4c7774", + "res/layout-v21/notification_action.xml": "4e046a162878e2f8796c6380f0c5a9a7b40f1ffb251478ecfcbbe3b434bd1178", + "res/layout-v21/notification_action_tombstone.xml": "a9657e68fd0c10ced5011b67b9e37a5ebe262957ef15fa3679a9a1f8784fee21", + "res/layout-v21/notification_template_custom_big.xml": "4879194cce032a3c5ea58d2ec796766b00bb057a4ca4bc11c56ed1830a61c7d2", + "res/layout-v21/notification_template_icon_group.xml": "97d5723ad66c683d88d57918e197cb33d2dc1628aa77299e42e132622c2c948e", + "res/layout/custom_dialog.xml": "edd4e27b3f2407a02248205a2eb50288170e4201249bfeac074749ea60390103", + "res/layout/ime_base_split_test_activity.xml": "37ff040591f96786bfaf9d3d937fedf2f2f97e218c06beb3e7fe8a2442a181a8", + "res/layout/ime_secondary_split_test_activity.xml": "0034556846afe7278a6d1264855405a0c3ae65a81a6a05f9ba4dc0136a589685", + "res/layout/notification_template_part_chronometer.xml": "9ae2b91ed155032cb90ee4cfead57eba2728d0e6ff262d2275ff63516604fc94", + "res/layout/notification_template_part_time.xml": "4a838e479642de5ee2cd1d0785b35d195995fcf27b0b9561140a6cdccbfe3ad6", + "res/xml/native_input_test_ime.xml": "d560413501650fb393941eb5e8e36b30aed25a309dc294cc0435f74d6dfe326d", + "resources.arsc": "a743d0f25129f83afc5a9790dfabdd4c6937b071c930014b432aa9a2fd74e4eb", + "LICENSE-junit.txt": "9648bb2891b9813970bddb68d4be8a5e6ec8280d0180a53dfb29236b579c55bb", + "META-INF/androidx.compose.ui_ui-test-junit4.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-test.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.test.uiautomator_uiautomator.version": "a42caf4a54bbbe27aa45b6efbc6356c5e299b19763e728b6cdb7201b02ebbe36", + "META-INF/kotlinx_coroutines_test.version": "179f9b723b6508aa1d6ce99991e8cd549ca819ee1b9b6102396c47815beffaaf", + "META-INF/services/kotlinx.coroutines.CoroutineExceptionHandler": "1b8e1a088e38c9bc8dd36517de1202651f06a9ca9eb0e6adad7305392289a94c", + "META-INF/services/kotlinx.coroutines.internal.MainDispatcherFactory": "90d3bc46060b2a33332bd2bc8122d5b03dd1a507718db830d5e809cc62c4490d", + "javax/annotation/CheckForNull.java": "4807942043605b325f0fefa243344db0d11e32cebd8f133df2b7c5d8486f2312", + "javax/annotation/CheckForSigned.java": "9c3d742fe9ab8e5fb08d5562ab0cb0255e2960facf94f83349be542b6557f3c1", + "javax/annotation/CheckReturnValue.java": "fc328c2dbc79fb3bc25d47a7f0486410fe8a04e6d6ceadf97f7ed44fa6dc0ebb", + "javax/annotation/Detainted.java": "7d272cf814d47c8cf89dd0d2f283ddfc88a26405122fd98f2842dbcb0789ed0e", + "javax/annotation/MatchesPattern.java": "ff2ffbca3823c1a3f5333630878068c724f67058264cca7396d9abef821897dd", + "javax/annotation/Nonnegative.java": "73b83d783bc7cdf7b5c9f4331a928154c6dc4e97ba349a5e5124e026ba4221b0", + "javax/annotation/Nonnull.java": "eb2d5ac7cd628dd3c59e5f7b14378fea531d5c76857df837cfe8f9a2ece1dddc", + "javax/annotation/Nullable.java": "511c9e8888bbdc13e0388eb5c3a882f43ff21160093b404c870ce94e83a1f509", + "javax/annotation/OverridingMethodsMustInvokeSuper.java": "5d786c4fff3f381babab9f745252dd80ba10210c402bd4c15161ce9b63decca6", + "javax/annotation/ParametersAreNonnullByDefault.java": "94233ca1ca4fb6d457bed883f8369019d4f0016be81d4e5ccfc01f5d50bf946e", + "javax/annotation/PropertyKey.java": "5559001d0f69e49487f1cc0cfa82d37e064b04436ccc7026a3d8a5aa30215d7d", + "javax/annotation/RegEx.java": "7b08d091734672f8f8f320fdaa7cde6ba48c786a2fdca94c9e2407e1e2af2aba", + "javax/annotation/Signed.java": "76633adce590e7c771ef7f727b575f9ae54389539d666677a9ca1a9e4256e374", + "javax/annotation/Syntax.java": "63c05bd38c7c279d147058d6e154a44ee1da62c92cc6849a573bdc6c345869e0", + "javax/annotation/Tainted.java": "9b755d095cf2c4a41a8e064b5bd0ab3e556845048b705d2cc98e8635b8bda6f2", + "javax/annotation/Untainted.java": "e44096a654f825c9f8f3fb9ba099f805155b3daf41918c177d7193558bb11981", + "javax/annotation/WillClose.java": "1c81ea1c7284c37c5d66b436fc63267877667da03b2b646fc6c11ea2a8dfac08", + "javax/annotation/WillCloseWhenClosed.java": "b3c6e342b4dfc4c62d33857f8920cfe077e9f2c31379d8f627495e0c4a06cb13", + "javax/annotation/WillNotClose.java": "6c258758fcf54c9657052dc9e86d0abc780f8a4580804e3a0a8b8b376529e453", + "javax/annotation/concurrent/GuardedBy.java": "f2650971001cbfd4c127487e0115e7a9539d64fd6a98dd8dd0675330ae3b790d", + "javax/annotation/concurrent/Immutable.java": "47f9a076a4396c492a373eec9622a15497b56b633a67af97ca51bd3b1142a08d", + "javax/annotation/concurrent/NotThreadSafe.java": "73060a8907c01ee7a72bfbd9c74a037ff1953bd7a4510b8997fdcec0a5741a19", + "javax/annotation/concurrent/ThreadSafe.java": "bcfd9f7a27af49a6505734ab03259f02a7222d3bd052821caa6d94d930bdfc9a", + "javax/annotation/meta/Exclusive.java": "0b0405f1dc140ac2ebdb4cdd3bbbfdcf19e22d724bc57a89d530b33e8c9b7ff5", + "javax/annotation/meta/Exhaustive.java": "c9b4085041acd1602691ee49535a6a91afc2b67d6bd9d9fb4e1ab2169d627a6f", + "javax/annotation/meta/TypeQualifier.java": "828fffa618ac1cda2fc07fcc0e5e58785aadfe4bc481c0e4e8dc5fc23d662ce5", + "javax/annotation/meta/TypeQualifierDefault.java": "27faa048d7c23bd6d79d3515816ec1f356758ae140c0edc702a74b91f9215395", + "javax/annotation/meta/TypeQualifierNickname.java": "309cf58e837f1bc63183fc9443b231904157f1ac25bfee0e5cebcae52f44eb51", + "javax/annotation/meta/TypeQualifierValidator.java": "4d1e2ca6f465ce130a8233086053acc991e5fd389f7e31c88a0cd19ef32c666a", + "javax/annotation/meta/When.java": "d79dfa99e03fa1eb6d0e6f024833ef16c1029b98975e2e767f760b2dbf4d8790", + "junit/runner/logo.gif": "345b5e2207a524e0019779d13f0f8ae51359f894a230479467761331e3d1ca16", + "junit/runner/smalllogo.gif": "b4819008f181bf3e0b47254f72149c62a556a56fc0358d3143e405b191de2081", + "classes3.dex": "7dc07d1930492f51d86d1f98c99d6ea552ffaa9fbc48b142e0de98fef6cea883", + "classes4.dex": "5993a842a6d68076e69947709eea427224f969cb7195ad33d38981df6d39a406" + } + }, + "unchanged_original_assets": { + "assets/ANDROIDSVG-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "assets/ANDROIDSVG-NOTICE": "2e61b715e3553494f46f43e5a88e8d26c56201e0558c8d5ab02946edb4f7dedf", + "assets/COMMONMARK-LICENSE": "11cfcf6da0142fb1971c1f40f5924ddded14454e2793d7f1dd87c9f4abe42dfd", + "assets/COPYING": "14609801e0e520dac851e75d993ca4c75c3842a3be468f6f7f04a16c03c824db", + "assets/GEMOJI-LICENSE": "7ea1d1fd0602e6623b9a65e791499a0ea5a2f5f60f91bfad78cbaeee19da26e6", + "assets/NOTICE.md": "c263e44ea9a845c4e4ec564eeca46ae0fc343f63ffd10685afbf74586647e0f6", + "assets/REACT-LICENSE": "da6d3703ed11cbe42bd212c725957c98da23cbff1998c05fa4b3d976d1a58e93", + "assets/RaycastRuntime.generated.js": "b306b45453cc8507037ff2822066475aae17def757a8ef72d4a4fc64c6494bb7", + "assets/android-runtime.js": "1b5dfa3f5b512f55322f27703bbebf15d1a8c4569c4c1712a6dd64541dd552aa", + "assets/emoji-catalog.tsv": "e49f1cc09c6f487a6e7b55590ecc171dcff390f720a9ce3820fe2038810d5d66", + "assets/extension-workflow-evidence-v1.json": "4e8adc22b7887996140190a999f1c7272556f2dd379d219c88e276e48aea0fa5" + }, + "old_app": { + "source": "6c5825bf0da60ad9b452ec4550aa49d60704e677", + "sha256": "66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c", + "scope": "Reviewed PR113 app; common instrumentation exercises actual keyboard Show/Hide" + } +} diff --git a/docs/validation/keyboard-toggle/identities/candidate-v2/test-manifest.xml b/docs/validation/keyboard-toggle/identities/candidate-v2/test-manifest.xml new file mode 100644 index 00000000..ec741fb2 --- /dev/null +++ b/docs/validation/keyboard-toggle/identities/candidate-v2/test-manifest.xml @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/identities/candidate-v3/app-manifest.xml b/docs/validation/keyboard-toggle/identities/candidate-v3/app-manifest.xml new file mode 100644 index 00000000..7acc529a --- /dev/null +++ b/docs/validation/keyboard-toggle/identities/candidate-v3/app-manifest.xml @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/identities/candidate-v3/identity.json b/docs/validation/keyboard-toggle/identities/candidate-v3/identity.json new file mode 100644 index 00000000..f647cca8 --- /dev/null +++ b/docs/validation/keyboard-toggle/identities/candidate-v3/identity.json @@ -0,0 +1,581 @@ +{ + "source_commit": "f30bebd6c414307a5b5fe690d80dfffe5fc58ccc", + "app_source": "f30bebd6c414307a5b5fe690d80dfffe5fc58ccc", + "test_source": "f30bebd6c414307a5b5fe690d80dfffe5fc58ccc", + "controller_source": "f30bebd6c414307a5b5fe690d80dfffe5fc58ccc", + "build_commit_property": "f30bebd6c414307a5b5fe690d80dfffe5fc58ccc", + "source_sha256": { + "app/build.gradle.kts": "28f41ac518c91f15c98221d0511870a5409b9f35ae008acfdd5f667db06bcadf", + "app/src/androidTest/AndroidManifest.xml": "63c98a685e9dd67d8150af8981832d34271fb37a92e46444eec52728f559d609", + "app/src/androidTest/assets/owned-detail-fixture.js": "873d3f25f95271029e31779b0920b5955a2908a820a07652b58efa21a2358cfd", + "app/src/androidTest/java/dev/tinycast/android/ActivationDeviceTest.kt": "2f2fe66a5c3628433feeb6db33e02be43ca3f267b39ec541f2e3330fc1142974", + "app/src/androidTest/java/dev/tinycast/android/AssistantDeviceTest.kt": "1ecebcf20fe9aa7aa63701c81500195eddd1ae88618d89f31105fecc58189b6b", + "app/src/androidTest/java/dev/tinycast/android/AssistantTouchDeviceTest.kt": "1f33a283e5b1f05a5a74dbb76bc3ff8920193cd761edd1cce1e61cb733cb9874", + "app/src/androidTest/java/dev/tinycast/android/BackupDeviceTest.kt": "56c56d6a652524f7fc7952b1478552314b1e465ace5c7216385d7f2ea3cf4b6c", + "app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt": "e738e5b09aa6128343abe628ed7f93571b9a87c1eb95e78f00c617aadcf348b4", + "app/src/androidTest/java/dev/tinycast/android/CalculatorIntentDeviceTest.kt": "628ddcef4b50880170fba97cd925fefc5f463f632799d9e2686e7512b2bbc15f", + "app/src/androidTest/java/dev/tinycast/android/ClipboardApiDeviceTest.kt": "e53bbc080d17b59aae6280b7b817a3c81b4df684dcfd5ca787a993d89caf5de4", + "app/src/androidTest/java/dev/tinycast/android/ClipboardEvidence.kt": "c882a7435cdca3bbdf68da66a6e8ef23bce932fb5746ba09c61bded5b9c98e9d", + "app/src/androidTest/java/dev/tinycast/android/ClipboardEvidenceDeviceTest.kt": "dfdb64344886b7e5d4b54f04fa4560f169e8cb8d7b7b238ba08358dcde73f854", + "app/src/androidTest/java/dev/tinycast/android/ClipboardRecoveryActivity.java": "48627f465b10c316cca7fdfa735928095328241b4fb98bf90e5c247add17345d", + "app/src/androidTest/java/dev/tinycast/android/DocumentProviderDeviceTest.kt": "13895d23b8758affd8889461ef660c442d3bfd1bb111fce08a064aa4b582aea2", + "app/src/androidTest/java/dev/tinycast/android/EmojiDeviceTest.kt": "ab9907d4e4acd7e52ed26f12ac14648271e5740784cdba678671ca8ad42fb415", + "app/src/androidTest/java/dev/tinycast/android/EnduranceDeviceTest.kt": "4802d3755ce6bc1cdf8e60c7cf9998a09ced8e0be6d9888f0b9d9a32ee332dc4", + "app/src/androidTest/java/dev/tinycast/android/ExtensionCommandHandoffDeviceTest.kt": "8c47f08b1d49a94dfd520840a0b0349199459da4ece8ff1adcacc46516b37f7b", + "app/src/androidTest/java/dev/tinycast/android/ExtensionDetailDeviceTest.kt": "d5bd83f6d174ca5d5c3c9d68551cc3a78bc90763060410bd5f3b67d9d9642025", + "app/src/androidTest/java/dev/tinycast/android/ExtensionDeviceTest.kt": "3087ff055f70cdf43d2565e22703b9c57445b5c3e1594126d60b0279c32b2640", + "app/src/androidTest/java/dev/tinycast/android/ExtensionEmptyViewDeviceTest.kt": "64e6b1e68c61cf67b24ba02d1e14a72d297b1bdeebbdf1008905d5619ce2558f", + "app/src/androidTest/java/dev/tinycast/android/ExtensionFormDeviceTest.kt": "6418f6ab517ead50a102b4834bff9c40988849fb3a2a1ef20f575d162b32e11b", + "app/src/androidTest/java/dev/tinycast/android/ExtensionGridDeviceTest.kt": "952b4f2988379c1545575d1332f8358acc9053e257a382b7549a27f6b4b40de3", + "app/src/androidTest/java/dev/tinycast/android/ExtensionMarkdownDeviceTest.kt": "e4b7daa9fd914335f572ef41665595104cdae5434682977a2d806ff63ef36c4f", + "app/src/androidTest/java/dev/tinycast/android/ExtensionPasteCopyDeviceTest.kt": "7bdd8e876153d4d46357402eab58cf89c0e8885823d21894c70882ed55b1da8e", + "app/src/androidTest/java/dev/tinycast/android/ExtensionRecordedTestsDeviceTest.kt": "1aa11011270b01a235bb052c6063da7eb5f7f726a7bb19f79aa54e7b8aa4ca42", + "app/src/androidTest/java/dev/tinycast/android/ExtensionSandboxDiagnosticDeviceTest.kt": "3e192cb65d011e021d5b47b6bde765e1136c2ddf7e039b5c9dce6dedbf39da15", + "app/src/androidTest/java/dev/tinycast/android/FeedbackReadabilityDeviceTest.kt": "86096d428b6554bcb6b8c9d7bc39b981baf1fd53f9367a33c97ce03c89020a82", + "app/src/androidTest/java/dev/tinycast/android/FolderDeviceTest.kt": "f3d54b0d788459d34470d2d87c8882cdfe30e8956a8886cd324dd63160f5628d", + "app/src/androidTest/java/dev/tinycast/android/FormDocumentsFixtureActivity.java": "434e72d8a0c977a83cbe6524cc51638eaff9cca5581c570ea58d4068ad2156a9", + "app/src/androidTest/java/dev/tinycast/android/FrozenBundleWorkflowDeviceTest.kt": "9d31d56f739caa2509610cf4c07abf70dfd5ea0aead7ec5c5673bde1ca04bc45", + "app/src/androidTest/java/dev/tinycast/android/InlinePaletteDeviceTest.kt": "ed2cfb9dc3c5218adfe0ae7b3cc1c60a69e6cf8c83ad434c2fc6b87d23bb2727", + "app/src/androidTest/java/dev/tinycast/android/LegacyInputDiagnosticDeviceTest.kt": "4966fac20af96b8597fb38a278d8f3ef89b7e335f3d3b6e5df00fb349ebabc55", + "app/src/androidTest/java/dev/tinycast/android/ModifierHardwareClipboardTest.kt": "141499cea10d4c80b8ef690fd43e985c066d1b420afa23895c32e75de737ec8d", + "app/src/androidTest/java/dev/tinycast/android/ModifierTapDeviceTest.kt": "d33bafba795569c15bab709a9830ca06ecffda9feb754492ec437d55c1d1cae1", + "app/src/androidTest/java/dev/tinycast/android/NativeEditableAssertions.kt": "be979c8e0f3e78b8d0e4482c2653769d732d24871a822b3761f5708a1e6a230b", + "app/src/androidTest/java/dev/tinycast/android/NativeInputCompatibilityDeviceTest.kt": "484dcb406a6b9fbc7851efd883029a43b303bdab799c9385e51a678ab91a51fc", + "app/src/androidTest/java/dev/tinycast/android/NativeInputTestIme.kt": "c3a766ae381e6e4a1b514b3890cdd220616df8e9b88208cdb9aa562ebd8f45ce", + "app/src/androidTest/java/dev/tinycast/android/OwnedFormDocumentsProvider.java": "67c22d543cb2136d81dc3544d8f63df94ce67f9524c7f19dc9c6b1b586713e89", + "app/src/androidTest/java/dev/tinycast/android/PaletteDeviceTest.kt": "7f5861ffec2e762c1e629519802c10d4b31e3bebd49a3c5867013c6aad77f3f4", + "app/src/androidTest/java/dev/tinycast/android/PaletteOverlayTest.kt": "0755f9aa38bdb5785d2cb8902157ce990b5b9825db0ae71847e11c8b1bd4b7aa", + "app/src/androidTest/java/dev/tinycast/android/PaletteStabilityDeviceTest.kt": "87896693541425799e7815d2fc1e3988e29afd9bba346da48183a91fa91be9c9", + "app/src/androidTest/java/dev/tinycast/android/ReadinessDeviceTest.kt": "c6f3ea767e9adc8384a3b662223ab57bef067fca8501509e0415111b711589f3", + "app/src/androidTest/java/dev/tinycast/android/ReadinessRegressionDeviceTest.kt": "3815d7aef28c0943999782217eabe14dd80fdd464476798bd0bf12a1d0be3c4a", + "app/src/androidTest/java/dev/tinycast/android/RecentDocumentDeviceTest.kt": "85af5ed0fd05c0716b8ac14b24e98397829ff8d241695999a0cfc68727923e40", + "app/src/androidTest/java/dev/tinycast/android/ReviewedTextCallerActivity.java": "640609575a0711566bf23f3028a5144e8aeae912604f9b7180912fd2c9b96200", + "app/src/androidTest/java/dev/tinycast/android/ReviewedTextClipboardCrashDeviceTest.kt": "6a1ebc4d90c8b5fa9a07f4b288c20b361297efbeaf7d4423eb211da47b4cf0c0", + "app/src/androidTest/java/dev/tinycast/android/ReviewedTextDeviceTest.kt": "31040a9d92e7e60d8026dda7119a9f7eedd2127ea6f50bfb308849f56b6fc0ac", + "app/src/androidTest/java/dev/tinycast/android/ReviewedTextLifecycleDeviceTest.kt": "2190f43dca4d7a7eca162a7e34f46d6091cfd114d83a5e4509946c1b912ce76f", + "app/src/androidTest/java/dev/tinycast/android/SettingsDeviceTest.kt": "dd9b9a2492c497a2a3ac3218d0833d2e8b536eb904975aa536b08361acc323a9", + "app/src/androidTest/java/dev/tinycast/android/SettingsRouteDeviceTest.kt": "8f6991670e740a07d3a6b30aea270b60e19f6d237c4b7b6afaf25200962ad736", + "app/src/androidTest/java/dev/tinycast/android/ShortcutDeviceTest.kt": "5376ede8474d5eaa4ec7ecb628d1056a5bfc963bd2a292d17d9b86eead8a5415", + "app/src/androidTest/java/dev/tinycast/android/ShortcutReadinessDeviceTest.kt": "41bdf7ab67a6899dc8a0b1b0f697135bc587dc401c9234eb56d25385eadf3dcf", + "app/src/androidTest/java/dev/tinycast/android/SystemSettingsDeviceTest.kt": "80e0c919fbf04916d2441aa3fbc4cccfac534f56c29dfd908e5ae2d917cfe13b", + "app/src/androidTest/java/dev/tinycast/android/TestAutomation.kt": "faad509cd41b06c4cc1087e5de8e0218abca78773603b2050bb2825c880588fb", + "app/src/androidTest/java/dev/tinycast/android/TouchReadabilityDeviceTest.kt": "6801d25bb0d9bc45899b04aeedba474e2ac8e5cc8cb168b6268e0305fb49345e", + "app/src/androidTest/java/dev/tinycast/android/TouchSearchDeviceTest.kt": "93cdf4f4734b44c94ae5b015a86142d030df9648132b734085134ecf33640afa", + "app/src/androidTest/java/dev/tinycast/android/UpdateDeviceTest.kt": "380e4d7702d2f8c68fd575581309113bc67abf3e5713bdb177cc3b920c4e2787", + "app/src/androidTest/java/dev/tinycast/android/UpdateSelfInstallDeviceTest.kt": "fc94ef400b54ee2cf8378d2b1632fff1521299f188a132f0330e930b40f80ed3", + "app/src/androidTest/java/dev/tinycast/android/UpdateSourceDeviceTest.kt": "76d91931dc044fdeb001a8325a321306011f2b0c54aa631bea25751c59f3ea50", + "app/src/androidTest/java/dev/tinycast/android/UpdateVerificationDeviceTest.kt": "cebe3033132db567affccc5419ec59a9639c87ceb88b20c38ffbba16c13b4592", + "app/src/androidTest/java/dev/tinycast/android/WebViewCompatibilityDeviceTest.kt": "ce5842cad291b9cb77aed19ecb9436dc80de24beb27e018797a7f84fb4a84895", + "app/src/androidTest/java/dev/tinycast/android/WebViewRecoveryDeviceTest.kt": "dd6ccf056187d184dd7fb6aa1eddeb76bd7037f4af21f749dbe379a7a2eeecde", + "app/src/androidTest/res/xml/native_input_test_ime.xml": "4aafc899939ff4b8883a80c6e00f7ff7413a08a603d485a15f1035c07760b50c", + "app/src/main/AndroidManifest.xml": "65fefcf86296b7103c2237f1e29bca7890bf33f6b5056f860c2e39ede371a55b", + "app/src/main/assets/ANDROIDSVG-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "app/src/main/assets/ANDROIDSVG-NOTICE": "2e61b715e3553494f46f43e5a88e8d26c56201e0558c8d5ab02946edb4f7dedf", + "app/src/main/assets/COMMONMARK-LICENSE": "11cfcf6da0142fb1971c1f40f5924ddded14454e2793d7f1dd87c9f4abe42dfd", + "app/src/main/assets/COPYING": "14609801e0e520dac851e75d993ca4c75c3842a3be468f6f7f04a16c03c824db", + "app/src/main/assets/GEMOJI-LICENSE": "7ea1d1fd0602e6623b9a65e791499a0ea5a2f5f60f91bfad78cbaeee19da26e6", + "app/src/main/assets/NOTICE.md": "c263e44ea9a845c4e4ec564eeca46ae0fc343f63ffd10685afbf74586647e0f6", + "app/src/main/assets/REACT-LICENSE": "da6d3703ed11cbe42bd212c725957c98da23cbff1998c05fa4b3d976d1a58e93", + "app/src/main/assets/RaycastRuntime.generated.js": "b306b45453cc8507037ff2822066475aae17def757a8ef72d4a4fc64c6494bb7", + "app/src/main/assets/android-runtime.js": "1b5dfa3f5b512f55322f27703bbebf15d1a8c4569c4c1712a6dd64541dd552aa", + "app/src/main/assets/emoji-catalog.tsv": "e49f1cc09c6f487a6e7b55590ecc171dcff390f720a9ce3820fe2038810d5d66", + "app/src/main/assets/extension-workflow-evidence-v1.json": "4e8adc22b7887996140190a999f1c7272556f2dd379d219c88e276e48aea0fa5", + "app/src/main/java/dev/tinycast/android/AndroidShortcuts.kt": "1738bc2fe26a117f3d00edddf2639cd49d118f9d91bd5f6eff86d6ee6804b68c", + "app/src/main/java/dev/tinycast/android/AssistantActivation.kt": "b5855f87a029362bd06a63136dea7a1572fff716d0c302056f2a3647d9d95560", + "app/src/main/java/dev/tinycast/android/Backup.kt": "97f09aa4c2cf7ef42473be8728be28cadd3f3ab14930a6804590c0544a7c104b", + "app/src/main/java/dev/tinycast/android/BackupUi.kt": "d13aabc798d7fb19746b09d28a38593792792b67e916824776413d2fbe82870f", + "app/src/main/java/dev/tinycast/android/CalculatorActions.kt": "e03e5645069dafb156556efac7bd465f632938f8a5a24a78be72dff0ee5d3947", + "app/src/main/java/dev/tinycast/android/CommandEngine.kt": "b6be72c82b19fb09e1bf44cd4dd4148b3dbb0c39098eb42f89e80f9ffa034f78", + "app/src/main/java/dev/tinycast/android/EmojiCatalog.kt": "4dd39955ec38adea02d0c1974ace2b33d86ae738efea0e59d3e62b9072c10b81", + "app/src/main/java/dev/tinycast/android/EmojiStore.kt": "f7f5dd63af030b9d179c70336f4b52789d23a318020b6f19ac0c24d20ba8cd8e", + "app/src/main/java/dev/tinycast/android/EmojiUi.kt": "e15b3a4b62f422dccf3ee25b724194889680210d2d43e3ff0353c368538f42f3", + "app/src/main/java/dev/tinycast/android/FolderGrantTransaction.kt": "11361d342e1e1598c85b5ea630f174c3a4590cbfaf9b430a30fbea2b9686a5c7", + "app/src/main/java/dev/tinycast/android/FolderIndex.kt": "6f1b1617a39c0c6e954a1b9b4da0d0d6af3ab7eeac25f2619e299621eec83a99", + "app/src/main/java/dev/tinycast/android/FolderSearch.kt": "4fcf90368ed70b49c192ab1b92b6e367d0a61643f928245f8447f542e745b60d", + "app/src/main/java/dev/tinycast/android/FolderSearchUi.kt": "dad0f473544f8e459aa301ad8eb91ec7380cebbe572e3e2be3f94443585a75c6", + "app/src/main/java/dev/tinycast/android/FolderStorageCoordinator.kt": "ff5491baf9d81ff19b04b35e33a503fc1656bfee9d8eb066453fdbe7e0f83bfb", + "app/src/main/java/dev/tinycast/android/MainActivity.kt": "2bc08e693d69ba4668a675c42dbcabb507755f8e3daf9ee01eaf62fd5744efe0", + "app/src/main/java/dev/tinycast/android/PaletteActionCapsule.kt": "f7228cdd6b6988fb049f0aaf1048d69cc8489e802b4cc42a2b4d6f9e7ceea3e0", + "app/src/main/java/dev/tinycast/android/PaletteColumn.kt": "cd6cdc348752bcc20bd631e2216abdd4ee0c91d9606aaab62ce0c01a145dd6aa", + "app/src/main/java/dev/tinycast/android/PaletteDialogs.kt": "99055192ab85f645a9d9c77d96064b06bba2f1435de503bc45be8f56b4de2dc5", + "app/src/main/java/dev/tinycast/android/PaletteFooter.kt": "5b62c907b46e5075975fc22d01771f5ab7c7f53e433692de55d92865231e967f", + "app/src/main/java/dev/tinycast/android/PaletteFrame.kt": "bfbc139e01a4276770644d5f4c1242016839fd98f5e2f21fa8afb31c886bc763", + "app/src/main/java/dev/tinycast/android/PaletteMenuOwnership.kt": "0be25f335246b8e47bf07ea057adf2045a20f9db5bee90a396109adfa7426174", + "app/src/main/java/dev/tinycast/android/PaletteMenus.kt": "43bc24a46a1ea0bac20f096a7d5d5256250c1c1069e0990bc958881830533dd3", + "app/src/main/java/dev/tinycast/android/PaletteScrollHistory.kt": "84e26b8544adc069c9f86e3273acd2254e2189f1680dec592570a261cdf87602", + "app/src/main/java/dev/tinycast/android/PaletteStore.kt": "7434fd21d100108a267e5790ecb705f4ca76c5dd0c86cc5b14bd9644ed58f57d", + "app/src/main/java/dev/tinycast/android/PaletteTheme.kt": "7afa29642b2bda9c9f669eaf6cdefcb977d14417d313547aff1ff807f4e37471", + "app/src/main/java/dev/tinycast/android/PaletteTileService.kt": "6f29825b3560944aae77935bc3abfb6a53e9577735dc622bf80e5ea1a1fbad00", + "app/src/main/java/dev/tinycast/android/PaletteUi.kt": "ae274c6ca3da3afc06a72bf14e77b86e22af35e67b77f4ef9c56984e58d0a3fa", + "app/src/main/java/dev/tinycast/android/PaletteViewport.kt": "7af62cfb3e5c210325dcb514246afadc3b5b5adbffda8cdded88100e8b7e44a3", + "app/src/main/java/dev/tinycast/android/RecentDocumentQueries.kt": "b60f5f6ac3458eb3659dd41aef01bcd20be9d59f3841ff0fa77c3eb6ee82c92b", + "app/src/main/java/dev/tinycast/android/ReviewedTextFlow.kt": "7daf246a7b8a608fe61e06f078bf3167c17df8f784f8779977ba6e87914526ea", + "app/src/main/java/dev/tinycast/android/ReviewedTextInput.kt": "ca681bb2c4eb91188a1550650bf5fb5f83569bf8ac954ab22abc0ce05ed17e73", + "app/src/main/java/dev/tinycast/android/ReviewedTextUi.kt": "5ded41175e114968aa1994c93ade551b21121db15c4a4a7ea5ff87deaff00d86", + "app/src/main/java/dev/tinycast/android/SearchClearButton.kt": "0d4b0bc74a48d1c2d13a62fcaec60adfa51c8966199ea71465dd3ecf40510229", + "app/src/main/java/dev/tinycast/android/SearchKeyboardButton.kt": "bc563f664a6498035de8c8629a919869184904aa696ca0dc821fa68c2c4a3d84", + "app/src/main/java/dev/tinycast/android/SettingsActivity.kt": "6c8a09cf51abdfc1f61c305b17e613f7b40f9960168aad2fafebdc31155a3601", + "app/src/main/java/dev/tinycast/android/SettingsUi.kt": "55886d17261a019fcddac77f25e655896217dadd081db6da23a2e519a6bad35b", + "app/src/main/java/dev/tinycast/android/ShortcutReadiness.kt": "83a422a837edc657f1f3faf94c155019eae73f1abcc8761379dcb2051ceed505", + "app/src/main/java/dev/tinycast/android/ShortcutUi.kt": "394fadd7890bbb2dd5f851bd5a290ebf19ad4e05fae64c321e529eeccd35c632", + "app/src/main/java/dev/tinycast/android/Shortcuts.kt": "14e08d112e3cc5689a5717f68dce1334d3c2bf92f4a7cfbc2057fdc96418a9b2", + "app/src/main/java/dev/tinycast/android/SystemSettings.kt": "c5c1535d12627b975f8f582437e53d02b4110f4bfb185d5c8d1e9307debc319a", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionCatalog.kt": "4427ae6610fcf75bc8f7ddeec9b869ab5b6698c9042280f9f0efff7ea3422e1e", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionCommandLaunch.kt": "2b253982bfcaa9c2b04178fcd38a04492e450352a459bdf375abc7948e6950c6", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImageInformation.kt": "8a5d61b8f7d594933c6797d12c60f1888b4f4f4ad7de35a306c206406733b5e0", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImagePolicy.kt": "f393349926cd371a67e3e59af0d0eb4db66d124e035259622c5558efb0035529", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImageTimeout.kt": "16e0fb6b411c4cf30fcbcafc7df536f72da84c1a208f0ea47ba1a0b612d762a8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImageUi.kt": "6da7920fd357a8106015a8a6da6d085fd2b8ae2bf26269c4aee670c84f7b0af0", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImages.kt": "a87f8cf7d311baefd09c62f8a09e282764561bc2fe27b61abe0aec14d8c273f4", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailUi.kt": "15be7bc728b4fa72841db59a6e72e9acece275a5a6315d4ba6b19af22fc06f21", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionEmptyView.kt": "4ab1b0093364ad790235b666fc70ec2642bb40692f3ce7fdb830e6bc514c61dd", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionEngineCompatibility.kt": "36a9b4b35d22bc364ecb1f46d2d9f029e3807315a2d35d2fd231b2a86e8b49c8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionEngineUi.kt": "6972248240f701edcc038ce70428dfd1a716e40894d616918469af3270aaa9cb", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormContract.kt": "6eba4aa3f33b19d4c452212b3bbb33c8ac0cbb8ae8e61963867e83094d6778ed", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormDateUi.kt": "e052fc6c27a78ac0df119c954f7ef43f720ce8ab72462bb712832b6dfdeae18f", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormDocuments.kt": "1071c99bd42ec6265991731022662729fd1ccc0269fee924b229f9ab8c2980fc", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormFileImport.kt": "c91ee69d460190918ee649a61a340429ac0478a59ab5e7ca824db8c17d1f5d00", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormFileUi.kt": "4241a498c65c255db94f833038a1f86a8cb06f27b4cecb3838cc20e953262b01", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormPickerBackdrop.kt": "dff8e4e37d38c1387bfd221f6c43c29272abfa144fff34ada0a0734a9c0f946d", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormSubmission.kt": "7f89b0ef7216cafb22c72a636b3b2998e5d71c9933bcd87d7c65a25b9a2bd9d8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormTagUi.kt": "509187d014c00ca027720e16d22934686d1c0491f10e5e151a27b574cde86a96", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormTypedValues.kt": "bd6b1c9b3e45101715916ee145ad41cfb1b74e206ae733f97d375c119f86af97", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormUi.kt": "bdb8f813a82e1e1860ebb08047b4a449a440ffe6d2a005d97c06debcbf4438c2", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionGridImages.kt": "777de62995b645310418d2f0da8adf87c450d8b7459d1c9abab0e9a02ce84258", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionGridModel.kt": "5b104c726a950f09a7cf890a14c0e4e654dfe8f5ea8b1b41468a0822f42a2f48", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionGridUi.kt": "c66cd6ee6d29cd2cc43d45ddbdc15f175ac5a5a39b332736b4cbddecdbf9e6bf", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionHttp.kt": "88ed57ca318c3e0c45e50f85e3157692d479bdae9636127869556cfb553abfe8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionLinks.kt": "cebfba7010fd2a20423527f8025413c21257ecd8e97ddc0dcb321b1c74db71f1", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionListUi.kt": "b02b632904d5d6be8f7b967cd10ccbc72d7e3d8fff3caf66c4fb444bce7de136", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionMarkdownModel.kt": "723a518700e335179c296e8b9b05ae9a899c8aaf93b8ca02b76476a46879d6ea", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionMarkdownUi.kt": "54d1b8dc6b09e55a7b0adf7d23903c9fb97551673a5695196e2e6f89259e304d", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionMetadataVisuals.kt": "882b7080d8f46cc9c9e2fd96fd1cc5cb0565cbb282bf3b04cad1c31b77a32290", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionPasteCopy.kt": "3ee4dfbb356c6ec02f50d8d525ca805c0d21468f49529b002e054ff9c03c71b8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionPayloadIdentity.kt": "66037b60818bc4941f58551e6c1401c18641a6da43f9f2477db9c9f7838e29f0", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionRuntime.kt": "8df6a1a357a7133ce451930cc174b7382d70db75906724358ae40db664f6402e", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionSelectionDelivery.kt": "f13388787b615343c214a861a619bdba88b6327dc939365a130e9e799169c397", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionSvgPolicy.kt": "1bed94b2ea8e6d2475526a0ed83d85724e32893fafc8b27bd8f2b58a95cd868a", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt": "009e3b23953be18ae09c76a849dd6ce3943dff6b4f2d4b40d846385044851b3f", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionWorkflowEvidence.kt": "98f65f5dbe1578b11fbb20d80f477a63b03659f7b11b1a7a6f526a4d6fe94379", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionWorkflowInspection.kt": "650fdb495d2e1e0ab5331fe8c517baaaffcfe7d15e7f56b5b3f6247a650d01ed", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionWorkflowUi.kt": "93e9af8898ccce7fa1ab8169f08926b1d9fa95ba5657c517d7224f9356488c3d", + "app/src/main/java/dev/tinycast/android/extensions/NodeCpuInfo.kt": "eea176a7259e8f3736878886350610a84a23a6d2799f5337f5c8b07a8fefa398", + "app/src/main/java/dev/tinycast/android/extensions/WeakValueTokens.kt": "5c4d6f5c5b0d7170b554091e1b9cd9d551119ea60d7fe7f03946eb70f498c34d", + "app/src/main/java/dev/tinycast/android/updates/AppUpdates.kt": "63ace29d7dc29e005ffbbdde31cbac4e1d923732604b1e43e6a4db8a3285b508", + "app/src/main/java/dev/tinycast/android/updates/UpdatePolicy.kt": "350a9142ebfc663cd4a0c982ab220fb5f1e3399bfb3207c980ea20fd4c5c4e6e", + "app/src/main/java/dev/tinycast/android/updates/UpdateSource.kt": "aa860f14bd3a9f39e19899f1927fb7a790c54bb4f2704651253d8f867bb3c100", + "app/src/main/java/dev/tinycast/android/updates/UpdateUi.kt": "0bceb6a4221787a58dfb14ee1bcdcd266388720ca8862bd705cfeb10cfe52457", + "app/src/main/res/drawable/ic_launcher.xml": "104e38ffdf3214de23909b7896392f4a974e4fcbcc778c447d5d7a9ce56380af", + "app/src/main/res/drawable/ic_palette_tile.xml": "e063a6c4a1a25d6717a31bc355543d76c7d1babf8e9556e68b1b5e6a2b860748", + "app/src/main/res/values/styles.xml": "de4ad14f9ef41aaa4ffc824af155831579fa1194af5055edd112efee5042f5e1", + "app/src/main/res/xml/assistant_service.xml": "1e9e560563a7d0260fc83126d3a9bf027bf6357adfc811b43bc3224290c77ddf", + "app/src/main/res/xml/data_extraction_rules.xml": "cb4d1da1c1bd38761a9a08cc4d8d1b55839fcc14a6e19badb653f75b23c20eca", + "app/src/main/res/xml/keyboard_service.xml": "b1839c96988c03fea26ce4ed5932b1315013f3d2c16165993afc17368ab7bdd4", + "app/src/test/java/dev/tinycast/android/BackupPlannerTest.kt": "12a55d3644b5094b84cad2e88a5432738021fc8d7c59c232d4e5fc4c2c9a1454", + "app/src/test/java/dev/tinycast/android/CalculatorActionsTest.kt": "e803682a82b89c9703fcfbcbb82424eafef6bae6a13092953a3dc2c877816509", + "app/src/test/java/dev/tinycast/android/CommandEngineTest.kt": "65d9d198e8e1a188e4dcfd5551ced8f558f87a106f42b1d02a1432e8d6b7c234", + "app/src/test/java/dev/tinycast/android/CommonMarkPrimaryConformanceTest.kt": "ceb2ca14cc003385533bdd73b8beefffe92740887537b74c2146160621a23fcd", + "app/src/test/java/dev/tinycast/android/EmojiCatalogTest.kt": "9d70ef96696215e14e561d73f5a41f0b1a8272c3b58e5ad5a8438c31bc53aaa5", + "app/src/test/java/dev/tinycast/android/ExtensionCommandLaunchTest.kt": "f45df47e1740873ed7e771de72a650d9df88cd31bbcf2fd3abf67e3999700291", + "app/src/test/java/dev/tinycast/android/ExtensionDetailImagePolicyTest.kt": "7ec37a8870b70e3df0e3110f8b60ccc94185fedeaf1c39c76a00485dd4ca37d5", + "app/src/test/java/dev/tinycast/android/ExtensionDetailImageTimeoutTest.kt": "839216fc2d395cbd171676f32bfe77b894730a29a12127ec916c1d88b18dfb3d", + "app/src/test/java/dev/tinycast/android/ExtensionEngineCompatibilityTest.kt": "af9e76d4f6e7a6f193603f2db0169c95c7aadaca842d430c6178874f62840b1f", + "app/src/test/java/dev/tinycast/android/ExtensionFormContractTest.kt": "432d658e2a177312105e2ec86db2c59d0625086e86464a7ff946acb61c07e283", + "app/src/test/java/dev/tinycast/android/ExtensionFormFileImportTest.kt": "784f5b78f1dfd0d23ca653b36fc59bd13cba42e68c708c499678ac1ce474b673", + "app/src/test/java/dev/tinycast/android/ExtensionFormSubmissionTest.kt": "4bbdd8068cd95c314f7cf7aa156c7928cd815c5da11ef5f2cab1b4c5d23dd7d5", + "app/src/test/java/dev/tinycast/android/ExtensionFormTypedValuesTest.kt": "3a485a387e1527163d4318c3f0863b743bff02fe4e485adfff490d95cd554395", + "app/src/test/java/dev/tinycast/android/ExtensionFormValuesTest.kt": "6bc5bc8caaa5763e12dc3136bbba1d99249db10387c163cb1efeb0ae03f09d2a", + "app/src/test/java/dev/tinycast/android/ExtensionGridContractTest.kt": "50681a34c624a01867f287c66523d653e1931cf759f5e2926dda60feb85fa2b3", + "app/src/test/java/dev/tinycast/android/ExtensionGridNavigationTest.kt": "94ffe218ed5f9411210c2599db2a10dcd20c1a94655ef53e8cac1c574318b68f", + "app/src/test/java/dev/tinycast/android/ExtensionHttpTest.kt": "76917bbbdcc33dcc90d9b152d5a3e478fd981139e1df1d9edc0916e4f81b8e76", + "app/src/test/java/dev/tinycast/android/ExtensionMarkdownModelTest.kt": "fbeee6a80280ec27b660cc53222ef42f0e9ff5f5ce7ec5e02dede9d6b1c9222b", + "app/src/test/java/dev/tinycast/android/ExtensionMetadataVisualsTest.kt": "6f8653f4ed71138ac4fb0353e427d5b6775f54ec3600177ec6eae49dbc81598e", + "app/src/test/java/dev/tinycast/android/ExtensionPasteCopyTest.kt": "582ebddff12c96a504dd12a502ca851fc5d037e92f1d3ce98240eb162002b3bc", + "app/src/test/java/dev/tinycast/android/ExtensionPayloadIdentityTest.kt": "f59183b3224aab2923d9eb1ae598d1fa5cd2598b9ba80fc9a0db135005ae4e04", + "app/src/test/java/dev/tinycast/android/ExtensionSelectionDeliveryTest.kt": "1ea1e17cf0ea43fa3418a61f71587dbee9ec341b288d17fdaba3c5d3d8da4cb7", + "app/src/test/java/dev/tinycast/android/ExtensionWorkflowEvidenceTest.kt": "cf1589d69a498166b5a5fddd45135cf5b8575ec1d42f13ed4e2927b062b966fd", + "app/src/test/java/dev/tinycast/android/ExtensionWorkflowInspectionTest.kt": "043617c0cb943d76ebcdb5d0cc5bcdcda300069827b9b87a7425a16d084c1255", + "app/src/test/java/dev/tinycast/android/FolderGrantTransactionTest.kt": "ef710edc4ed1eb45782f90c385bc73305217f26882b630cd3e79ee93c59ef118", + "app/src/test/java/dev/tinycast/android/FolderIndexTest.kt": "bd371b19d1678ea876889cfb25505d690a4296c37d042e4cabd38bc7c7e4eff4", + "app/src/test/java/dev/tinycast/android/ModifierTapTest.kt": "bc0f6191ef2837018ca33a71010c1582cd39d0b3713c55acec4f91406a74d4fd", + "app/src/test/java/dev/tinycast/android/PaletteMenuOwnershipTest.kt": "c3134a62d61b5cd7ed810b867a6b40219713f21b798fabf6e659129cfab55506", + "app/src/test/java/dev/tinycast/android/PaletteScrollHistoryTest.kt": "b1610e3c3818e5823f99ded35bc36325042da250cfd48d98c0d6381066cfad5f", + "app/src/test/java/dev/tinycast/android/ReviewedTextInputTest.kt": "4bff225dd9fc1963736ad1f992e3eda3ffff21554c3ebef63d25acfdb41a29f3", + "app/src/test/java/dev/tinycast/android/ShortcutReadinessTest.kt": "45d32b02d4f89f857867d2585f3f5968251e9580edd34d9312bbfc158adc12e1", + "app/src/test/java/dev/tinycast/android/ShortcutTest.kt": "ae8034901d8ca73d704d40992b85ed43a64a021a078ff4eb5b2b853c4f398610", + "app/src/test/java/dev/tinycast/android/SystemSettingsTest.kt": "cdfc38bed12779bb92b0ddaeb79d197733243b24da43ab89d8580ecfd1f1fb51", + "app/src/test/java/dev/tinycast/android/TinycastGridParityTest.kt": "df6ca13f0f0a1e4bfa1f0085e274ed87457a6aa1a69492afa1041128af99c5e3", + "app/src/test/java/dev/tinycast/android/UpdatePolicyTest.kt": "d87ee4f7d6aa7b39b998267bd4d042d0b494ec6a1280d18860f262355c25cbe3", + "app/src/test/java/dev/tinycast/android/WeakValueTokensTest.kt": "ced7bf72628d5dc18fc5fdd30a81e58bb4b4b7f40e4e8c7eb0e77500f7c73566", + "app/src/test/java/dev/tinycast/android/extensions/NodeCpuInfoTest.kt": "5f3a7aae9b24435a4dbca77f9132a4b203ea736b1c76fc9108a51251983c2797", + "app/src/test/js/android-fetch.test.cjs": "2842effb321a11a33816f176f3300cd27a61c1e2ac70c4ed32681d46a129e56e", + "app/src/test/js/android-form-focus.test.cjs": "dd065271386dfdb2552caef1ae6e0c6f30e32783571abd85be328b9864bff8b6", + "app/src/test/js/android-form-submit.test.cjs": "7cbbb553dc2e657951b9195593b11add03597adad2710b4daa3e2cb807f87334", + "app/src/test/resources/commonmark-0.31.2.NOTICE": "610241b963a1a958c9465d99ec3f5778e7c6ef7251f9e119fed4c306b51641de", + "app/src/test/resources/commonmark-0.31.2.tsv": "dc27be954caac0ed8961299ca581a62aa4c68312091e68e52ab1e2bfe6aa5f5f", + "app/src/test/resources/extension-payload-identities-v1.json": "e451cf6b8efa208708db43dcb3a0545db1e73c610b72f488203fb4f147a490ab", + "app/src/test/resources/tinycast-grid-navigation.tsv": "da620f314fc39300beb7a11436715809ac1a9fd230fa4640c7f4f9c34b69aaf7", + "build.gradle.kts": "780d597cbe0f80d0103221a566db7574d1e07b17adca5bdbe7d6c728d77df12a", + "gradle.properties": "e43a00491832254a35cf5a979ef6de17f78c4e159d446be39319d2e3d3e46325", + "gradle/wrapper/gradle-wrapper.jar": "55243ef57851f12b070ad14f7f5bb8302daceeebc5bce5ece5fa6edb23e1145c", + "gradle/wrapper/gradle-wrapper.properties": "13287ffad6cf3064056ddad80d95b855132348930b2dc6c91490588c55b3ac7d", + "gradlew": "aed171fb114f82e6eaea4970a245a200e0582a7dcc8ec0891ca41b6e4a62b754", + "scripts/android_clipboard_recovery.py": "4aa2d03a100791544d282de37a2f62b6f7bfd94c47cc5611b6b6448ed8a946c1", + "scripts/android_form_documents_fixture.py": "ef44f5a9af1397fc8e8ea1924e36c2dec18d5c56c02e22f4925752daf1034841", + "scripts/android_test_cleanup.py": "1f4a1d70d251ec0a8294932388ce881da144c9c7d1c05df54df2c5b246d46373", + "scripts/extension_bundle_snapshot.py": "08ae0408a22e4f4c3c8a8b22af31b6a6a16d304dc0d14d5e489596dd9731a950", + "scripts/extension_manifest_catalog.py": "18c6048a0690e68dba3da1e8d11c5abccac16c3c26aa8803ff80abfd1dabe7e4", + "scripts/generate-emoji.py": "98f43c9a5941b4e65533e31ff7d7eaa4e697d8fecd4c7424297e6957e07abd53", + "scripts/generate-tinycast-grid-oracle.py": "bd53975673883b624d2553cd47687c5a3a760b17181a8c0621715ed1599b3118", + "scripts/package-nightly-update.py": "2a650baee0c7c76eadd360171e19686aad7b960fe34ebc780638c6b231032420", + "scripts/summarize-readiness.py": "e63d9d2ec435d2c369ae0be126bafb0b0507e903b03674f11a77ee10b428fe64", + "scripts/test-api-compatibility.py": "1ba4bf24535130bfd59a5f1d9d4830ca075e7158fc2cbe316696fcadb6108065", + "scripts/test-assistant-touch.py": "fd5a4acfdd19ddc60eb467fea3c7d2e8ab7ac717bea35c76d007577c23235a54", + "scripts/test-calculator-intent.py": "93ef5653c4d0c153d8f216c9fd74557089a964eaab80c84c85ab5460ec58f1a1", + "scripts/test-configurable-shortcuts.py": "56f4581f78265ec2c28faa1da115ae10a8349cf47e10db60bfba3e88f0cc3e73", + "scripts/test-extension-grid.py": "26f15b12f40277cbd3b6b874c58e41ab7e26735ef8e70634e5b5eb53b5652560", + "scripts/test-extension-workflows.py": "c6cce4d533b45655a7763305379107840a93a1a953be0322a869c7505ffc0997", + "scripts/test-global-shortcut.py": "4a0f57d16dfccbd0c7b33d6b78a841ccad030c4bad6fb108ac80f15dc89f6d6a", + "scripts/test-modifier-taps-hardware.py": "b0d2da7fd2410095d65ef20e25cd9b8e90f9b480849dfd5e497f75d4d713139c", + "scripts/test-modifier-taps.py": "8cb08d228371c90f995ae2246ef0a92daf6c81724c11a1ac67374ed0dd347dab", + "scripts/test-readiness-benchmark.py": "1f92dc1989f1ff36c82433d6eaab1e2c896abf7541a24a9b215c109e49d1a7d9", + "scripts/test-restart-files.py": "65f1c311df77634f746cb155d831acf1fa4d8cf05d0e1dabc9d372bf1e842065", + "scripts/test-reviewed-text-input.py": "4e9ab25f0b1bce00277d0dde5a37a29ab8cbbdb9900699c5bdfd9cfa4b9bb248", + "scripts/test-reviewed-text-process-recreation.py": "eecd547c48ad2bbce2d8bae62bbed26a2484e0b5d97ebb7cb989ba98d4de2a23", + "scripts/test-search-header.py": "772cb70442bbf28086beb8087ebce94d02ba6cc10e6acf8c2cf91a0d8d5b39d0", + "scripts/test-self-updates.py": "4ff148ea90c3a148a1eacf74116db288e5e9c282f69e0c331caa6f22b1a40889", + "scripts/test-startup-performance.py": "9ac605bf3347fde625d279767bb8fc4de76ae82f099e7d8351416fa5bc9250ae", + "scripts/test-touch-readability.py": "d9ae59ab3db56d63cb5c959c200263b71acd0e04c305dce4e9ceb8a395933fb6", + "scripts/test-webview-engine.py": "d7fc4bccc15eca35d2af00fcb7a9cda594a3c5fe5fb336785b3a2efea4745c1a", + "scripts/tests/test_android_clipboard_recovery.py": "b260d3adcfa33e2641affebee9bebb1676097b4a24bbdbeb89cef7f3fc889176", + "scripts/tests/test_android_form_documents_fixture.py": "c2b573793d6c5d48fe9dc8e75ffc554e11818e319507080a4b96aa4e24e1fc03", + "scripts/tests/test_android_test_cleanup.py": "49c8831c517f0777f46952376f5d3b783322eeb25f063d69a9b1bc2f8cde01cf", + "scripts/tests/test_extension_bundle_snapshot.py": "382561907129ac58b7e20b963c1afcbc9bc1a03b7e18da64e7d61927a8b15783", + "scripts/tests/test_extension_manifest_catalog.py": "57af21edf39e3e4084453830eed62d3c052ba8d8a4f942d3d69807e2cd4b69a6", + "scripts/tests/test_extension_workflow_guards.py": "1cea982b85cf759e691471cad72b8e2cbdccdf3c2ccc6c483b1ef01b49002a3f", + "scripts/tests/test_private_archive_transport.py": "168c1607d4e1efa7537241cf362316ce354706af33465dc63e73d210ab0327d1", + "scripts/tests/test_private_path_observation.py": "3c0fff3062ac9b43aab67ed4ab2d53b92fa39f9af9e0ada9d197856a1df94e95", + "scripts/tests/test_reviewed_text_archives.py": "0308a50c148c97ed50381e894eabd43ec6e374878f99b810244c24e25f1a626e", + "scripts/tests/test_reviewed_text_runner_guards.py": "a3d489fe141be669374ecd0b3a6231afc5efdf4abfc6a74f7d25efec4e67038c", + "scripts/tests/test_webview_engine_runner.py": "846ee3b34578f92bd3f728eac4044c5ef4481478e3ec9d744e848e0094119168", + "scripts/verify-recorded-workflow-catalog.py": "fc0ec3b595b3a892238a4e0cc19b79ca092e8dcbe3e4af1d261e4874f984c2d5", + "settings.gradle.kts": "6a8db88135b364d8bd2facb607fc4e9e9476c171d2b7f7f3a0892c57a9ee6487" + }, + "apk_sha256": { + "app-debug.apk": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "app-debug-androidTest.apk": "0b855d722fcda7e25b8c873ca1b75a3d44f7ab2069fc0ae032a64d4a3a097eed" + }, + "zip_payload_sha256": { + "app-debug.apk": { + "META-INF/com/android/build/gradle/app-metadata.properties": "75bc66260aeed5c7da9ef86b1ee98fe13298d9dd0bc438ee5a963d5eb224f68d", + "classes.dex": "02040ff106a54d6dd8ed10f6192541cb671f62f166bf413798e0fca382d390b4", + "classes2.dex": "21fe524b9ec548ac16c1cd9813dee74787a7fee1b5bd0a7719f0a9807c43a39b", + "classes5.dex": "2b4eaca1be7a4156ef80f400b13d93c8a8f82de2b4f61ffbd2ea2080bfa20788", + "classes6.dex": "4cb87f7ace7c665d16755b3466eca73c87cc7167104d4b901b704bb2a4c9d30b", + "classes7.dex": "04459089f64d575513ce6b9ed9fdcc3cb12fb2817ed84a2b73e8b0d3f0392f68", + "lib/arm64-v8a/libandroidx.graphics.path.so": "41e9a793c43a0f4fddb19e33f346bace464f30f888ba7b9eaf96294ea115bfb6", + "lib/armeabi-v7a/libandroidx.graphics.path.so": "41399eba6fc2a60f6f14642375c1824f3cf25eb8fec7397d753730a3ceda3e2b", + "lib/x86/libandroidx.graphics.path.so": "eb0570b41fd3bff25d8204a967c03bd7550719e768b791f680cc40cbe35f29af", + "lib/x86_64/libandroidx.graphics.path.so": "4e56c996f13670e70082658de7880c4020eabf4f25e43387f88ed78a713fc9f0", + "assets/ANDROIDSVG-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "assets/ANDROIDSVG-NOTICE": "2e61b715e3553494f46f43e5a88e8d26c56201e0558c8d5ab02946edb4f7dedf", + "assets/COMMONMARK-LICENSE": "11cfcf6da0142fb1971c1f40f5924ddded14454e2793d7f1dd87c9f4abe42dfd", + "assets/COPYING": "14609801e0e520dac851e75d993ca4c75c3842a3be468f6f7f04a16c03c824db", + "assets/GEMOJI-LICENSE": "7ea1d1fd0602e6623b9a65e791499a0ea5a2f5f60f91bfad78cbaeee19da26e6", + "assets/NOTICE.md": "c263e44ea9a845c4e4ec564eeca46ae0fc343f63ffd10685afbf74586647e0f6", + "assets/REACT-LICENSE": "da6d3703ed11cbe42bd212c725957c98da23cbff1998c05fa4b3d976d1a58e93", + "assets/RaycastRuntime.generated.js": "b306b45453cc8507037ff2822066475aae17def757a8ef72d4a4fc64c6494bb7", + "assets/android-runtime.js": "1b5dfa3f5b512f55322f27703bbebf15d1a8c4569c4c1712a6dd64541dd552aa", + "assets/emoji-catalog.tsv": "e49f1cc09c6f487a6e7b55590ecc171dcff390f720a9ce3820fe2038810d5d66", + "assets/extension-workflow-evidence-v1.json": "4e8adc22b7887996140190a999f1c7272556f2dd379d219c88e276e48aea0fa5", + "res/color/vector_tint_color.xml": "4bbb4ef3e0e3db260a05d794047a1765e420d699ee5673e90b57ff682a2fe34e", + "res/color/vector_tint_theme_color.xml": "cf34dc5bdb4a6d1568143e115ac4e34448383ac772862ef0fdbb7fe8936c6dd3", + "res/drawable-anydpi-v21/ic_call_answer.xml": "5f6376dfe199d8a6e40033d3e623989d052c9b2f974d00c824fbb8b76fc6fde8", + "res/drawable-anydpi-v21/ic_call_answer_low.xml": "8f9acacabaf2dfb4bb53dab7ce7bec9c1451ce0a0219ffaa41760ea82da3d2d6", + "res/drawable-anydpi-v21/ic_call_answer_video.xml": "5d4cdaae5838ad9442c085f951b766b2808bff13b8c85a14e0bcf8571514492c", + "res/drawable-anydpi-v21/ic_call_answer_video_low.xml": "4a959580080ebb1d822a2459a4234d2abf0dd0b65d9c28bda8c258dafc888c51", + "res/drawable-anydpi-v21/ic_call_decline.xml": "2d825b79cce60203492ff09a04826db0ac8d9eb9bc0fb9fb139ae1aa5cde0f67", + "res/drawable-anydpi-v21/ic_call_decline_low.xml": "c8321364802409baf4d76e2a84e303871585bdc95b0395040c5ecea0e2051105", + "res/drawable-hdpi-v4/ic_call_answer.png": "5c80d88a7b82ef5833255bf70ff1c26c3efb2a92ae90cac222f3200f59e0b1ea", + "res/drawable-hdpi-v4/ic_call_answer_low.png": "5c80d88a7b82ef5833255bf70ff1c26c3efb2a92ae90cac222f3200f59e0b1ea", + "res/drawable-hdpi-v4/ic_call_answer_video.png": "6adcfc9dd1e1b82b985d223fc8a01c8e8f0dd3b9051d38062674b2380af79a50", + "res/drawable-hdpi-v4/ic_call_answer_video_low.png": "6adcfc9dd1e1b82b985d223fc8a01c8e8f0dd3b9051d38062674b2380af79a50", + "res/drawable-hdpi-v4/ic_call_decline.png": "12ec9f9ad5fa3d7d897114af6c2297b66f31cb056e43daffbe80d23f6f66396d", + "res/drawable-hdpi-v4/ic_call_decline_low.png": "12ec9f9ad5fa3d7d897114af6c2297b66f31cb056e43daffbe80d23f6f66396d", + "res/drawable-hdpi-v4/notification_bg_low_normal.9.png": "21f0b55280be10b187ceff8edef4a5a7047683e6e9fcf47de410aa3839f41094", + "res/drawable-hdpi-v4/notification_bg_low_pressed.9.png": "42aee0b03883e94df5e543348a397d1302c1b8221895871a83b81899f5a9647b", + "res/drawable-hdpi-v4/notification_bg_normal.9.png": "0c6328c7b2420570a7ec38b3beb3bac9a29d895ac1ab7239315aba7266418593", + "res/drawable-hdpi-v4/notification_bg_normal_pressed.9.png": "18b328d8017e677d5aad3dbd66bae356b5cac978c6f0670938ea648e51d0eb66", + "res/drawable-hdpi-v4/notification_oversize_large_icon_bg.png": "aa00088d0d9fd97bd92ed9ffd29b54bb69a48a984aa73448ce553fb9d812be41", + "res/drawable-hdpi-v4/notify_panel_notification_icon_bg.png": "8430ec003e003f3f2ba2f78d48fd150e25407667e530e82e87a7d4841c0fd676", + "res/drawable-ldpi-v4/ic_call_answer.png": "6d34a8bb29be26e343781603588506f33bd1b93732a1c1bc9fd84678aa36b178", + "res/drawable-ldpi-v4/ic_call_answer_low.png": "6d34a8bb29be26e343781603588506f33bd1b93732a1c1bc9fd84678aa36b178", + "res/drawable-ldpi-v4/ic_call_answer_video.png": "66356f564f051a568e25071f60da312c418309f9129773aceb2246773458681c", + "res/drawable-ldpi-v4/ic_call_answer_video_low.png": "66356f564f051a568e25071f60da312c418309f9129773aceb2246773458681c", + "res/drawable-ldpi-v4/ic_call_decline.png": "a18cdaaf3742b1a3d4f484fa15d00fa34afb21495884301aafa3213338661ed6", + "res/drawable-ldpi-v4/ic_call_decline_low.png": "a18cdaaf3742b1a3d4f484fa15d00fa34afb21495884301aafa3213338661ed6", + "res/drawable-mdpi-v4/ic_call_answer.png": "f2ff62f473d8a5e00a8b6c81c15be9a0536471c3d5a81e37d04bc3356ea81ca0", + "res/drawable-mdpi-v4/ic_call_answer_low.png": "f2ff62f473d8a5e00a8b6c81c15be9a0536471c3d5a81e37d04bc3356ea81ca0", + "res/drawable-mdpi-v4/ic_call_answer_video.png": "6306048ba5f7eca43e7bdadeefa9412180508486fd543e02de93d2a013e223f0", + "res/drawable-mdpi-v4/ic_call_answer_video_low.png": "6306048ba5f7eca43e7bdadeefa9412180508486fd543e02de93d2a013e223f0", + "res/drawable-mdpi-v4/ic_call_decline.png": "7e87b3e0229126dc3c2bdaddcd8f330f3bb5f7613a05024c3cd6445dd161f788", + "res/drawable-mdpi-v4/ic_call_decline_low.png": "7e87b3e0229126dc3c2bdaddcd8f330f3bb5f7613a05024c3cd6445dd161f788", + "res/drawable-mdpi-v4/notification_bg_low_normal.9.png": "2f7fbda0ba6e53e9a47e2fc0e24e32c447c613a5808c2d6285dc651e83a07ad7", + "res/drawable-mdpi-v4/notification_bg_low_pressed.9.png": "e17761ed280edd93d7141bd504b70f9e9e15a8652288d9e6333bf4ce964ef844", + "res/drawable-mdpi-v4/notification_bg_normal.9.png": "a8676a1793ac8310ffb12986232df66df092d29c242aeedc2b73556c010d38dc", + "res/drawable-mdpi-v4/notification_bg_normal_pressed.9.png": "99c14d6855b8be296d58017d3751b8dc849c47b6d1d80ab614ff9075080e461b", + "res/drawable-mdpi-v4/notify_panel_notification_icon_bg.png": "0d773e62c756422313262846c787e58f67e0ee87e45e1ae9942002e816c4cb9e", + "res/drawable-v21/notification_action_background.xml": "2f768c089cefa18cf7f1fde7f602410bf38998de5f9073a15ea83106c25e3c30", + "res/drawable-xhdpi-v4/ic_call_answer.png": "e64c2e57627e24ec1ed37e67344c2bf31d1d6bdd2d8d715840c1edf0bd1425b6", + "res/drawable-xhdpi-v4/ic_call_answer_low.png": "e64c2e57627e24ec1ed37e67344c2bf31d1d6bdd2d8d715840c1edf0bd1425b6", + "res/drawable-xhdpi-v4/ic_call_answer_video.png": "5d02a81102644428ca639aec3df626eeb4a839a9ddc76fc2b158b04461d7f00f", + "res/drawable-xhdpi-v4/ic_call_answer_video_low.png": "5d02a81102644428ca639aec3df626eeb4a839a9ddc76fc2b158b04461d7f00f", + "res/drawable-xhdpi-v4/ic_call_decline.png": "9a9a30c305022a2f8e075d2ed7d33f5c7711bba8d0d0385511fdb62f89f208e3", + "res/drawable-xhdpi-v4/ic_call_decline_low.png": "9a9a30c305022a2f8e075d2ed7d33f5c7711bba8d0d0385511fdb62f89f208e3", + "res/drawable-xhdpi-v4/notification_bg_low_normal.9.png": "3e09afa21c45372c035598c017c8fb405a6d678e6cb84dc857581cb3b40e482d", + "res/drawable-xhdpi-v4/notification_bg_low_pressed.9.png": "20343222f9f79dd565c3a2248494d452e70820ac1c437173c38badd45f962afd", + "res/drawable-xhdpi-v4/notification_bg_normal.9.png": "559bf783d765c02338e97952bdc9c6689c7ff99090b8c9813369118da8b080f0", + "res/drawable-xhdpi-v4/notification_bg_normal_pressed.9.png": "d27af435101ca4cbec0c840bd30687918cd39eb83aab1487420855623a45998b", + "res/drawable-xhdpi-v4/notify_panel_notification_icon_bg.png": "b44eeda34d7a529c2fe55719eb098fa29707caa91d18de06a7a775d6e6bcf973", + "res/drawable-xxhdpi-v4/ic_call_answer.png": "86763a30af2a934c7c13b123b36443d1d17918b71c6149bc6ee80115b872593d", + "res/drawable-xxhdpi-v4/ic_call_answer_low.png": "86763a30af2a934c7c13b123b36443d1d17918b71c6149bc6ee80115b872593d", + "res/drawable-xxhdpi-v4/ic_call_answer_video.png": "ca48f604262f2b4ef8b100c73130efe2ad33ef8c2a2c1b3516f24f51b7b04665", + "res/drawable-xxhdpi-v4/ic_call_answer_video_low.png": "ca48f604262f2b4ef8b100c73130efe2ad33ef8c2a2c1b3516f24f51b7b04665", + "res/drawable-xxhdpi-v4/ic_call_decline.png": "87adad32e0ec19c4e920420bf3a06c9f94f6128ed0d866a1891628aeab2cef06", + "res/drawable-xxhdpi-v4/ic_call_decline_low.png": "87adad32e0ec19c4e920420bf3a06c9f94f6128ed0d866a1891628aeab2cef06", + "res/drawable-xxxhdpi-v4/ic_call_answer.png": "ec698a3217bce74d8bc4a44bb008f2dbd3d1aebff1af1e9641805143dbf9fa87", + "res/drawable-xxxhdpi-v4/ic_call_answer_low.png": "ec698a3217bce74d8bc4a44bb008f2dbd3d1aebff1af1e9641805143dbf9fa87", + "res/drawable-xxxhdpi-v4/ic_call_answer_video.png": "4c717ce1ffb551c765981add65d1956132d8f522337de2866b045f0a60485426", + "res/drawable-xxxhdpi-v4/ic_call_answer_video_low.png": "4c717ce1ffb551c765981add65d1956132d8f522337de2866b045f0a60485426", + "res/drawable-xxxhdpi-v4/ic_call_decline.png": "ab73b729bb95878120a3bdc8dc915f3aaa1d7070fc644a0de64d40941ad507ed", + "res/drawable-xxxhdpi-v4/ic_call_decline_low.png": "ab73b729bb95878120a3bdc8dc915f3aaa1d7070fc644a0de64d40941ad507ed", + "res/drawable/ic_launcher.xml": "65a462fe84c64e76de6f6999e09b195ca227a5232453356a4743a17dae08882f", + "res/drawable/ic_palette_tile.xml": "099260576b37718ecf049e1405bcb60d989584dda8710e0905dd00d97edb3440", + "res/drawable/notification_bg.xml": "65ef0869565cde9539d285ee8b5e0156e4ba3bfc7fde288b3d78a96ead8bed62", + "res/drawable/notification_bg_low.xml": "a349184bd1ffb192438415fa98cb2ea5b9294a656d6f276f365b9b2753552777", + "res/drawable/notification_icon_background.xml": "b143ee7fcbba209f17607a720502d755f085ec75380ad6fbd6f99de6583f0a40", + "res/drawable/notification_tile_bg.xml": "42fb6470d6c3d395ab726d928ca23ba8573011a646b7475a89c9b17ec8c0f9bb", + "res/layout-v21/notification_action.xml": "e07d16d0717fb7a1f030dd43f76be647125f9abd78ebcee3bbd861b8df02fe90", + "res/layout-v21/notification_action_tombstone.xml": "c2f8eb9372d806f5f6532e507f4e5767091f681f7d2e9b7f5a64d134e6ed7717", + "res/layout-v21/notification_template_custom_big.xml": "2bcb3cb25a65b175c9880f60411239a019c2ded7cbaf3701d3650ebd1fd971ea", + "res/layout-v21/notification_template_icon_group.xml": "97d5723ad66c683d88d57918e197cb33d2dc1628aa77299e42e132622c2c948e", + "res/layout/custom_dialog.xml": "edd4e27b3f2407a02248205a2eb50288170e4201249bfeac074749ea60390103", + "res/layout/ime_base_split_test_activity.xml": "37ff040591f96786bfaf9d3d937fedf2f2f97e218c06beb3e7fe8a2442a181a8", + "res/layout/ime_secondary_split_test_activity.xml": "0034556846afe7278a6d1264855405a0c3ae65a81a6a05f9ba4dc0136a589685", + "res/layout/notification_template_part_chronometer.xml": "8bd30447bb9347f4c3dd38ff034f141000c7a952ac25760fc8a0c67f76b5bdb7", + "res/layout/notification_template_part_time.xml": "a8664275b4a0fad8ac25724d8d577fb5cd98c4e99a24fc362dbb56fb960aee84", + "res/xml/assistant_service.xml": "461b22a285e6d4cc97c23a8aa9f13802c16f20eff91d1ce1ca4739a527b6c99d", + "res/xml/data_extraction_rules.xml": "1d2dc5515fa0bfac79b6a028056f23ef2e9fd0c9091c9b13c15b52b78a751ab0", + "res/xml/keyboard_service.xml": "688f6294b5c093499f1253d5eb72c5fef80324d0c7e3bdcdff193c8ad9e851e6", + "resources.arsc": "5f13aba27cdb9bef26e38933801042374f3cba444e3fa3c145c99166eace2fb2", + "DebugProbesKt.bin": "ae8a082dd609313835ba93c3ef479a3af9903977d7bdc81df45bbd209ec7d0da", + "META-INF/LICENSE.txt": "523bfd872d038632d258f340a482d067a10e8d82b8e8ff3081755c5f8ccc1658", + "META-INF/androidx.activity_activity-compose.version": "118705d21506adb8d7c06a51156bb59497679f644fb4ae3d14bbbfc366643124", + "META-INF/androidx.activity_activity-ktx.version": "118705d21506adb8d7c06a51156bb59497679f644fb4ae3d14bbbfc366643124", + "META-INF/androidx.activity_activity.version": "118705d21506adb8d7c06a51156bb59497679f644fb4ae3d14bbbfc366643124", + "META-INF/androidx.annotation_annotation-experimental.version": "7d072b48526b023950e4c48db01e8c273554a6401119f5691e7589ba9bc65d9d", + "META-INF/androidx.arch.core_core-runtime.version": "1b7c606370188534dac5561fba2b2988093829697fce9e6e8832e9291d24ed00", + "META-INF/androidx.autofill_autofill.version": "59854984853104df5c353e2f681a15fc7924742f9a2e468c29af248dce45ce03", + "META-INF/androidx.compose.animation_animation-core.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.animation_animation.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.foundation_foundation-layout.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.foundation_foundation.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.material3_material3.version": "10e2e117b01523891ca271a615ae36e9d5e52348fd7d642f66727602c1b8dcbe", + "META-INF/androidx.compose.material_material-icons-core.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.material_material-ripple.version": "bb7320d831e7a151aa901c35e7326c752fa2ef5024f30768c42319b8bed171ed", + "META-INF/androidx.compose.material_material.version": "59854984853104df5c353e2f681a15fc7924742f9a2e468c29af248dce45ce03", + "META-INF/androidx.compose.runtime_runtime-saveable.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.runtime_runtime.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-geometry.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-graphics.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-test-manifest.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-text.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-tooling-data.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-tooling-preview.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-tooling.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-unit.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-util.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.core_core-ktx.version": "ca0bc79c4cde0ad64e1ec9df2882425197b5ba85704a4ac6bd67f8f99936eb25", + "META-INF/androidx.core_core-viewtree.version": "59854984853104df5c353e2f681a15fc7924742f9a2e468c29af248dce45ce03", + "META-INF/androidx.core_core.version": "ca0bc79c4cde0ad64e1ec9df2882425197b5ba85704a4ac6bd67f8f99936eb25", + "META-INF/androidx.customview_customview-poolingcontainer.version": "59854984853104df5c353e2f681a15fc7924742f9a2e468c29af248dce45ce03", + "META-INF/androidx.emoji2_emoji2.version": "64d23f858ef51b0f996e4966d4e27c0371b437e2d2787890b1f7ad22d4ec5663", + "META-INF/androidx.graphics_graphics-path.version": "44e161e4495cac2cf7858043e9e6418e9579f0ddcfae826f9a372622968ce066", + "META-INF/androidx.interpolator_interpolator.version": "59854984853104df5c353e2f681a15fc7924742f9a2e468c29af248dce45ce03", + "META-INF/androidx.lifecycle_lifecycle-livedata-core.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-process.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-runtime-compose.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-runtime-ktx.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-runtime.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-viewmodel-compose.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-viewmodel-ktx.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-viewmodel-savedstate.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-viewmodel.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.profileinstaller_profileinstaller.version": "78b591400c56b7b67b8cb3b2b8a8e65e9093897f02ce0878e6b5405c68620fa7", + "META-INF/androidx.savedstate_savedstate-ktx.version": "6cf4e084b47f33c9b02ef79279d157833868f8f70514169a768be353ee328fea", + "META-INF/androidx.savedstate_savedstate.version": "6cf4e084b47f33c9b02ef79279d157833868f8f70514169a768be353ee328fea", + "META-INF/androidx.startup_startup-runtime.version": "cc52f678848b814373757b460383bf61960e4943c203735adde0a350b3e50989", + "META-INF/androidx.tracing_tracing.version": "59854984853104df5c353e2f681a15fc7924742f9a2e468c29af248dce45ce03", + "META-INF/androidx.versionedparcelable_versionedparcelable.version": "cc52f678848b814373757b460383bf61960e4943c203735adde0a350b3e50989", + "META-INF/kotlinx_coroutines_android.version": "179f9b723b6508aa1d6ce99991e8cd549ca819ee1b9b6102396c47815beffaaf", + "META-INF/kotlinx_coroutines_core.version": "179f9b723b6508aa1d6ce99991e8cd549ca819ee1b9b6102396c47815beffaaf", + "META-INF/services/kotlinx.coroutines.CoroutineExceptionHandler": "3129b8edf6db07de6f8ff47695e2177c8bba4eed2962d3085c719e5acbb58a33", + "META-INF/services/kotlinx.coroutines.internal.MainDispatcherFactory": "a1ea77ea8f93f419256b6e66f29713f950d8d6e90442b608d880a48003b5eb72", + "kotlin/annotation/annotation.kotlin_builtins": "5f75d4352e432664b2a235c472b991cf88365c73f5fcb5e1f9cc2cbe4b410abe", + "kotlin/collections/collections.kotlin_builtins": "0e654e03a38e119de0f4d11633711bd57e1e8b1a876eda74a90100a2a6e7daa4", + "kotlin/concurrent/atomics/atomics.kotlin_builtins": "955035527393d165a22da4cb9d992f42b4a30b6f070918f3e2b1f2678f83cc9d", + "kotlin/coroutines/coroutines.kotlin_builtins": "98ab3a3c18fcb237528dd63fa489815c583e1d6c13debd2a27ac6d74ccf8717b", + "kotlin/internal/internal.kotlin_builtins": "64712f94840e6b3f8123f522f32d08c46f083d87c312a74901f7c00224de775e", + "kotlin/kotlin.kotlin_builtins": "c4240215bc20e71b01cc62b43edebd02749b3249d7daa8e7f1dc1514f064c274", + "kotlin/ranges/ranges.kotlin_builtins": "f9d35b836ccb5380803aab5e6c76d708b1536fc6c82f27185e8cff5913824e1c", + "kotlin/reflect/reflect.kotlin_builtins": "23ecbc7cbb354f31ba37a1be1793d3bb53c00c92cdcf3867759d09d938a1d7c3", + "org/commonmark/internal/util/entities.txt": "fea6cf4d3bd2aa7ffd421116551654e2a22e40a17e4cd087c8725138113bad69", + "classes3.dex": "e1ee32587788c0a3903c50de27d1482a358b8a054bac017be613d2686c492471", + "classes4.dex": "bf75d7e39f7a813e216c53b0189c1b5fb323b3478e11a59a56b6281608c6a6c7", + "AndroidManifest.xml": "a6cdf987b9cfaa397acbf2045ae10f0a9500eb5fc052488c8638eafa143adee6" + }, + "app-debug-androidTest.apk": { + "classes.dex": "35f32eb3c6a38b451d1d47b53e49faa8fdca4db12df6e8e6385f44f1f5c1d403", + "classes2.dex": "468450c6993a81875894c0a142093a2e6dad1778f192763895e927a2f07c1d71", + "classes5.dex": "4cb87f7ace7c665d16755b3466eca73c87cc7167104d4b901b704bb2a4c9d30b", + "assets/owned-detail-fixture.js": "873d3f25f95271029e31779b0920b5955a2908a820a07652b58efa21a2358cfd", + "AndroidManifest.xml": "caff3c10989799f80e8bea4722a1e2e143b75cef522c7aff7211e7c79704f416", + "res/color/vector_tint_color.xml": "4bbb4ef3e0e3db260a05d794047a1765e420d699ee5673e90b57ff682a2fe34e", + "res/color/vector_tint_theme_color.xml": "cf34dc5bdb4a6d1568143e115ac4e34448383ac772862ef0fdbb7fe8936c6dd3", + "res/drawable-anydpi-v21/ic_call_answer.xml": "5f6376dfe199d8a6e40033d3e623989d052c9b2f974d00c824fbb8b76fc6fde8", + "res/drawable-anydpi-v21/ic_call_answer_low.xml": "8f9acacabaf2dfb4bb53dab7ce7bec9c1451ce0a0219ffaa41760ea82da3d2d6", + "res/drawable-anydpi-v21/ic_call_answer_video.xml": "5d4cdaae5838ad9442c085f951b766b2808bff13b8c85a14e0bcf8571514492c", + "res/drawable-anydpi-v21/ic_call_answer_video_low.xml": "4a959580080ebb1d822a2459a4234d2abf0dd0b65d9c28bda8c258dafc888c51", + "res/drawable-anydpi-v21/ic_call_decline.xml": "2d825b79cce60203492ff09a04826db0ac8d9eb9bc0fb9fb139ae1aa5cde0f67", + "res/drawable-anydpi-v21/ic_call_decline_low.xml": "c8321364802409baf4d76e2a84e303871585bdc95b0395040c5ecea0e2051105", + "res/drawable-hdpi-v4/ic_call_answer.png": "5c80d88a7b82ef5833255bf70ff1c26c3efb2a92ae90cac222f3200f59e0b1ea", + "res/drawable-hdpi-v4/ic_call_answer_low.png": "5c80d88a7b82ef5833255bf70ff1c26c3efb2a92ae90cac222f3200f59e0b1ea", + "res/drawable-hdpi-v4/ic_call_answer_video.png": "6adcfc9dd1e1b82b985d223fc8a01c8e8f0dd3b9051d38062674b2380af79a50", + "res/drawable-hdpi-v4/ic_call_answer_video_low.png": "6adcfc9dd1e1b82b985d223fc8a01c8e8f0dd3b9051d38062674b2380af79a50", + "res/drawable-hdpi-v4/ic_call_decline.png": "12ec9f9ad5fa3d7d897114af6c2297b66f31cb056e43daffbe80d23f6f66396d", + "res/drawable-hdpi-v4/ic_call_decline_low.png": "12ec9f9ad5fa3d7d897114af6c2297b66f31cb056e43daffbe80d23f6f66396d", + "res/drawable-hdpi-v4/notification_bg_low_normal.9.png": "21f0b55280be10b187ceff8edef4a5a7047683e6e9fcf47de410aa3839f41094", + "res/drawable-hdpi-v4/notification_bg_low_pressed.9.png": "42aee0b03883e94df5e543348a397d1302c1b8221895871a83b81899f5a9647b", + "res/drawable-hdpi-v4/notification_bg_normal.9.png": "0c6328c7b2420570a7ec38b3beb3bac9a29d895ac1ab7239315aba7266418593", + "res/drawable-hdpi-v4/notification_bg_normal_pressed.9.png": "18b328d8017e677d5aad3dbd66bae356b5cac978c6f0670938ea648e51d0eb66", + "res/drawable-hdpi-v4/notification_oversize_large_icon_bg.png": "aa00088d0d9fd97bd92ed9ffd29b54bb69a48a984aa73448ce553fb9d812be41", + "res/drawable-hdpi-v4/notify_panel_notification_icon_bg.png": "8430ec003e003f3f2ba2f78d48fd150e25407667e530e82e87a7d4841c0fd676", + "res/drawable-ldpi-v4/ic_call_answer.png": "6d34a8bb29be26e343781603588506f33bd1b93732a1c1bc9fd84678aa36b178", + "res/drawable-ldpi-v4/ic_call_answer_low.png": "6d34a8bb29be26e343781603588506f33bd1b93732a1c1bc9fd84678aa36b178", + "res/drawable-ldpi-v4/ic_call_answer_video.png": "66356f564f051a568e25071f60da312c418309f9129773aceb2246773458681c", + "res/drawable-ldpi-v4/ic_call_answer_video_low.png": "66356f564f051a568e25071f60da312c418309f9129773aceb2246773458681c", + "res/drawable-ldpi-v4/ic_call_decline.png": "a18cdaaf3742b1a3d4f484fa15d00fa34afb21495884301aafa3213338661ed6", + "res/drawable-ldpi-v4/ic_call_decline_low.png": "a18cdaaf3742b1a3d4f484fa15d00fa34afb21495884301aafa3213338661ed6", + "res/drawable-mdpi-v4/ic_call_answer.png": "f2ff62f473d8a5e00a8b6c81c15be9a0536471c3d5a81e37d04bc3356ea81ca0", + "res/drawable-mdpi-v4/ic_call_answer_low.png": "f2ff62f473d8a5e00a8b6c81c15be9a0536471c3d5a81e37d04bc3356ea81ca0", + "res/drawable-mdpi-v4/ic_call_answer_video.png": "6306048ba5f7eca43e7bdadeefa9412180508486fd543e02de93d2a013e223f0", + "res/drawable-mdpi-v4/ic_call_answer_video_low.png": "6306048ba5f7eca43e7bdadeefa9412180508486fd543e02de93d2a013e223f0", + "res/drawable-mdpi-v4/ic_call_decline.png": "7e87b3e0229126dc3c2bdaddcd8f330f3bb5f7613a05024c3cd6445dd161f788", + "res/drawable-mdpi-v4/ic_call_decline_low.png": "7e87b3e0229126dc3c2bdaddcd8f330f3bb5f7613a05024c3cd6445dd161f788", + "res/drawable-mdpi-v4/notification_bg_low_normal.9.png": "2f7fbda0ba6e53e9a47e2fc0e24e32c447c613a5808c2d6285dc651e83a07ad7", + "res/drawable-mdpi-v4/notification_bg_low_pressed.9.png": "e17761ed280edd93d7141bd504b70f9e9e15a8652288d9e6333bf4ce964ef844", + "res/drawable-mdpi-v4/notification_bg_normal.9.png": "a8676a1793ac8310ffb12986232df66df092d29c242aeedc2b73556c010d38dc", + "res/drawable-mdpi-v4/notification_bg_normal_pressed.9.png": "99c14d6855b8be296d58017d3751b8dc849c47b6d1d80ab614ff9075080e461b", + "res/drawable-mdpi-v4/notify_panel_notification_icon_bg.png": "0d773e62c756422313262846c787e58f67e0ee87e45e1ae9942002e816c4cb9e", + "res/drawable-v21/notification_action_background.xml": "2f768c089cefa18cf7f1fde7f602410bf38998de5f9073a15ea83106c25e3c30", + "res/drawable-xhdpi-v4/ic_call_answer.png": "e64c2e57627e24ec1ed37e67344c2bf31d1d6bdd2d8d715840c1edf0bd1425b6", + "res/drawable-xhdpi-v4/ic_call_answer_low.png": "e64c2e57627e24ec1ed37e67344c2bf31d1d6bdd2d8d715840c1edf0bd1425b6", + "res/drawable-xhdpi-v4/ic_call_answer_video.png": "5d02a81102644428ca639aec3df626eeb4a839a9ddc76fc2b158b04461d7f00f", + "res/drawable-xhdpi-v4/ic_call_answer_video_low.png": "5d02a81102644428ca639aec3df626eeb4a839a9ddc76fc2b158b04461d7f00f", + "res/drawable-xhdpi-v4/ic_call_decline.png": "9a9a30c305022a2f8e075d2ed7d33f5c7711bba8d0d0385511fdb62f89f208e3", + "res/drawable-xhdpi-v4/ic_call_decline_low.png": "9a9a30c305022a2f8e075d2ed7d33f5c7711bba8d0d0385511fdb62f89f208e3", + "res/drawable-xhdpi-v4/notification_bg_low_normal.9.png": "3e09afa21c45372c035598c017c8fb405a6d678e6cb84dc857581cb3b40e482d", + "res/drawable-xhdpi-v4/notification_bg_low_pressed.9.png": "20343222f9f79dd565c3a2248494d452e70820ac1c437173c38badd45f962afd", + "res/drawable-xhdpi-v4/notification_bg_normal.9.png": "559bf783d765c02338e97952bdc9c6689c7ff99090b8c9813369118da8b080f0", + "res/drawable-xhdpi-v4/notification_bg_normal_pressed.9.png": "d27af435101ca4cbec0c840bd30687918cd39eb83aab1487420855623a45998b", + "res/drawable-xhdpi-v4/notify_panel_notification_icon_bg.png": "b44eeda34d7a529c2fe55719eb098fa29707caa91d18de06a7a775d6e6bcf973", + "res/drawable-xxhdpi-v4/ic_call_answer.png": "86763a30af2a934c7c13b123b36443d1d17918b71c6149bc6ee80115b872593d", + "res/drawable-xxhdpi-v4/ic_call_answer_low.png": "86763a30af2a934c7c13b123b36443d1d17918b71c6149bc6ee80115b872593d", + "res/drawable-xxhdpi-v4/ic_call_answer_video.png": "ca48f604262f2b4ef8b100c73130efe2ad33ef8c2a2c1b3516f24f51b7b04665", + "res/drawable-xxhdpi-v4/ic_call_answer_video_low.png": "ca48f604262f2b4ef8b100c73130efe2ad33ef8c2a2c1b3516f24f51b7b04665", + "res/drawable-xxhdpi-v4/ic_call_decline.png": "87adad32e0ec19c4e920420bf3a06c9f94f6128ed0d866a1891628aeab2cef06", + "res/drawable-xxhdpi-v4/ic_call_decline_low.png": "87adad32e0ec19c4e920420bf3a06c9f94f6128ed0d866a1891628aeab2cef06", + "res/drawable-xxxhdpi-v4/ic_call_answer.png": "ec698a3217bce74d8bc4a44bb008f2dbd3d1aebff1af1e9641805143dbf9fa87", + "res/drawable-xxxhdpi-v4/ic_call_answer_low.png": "ec698a3217bce74d8bc4a44bb008f2dbd3d1aebff1af1e9641805143dbf9fa87", + "res/drawable-xxxhdpi-v4/ic_call_answer_video.png": "4c717ce1ffb551c765981add65d1956132d8f522337de2866b045f0a60485426", + "res/drawable-xxxhdpi-v4/ic_call_answer_video_low.png": "4c717ce1ffb551c765981add65d1956132d8f522337de2866b045f0a60485426", + "res/drawable-xxxhdpi-v4/ic_call_decline.png": "ab73b729bb95878120a3bdc8dc915f3aaa1d7070fc644a0de64d40941ad507ed", + "res/drawable-xxxhdpi-v4/ic_call_decline_low.png": "ab73b729bb95878120a3bdc8dc915f3aaa1d7070fc644a0de64d40941ad507ed", + "res/drawable/notification_bg.xml": "20a1a2e83aa9806faeb234fc0a1094bc079adf5a25ef4cfef1491c5ca3b3c745", + "res/drawable/notification_bg_low.xml": "49041ec87bb2ec2a8bc23685c8eb2c2d5297aa39f1412dc7aa6639aeec12ee49", + "res/drawable/notification_icon_background.xml": "b143ee7fcbba209f17607a720502d755f085ec75380ad6fbd6f99de6583f0a40", + "res/drawable/notification_tile_bg.xml": "fb5d113d15ff98da0eab3cb9e178e909ad5e261f30a24add0267e2827b4c7774", + "res/layout-v21/notification_action.xml": "4e046a162878e2f8796c6380f0c5a9a7b40f1ffb251478ecfcbbe3b434bd1178", + "res/layout-v21/notification_action_tombstone.xml": "a9657e68fd0c10ced5011b67b9e37a5ebe262957ef15fa3679a9a1f8784fee21", + "res/layout-v21/notification_template_custom_big.xml": "4879194cce032a3c5ea58d2ec796766b00bb057a4ca4bc11c56ed1830a61c7d2", + "res/layout-v21/notification_template_icon_group.xml": "97d5723ad66c683d88d57918e197cb33d2dc1628aa77299e42e132622c2c948e", + "res/layout/custom_dialog.xml": "edd4e27b3f2407a02248205a2eb50288170e4201249bfeac074749ea60390103", + "res/layout/ime_base_split_test_activity.xml": "37ff040591f96786bfaf9d3d937fedf2f2f97e218c06beb3e7fe8a2442a181a8", + "res/layout/ime_secondary_split_test_activity.xml": "0034556846afe7278a6d1264855405a0c3ae65a81a6a05f9ba4dc0136a589685", + "res/layout/notification_template_part_chronometer.xml": "9ae2b91ed155032cb90ee4cfead57eba2728d0e6ff262d2275ff63516604fc94", + "res/layout/notification_template_part_time.xml": "4a838e479642de5ee2cd1d0785b35d195995fcf27b0b9561140a6cdccbfe3ad6", + "res/xml/native_input_test_ime.xml": "d560413501650fb393941eb5e8e36b30aed25a309dc294cc0435f74d6dfe326d", + "resources.arsc": "a743d0f25129f83afc5a9790dfabdd4c6937b071c930014b432aa9a2fd74e4eb", + "LICENSE-junit.txt": "9648bb2891b9813970bddb68d4be8a5e6ec8280d0180a53dfb29236b579c55bb", + "META-INF/androidx.compose.ui_ui-test-junit4.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-test.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.test.uiautomator_uiautomator.version": "a42caf4a54bbbe27aa45b6efbc6356c5e299b19763e728b6cdb7201b02ebbe36", + "META-INF/kotlinx_coroutines_test.version": "179f9b723b6508aa1d6ce99991e8cd549ca819ee1b9b6102396c47815beffaaf", + "META-INF/services/kotlinx.coroutines.CoroutineExceptionHandler": "1b8e1a088e38c9bc8dd36517de1202651f06a9ca9eb0e6adad7305392289a94c", + "META-INF/services/kotlinx.coroutines.internal.MainDispatcherFactory": "90d3bc46060b2a33332bd2bc8122d5b03dd1a507718db830d5e809cc62c4490d", + "javax/annotation/CheckForNull.java": "4807942043605b325f0fefa243344db0d11e32cebd8f133df2b7c5d8486f2312", + "javax/annotation/CheckForSigned.java": "9c3d742fe9ab8e5fb08d5562ab0cb0255e2960facf94f83349be542b6557f3c1", + "javax/annotation/CheckReturnValue.java": "fc328c2dbc79fb3bc25d47a7f0486410fe8a04e6d6ceadf97f7ed44fa6dc0ebb", + "javax/annotation/Detainted.java": "7d272cf814d47c8cf89dd0d2f283ddfc88a26405122fd98f2842dbcb0789ed0e", + "javax/annotation/MatchesPattern.java": "ff2ffbca3823c1a3f5333630878068c724f67058264cca7396d9abef821897dd", + "javax/annotation/Nonnegative.java": "73b83d783bc7cdf7b5c9f4331a928154c6dc4e97ba349a5e5124e026ba4221b0", + "javax/annotation/Nonnull.java": "eb2d5ac7cd628dd3c59e5f7b14378fea531d5c76857df837cfe8f9a2ece1dddc", + "javax/annotation/Nullable.java": "511c9e8888bbdc13e0388eb5c3a882f43ff21160093b404c870ce94e83a1f509", + "javax/annotation/OverridingMethodsMustInvokeSuper.java": "5d786c4fff3f381babab9f745252dd80ba10210c402bd4c15161ce9b63decca6", + "javax/annotation/ParametersAreNonnullByDefault.java": "94233ca1ca4fb6d457bed883f8369019d4f0016be81d4e5ccfc01f5d50bf946e", + "javax/annotation/PropertyKey.java": "5559001d0f69e49487f1cc0cfa82d37e064b04436ccc7026a3d8a5aa30215d7d", + "javax/annotation/RegEx.java": "7b08d091734672f8f8f320fdaa7cde6ba48c786a2fdca94c9e2407e1e2af2aba", + "javax/annotation/Signed.java": "76633adce590e7c771ef7f727b575f9ae54389539d666677a9ca1a9e4256e374", + "javax/annotation/Syntax.java": "63c05bd38c7c279d147058d6e154a44ee1da62c92cc6849a573bdc6c345869e0", + "javax/annotation/Tainted.java": "9b755d095cf2c4a41a8e064b5bd0ab3e556845048b705d2cc98e8635b8bda6f2", + "javax/annotation/Untainted.java": "e44096a654f825c9f8f3fb9ba099f805155b3daf41918c177d7193558bb11981", + "javax/annotation/WillClose.java": "1c81ea1c7284c37c5d66b436fc63267877667da03b2b646fc6c11ea2a8dfac08", + "javax/annotation/WillCloseWhenClosed.java": "b3c6e342b4dfc4c62d33857f8920cfe077e9f2c31379d8f627495e0c4a06cb13", + "javax/annotation/WillNotClose.java": "6c258758fcf54c9657052dc9e86d0abc780f8a4580804e3a0a8b8b376529e453", + "javax/annotation/concurrent/GuardedBy.java": "f2650971001cbfd4c127487e0115e7a9539d64fd6a98dd8dd0675330ae3b790d", + "javax/annotation/concurrent/Immutable.java": "47f9a076a4396c492a373eec9622a15497b56b633a67af97ca51bd3b1142a08d", + "javax/annotation/concurrent/NotThreadSafe.java": "73060a8907c01ee7a72bfbd9c74a037ff1953bd7a4510b8997fdcec0a5741a19", + "javax/annotation/concurrent/ThreadSafe.java": "bcfd9f7a27af49a6505734ab03259f02a7222d3bd052821caa6d94d930bdfc9a", + "javax/annotation/meta/Exclusive.java": "0b0405f1dc140ac2ebdb4cdd3bbbfdcf19e22d724bc57a89d530b33e8c9b7ff5", + "javax/annotation/meta/Exhaustive.java": "c9b4085041acd1602691ee49535a6a91afc2b67d6bd9d9fb4e1ab2169d627a6f", + "javax/annotation/meta/TypeQualifier.java": "828fffa618ac1cda2fc07fcc0e5e58785aadfe4bc481c0e4e8dc5fc23d662ce5", + "javax/annotation/meta/TypeQualifierDefault.java": "27faa048d7c23bd6d79d3515816ec1f356758ae140c0edc702a74b91f9215395", + "javax/annotation/meta/TypeQualifierNickname.java": "309cf58e837f1bc63183fc9443b231904157f1ac25bfee0e5cebcae52f44eb51", + "javax/annotation/meta/TypeQualifierValidator.java": "4d1e2ca6f465ce130a8233086053acc991e5fd389f7e31c88a0cd19ef32c666a", + "javax/annotation/meta/When.java": "d79dfa99e03fa1eb6d0e6f024833ef16c1029b98975e2e767f760b2dbf4d8790", + "junit/runner/logo.gif": "345b5e2207a524e0019779d13f0f8ae51359f894a230479467761331e3d1ca16", + "junit/runner/smalllogo.gif": "b4819008f181bf3e0b47254f72149c62a556a56fc0358d3143e405b191de2081", + "classes3.dex": "6ed7c632fae51c3ea49855a20cd29960ee8b7fae205eeab81b9131eeeafcf179", + "classes4.dex": "2efdde5d3076434245278528952622f4429d94e0d68acee9c97c2582852cacf7" + } + }, + "unchanged_original_assets": { + "assets/ANDROIDSVG-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "assets/ANDROIDSVG-NOTICE": "2e61b715e3553494f46f43e5a88e8d26c56201e0558c8d5ab02946edb4f7dedf", + "assets/COMMONMARK-LICENSE": "11cfcf6da0142fb1971c1f40f5924ddded14454e2793d7f1dd87c9f4abe42dfd", + "assets/COPYING": "14609801e0e520dac851e75d993ca4c75c3842a3be468f6f7f04a16c03c824db", + "assets/GEMOJI-LICENSE": "7ea1d1fd0602e6623b9a65e791499a0ea5a2f5f60f91bfad78cbaeee19da26e6", + "assets/NOTICE.md": "c263e44ea9a845c4e4ec564eeca46ae0fc343f63ffd10685afbf74586647e0f6", + "assets/REACT-LICENSE": "da6d3703ed11cbe42bd212c725957c98da23cbff1998c05fa4b3d976d1a58e93", + "assets/RaycastRuntime.generated.js": "b306b45453cc8507037ff2822066475aae17def757a8ef72d4a4fc64c6494bb7", + "assets/android-runtime.js": "1b5dfa3f5b512f55322f27703bbebf15d1a8c4569c4c1712a6dd64541dd552aa", + "assets/emoji-catalog.tsv": "e49f1cc09c6f487a6e7b55590ecc171dcff390f720a9ce3820fe2038810d5d66", + "assets/extension-workflow-evidence-v1.json": "4e8adc22b7887996140190a999f1c7272556f2dd379d219c88e276e48aea0fa5" + }, + "old_app": { + "source": "6c5825bf0da60ad9b452ec4550aa49d60704e677", + "sha256": "66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c", + "scope": "Reviewed PR113 app; common instrumentation exercises actual keyboard Show/Hide" + } +} diff --git a/docs/validation/keyboard-toggle/identities/candidate-v3/test-manifest.xml b/docs/validation/keyboard-toggle/identities/candidate-v3/test-manifest.xml new file mode 100644 index 00000000..ec741fb2 --- /dev/null +++ b/docs/validation/keyboard-toggle/identities/candidate-v3/test-manifest.xml @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/identities/final-harness/app-manifest.xml b/docs/validation/keyboard-toggle/identities/final-harness/app-manifest.xml new file mode 100644 index 00000000..7acc529a --- /dev/null +++ b/docs/validation/keyboard-toggle/identities/final-harness/app-manifest.xml @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/identities/final-harness/identity.json b/docs/validation/keyboard-toggle/identities/final-harness/identity.json new file mode 100644 index 00000000..ad29ab98 --- /dev/null +++ b/docs/validation/keyboard-toggle/identities/final-harness/identity.json @@ -0,0 +1,846 @@ +{ + "source_commit": "69bd578d528c42296ef4a10fa24d675a8f635408", + "app_source": "f30bebd6c414307a5b5fe690d80dfffe5fc58ccc", + "test_source": "69bd578d528c42296ef4a10fa24d675a8f635408", + "controller_source": "69bd578d528c42296ef4a10fa24d675a8f635408", + "build_commit_property": "f30bebd6c414307a5b5fe690d80dfffe5fc58ccc", + "source_sha256": { + "app/build.gradle.kts": "28f41ac518c91f15c98221d0511870a5409b9f35ae008acfdd5f667db06bcadf", + "app/src/androidTest/AndroidManifest.xml": "63c98a685e9dd67d8150af8981832d34271fb37a92e46444eec52728f559d609", + "app/src/androidTest/assets/owned-detail-fixture.js": "873d3f25f95271029e31779b0920b5955a2908a820a07652b58efa21a2358cfd", + "app/src/androidTest/java/dev/tinycast/android/ActivationDeviceTest.kt": "2f2fe66a5c3628433feeb6db33e02be43ca3f267b39ec541f2e3330fc1142974", + "app/src/androidTest/java/dev/tinycast/android/AssistantDeviceTest.kt": "1ecebcf20fe9aa7aa63701c81500195eddd1ae88618d89f31105fecc58189b6b", + "app/src/androidTest/java/dev/tinycast/android/AssistantTouchDeviceTest.kt": "1f33a283e5b1f05a5a74dbb76bc3ff8920193cd761edd1cce1e61cb733cb9874", + "app/src/androidTest/java/dev/tinycast/android/BackupDeviceTest.kt": "56c56d6a652524f7fc7952b1478552314b1e465ace5c7216385d7f2ea3cf4b6c", + "app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt": "e738e5b09aa6128343abe628ed7f93571b9a87c1eb95e78f00c617aadcf348b4", + "app/src/androidTest/java/dev/tinycast/android/CalculatorIntentDeviceTest.kt": "628ddcef4b50880170fba97cd925fefc5f463f632799d9e2686e7512b2bbc15f", + "app/src/androidTest/java/dev/tinycast/android/ClipboardApiDeviceTest.kt": "e53bbc080d17b59aae6280b7b817a3c81b4df684dcfd5ca787a993d89caf5de4", + "app/src/androidTest/java/dev/tinycast/android/ClipboardEvidence.kt": "c882a7435cdca3bbdf68da66a6e8ef23bce932fb5746ba09c61bded5b9c98e9d", + "app/src/androidTest/java/dev/tinycast/android/ClipboardEvidenceDeviceTest.kt": "dfdb64344886b7e5d4b54f04fa4560f169e8cb8d7b7b238ba08358dcde73f854", + "app/src/androidTest/java/dev/tinycast/android/ClipboardRecoveryActivity.java": "48627f465b10c316cca7fdfa735928095328241b4fb98bf90e5c247add17345d", + "app/src/androidTest/java/dev/tinycast/android/DocumentProviderDeviceTest.kt": "13895d23b8758affd8889461ef660c442d3bfd1bb111fce08a064aa4b582aea2", + "app/src/androidTest/java/dev/tinycast/android/EmojiDeviceTest.kt": "ab9907d4e4acd7e52ed26f12ac14648271e5740784cdba678671ca8ad42fb415", + "app/src/androidTest/java/dev/tinycast/android/EnduranceDeviceTest.kt": "4802d3755ce6bc1cdf8e60c7cf9998a09ced8e0be6d9888f0b9d9a32ee332dc4", + "app/src/androidTest/java/dev/tinycast/android/ExtensionCommandHandoffDeviceTest.kt": "8c47f08b1d49a94dfd520840a0b0349199459da4ece8ff1adcacc46516b37f7b", + "app/src/androidTest/java/dev/tinycast/android/ExtensionDetailDeviceTest.kt": "d5bd83f6d174ca5d5c3c9d68551cc3a78bc90763060410bd5f3b67d9d9642025", + "app/src/androidTest/java/dev/tinycast/android/ExtensionDeviceTest.kt": "3087ff055f70cdf43d2565e22703b9c57445b5c3e1594126d60b0279c32b2640", + "app/src/androidTest/java/dev/tinycast/android/ExtensionEmptyViewDeviceTest.kt": "64e6b1e68c61cf67b24ba02d1e14a72d297b1bdeebbdf1008905d5619ce2558f", + "app/src/androidTest/java/dev/tinycast/android/ExtensionFormDeviceTest.kt": "6418f6ab517ead50a102b4834bff9c40988849fb3a2a1ef20f575d162b32e11b", + "app/src/androidTest/java/dev/tinycast/android/ExtensionGridDeviceTest.kt": "952b4f2988379c1545575d1332f8358acc9053e257a382b7549a27f6b4b40de3", + "app/src/androidTest/java/dev/tinycast/android/ExtensionMarkdownDeviceTest.kt": "e4b7daa9fd914335f572ef41665595104cdae5434682977a2d806ff63ef36c4f", + "app/src/androidTest/java/dev/tinycast/android/ExtensionPasteCopyDeviceTest.kt": "7bdd8e876153d4d46357402eab58cf89c0e8885823d21894c70882ed55b1da8e", + "app/src/androidTest/java/dev/tinycast/android/ExtensionRecordedTestsDeviceTest.kt": "1aa11011270b01a235bb052c6063da7eb5f7f726a7bb19f79aa54e7b8aa4ca42", + "app/src/androidTest/java/dev/tinycast/android/ExtensionSandboxDiagnosticDeviceTest.kt": "3e192cb65d011e021d5b47b6bde765e1136c2ddf7e039b5c9dce6dedbf39da15", + "app/src/androidTest/java/dev/tinycast/android/FeedbackReadabilityDeviceTest.kt": "86096d428b6554bcb6b8c9d7bc39b981baf1fd53f9367a33c97ce03c89020a82", + "app/src/androidTest/java/dev/tinycast/android/FolderDeviceTest.kt": "f3d54b0d788459d34470d2d87c8882cdfe30e8956a8886cd324dd63160f5628d", + "app/src/androidTest/java/dev/tinycast/android/FormDocumentsFixtureActivity.java": "434e72d8a0c977a83cbe6524cc51638eaff9cca5581c570ea58d4068ad2156a9", + "app/src/androidTest/java/dev/tinycast/android/FrozenBundleWorkflowDeviceTest.kt": "9d31d56f739caa2509610cf4c07abf70dfd5ea0aead7ec5c5673bde1ca04bc45", + "app/src/androidTest/java/dev/tinycast/android/InlinePaletteDeviceTest.kt": "ed2cfb9dc3c5218adfe0ae7b3cc1c60a69e6cf8c83ad434c2fc6b87d23bb2727", + "app/src/androidTest/java/dev/tinycast/android/LegacyInputDiagnosticDeviceTest.kt": "4966fac20af96b8597fb38a278d8f3ef89b7e335f3d3b6e5df00fb349ebabc55", + "app/src/androidTest/java/dev/tinycast/android/ModifierHardwareClipboardTest.kt": "141499cea10d4c80b8ef690fd43e985c066d1b420afa23895c32e75de737ec8d", + "app/src/androidTest/java/dev/tinycast/android/ModifierTapDeviceTest.kt": "d33bafba795569c15bab709a9830ca06ecffda9feb754492ec437d55c1d1cae1", + "app/src/androidTest/java/dev/tinycast/android/NativeEditableAssertions.kt": "be979c8e0f3e78b8d0e4482c2653769d732d24871a822b3761f5708a1e6a230b", + "app/src/androidTest/java/dev/tinycast/android/NativeInputCompatibilityDeviceTest.kt": "484dcb406a6b9fbc7851efd883029a43b303bdab799c9385e51a678ab91a51fc", + "app/src/androidTest/java/dev/tinycast/android/NativeInputTestIme.kt": "c3a766ae381e6e4a1b514b3890cdd220616df8e9b88208cdb9aa562ebd8f45ce", + "app/src/androidTest/java/dev/tinycast/android/OwnedFormDocumentsProvider.java": "67c22d543cb2136d81dc3544d8f63df94ce67f9524c7f19dc9c6b1b586713e89", + "app/src/androidTest/java/dev/tinycast/android/PaletteDeviceTest.kt": "7f5861ffec2e762c1e629519802c10d4b31e3bebd49a3c5867013c6aad77f3f4", + "app/src/androidTest/java/dev/tinycast/android/PaletteOverlayTest.kt": "0755f9aa38bdb5785d2cb8902157ce990b5b9825db0ae71847e11c8b1bd4b7aa", + "app/src/androidTest/java/dev/tinycast/android/PaletteStabilityDeviceTest.kt": "87896693541425799e7815d2fc1e3988e29afd9bba346da48183a91fa91be9c9", + "app/src/androidTest/java/dev/tinycast/android/ReadinessDeviceTest.kt": "c6f3ea767e9adc8384a3b662223ab57bef067fca8501509e0415111b711589f3", + "app/src/androidTest/java/dev/tinycast/android/ReadinessRegressionDeviceTest.kt": "3815d7aef28c0943999782217eabe14dd80fdd464476798bd0bf12a1d0be3c4a", + "app/src/androidTest/java/dev/tinycast/android/RecentDocumentDeviceTest.kt": "85af5ed0fd05c0716b8ac14b24e98397829ff8d241695999a0cfc68727923e40", + "app/src/androidTest/java/dev/tinycast/android/ReviewedTextCallerActivity.java": "640609575a0711566bf23f3028a5144e8aeae912604f9b7180912fd2c9b96200", + "app/src/androidTest/java/dev/tinycast/android/ReviewedTextClipboardCrashDeviceTest.kt": "6a1ebc4d90c8b5fa9a07f4b288c20b361297efbeaf7d4423eb211da47b4cf0c0", + "app/src/androidTest/java/dev/tinycast/android/ReviewedTextDeviceTest.kt": "31040a9d92e7e60d8026dda7119a9f7eedd2127ea6f50bfb308849f56b6fc0ac", + "app/src/androidTest/java/dev/tinycast/android/ReviewedTextLifecycleDeviceTest.kt": "2190f43dca4d7a7eca162a7e34f46d6091cfd114d83a5e4509946c1b912ce76f", + "app/src/androidTest/java/dev/tinycast/android/SettingsDeviceTest.kt": "dd9b9a2492c497a2a3ac3218d0833d2e8b536eb904975aa536b08361acc323a9", + "app/src/androidTest/java/dev/tinycast/android/SettingsRouteDeviceTest.kt": "8f6991670e740a07d3a6b30aea270b60e19f6d237c4b7b6afaf25200962ad736", + "app/src/androidTest/java/dev/tinycast/android/ShortcutDeviceTest.kt": "5376ede8474d5eaa4ec7ecb628d1056a5bfc963bd2a292d17d9b86eead8a5415", + "app/src/androidTest/java/dev/tinycast/android/ShortcutReadinessDeviceTest.kt": "41bdf7ab67a6899dc8a0b1b0f697135bc587dc401c9234eb56d25385eadf3dcf", + "app/src/androidTest/java/dev/tinycast/android/SystemSettingsDeviceTest.kt": "80e0c919fbf04916d2441aa3fbc4cccfac534f56c29dfd908e5ae2d917cfe13b", + "app/src/androidTest/java/dev/tinycast/android/TestAutomation.kt": "faad509cd41b06c4cc1087e5de8e0218abca78773603b2050bb2825c880588fb", + "app/src/androidTest/java/dev/tinycast/android/TouchReadabilityDeviceTest.kt": "6801d25bb0d9bc45899b04aeedba474e2ac8e5cc8cb168b6268e0305fb49345e", + "app/src/androidTest/java/dev/tinycast/android/TouchSearchDeviceTest.kt": "d1e30d7f546e8b5a9cd2460d3a2ab82cd394222e3c81a8076d63a45bcc7d9c15", + "app/src/androidTest/java/dev/tinycast/android/UpdateDeviceTest.kt": "380e4d7702d2f8c68fd575581309113bc67abf3e5713bdb177cc3b920c4e2787", + "app/src/androidTest/java/dev/tinycast/android/UpdateSelfInstallDeviceTest.kt": "fc94ef400b54ee2cf8378d2b1632fff1521299f188a132f0330e930b40f80ed3", + "app/src/androidTest/java/dev/tinycast/android/UpdateSourceDeviceTest.kt": "76d91931dc044fdeb001a8325a321306011f2b0c54aa631bea25751c59f3ea50", + "app/src/androidTest/java/dev/tinycast/android/UpdateVerificationDeviceTest.kt": "cebe3033132db567affccc5419ec59a9639c87ceb88b20c38ffbba16c13b4592", + "app/src/androidTest/java/dev/tinycast/android/WebViewCompatibilityDeviceTest.kt": "ce5842cad291b9cb77aed19ecb9436dc80de24beb27e018797a7f84fb4a84895", + "app/src/androidTest/java/dev/tinycast/android/WebViewRecoveryDeviceTest.kt": "dd6ccf056187d184dd7fb6aa1eddeb76bd7037f4af21f749dbe379a7a2eeecde", + "app/src/androidTest/res/xml/native_input_test_ime.xml": "4aafc899939ff4b8883a80c6e00f7ff7413a08a603d485a15f1035c07760b50c", + "app/src/main/AndroidManifest.xml": "65fefcf86296b7103c2237f1e29bca7890bf33f6b5056f860c2e39ede371a55b", + "app/src/main/assets/ANDROIDSVG-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "app/src/main/assets/ANDROIDSVG-NOTICE": "2e61b715e3553494f46f43e5a88e8d26c56201e0558c8d5ab02946edb4f7dedf", + "app/src/main/assets/COMMONMARK-LICENSE": "11cfcf6da0142fb1971c1f40f5924ddded14454e2793d7f1dd87c9f4abe42dfd", + "app/src/main/assets/COPYING": "14609801e0e520dac851e75d993ca4c75c3842a3be468f6f7f04a16c03c824db", + "app/src/main/assets/GEMOJI-LICENSE": "7ea1d1fd0602e6623b9a65e791499a0ea5a2f5f60f91bfad78cbaeee19da26e6", + "app/src/main/assets/NOTICE.md": "c263e44ea9a845c4e4ec564eeca46ae0fc343f63ffd10685afbf74586647e0f6", + "app/src/main/assets/REACT-LICENSE": "da6d3703ed11cbe42bd212c725957c98da23cbff1998c05fa4b3d976d1a58e93", + "app/src/main/assets/RaycastRuntime.generated.js": "b306b45453cc8507037ff2822066475aae17def757a8ef72d4a4fc64c6494bb7", + "app/src/main/assets/android-runtime.js": "1b5dfa3f5b512f55322f27703bbebf15d1a8c4569c4c1712a6dd64541dd552aa", + "app/src/main/assets/emoji-catalog.tsv": "e49f1cc09c6f487a6e7b55590ecc171dcff390f720a9ce3820fe2038810d5d66", + "app/src/main/assets/extension-workflow-evidence-v1.json": "4e8adc22b7887996140190a999f1c7272556f2dd379d219c88e276e48aea0fa5", + "app/src/main/java/dev/tinycast/android/AndroidShortcuts.kt": "1738bc2fe26a117f3d00edddf2639cd49d118f9d91bd5f6eff86d6ee6804b68c", + "app/src/main/java/dev/tinycast/android/AssistantActivation.kt": "b5855f87a029362bd06a63136dea7a1572fff716d0c302056f2a3647d9d95560", + "app/src/main/java/dev/tinycast/android/Backup.kt": "97f09aa4c2cf7ef42473be8728be28cadd3f3ab14930a6804590c0544a7c104b", + "app/src/main/java/dev/tinycast/android/BackupUi.kt": "d13aabc798d7fb19746b09d28a38593792792b67e916824776413d2fbe82870f", + "app/src/main/java/dev/tinycast/android/CalculatorActions.kt": "e03e5645069dafb156556efac7bd465f632938f8a5a24a78be72dff0ee5d3947", + "app/src/main/java/dev/tinycast/android/CommandEngine.kt": "b6be72c82b19fb09e1bf44cd4dd4148b3dbb0c39098eb42f89e80f9ffa034f78", + "app/src/main/java/dev/tinycast/android/EmojiCatalog.kt": "4dd39955ec38adea02d0c1974ace2b33d86ae738efea0e59d3e62b9072c10b81", + "app/src/main/java/dev/tinycast/android/EmojiStore.kt": "f7f5dd63af030b9d179c70336f4b52789d23a318020b6f19ac0c24d20ba8cd8e", + "app/src/main/java/dev/tinycast/android/EmojiUi.kt": "e15b3a4b62f422dccf3ee25b724194889680210d2d43e3ff0353c368538f42f3", + "app/src/main/java/dev/tinycast/android/FolderGrantTransaction.kt": "11361d342e1e1598c85b5ea630f174c3a4590cbfaf9b430a30fbea2b9686a5c7", + "app/src/main/java/dev/tinycast/android/FolderIndex.kt": "6f1b1617a39c0c6e954a1b9b4da0d0d6af3ab7eeac25f2619e299621eec83a99", + "app/src/main/java/dev/tinycast/android/FolderSearch.kt": "4fcf90368ed70b49c192ab1b92b6e367d0a61643f928245f8447f542e745b60d", + "app/src/main/java/dev/tinycast/android/FolderSearchUi.kt": "dad0f473544f8e459aa301ad8eb91ec7380cebbe572e3e2be3f94443585a75c6", + "app/src/main/java/dev/tinycast/android/FolderStorageCoordinator.kt": "ff5491baf9d81ff19b04b35e33a503fc1656bfee9d8eb066453fdbe7e0f83bfb", + "app/src/main/java/dev/tinycast/android/MainActivity.kt": "2bc08e693d69ba4668a675c42dbcabb507755f8e3daf9ee01eaf62fd5744efe0", + "app/src/main/java/dev/tinycast/android/PaletteActionCapsule.kt": "f7228cdd6b6988fb049f0aaf1048d69cc8489e802b4cc42a2b4d6f9e7ceea3e0", + "app/src/main/java/dev/tinycast/android/PaletteColumn.kt": "cd6cdc348752bcc20bd631e2216abdd4ee0c91d9606aaab62ce0c01a145dd6aa", + "app/src/main/java/dev/tinycast/android/PaletteDialogs.kt": "99055192ab85f645a9d9c77d96064b06bba2f1435de503bc45be8f56b4de2dc5", + "app/src/main/java/dev/tinycast/android/PaletteFooter.kt": "5b62c907b46e5075975fc22d01771f5ab7c7f53e433692de55d92865231e967f", + "app/src/main/java/dev/tinycast/android/PaletteFrame.kt": "bfbc139e01a4276770644d5f4c1242016839fd98f5e2f21fa8afb31c886bc763", + "app/src/main/java/dev/tinycast/android/PaletteMenuOwnership.kt": "0be25f335246b8e47bf07ea057adf2045a20f9db5bee90a396109adfa7426174", + "app/src/main/java/dev/tinycast/android/PaletteMenus.kt": "43bc24a46a1ea0bac20f096a7d5d5256250c1c1069e0990bc958881830533dd3", + "app/src/main/java/dev/tinycast/android/PaletteScrollHistory.kt": "84e26b8544adc069c9f86e3273acd2254e2189f1680dec592570a261cdf87602", + "app/src/main/java/dev/tinycast/android/PaletteStore.kt": "7434fd21d100108a267e5790ecb705f4ca76c5dd0c86cc5b14bd9644ed58f57d", + "app/src/main/java/dev/tinycast/android/PaletteTheme.kt": "7afa29642b2bda9c9f669eaf6cdefcb977d14417d313547aff1ff807f4e37471", + "app/src/main/java/dev/tinycast/android/PaletteTileService.kt": "6f29825b3560944aae77935bc3abfb6a53e9577735dc622bf80e5ea1a1fbad00", + "app/src/main/java/dev/tinycast/android/PaletteUi.kt": "ae274c6ca3da3afc06a72bf14e77b86e22af35e67b77f4ef9c56984e58d0a3fa", + "app/src/main/java/dev/tinycast/android/PaletteViewport.kt": "7af62cfb3e5c210325dcb514246afadc3b5b5adbffda8cdded88100e8b7e44a3", + "app/src/main/java/dev/tinycast/android/RecentDocumentQueries.kt": "b60f5f6ac3458eb3659dd41aef01bcd20be9d59f3841ff0fa77c3eb6ee82c92b", + "app/src/main/java/dev/tinycast/android/ReviewedTextFlow.kt": "7daf246a7b8a608fe61e06f078bf3167c17df8f784f8779977ba6e87914526ea", + "app/src/main/java/dev/tinycast/android/ReviewedTextInput.kt": "ca681bb2c4eb91188a1550650bf5fb5f83569bf8ac954ab22abc0ce05ed17e73", + "app/src/main/java/dev/tinycast/android/ReviewedTextUi.kt": "5ded41175e114968aa1994c93ade551b21121db15c4a4a7ea5ff87deaff00d86", + "app/src/main/java/dev/tinycast/android/SearchClearButton.kt": "0d4b0bc74a48d1c2d13a62fcaec60adfa51c8966199ea71465dd3ecf40510229", + "app/src/main/java/dev/tinycast/android/SearchKeyboardButton.kt": "bc563f664a6498035de8c8629a919869184904aa696ca0dc821fa68c2c4a3d84", + "app/src/main/java/dev/tinycast/android/SettingsActivity.kt": "6c8a09cf51abdfc1f61c305b17e613f7b40f9960168aad2fafebdc31155a3601", + "app/src/main/java/dev/tinycast/android/SettingsUi.kt": "55886d17261a019fcddac77f25e655896217dadd081db6da23a2e519a6bad35b", + "app/src/main/java/dev/tinycast/android/ShortcutReadiness.kt": "83a422a837edc657f1f3faf94c155019eae73f1abcc8761379dcb2051ceed505", + "app/src/main/java/dev/tinycast/android/ShortcutUi.kt": "394fadd7890bbb2dd5f851bd5a290ebf19ad4e05fae64c321e529eeccd35c632", + "app/src/main/java/dev/tinycast/android/Shortcuts.kt": "14e08d112e3cc5689a5717f68dce1334d3c2bf92f4a7cfbc2057fdc96418a9b2", + "app/src/main/java/dev/tinycast/android/SystemSettings.kt": "c5c1535d12627b975f8f582437e53d02b4110f4bfb185d5c8d1e9307debc319a", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionCatalog.kt": "4427ae6610fcf75bc8f7ddeec9b869ab5b6698c9042280f9f0efff7ea3422e1e", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionCommandLaunch.kt": "2b253982bfcaa9c2b04178fcd38a04492e450352a459bdf375abc7948e6950c6", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImageInformation.kt": "8a5d61b8f7d594933c6797d12c60f1888b4f4f4ad7de35a306c206406733b5e0", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImagePolicy.kt": "f393349926cd371a67e3e59af0d0eb4db66d124e035259622c5558efb0035529", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImageTimeout.kt": "16e0fb6b411c4cf30fcbcafc7df536f72da84c1a208f0ea47ba1a0b612d762a8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImageUi.kt": "6da7920fd357a8106015a8a6da6d085fd2b8ae2bf26269c4aee670c84f7b0af0", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImages.kt": "a87f8cf7d311baefd09c62f8a09e282764561bc2fe27b61abe0aec14d8c273f4", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailUi.kt": "15be7bc728b4fa72841db59a6e72e9acece275a5a6315d4ba6b19af22fc06f21", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionEmptyView.kt": "4ab1b0093364ad790235b666fc70ec2642bb40692f3ce7fdb830e6bc514c61dd", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionEngineCompatibility.kt": "36a9b4b35d22bc364ecb1f46d2d9f029e3807315a2d35d2fd231b2a86e8b49c8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionEngineUi.kt": "6972248240f701edcc038ce70428dfd1a716e40894d616918469af3270aaa9cb", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormContract.kt": "6eba4aa3f33b19d4c452212b3bbb33c8ac0cbb8ae8e61963867e83094d6778ed", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormDateUi.kt": "e052fc6c27a78ac0df119c954f7ef43f720ce8ab72462bb712832b6dfdeae18f", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormDocuments.kt": "1071c99bd42ec6265991731022662729fd1ccc0269fee924b229f9ab8c2980fc", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormFileImport.kt": "c91ee69d460190918ee649a61a340429ac0478a59ab5e7ca824db8c17d1f5d00", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormFileUi.kt": "4241a498c65c255db94f833038a1f86a8cb06f27b4cecb3838cc20e953262b01", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormPickerBackdrop.kt": "dff8e4e37d38c1387bfd221f6c43c29272abfa144fff34ada0a0734a9c0f946d", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormSubmission.kt": "7f89b0ef7216cafb22c72a636b3b2998e5d71c9933bcd87d7c65a25b9a2bd9d8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormTagUi.kt": "509187d014c00ca027720e16d22934686d1c0491f10e5e151a27b574cde86a96", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormTypedValues.kt": "bd6b1c9b3e45101715916ee145ad41cfb1b74e206ae733f97d375c119f86af97", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormUi.kt": "bdb8f813a82e1e1860ebb08047b4a449a440ffe6d2a005d97c06debcbf4438c2", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionGridImages.kt": "777de62995b645310418d2f0da8adf87c450d8b7459d1c9abab0e9a02ce84258", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionGridModel.kt": "5b104c726a950f09a7cf890a14c0e4e654dfe8f5ea8b1b41468a0822f42a2f48", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionGridUi.kt": "c66cd6ee6d29cd2cc43d45ddbdc15f175ac5a5a39b332736b4cbddecdbf9e6bf", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionHttp.kt": "88ed57ca318c3e0c45e50f85e3157692d479bdae9636127869556cfb553abfe8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionLinks.kt": "cebfba7010fd2a20423527f8025413c21257ecd8e97ddc0dcb321b1c74db71f1", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionListUi.kt": "b02b632904d5d6be8f7b967cd10ccbc72d7e3d8fff3caf66c4fb444bce7de136", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionMarkdownModel.kt": "723a518700e335179c296e8b9b05ae9a899c8aaf93b8ca02b76476a46879d6ea", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionMarkdownUi.kt": "54d1b8dc6b09e55a7b0adf7d23903c9fb97551673a5695196e2e6f89259e304d", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionMetadataVisuals.kt": "882b7080d8f46cc9c9e2fd96fd1cc5cb0565cbb282bf3b04cad1c31b77a32290", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionPasteCopy.kt": "3ee4dfbb356c6ec02f50d8d525ca805c0d21468f49529b002e054ff9c03c71b8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionPayloadIdentity.kt": "66037b60818bc4941f58551e6c1401c18641a6da43f9f2477db9c9f7838e29f0", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionRuntime.kt": "8df6a1a357a7133ce451930cc174b7382d70db75906724358ae40db664f6402e", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionSelectionDelivery.kt": "f13388787b615343c214a861a619bdba88b6327dc939365a130e9e799169c397", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionSvgPolicy.kt": "1bed94b2ea8e6d2475526a0ed83d85724e32893fafc8b27bd8f2b58a95cd868a", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt": "009e3b23953be18ae09c76a849dd6ce3943dff6b4f2d4b40d846385044851b3f", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionWorkflowEvidence.kt": "98f65f5dbe1578b11fbb20d80f477a63b03659f7b11b1a7a6f526a4d6fe94379", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionWorkflowInspection.kt": "650fdb495d2e1e0ab5331fe8c517baaaffcfe7d15e7f56b5b3f6247a650d01ed", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionWorkflowUi.kt": "93e9af8898ccce7fa1ab8169f08926b1d9fa95ba5657c517d7224f9356488c3d", + "app/src/main/java/dev/tinycast/android/extensions/NodeCpuInfo.kt": "eea176a7259e8f3736878886350610a84a23a6d2799f5337f5c8b07a8fefa398", + "app/src/main/java/dev/tinycast/android/extensions/WeakValueTokens.kt": "5c4d6f5c5b0d7170b554091e1b9cd9d551119ea60d7fe7f03946eb70f498c34d", + "app/src/main/java/dev/tinycast/android/updates/AppUpdates.kt": "63ace29d7dc29e005ffbbdde31cbac4e1d923732604b1e43e6a4db8a3285b508", + "app/src/main/java/dev/tinycast/android/updates/UpdatePolicy.kt": "350a9142ebfc663cd4a0c982ab220fb5f1e3399bfb3207c980ea20fd4c5c4e6e", + "app/src/main/java/dev/tinycast/android/updates/UpdateSource.kt": "aa860f14bd3a9f39e19899f1927fb7a790c54bb4f2704651253d8f867bb3c100", + "app/src/main/java/dev/tinycast/android/updates/UpdateUi.kt": "0bceb6a4221787a58dfb14ee1bcdcd266388720ca8862bd705cfeb10cfe52457", + "app/src/main/res/drawable/ic_launcher.xml": "104e38ffdf3214de23909b7896392f4a974e4fcbcc778c447d5d7a9ce56380af", + "app/src/main/res/drawable/ic_palette_tile.xml": "e063a6c4a1a25d6717a31bc355543d76c7d1babf8e9556e68b1b5e6a2b860748", + "app/src/main/res/values/styles.xml": "de4ad14f9ef41aaa4ffc824af155831579fa1194af5055edd112efee5042f5e1", + "app/src/main/res/xml/assistant_service.xml": "1e9e560563a7d0260fc83126d3a9bf027bf6357adfc811b43bc3224290c77ddf", + "app/src/main/res/xml/data_extraction_rules.xml": "cb4d1da1c1bd38761a9a08cc4d8d1b55839fcc14a6e19badb653f75b23c20eca", + "app/src/main/res/xml/keyboard_service.xml": "b1839c96988c03fea26ce4ed5932b1315013f3d2c16165993afc17368ab7bdd4", + "app/src/test/java/dev/tinycast/android/BackupPlannerTest.kt": "12a55d3644b5094b84cad2e88a5432738021fc8d7c59c232d4e5fc4c2c9a1454", + "app/src/test/java/dev/tinycast/android/CalculatorActionsTest.kt": "e803682a82b89c9703fcfbcbb82424eafef6bae6a13092953a3dc2c877816509", + "app/src/test/java/dev/tinycast/android/CommandEngineTest.kt": "65d9d198e8e1a188e4dcfd5551ced8f558f87a106f42b1d02a1432e8d6b7c234", + "app/src/test/java/dev/tinycast/android/CommonMarkPrimaryConformanceTest.kt": "ceb2ca14cc003385533bdd73b8beefffe92740887537b74c2146160621a23fcd", + "app/src/test/java/dev/tinycast/android/EmojiCatalogTest.kt": "9d70ef96696215e14e561d73f5a41f0b1a8272c3b58e5ad5a8438c31bc53aaa5", + "app/src/test/java/dev/tinycast/android/ExtensionCommandLaunchTest.kt": "f45df47e1740873ed7e771de72a650d9df88cd31bbcf2fd3abf67e3999700291", + "app/src/test/java/dev/tinycast/android/ExtensionDetailImagePolicyTest.kt": "7ec37a8870b70e3df0e3110f8b60ccc94185fedeaf1c39c76a00485dd4ca37d5", + "app/src/test/java/dev/tinycast/android/ExtensionDetailImageTimeoutTest.kt": "839216fc2d395cbd171676f32bfe77b894730a29a12127ec916c1d88b18dfb3d", + "app/src/test/java/dev/tinycast/android/ExtensionEngineCompatibilityTest.kt": "af9e76d4f6e7a6f193603f2db0169c95c7aadaca842d430c6178874f62840b1f", + "app/src/test/java/dev/tinycast/android/ExtensionFormContractTest.kt": "432d658e2a177312105e2ec86db2c59d0625086e86464a7ff946acb61c07e283", + "app/src/test/java/dev/tinycast/android/ExtensionFormFileImportTest.kt": "784f5b78f1dfd0d23ca653b36fc59bd13cba42e68c708c499678ac1ce474b673", + "app/src/test/java/dev/tinycast/android/ExtensionFormSubmissionTest.kt": "4bbdd8068cd95c314f7cf7aa156c7928cd815c5da11ef5f2cab1b4c5d23dd7d5", + "app/src/test/java/dev/tinycast/android/ExtensionFormTypedValuesTest.kt": "3a485a387e1527163d4318c3f0863b743bff02fe4e485adfff490d95cd554395", + "app/src/test/java/dev/tinycast/android/ExtensionFormValuesTest.kt": "6bc5bc8caaa5763e12dc3136bbba1d99249db10387c163cb1efeb0ae03f09d2a", + "app/src/test/java/dev/tinycast/android/ExtensionGridContractTest.kt": "50681a34c624a01867f287c66523d653e1931cf759f5e2926dda60feb85fa2b3", + "app/src/test/java/dev/tinycast/android/ExtensionGridNavigationTest.kt": "94ffe218ed5f9411210c2599db2a10dcd20c1a94655ef53e8cac1c574318b68f", + "app/src/test/java/dev/tinycast/android/ExtensionHttpTest.kt": "76917bbbdcc33dcc90d9b152d5a3e478fd981139e1df1d9edc0916e4f81b8e76", + "app/src/test/java/dev/tinycast/android/ExtensionMarkdownModelTest.kt": "fbeee6a80280ec27b660cc53222ef42f0e9ff5f5ce7ec5e02dede9d6b1c9222b", + "app/src/test/java/dev/tinycast/android/ExtensionMetadataVisualsTest.kt": "6f8653f4ed71138ac4fb0353e427d5b6775f54ec3600177ec6eae49dbc81598e", + "app/src/test/java/dev/tinycast/android/ExtensionPasteCopyTest.kt": "582ebddff12c96a504dd12a502ca851fc5d037e92f1d3ce98240eb162002b3bc", + "app/src/test/java/dev/tinycast/android/ExtensionPayloadIdentityTest.kt": "f59183b3224aab2923d9eb1ae598d1fa5cd2598b9ba80fc9a0db135005ae4e04", + "app/src/test/java/dev/tinycast/android/ExtensionSelectionDeliveryTest.kt": "1ea1e17cf0ea43fa3418a61f71587dbee9ec341b288d17fdaba3c5d3d8da4cb7", + "app/src/test/java/dev/tinycast/android/ExtensionWorkflowEvidenceTest.kt": "cf1589d69a498166b5a5fddd45135cf5b8575ec1d42f13ed4e2927b062b966fd", + "app/src/test/java/dev/tinycast/android/ExtensionWorkflowInspectionTest.kt": "043617c0cb943d76ebcdb5d0cc5bcdcda300069827b9b87a7425a16d084c1255", + "app/src/test/java/dev/tinycast/android/FolderGrantTransactionTest.kt": "ef710edc4ed1eb45782f90c385bc73305217f26882b630cd3e79ee93c59ef118", + "app/src/test/java/dev/tinycast/android/FolderIndexTest.kt": "bd371b19d1678ea876889cfb25505d690a4296c37d042e4cabd38bc7c7e4eff4", + "app/src/test/java/dev/tinycast/android/ModifierTapTest.kt": "bc0f6191ef2837018ca33a71010c1582cd39d0b3713c55acec4f91406a74d4fd", + "app/src/test/java/dev/tinycast/android/PaletteMenuOwnershipTest.kt": "c3134a62d61b5cd7ed810b867a6b40219713f21b798fabf6e659129cfab55506", + "app/src/test/java/dev/tinycast/android/PaletteScrollHistoryTest.kt": "b1610e3c3818e5823f99ded35bc36325042da250cfd48d98c0d6381066cfad5f", + "app/src/test/java/dev/tinycast/android/ReviewedTextInputTest.kt": "4bff225dd9fc1963736ad1f992e3eda3ffff21554c3ebef63d25acfdb41a29f3", + "app/src/test/java/dev/tinycast/android/ShortcutReadinessTest.kt": "45d32b02d4f89f857867d2585f3f5968251e9580edd34d9312bbfc158adc12e1", + "app/src/test/java/dev/tinycast/android/ShortcutTest.kt": "ae8034901d8ca73d704d40992b85ed43a64a021a078ff4eb5b2b853c4f398610", + "app/src/test/java/dev/tinycast/android/SystemSettingsTest.kt": "cdfc38bed12779bb92b0ddaeb79d197733243b24da43ab89d8580ecfd1f1fb51", + "app/src/test/java/dev/tinycast/android/TinycastGridParityTest.kt": "df6ca13f0f0a1e4bfa1f0085e274ed87457a6aa1a69492afa1041128af99c5e3", + "app/src/test/java/dev/tinycast/android/UpdatePolicyTest.kt": "d87ee4f7d6aa7b39b998267bd4d042d0b494ec6a1280d18860f262355c25cbe3", + "app/src/test/java/dev/tinycast/android/WeakValueTokensTest.kt": "ced7bf72628d5dc18fc5fdd30a81e58bb4b4b7f40e4e8c7eb0e77500f7c73566", + "app/src/test/java/dev/tinycast/android/extensions/NodeCpuInfoTest.kt": "5f3a7aae9b24435a4dbca77f9132a4b203ea736b1c76fc9108a51251983c2797", + "app/src/test/js/android-fetch.test.cjs": "2842effb321a11a33816f176f3300cd27a61c1e2ac70c4ed32681d46a129e56e", + "app/src/test/js/android-form-focus.test.cjs": "dd065271386dfdb2552caef1ae6e0c6f30e32783571abd85be328b9864bff8b6", + "app/src/test/js/android-form-submit.test.cjs": "7cbbb553dc2e657951b9195593b11add03597adad2710b4daa3e2cb807f87334", + "app/src/test/resources/commonmark-0.31.2.NOTICE": "610241b963a1a958c9465d99ec3f5778e7c6ef7251f9e119fed4c306b51641de", + "app/src/test/resources/commonmark-0.31.2.tsv": "dc27be954caac0ed8961299ca581a62aa4c68312091e68e52ab1e2bfe6aa5f5f", + "app/src/test/resources/extension-payload-identities-v1.json": "e451cf6b8efa208708db43dcb3a0545db1e73c610b72f488203fb4f147a490ab", + "app/src/test/resources/tinycast-grid-navigation.tsv": "da620f314fc39300beb7a11436715809ac1a9fd230fa4640c7f4f9c34b69aaf7", + "build.gradle.kts": "780d597cbe0f80d0103221a566db7574d1e07b17adca5bdbe7d6c728d77df12a", + "gradle.properties": "e43a00491832254a35cf5a979ef6de17f78c4e159d446be39319d2e3d3e46325", + "gradle/wrapper/gradle-wrapper.jar": "55243ef57851f12b070ad14f7f5bb8302daceeebc5bce5ece5fa6edb23e1145c", + "gradle/wrapper/gradle-wrapper.properties": "13287ffad6cf3064056ddad80d95b855132348930b2dc6c91490588c55b3ac7d", + "gradlew": "aed171fb114f82e6eaea4970a245a200e0582a7dcc8ec0891ca41b6e4a62b754", + "scripts/android_clipboard_recovery.py": "4aa2d03a100791544d282de37a2f62b6f7bfd94c47cc5611b6b6448ed8a946c1", + "scripts/android_form_documents_fixture.py": "ef44f5a9af1397fc8e8ea1924e36c2dec18d5c56c02e22f4925752daf1034841", + "scripts/android_test_cleanup.py": "1f4a1d70d251ec0a8294932388ce881da144c9c7d1c05df54df2c5b246d46373", + "scripts/extension_bundle_snapshot.py": "08ae0408a22e4f4c3c8a8b22af31b6a6a16d304dc0d14d5e489596dd9731a950", + "scripts/extension_manifest_catalog.py": "18c6048a0690e68dba3da1e8d11c5abccac16c3c26aa8803ff80abfd1dabe7e4", + "scripts/generate-emoji.py": "98f43c9a5941b4e65533e31ff7d7eaa4e697d8fecd4c7424297e6957e07abd53", + "scripts/generate-tinycast-grid-oracle.py": "bd53975673883b624d2553cd47687c5a3a760b17181a8c0621715ed1599b3118", + "scripts/package-nightly-update.py": "2a650baee0c7c76eadd360171e19686aad7b960fe34ebc780638c6b231032420", + "scripts/summarize-readiness.py": "e63d9d2ec435d2c369ae0be126bafb0b0507e903b03674f11a77ee10b428fe64", + "scripts/test-api-compatibility.py": "1ba4bf24535130bfd59a5f1d9d4830ca075e7158fc2cbe316696fcadb6108065", + "scripts/test-assistant-touch.py": "fd5a4acfdd19ddc60eb467fea3c7d2e8ab7ac717bea35c76d007577c23235a54", + "scripts/test-calculator-intent.py": "93ef5653c4d0c153d8f216c9fd74557089a964eaab80c84c85ab5460ec58f1a1", + "scripts/test-configurable-shortcuts.py": "56f4581f78265ec2c28faa1da115ae10a8349cf47e10db60bfba3e88f0cc3e73", + "scripts/test-extension-grid.py": "26f15b12f40277cbd3b6b874c58e41ab7e26735ef8e70634e5b5eb53b5652560", + "scripts/test-extension-workflows.py": "c6cce4d533b45655a7763305379107840a93a1a953be0322a869c7505ffc0997", + "scripts/test-global-shortcut.py": "4a0f57d16dfccbd0c7b33d6b78a841ccad030c4bad6fb108ac80f15dc89f6d6a", + "scripts/test-modifier-taps-hardware.py": "b0d2da7fd2410095d65ef20e25cd9b8e90f9b480849dfd5e497f75d4d713139c", + "scripts/test-modifier-taps.py": "8cb08d228371c90f995ae2246ef0a92daf6c81724c11a1ac67374ed0dd347dab", + "scripts/test-readiness-benchmark.py": "1f92dc1989f1ff36c82433d6eaab1e2c896abf7541a24a9b215c109e49d1a7d9", + "scripts/test-restart-files.py": "65f1c311df77634f746cb155d831acf1fa4d8cf05d0e1dabc9d372bf1e842065", + "scripts/test-reviewed-text-input.py": "4e9ab25f0b1bce00277d0dde5a37a29ab8cbbdb9900699c5bdfd9cfa4b9bb248", + "scripts/test-reviewed-text-process-recreation.py": "eecd547c48ad2bbce2d8bae62bbed26a2484e0b5d97ebb7cb989ba98d4de2a23", + "scripts/test-search-header.py": "772cb70442bbf28086beb8087ebce94d02ba6cc10e6acf8c2cf91a0d8d5b39d0", + "scripts/test-self-updates.py": "4ff148ea90c3a148a1eacf74116db288e5e9c282f69e0c331caa6f22b1a40889", + "scripts/test-startup-performance.py": "9ac605bf3347fde625d279767bb8fc4de76ae82f099e7d8351416fa5bc9250ae", + "scripts/test-touch-readability.py": "d9ae59ab3db56d63cb5c959c200263b71acd0e04c305dce4e9ceb8a395933fb6", + "scripts/test-webview-engine.py": "775233d14eb064bf6636071d89ade59f8a596c518beeb5f6844ea788c613cb7a", + "scripts/tests/test_android_clipboard_recovery.py": "b260d3adcfa33e2641affebee9bebb1676097b4a24bbdbeb89cef7f3fc889176", + "scripts/tests/test_android_form_documents_fixture.py": "c2b573793d6c5d48fe9dc8e75ffc554e11818e319507080a4b96aa4e24e1fc03", + "scripts/tests/test_android_test_cleanup.py": "49c8831c517f0777f46952376f5d3b783322eeb25f063d69a9b1bc2f8cde01cf", + "scripts/tests/test_extension_bundle_snapshot.py": "382561907129ac58b7e20b963c1afcbc9bc1a03b7e18da64e7d61927a8b15783", + "scripts/tests/test_extension_manifest_catalog.py": "57af21edf39e3e4084453830eed62d3c052ba8d8a4f942d3d69807e2cd4b69a6", + "scripts/tests/test_extension_workflow_guards.py": "1cea982b85cf759e691471cad72b8e2cbdccdf3c2ccc6c483b1ef01b49002a3f", + "scripts/tests/test_private_archive_transport.py": "168c1607d4e1efa7537241cf362316ce354706af33465dc63e73d210ab0327d1", + "scripts/tests/test_private_path_observation.py": "3c0fff3062ac9b43aab67ed4ab2d53b92fa39f9af9e0ada9d197856a1df94e95", + "scripts/tests/test_reviewed_text_archives.py": "0308a50c148c97ed50381e894eabd43ec6e374878f99b810244c24e25f1a626e", + "scripts/tests/test_reviewed_text_runner_guards.py": "a3d489fe141be669374ecd0b3a6231afc5efdf4abfc6a74f7d25efec4e67038c", + "scripts/tests/test_webview_engine_runner.py": "846ee3b34578f92bd3f728eac4044c5ef4481478e3ec9d744e848e0094119168", + "scripts/verify-recorded-workflow-catalog.py": "fc0ec3b595b3a892238a4e0cc19b79ca092e8dcbe3e4af1d261e4874f984c2d5", + "settings.gradle.kts": "6a8db88135b364d8bd2facb607fc4e9e9476c171d2b7f7f3a0892c57a9ee6487" + }, + "executed_app_source_sha256": { + "app/build.gradle.kts": "28f41ac518c91f15c98221d0511870a5409b9f35ae008acfdd5f667db06bcadf", + "app/src/androidTest/AndroidManifest.xml": "63c98a685e9dd67d8150af8981832d34271fb37a92e46444eec52728f559d609", + "app/src/androidTest/assets/owned-detail-fixture.js": "873d3f25f95271029e31779b0920b5955a2908a820a07652b58efa21a2358cfd", + "app/src/androidTest/java/dev/tinycast/android/ActivationDeviceTest.kt": "2f2fe66a5c3628433feeb6db33e02be43ca3f267b39ec541f2e3330fc1142974", + "app/src/androidTest/java/dev/tinycast/android/AssistantDeviceTest.kt": "1ecebcf20fe9aa7aa63701c81500195eddd1ae88618d89f31105fecc58189b6b", + "app/src/androidTest/java/dev/tinycast/android/AssistantTouchDeviceTest.kt": "1f33a283e5b1f05a5a74dbb76bc3ff8920193cd761edd1cce1e61cb733cb9874", + "app/src/androidTest/java/dev/tinycast/android/BackupDeviceTest.kt": "56c56d6a652524f7fc7952b1478552314b1e465ace5c7216385d7f2ea3cf4b6c", + "app/src/androidTest/java/dev/tinycast/android/CalculatorActionsDeviceTest.kt": "e738e5b09aa6128343abe628ed7f93571b9a87c1eb95e78f00c617aadcf348b4", + "app/src/androidTest/java/dev/tinycast/android/CalculatorIntentDeviceTest.kt": "628ddcef4b50880170fba97cd925fefc5f463f632799d9e2686e7512b2bbc15f", + "app/src/androidTest/java/dev/tinycast/android/ClipboardApiDeviceTest.kt": "e53bbc080d17b59aae6280b7b817a3c81b4df684dcfd5ca787a993d89caf5de4", + "app/src/androidTest/java/dev/tinycast/android/ClipboardEvidence.kt": "c882a7435cdca3bbdf68da66a6e8ef23bce932fb5746ba09c61bded5b9c98e9d", + "app/src/androidTest/java/dev/tinycast/android/ClipboardEvidenceDeviceTest.kt": "dfdb64344886b7e5d4b54f04fa4560f169e8cb8d7b7b238ba08358dcde73f854", + "app/src/androidTest/java/dev/tinycast/android/ClipboardRecoveryActivity.java": "48627f465b10c316cca7fdfa735928095328241b4fb98bf90e5c247add17345d", + "app/src/androidTest/java/dev/tinycast/android/DocumentProviderDeviceTest.kt": "13895d23b8758affd8889461ef660c442d3bfd1bb111fce08a064aa4b582aea2", + "app/src/androidTest/java/dev/tinycast/android/EmojiDeviceTest.kt": "ab9907d4e4acd7e52ed26f12ac14648271e5740784cdba678671ca8ad42fb415", + "app/src/androidTest/java/dev/tinycast/android/EnduranceDeviceTest.kt": "4802d3755ce6bc1cdf8e60c7cf9998a09ced8e0be6d9888f0b9d9a32ee332dc4", + "app/src/androidTest/java/dev/tinycast/android/ExtensionCommandHandoffDeviceTest.kt": "8c47f08b1d49a94dfd520840a0b0349199459da4ece8ff1adcacc46516b37f7b", + "app/src/androidTest/java/dev/tinycast/android/ExtensionDetailDeviceTest.kt": "d5bd83f6d174ca5d5c3c9d68551cc3a78bc90763060410bd5f3b67d9d9642025", + "app/src/androidTest/java/dev/tinycast/android/ExtensionDeviceTest.kt": "3087ff055f70cdf43d2565e22703b9c57445b5c3e1594126d60b0279c32b2640", + "app/src/androidTest/java/dev/tinycast/android/ExtensionEmptyViewDeviceTest.kt": "64e6b1e68c61cf67b24ba02d1e14a72d297b1bdeebbdf1008905d5619ce2558f", + "app/src/androidTest/java/dev/tinycast/android/ExtensionFormDeviceTest.kt": "6418f6ab517ead50a102b4834bff9c40988849fb3a2a1ef20f575d162b32e11b", + "app/src/androidTest/java/dev/tinycast/android/ExtensionGridDeviceTest.kt": "952b4f2988379c1545575d1332f8358acc9053e257a382b7549a27f6b4b40de3", + "app/src/androidTest/java/dev/tinycast/android/ExtensionMarkdownDeviceTest.kt": "e4b7daa9fd914335f572ef41665595104cdae5434682977a2d806ff63ef36c4f", + "app/src/androidTest/java/dev/tinycast/android/ExtensionPasteCopyDeviceTest.kt": "7bdd8e876153d4d46357402eab58cf89c0e8885823d21894c70882ed55b1da8e", + "app/src/androidTest/java/dev/tinycast/android/ExtensionRecordedTestsDeviceTest.kt": "1aa11011270b01a235bb052c6063da7eb5f7f726a7bb19f79aa54e7b8aa4ca42", + "app/src/androidTest/java/dev/tinycast/android/ExtensionSandboxDiagnosticDeviceTest.kt": "3e192cb65d011e021d5b47b6bde765e1136c2ddf7e039b5c9dce6dedbf39da15", + "app/src/androidTest/java/dev/tinycast/android/FeedbackReadabilityDeviceTest.kt": "86096d428b6554bcb6b8c9d7bc39b981baf1fd53f9367a33c97ce03c89020a82", + "app/src/androidTest/java/dev/tinycast/android/FolderDeviceTest.kt": "f3d54b0d788459d34470d2d87c8882cdfe30e8956a8886cd324dd63160f5628d", + "app/src/androidTest/java/dev/tinycast/android/FormDocumentsFixtureActivity.java": "434e72d8a0c977a83cbe6524cc51638eaff9cca5581c570ea58d4068ad2156a9", + "app/src/androidTest/java/dev/tinycast/android/FrozenBundleWorkflowDeviceTest.kt": "9d31d56f739caa2509610cf4c07abf70dfd5ea0aead7ec5c5673bde1ca04bc45", + "app/src/androidTest/java/dev/tinycast/android/InlinePaletteDeviceTest.kt": "ed2cfb9dc3c5218adfe0ae7b3cc1c60a69e6cf8c83ad434c2fc6b87d23bb2727", + "app/src/androidTest/java/dev/tinycast/android/LegacyInputDiagnosticDeviceTest.kt": "4966fac20af96b8597fb38a278d8f3ef89b7e335f3d3b6e5df00fb349ebabc55", + "app/src/androidTest/java/dev/tinycast/android/ModifierHardwareClipboardTest.kt": "141499cea10d4c80b8ef690fd43e985c066d1b420afa23895c32e75de737ec8d", + "app/src/androidTest/java/dev/tinycast/android/ModifierTapDeviceTest.kt": "d33bafba795569c15bab709a9830ca06ecffda9feb754492ec437d55c1d1cae1", + "app/src/androidTest/java/dev/tinycast/android/NativeEditableAssertions.kt": "be979c8e0f3e78b8d0e4482c2653769d732d24871a822b3761f5708a1e6a230b", + "app/src/androidTest/java/dev/tinycast/android/NativeInputCompatibilityDeviceTest.kt": "484dcb406a6b9fbc7851efd883029a43b303bdab799c9385e51a678ab91a51fc", + "app/src/androidTest/java/dev/tinycast/android/NativeInputTestIme.kt": "c3a766ae381e6e4a1b514b3890cdd220616df8e9b88208cdb9aa562ebd8f45ce", + "app/src/androidTest/java/dev/tinycast/android/OwnedFormDocumentsProvider.java": "67c22d543cb2136d81dc3544d8f63df94ce67f9524c7f19dc9c6b1b586713e89", + "app/src/androidTest/java/dev/tinycast/android/PaletteDeviceTest.kt": "7f5861ffec2e762c1e629519802c10d4b31e3bebd49a3c5867013c6aad77f3f4", + "app/src/androidTest/java/dev/tinycast/android/PaletteOverlayTest.kt": "0755f9aa38bdb5785d2cb8902157ce990b5b9825db0ae71847e11c8b1bd4b7aa", + "app/src/androidTest/java/dev/tinycast/android/PaletteStabilityDeviceTest.kt": "87896693541425799e7815d2fc1e3988e29afd9bba346da48183a91fa91be9c9", + "app/src/androidTest/java/dev/tinycast/android/ReadinessDeviceTest.kt": "c6f3ea767e9adc8384a3b662223ab57bef067fca8501509e0415111b711589f3", + "app/src/androidTest/java/dev/tinycast/android/ReadinessRegressionDeviceTest.kt": "3815d7aef28c0943999782217eabe14dd80fdd464476798bd0bf12a1d0be3c4a", + "app/src/androidTest/java/dev/tinycast/android/RecentDocumentDeviceTest.kt": "85af5ed0fd05c0716b8ac14b24e98397829ff8d241695999a0cfc68727923e40", + "app/src/androidTest/java/dev/tinycast/android/ReviewedTextCallerActivity.java": "640609575a0711566bf23f3028a5144e8aeae912604f9b7180912fd2c9b96200", + "app/src/androidTest/java/dev/tinycast/android/ReviewedTextClipboardCrashDeviceTest.kt": "6a1ebc4d90c8b5fa9a07f4b288c20b361297efbeaf7d4423eb211da47b4cf0c0", + "app/src/androidTest/java/dev/tinycast/android/ReviewedTextDeviceTest.kt": "31040a9d92e7e60d8026dda7119a9f7eedd2127ea6f50bfb308849f56b6fc0ac", + "app/src/androidTest/java/dev/tinycast/android/ReviewedTextLifecycleDeviceTest.kt": "2190f43dca4d7a7eca162a7e34f46d6091cfd114d83a5e4509946c1b912ce76f", + "app/src/androidTest/java/dev/tinycast/android/SettingsDeviceTest.kt": "dd9b9a2492c497a2a3ac3218d0833d2e8b536eb904975aa536b08361acc323a9", + "app/src/androidTest/java/dev/tinycast/android/SettingsRouteDeviceTest.kt": "8f6991670e740a07d3a6b30aea270b60e19f6d237c4b7b6afaf25200962ad736", + "app/src/androidTest/java/dev/tinycast/android/ShortcutDeviceTest.kt": "5376ede8474d5eaa4ec7ecb628d1056a5bfc963bd2a292d17d9b86eead8a5415", + "app/src/androidTest/java/dev/tinycast/android/ShortcutReadinessDeviceTest.kt": "41bdf7ab67a6899dc8a0b1b0f697135bc587dc401c9234eb56d25385eadf3dcf", + "app/src/androidTest/java/dev/tinycast/android/SystemSettingsDeviceTest.kt": "80e0c919fbf04916d2441aa3fbc4cccfac534f56c29dfd908e5ae2d917cfe13b", + "app/src/androidTest/java/dev/tinycast/android/TestAutomation.kt": "faad509cd41b06c4cc1087e5de8e0218abca78773603b2050bb2825c880588fb", + "app/src/androidTest/java/dev/tinycast/android/TouchReadabilityDeviceTest.kt": "6801d25bb0d9bc45899b04aeedba474e2ac8e5cc8cb168b6268e0305fb49345e", + "app/src/androidTest/java/dev/tinycast/android/TouchSearchDeviceTest.kt": "93cdf4f4734b44c94ae5b015a86142d030df9648132b734085134ecf33640afa", + "app/src/androidTest/java/dev/tinycast/android/UpdateDeviceTest.kt": "380e4d7702d2f8c68fd575581309113bc67abf3e5713bdb177cc3b920c4e2787", + "app/src/androidTest/java/dev/tinycast/android/UpdateSelfInstallDeviceTest.kt": "fc94ef400b54ee2cf8378d2b1632fff1521299f188a132f0330e930b40f80ed3", + "app/src/androidTest/java/dev/tinycast/android/UpdateSourceDeviceTest.kt": "76d91931dc044fdeb001a8325a321306011f2b0c54aa631bea25751c59f3ea50", + "app/src/androidTest/java/dev/tinycast/android/UpdateVerificationDeviceTest.kt": "cebe3033132db567affccc5419ec59a9639c87ceb88b20c38ffbba16c13b4592", + "app/src/androidTest/java/dev/tinycast/android/WebViewCompatibilityDeviceTest.kt": "ce5842cad291b9cb77aed19ecb9436dc80de24beb27e018797a7f84fb4a84895", + "app/src/androidTest/java/dev/tinycast/android/WebViewRecoveryDeviceTest.kt": "dd6ccf056187d184dd7fb6aa1eddeb76bd7037f4af21f749dbe379a7a2eeecde", + "app/src/androidTest/res/xml/native_input_test_ime.xml": "4aafc899939ff4b8883a80c6e00f7ff7413a08a603d485a15f1035c07760b50c", + "app/src/main/AndroidManifest.xml": "65fefcf86296b7103c2237f1e29bca7890bf33f6b5056f860c2e39ede371a55b", + "app/src/main/assets/ANDROIDSVG-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "app/src/main/assets/ANDROIDSVG-NOTICE": "2e61b715e3553494f46f43e5a88e8d26c56201e0558c8d5ab02946edb4f7dedf", + "app/src/main/assets/COMMONMARK-LICENSE": "11cfcf6da0142fb1971c1f40f5924ddded14454e2793d7f1dd87c9f4abe42dfd", + "app/src/main/assets/COPYING": "14609801e0e520dac851e75d993ca4c75c3842a3be468f6f7f04a16c03c824db", + "app/src/main/assets/GEMOJI-LICENSE": "7ea1d1fd0602e6623b9a65e791499a0ea5a2f5f60f91bfad78cbaeee19da26e6", + "app/src/main/assets/NOTICE.md": "c263e44ea9a845c4e4ec564eeca46ae0fc343f63ffd10685afbf74586647e0f6", + "app/src/main/assets/REACT-LICENSE": "da6d3703ed11cbe42bd212c725957c98da23cbff1998c05fa4b3d976d1a58e93", + "app/src/main/assets/RaycastRuntime.generated.js": "b306b45453cc8507037ff2822066475aae17def757a8ef72d4a4fc64c6494bb7", + "app/src/main/assets/android-runtime.js": "1b5dfa3f5b512f55322f27703bbebf15d1a8c4569c4c1712a6dd64541dd552aa", + "app/src/main/assets/emoji-catalog.tsv": "e49f1cc09c6f487a6e7b55590ecc171dcff390f720a9ce3820fe2038810d5d66", + "app/src/main/assets/extension-workflow-evidence-v1.json": "4e8adc22b7887996140190a999f1c7272556f2dd379d219c88e276e48aea0fa5", + "app/src/main/java/dev/tinycast/android/AndroidShortcuts.kt": "1738bc2fe26a117f3d00edddf2639cd49d118f9d91bd5f6eff86d6ee6804b68c", + "app/src/main/java/dev/tinycast/android/AssistantActivation.kt": "b5855f87a029362bd06a63136dea7a1572fff716d0c302056f2a3647d9d95560", + "app/src/main/java/dev/tinycast/android/Backup.kt": "97f09aa4c2cf7ef42473be8728be28cadd3f3ab14930a6804590c0544a7c104b", + "app/src/main/java/dev/tinycast/android/BackupUi.kt": "d13aabc798d7fb19746b09d28a38593792792b67e916824776413d2fbe82870f", + "app/src/main/java/dev/tinycast/android/CalculatorActions.kt": "e03e5645069dafb156556efac7bd465f632938f8a5a24a78be72dff0ee5d3947", + "app/src/main/java/dev/tinycast/android/CommandEngine.kt": "b6be72c82b19fb09e1bf44cd4dd4148b3dbb0c39098eb42f89e80f9ffa034f78", + "app/src/main/java/dev/tinycast/android/EmojiCatalog.kt": "4dd39955ec38adea02d0c1974ace2b33d86ae738efea0e59d3e62b9072c10b81", + "app/src/main/java/dev/tinycast/android/EmojiStore.kt": "f7f5dd63af030b9d179c70336f4b52789d23a318020b6f19ac0c24d20ba8cd8e", + "app/src/main/java/dev/tinycast/android/EmojiUi.kt": "e15b3a4b62f422dccf3ee25b724194889680210d2d43e3ff0353c368538f42f3", + "app/src/main/java/dev/tinycast/android/FolderGrantTransaction.kt": "11361d342e1e1598c85b5ea630f174c3a4590cbfaf9b430a30fbea2b9686a5c7", + "app/src/main/java/dev/tinycast/android/FolderIndex.kt": "6f1b1617a39c0c6e954a1b9b4da0d0d6af3ab7eeac25f2619e299621eec83a99", + "app/src/main/java/dev/tinycast/android/FolderSearch.kt": "4fcf90368ed70b49c192ab1b92b6e367d0a61643f928245f8447f542e745b60d", + "app/src/main/java/dev/tinycast/android/FolderSearchUi.kt": "dad0f473544f8e459aa301ad8eb91ec7380cebbe572e3e2be3f94443585a75c6", + "app/src/main/java/dev/tinycast/android/FolderStorageCoordinator.kt": "ff5491baf9d81ff19b04b35e33a503fc1656bfee9d8eb066453fdbe7e0f83bfb", + "app/src/main/java/dev/tinycast/android/MainActivity.kt": "2bc08e693d69ba4668a675c42dbcabb507755f8e3daf9ee01eaf62fd5744efe0", + "app/src/main/java/dev/tinycast/android/PaletteActionCapsule.kt": "f7228cdd6b6988fb049f0aaf1048d69cc8489e802b4cc42a2b4d6f9e7ceea3e0", + "app/src/main/java/dev/tinycast/android/PaletteColumn.kt": "cd6cdc348752bcc20bd631e2216abdd4ee0c91d9606aaab62ce0c01a145dd6aa", + "app/src/main/java/dev/tinycast/android/PaletteDialogs.kt": "99055192ab85f645a9d9c77d96064b06bba2f1435de503bc45be8f56b4de2dc5", + "app/src/main/java/dev/tinycast/android/PaletteFooter.kt": "5b62c907b46e5075975fc22d01771f5ab7c7f53e433692de55d92865231e967f", + "app/src/main/java/dev/tinycast/android/PaletteFrame.kt": "bfbc139e01a4276770644d5f4c1242016839fd98f5e2f21fa8afb31c886bc763", + "app/src/main/java/dev/tinycast/android/PaletteMenuOwnership.kt": "0be25f335246b8e47bf07ea057adf2045a20f9db5bee90a396109adfa7426174", + "app/src/main/java/dev/tinycast/android/PaletteMenus.kt": "43bc24a46a1ea0bac20f096a7d5d5256250c1c1069e0990bc958881830533dd3", + "app/src/main/java/dev/tinycast/android/PaletteScrollHistory.kt": "84e26b8544adc069c9f86e3273acd2254e2189f1680dec592570a261cdf87602", + "app/src/main/java/dev/tinycast/android/PaletteStore.kt": "7434fd21d100108a267e5790ecb705f4ca76c5dd0c86cc5b14bd9644ed58f57d", + "app/src/main/java/dev/tinycast/android/PaletteTheme.kt": "7afa29642b2bda9c9f669eaf6cdefcb977d14417d313547aff1ff807f4e37471", + "app/src/main/java/dev/tinycast/android/PaletteTileService.kt": "6f29825b3560944aae77935bc3abfb6a53e9577735dc622bf80e5ea1a1fbad00", + "app/src/main/java/dev/tinycast/android/PaletteUi.kt": "ae274c6ca3da3afc06a72bf14e77b86e22af35e67b77f4ef9c56984e58d0a3fa", + "app/src/main/java/dev/tinycast/android/PaletteViewport.kt": "7af62cfb3e5c210325dcb514246afadc3b5b5adbffda8cdded88100e8b7e44a3", + "app/src/main/java/dev/tinycast/android/RecentDocumentQueries.kt": "b60f5f6ac3458eb3659dd41aef01bcd20be9d59f3841ff0fa77c3eb6ee82c92b", + "app/src/main/java/dev/tinycast/android/ReviewedTextFlow.kt": "7daf246a7b8a608fe61e06f078bf3167c17df8f784f8779977ba6e87914526ea", + "app/src/main/java/dev/tinycast/android/ReviewedTextInput.kt": "ca681bb2c4eb91188a1550650bf5fb5f83569bf8ac954ab22abc0ce05ed17e73", + "app/src/main/java/dev/tinycast/android/ReviewedTextUi.kt": "5ded41175e114968aa1994c93ade551b21121db15c4a4a7ea5ff87deaff00d86", + "app/src/main/java/dev/tinycast/android/SearchClearButton.kt": "0d4b0bc74a48d1c2d13a62fcaec60adfa51c8966199ea71465dd3ecf40510229", + "app/src/main/java/dev/tinycast/android/SearchKeyboardButton.kt": "bc563f664a6498035de8c8629a919869184904aa696ca0dc821fa68c2c4a3d84", + "app/src/main/java/dev/tinycast/android/SettingsActivity.kt": "6c8a09cf51abdfc1f61c305b17e613f7b40f9960168aad2fafebdc31155a3601", + "app/src/main/java/dev/tinycast/android/SettingsUi.kt": "55886d17261a019fcddac77f25e655896217dadd081db6da23a2e519a6bad35b", + "app/src/main/java/dev/tinycast/android/ShortcutReadiness.kt": "83a422a837edc657f1f3faf94c155019eae73f1abcc8761379dcb2051ceed505", + "app/src/main/java/dev/tinycast/android/ShortcutUi.kt": "394fadd7890bbb2dd5f851bd5a290ebf19ad4e05fae64c321e529eeccd35c632", + "app/src/main/java/dev/tinycast/android/Shortcuts.kt": "14e08d112e3cc5689a5717f68dce1334d3c2bf92f4a7cfbc2057fdc96418a9b2", + "app/src/main/java/dev/tinycast/android/SystemSettings.kt": "c5c1535d12627b975f8f582437e53d02b4110f4bfb185d5c8d1e9307debc319a", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionCatalog.kt": "4427ae6610fcf75bc8f7ddeec9b869ab5b6698c9042280f9f0efff7ea3422e1e", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionCommandLaunch.kt": "2b253982bfcaa9c2b04178fcd38a04492e450352a459bdf375abc7948e6950c6", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImageInformation.kt": "8a5d61b8f7d594933c6797d12c60f1888b4f4f4ad7de35a306c206406733b5e0", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImagePolicy.kt": "f393349926cd371a67e3e59af0d0eb4db66d124e035259622c5558efb0035529", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImageTimeout.kt": "16e0fb6b411c4cf30fcbcafc7df536f72da84c1a208f0ea47ba1a0b612d762a8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImageUi.kt": "6da7920fd357a8106015a8a6da6d085fd2b8ae2bf26269c4aee670c84f7b0af0", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailImages.kt": "a87f8cf7d311baefd09c62f8a09e282764561bc2fe27b61abe0aec14d8c273f4", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionDetailUi.kt": "15be7bc728b4fa72841db59a6e72e9acece275a5a6315d4ba6b19af22fc06f21", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionEmptyView.kt": "4ab1b0093364ad790235b666fc70ec2642bb40692f3ce7fdb830e6bc514c61dd", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionEngineCompatibility.kt": "36a9b4b35d22bc364ecb1f46d2d9f029e3807315a2d35d2fd231b2a86e8b49c8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionEngineUi.kt": "6972248240f701edcc038ce70428dfd1a716e40894d616918469af3270aaa9cb", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormContract.kt": "6eba4aa3f33b19d4c452212b3bbb33c8ac0cbb8ae8e61963867e83094d6778ed", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormDateUi.kt": "e052fc6c27a78ac0df119c954f7ef43f720ce8ab72462bb712832b6dfdeae18f", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormDocuments.kt": "1071c99bd42ec6265991731022662729fd1ccc0269fee924b229f9ab8c2980fc", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormFileImport.kt": "c91ee69d460190918ee649a61a340429ac0478a59ab5e7ca824db8c17d1f5d00", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormFileUi.kt": "4241a498c65c255db94f833038a1f86a8cb06f27b4cecb3838cc20e953262b01", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormPickerBackdrop.kt": "dff8e4e37d38c1387bfd221f6c43c29272abfa144fff34ada0a0734a9c0f946d", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormSubmission.kt": "7f89b0ef7216cafb22c72a636b3b2998e5d71c9933bcd87d7c65a25b9a2bd9d8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormTagUi.kt": "509187d014c00ca027720e16d22934686d1c0491f10e5e151a27b574cde86a96", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormTypedValues.kt": "bd6b1c9b3e45101715916ee145ad41cfb1b74e206ae733f97d375c119f86af97", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionFormUi.kt": "bdb8f813a82e1e1860ebb08047b4a449a440ffe6d2a005d97c06debcbf4438c2", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionGridImages.kt": "777de62995b645310418d2f0da8adf87c450d8b7459d1c9abab0e9a02ce84258", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionGridModel.kt": "5b104c726a950f09a7cf890a14c0e4e654dfe8f5ea8b1b41468a0822f42a2f48", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionGridUi.kt": "c66cd6ee6d29cd2cc43d45ddbdc15f175ac5a5a39b332736b4cbddecdbf9e6bf", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionHttp.kt": "88ed57ca318c3e0c45e50f85e3157692d479bdae9636127869556cfb553abfe8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionLinks.kt": "cebfba7010fd2a20423527f8025413c21257ecd8e97ddc0dcb321b1c74db71f1", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionListUi.kt": "b02b632904d5d6be8f7b967cd10ccbc72d7e3d8fff3caf66c4fb444bce7de136", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionMarkdownModel.kt": "723a518700e335179c296e8b9b05ae9a899c8aaf93b8ca02b76476a46879d6ea", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionMarkdownUi.kt": "54d1b8dc6b09e55a7b0adf7d23903c9fb97551673a5695196e2e6f89259e304d", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionMetadataVisuals.kt": "882b7080d8f46cc9c9e2fd96fd1cc5cb0565cbb282bf3b04cad1c31b77a32290", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionPasteCopy.kt": "3ee4dfbb356c6ec02f50d8d525ca805c0d21468f49529b002e054ff9c03c71b8", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionPayloadIdentity.kt": "66037b60818bc4941f58551e6c1401c18641a6da43f9f2477db9c9f7838e29f0", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionRuntime.kt": "8df6a1a357a7133ce451930cc174b7382d70db75906724358ae40db664f6402e", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionSelectionDelivery.kt": "f13388787b615343c214a861a619bdba88b6327dc939365a130e9e799169c397", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionSvgPolicy.kt": "1bed94b2ea8e6d2475526a0ed83d85724e32893fafc8b27bd8f2b58a95cd868a", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionUi.kt": "009e3b23953be18ae09c76a849dd6ce3943dff6b4f2d4b40d846385044851b3f", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionWorkflowEvidence.kt": "98f65f5dbe1578b11fbb20d80f477a63b03659f7b11b1a7a6f526a4d6fe94379", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionWorkflowInspection.kt": "650fdb495d2e1e0ab5331fe8c517baaaffcfe7d15e7f56b5b3f6247a650d01ed", + "app/src/main/java/dev/tinycast/android/extensions/ExtensionWorkflowUi.kt": "93e9af8898ccce7fa1ab8169f08926b1d9fa95ba5657c517d7224f9356488c3d", + "app/src/main/java/dev/tinycast/android/extensions/NodeCpuInfo.kt": "eea176a7259e8f3736878886350610a84a23a6d2799f5337f5c8b07a8fefa398", + "app/src/main/java/dev/tinycast/android/extensions/WeakValueTokens.kt": "5c4d6f5c5b0d7170b554091e1b9cd9d551119ea60d7fe7f03946eb70f498c34d", + "app/src/main/java/dev/tinycast/android/updates/AppUpdates.kt": "63ace29d7dc29e005ffbbdde31cbac4e1d923732604b1e43e6a4db8a3285b508", + "app/src/main/java/dev/tinycast/android/updates/UpdatePolicy.kt": "350a9142ebfc663cd4a0c982ab220fb5f1e3399bfb3207c980ea20fd4c5c4e6e", + "app/src/main/java/dev/tinycast/android/updates/UpdateSource.kt": "aa860f14bd3a9f39e19899f1927fb7a790c54bb4f2704651253d8f867bb3c100", + "app/src/main/java/dev/tinycast/android/updates/UpdateUi.kt": "0bceb6a4221787a58dfb14ee1bcdcd266388720ca8862bd705cfeb10cfe52457", + "app/src/main/res/drawable/ic_launcher.xml": "104e38ffdf3214de23909b7896392f4a974e4fcbcc778c447d5d7a9ce56380af", + "app/src/main/res/drawable/ic_palette_tile.xml": "e063a6c4a1a25d6717a31bc355543d76c7d1babf8e9556e68b1b5e6a2b860748", + "app/src/main/res/values/styles.xml": "de4ad14f9ef41aaa4ffc824af155831579fa1194af5055edd112efee5042f5e1", + "app/src/main/res/xml/assistant_service.xml": "1e9e560563a7d0260fc83126d3a9bf027bf6357adfc811b43bc3224290c77ddf", + "app/src/main/res/xml/data_extraction_rules.xml": "cb4d1da1c1bd38761a9a08cc4d8d1b55839fcc14a6e19badb653f75b23c20eca", + "app/src/main/res/xml/keyboard_service.xml": "b1839c96988c03fea26ce4ed5932b1315013f3d2c16165993afc17368ab7bdd4", + "app/src/test/java/dev/tinycast/android/BackupPlannerTest.kt": "12a55d3644b5094b84cad2e88a5432738021fc8d7c59c232d4e5fc4c2c9a1454", + "app/src/test/java/dev/tinycast/android/CalculatorActionsTest.kt": "e803682a82b89c9703fcfbcbb82424eafef6bae6a13092953a3dc2c877816509", + "app/src/test/java/dev/tinycast/android/CommandEngineTest.kt": "65d9d198e8e1a188e4dcfd5551ced8f558f87a106f42b1d02a1432e8d6b7c234", + "app/src/test/java/dev/tinycast/android/CommonMarkPrimaryConformanceTest.kt": "ceb2ca14cc003385533bdd73b8beefffe92740887537b74c2146160621a23fcd", + "app/src/test/java/dev/tinycast/android/EmojiCatalogTest.kt": "9d70ef96696215e14e561d73f5a41f0b1a8272c3b58e5ad5a8438c31bc53aaa5", + "app/src/test/java/dev/tinycast/android/ExtensionCommandLaunchTest.kt": "f45df47e1740873ed7e771de72a650d9df88cd31bbcf2fd3abf67e3999700291", + "app/src/test/java/dev/tinycast/android/ExtensionDetailImagePolicyTest.kt": "7ec37a8870b70e3df0e3110f8b60ccc94185fedeaf1c39c76a00485dd4ca37d5", + "app/src/test/java/dev/tinycast/android/ExtensionDetailImageTimeoutTest.kt": "839216fc2d395cbd171676f32bfe77b894730a29a12127ec916c1d88b18dfb3d", + "app/src/test/java/dev/tinycast/android/ExtensionEngineCompatibilityTest.kt": "af9e76d4f6e7a6f193603f2db0169c95c7aadaca842d430c6178874f62840b1f", + "app/src/test/java/dev/tinycast/android/ExtensionFormContractTest.kt": "432d658e2a177312105e2ec86db2c59d0625086e86464a7ff946acb61c07e283", + "app/src/test/java/dev/tinycast/android/ExtensionFormFileImportTest.kt": "784f5b78f1dfd0d23ca653b36fc59bd13cba42e68c708c499678ac1ce474b673", + "app/src/test/java/dev/tinycast/android/ExtensionFormSubmissionTest.kt": "4bbdd8068cd95c314f7cf7aa156c7928cd815c5da11ef5f2cab1b4c5d23dd7d5", + "app/src/test/java/dev/tinycast/android/ExtensionFormTypedValuesTest.kt": "3a485a387e1527163d4318c3f0863b743bff02fe4e485adfff490d95cd554395", + "app/src/test/java/dev/tinycast/android/ExtensionFormValuesTest.kt": "6bc5bc8caaa5763e12dc3136bbba1d99249db10387c163cb1efeb0ae03f09d2a", + "app/src/test/java/dev/tinycast/android/ExtensionGridContractTest.kt": "50681a34c624a01867f287c66523d653e1931cf759f5e2926dda60feb85fa2b3", + "app/src/test/java/dev/tinycast/android/ExtensionGridNavigationTest.kt": "94ffe218ed5f9411210c2599db2a10dcd20c1a94655ef53e8cac1c574318b68f", + "app/src/test/java/dev/tinycast/android/ExtensionHttpTest.kt": "76917bbbdcc33dcc90d9b152d5a3e478fd981139e1df1d9edc0916e4f81b8e76", + "app/src/test/java/dev/tinycast/android/ExtensionMarkdownModelTest.kt": "fbeee6a80280ec27b660cc53222ef42f0e9ff5f5ce7ec5e02dede9d6b1c9222b", + "app/src/test/java/dev/tinycast/android/ExtensionMetadataVisualsTest.kt": "6f8653f4ed71138ac4fb0353e427d5b6775f54ec3600177ec6eae49dbc81598e", + "app/src/test/java/dev/tinycast/android/ExtensionPasteCopyTest.kt": "582ebddff12c96a504dd12a502ca851fc5d037e92f1d3ce98240eb162002b3bc", + "app/src/test/java/dev/tinycast/android/ExtensionPayloadIdentityTest.kt": "f59183b3224aab2923d9eb1ae598d1fa5cd2598b9ba80fc9a0db135005ae4e04", + "app/src/test/java/dev/tinycast/android/ExtensionSelectionDeliveryTest.kt": "1ea1e17cf0ea43fa3418a61f71587dbee9ec341b288d17fdaba3c5d3d8da4cb7", + "app/src/test/java/dev/tinycast/android/ExtensionWorkflowEvidenceTest.kt": "cf1589d69a498166b5a5fddd45135cf5b8575ec1d42f13ed4e2927b062b966fd", + "app/src/test/java/dev/tinycast/android/ExtensionWorkflowInspectionTest.kt": "043617c0cb943d76ebcdb5d0cc5bcdcda300069827b9b87a7425a16d084c1255", + "app/src/test/java/dev/tinycast/android/FolderGrantTransactionTest.kt": "ef710edc4ed1eb45782f90c385bc73305217f26882b630cd3e79ee93c59ef118", + "app/src/test/java/dev/tinycast/android/FolderIndexTest.kt": "bd371b19d1678ea876889cfb25505d690a4296c37d042e4cabd38bc7c7e4eff4", + "app/src/test/java/dev/tinycast/android/ModifierTapTest.kt": "bc0f6191ef2837018ca33a71010c1582cd39d0b3713c55acec4f91406a74d4fd", + "app/src/test/java/dev/tinycast/android/PaletteMenuOwnershipTest.kt": "c3134a62d61b5cd7ed810b867a6b40219713f21b798fabf6e659129cfab55506", + "app/src/test/java/dev/tinycast/android/PaletteScrollHistoryTest.kt": "b1610e3c3818e5823f99ded35bc36325042da250cfd48d98c0d6381066cfad5f", + "app/src/test/java/dev/tinycast/android/ReviewedTextInputTest.kt": "4bff225dd9fc1963736ad1f992e3eda3ffff21554c3ebef63d25acfdb41a29f3", + "app/src/test/java/dev/tinycast/android/ShortcutReadinessTest.kt": "45d32b02d4f89f857867d2585f3f5968251e9580edd34d9312bbfc158adc12e1", + "app/src/test/java/dev/tinycast/android/ShortcutTest.kt": "ae8034901d8ca73d704d40992b85ed43a64a021a078ff4eb5b2b853c4f398610", + "app/src/test/java/dev/tinycast/android/SystemSettingsTest.kt": "cdfc38bed12779bb92b0ddaeb79d197733243b24da43ab89d8580ecfd1f1fb51", + "app/src/test/java/dev/tinycast/android/TinycastGridParityTest.kt": "df6ca13f0f0a1e4bfa1f0085e274ed87457a6aa1a69492afa1041128af99c5e3", + "app/src/test/java/dev/tinycast/android/UpdatePolicyTest.kt": "d87ee4f7d6aa7b39b998267bd4d042d0b494ec6a1280d18860f262355c25cbe3", + "app/src/test/java/dev/tinycast/android/WeakValueTokensTest.kt": "ced7bf72628d5dc18fc5fdd30a81e58bb4b4b7f40e4e8c7eb0e77500f7c73566", + "app/src/test/java/dev/tinycast/android/extensions/NodeCpuInfoTest.kt": "5f3a7aae9b24435a4dbca77f9132a4b203ea736b1c76fc9108a51251983c2797", + "app/src/test/js/android-fetch.test.cjs": "2842effb321a11a33816f176f3300cd27a61c1e2ac70c4ed32681d46a129e56e", + "app/src/test/js/android-form-focus.test.cjs": "dd065271386dfdb2552caef1ae6e0c6f30e32783571abd85be328b9864bff8b6", + "app/src/test/js/android-form-submit.test.cjs": "7cbbb553dc2e657951b9195593b11add03597adad2710b4daa3e2cb807f87334", + "app/src/test/resources/commonmark-0.31.2.NOTICE": "610241b963a1a958c9465d99ec3f5778e7c6ef7251f9e119fed4c306b51641de", + "app/src/test/resources/commonmark-0.31.2.tsv": "dc27be954caac0ed8961299ca581a62aa4c68312091e68e52ab1e2bfe6aa5f5f", + "app/src/test/resources/extension-payload-identities-v1.json": "e451cf6b8efa208708db43dcb3a0545db1e73c610b72f488203fb4f147a490ab", + "app/src/test/resources/tinycast-grid-navigation.tsv": "da620f314fc39300beb7a11436715809ac1a9fd230fa4640c7f4f9c34b69aaf7", + "build.gradle.kts": "780d597cbe0f80d0103221a566db7574d1e07b17adca5bdbe7d6c728d77df12a", + "gradle.properties": "e43a00491832254a35cf5a979ef6de17f78c4e159d446be39319d2e3d3e46325", + "gradle/wrapper/gradle-wrapper.jar": "55243ef57851f12b070ad14f7f5bb8302daceeebc5bce5ece5fa6edb23e1145c", + "gradle/wrapper/gradle-wrapper.properties": "13287ffad6cf3064056ddad80d95b855132348930b2dc6c91490588c55b3ac7d", + "gradlew": "aed171fb114f82e6eaea4970a245a200e0582a7dcc8ec0891ca41b6e4a62b754", + "scripts/android_clipboard_recovery.py": "4aa2d03a100791544d282de37a2f62b6f7bfd94c47cc5611b6b6448ed8a946c1", + "scripts/android_form_documents_fixture.py": "ef44f5a9af1397fc8e8ea1924e36c2dec18d5c56c02e22f4925752daf1034841", + "scripts/android_test_cleanup.py": "1f4a1d70d251ec0a8294932388ce881da144c9c7d1c05df54df2c5b246d46373", + "scripts/extension_bundle_snapshot.py": "08ae0408a22e4f4c3c8a8b22af31b6a6a16d304dc0d14d5e489596dd9731a950", + "scripts/extension_manifest_catalog.py": "18c6048a0690e68dba3da1e8d11c5abccac16c3c26aa8803ff80abfd1dabe7e4", + "scripts/generate-emoji.py": "98f43c9a5941b4e65533e31ff7d7eaa4e697d8fecd4c7424297e6957e07abd53", + "scripts/generate-tinycast-grid-oracle.py": "bd53975673883b624d2553cd47687c5a3a760b17181a8c0621715ed1599b3118", + "scripts/package-nightly-update.py": "2a650baee0c7c76eadd360171e19686aad7b960fe34ebc780638c6b231032420", + "scripts/summarize-readiness.py": "e63d9d2ec435d2c369ae0be126bafb0b0507e903b03674f11a77ee10b428fe64", + "scripts/test-api-compatibility.py": "1ba4bf24535130bfd59a5f1d9d4830ca075e7158fc2cbe316696fcadb6108065", + "scripts/test-assistant-touch.py": "fd5a4acfdd19ddc60eb467fea3c7d2e8ab7ac717bea35c76d007577c23235a54", + "scripts/test-calculator-intent.py": "93ef5653c4d0c153d8f216c9fd74557089a964eaab80c84c85ab5460ec58f1a1", + "scripts/test-configurable-shortcuts.py": "56f4581f78265ec2c28faa1da115ae10a8349cf47e10db60bfba3e88f0cc3e73", + "scripts/test-extension-grid.py": "26f15b12f40277cbd3b6b874c58e41ab7e26735ef8e70634e5b5eb53b5652560", + "scripts/test-extension-workflows.py": "c6cce4d533b45655a7763305379107840a93a1a953be0322a869c7505ffc0997", + "scripts/test-global-shortcut.py": "4a0f57d16dfccbd0c7b33d6b78a841ccad030c4bad6fb108ac80f15dc89f6d6a", + "scripts/test-modifier-taps-hardware.py": "b0d2da7fd2410095d65ef20e25cd9b8e90f9b480849dfd5e497f75d4d713139c", + "scripts/test-modifier-taps.py": "8cb08d228371c90f995ae2246ef0a92daf6c81724c11a1ac67374ed0dd347dab", + "scripts/test-readiness-benchmark.py": "1f92dc1989f1ff36c82433d6eaab1e2c896abf7541a24a9b215c109e49d1a7d9", + "scripts/test-restart-files.py": "65f1c311df77634f746cb155d831acf1fa4d8cf05d0e1dabc9d372bf1e842065", + "scripts/test-reviewed-text-input.py": "4e9ab25f0b1bce00277d0dde5a37a29ab8cbbdb9900699c5bdfd9cfa4b9bb248", + "scripts/test-reviewed-text-process-recreation.py": "eecd547c48ad2bbce2d8bae62bbed26a2484e0b5d97ebb7cb989ba98d4de2a23", + "scripts/test-search-header.py": "772cb70442bbf28086beb8087ebce94d02ba6cc10e6acf8c2cf91a0d8d5b39d0", + "scripts/test-self-updates.py": "4ff148ea90c3a148a1eacf74116db288e5e9c282f69e0c331caa6f22b1a40889", + "scripts/test-startup-performance.py": "9ac605bf3347fde625d279767bb8fc4de76ae82f099e7d8351416fa5bc9250ae", + "scripts/test-touch-readability.py": "d9ae59ab3db56d63cb5c959c200263b71acd0e04c305dce4e9ceb8a395933fb6", + "scripts/test-webview-engine.py": "d7fc4bccc15eca35d2af00fcb7a9cda594a3c5fe5fb336785b3a2efea4745c1a", + "scripts/tests/test_android_clipboard_recovery.py": "b260d3adcfa33e2641affebee9bebb1676097b4a24bbdbeb89cef7f3fc889176", + "scripts/tests/test_android_form_documents_fixture.py": "c2b573793d6c5d48fe9dc8e75ffc554e11818e319507080a4b96aa4e24e1fc03", + "scripts/tests/test_android_test_cleanup.py": "49c8831c517f0777f46952376f5d3b783322eeb25f063d69a9b1bc2f8cde01cf", + "scripts/tests/test_extension_bundle_snapshot.py": "382561907129ac58b7e20b963c1afcbc9bc1a03b7e18da64e7d61927a8b15783", + "scripts/tests/test_extension_manifest_catalog.py": "57af21edf39e3e4084453830eed62d3c052ba8d8a4f942d3d69807e2cd4b69a6", + "scripts/tests/test_extension_workflow_guards.py": "1cea982b85cf759e691471cad72b8e2cbdccdf3c2ccc6c483b1ef01b49002a3f", + "scripts/tests/test_private_archive_transport.py": "168c1607d4e1efa7537241cf362316ce354706af33465dc63e73d210ab0327d1", + "scripts/tests/test_private_path_observation.py": "3c0fff3062ac9b43aab67ed4ab2d53b92fa39f9af9e0ada9d197856a1df94e95", + "scripts/tests/test_reviewed_text_archives.py": "0308a50c148c97ed50381e894eabd43ec6e374878f99b810244c24e25f1a626e", + "scripts/tests/test_reviewed_text_runner_guards.py": "a3d489fe141be669374ecd0b3a6231afc5efdf4abfc6a74f7d25efec4e67038c", + "scripts/tests/test_webview_engine_runner.py": "846ee3b34578f92bd3f728eac4044c5ef4481478e3ec9d744e848e0094119168", + "scripts/verify-recorded-workflow-catalog.py": "fc0ec3b595b3a892238a4e0cc19b79ca092e8dcbe3e4af1d261e4874f984c2d5", + "settings.gradle.kts": "6a8db88135b364d8bd2facb607fc4e9e9476c171d2b7f7f3a0892c57a9ee6487" + }, + "apk_sha256": { + "app-debug.apk": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "app-debug-androidTest.apk": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d" + }, + "zip_payload_sha256": { + "app-debug.apk": { + "META-INF/com/android/build/gradle/app-metadata.properties": "75bc66260aeed5c7da9ef86b1ee98fe13298d9dd0bc438ee5a963d5eb224f68d", + "classes.dex": "02040ff106a54d6dd8ed10f6192541cb671f62f166bf413798e0fca382d390b4", + "classes2.dex": "21fe524b9ec548ac16c1cd9813dee74787a7fee1b5bd0a7719f0a9807c43a39b", + "classes5.dex": "2b4eaca1be7a4156ef80f400b13d93c8a8f82de2b4f61ffbd2ea2080bfa20788", + "classes6.dex": "4cb87f7ace7c665d16755b3466eca73c87cc7167104d4b901b704bb2a4c9d30b", + "classes7.dex": "04459089f64d575513ce6b9ed9fdcc3cb12fb2817ed84a2b73e8b0d3f0392f68", + "lib/arm64-v8a/libandroidx.graphics.path.so": "41e9a793c43a0f4fddb19e33f346bace464f30f888ba7b9eaf96294ea115bfb6", + "lib/armeabi-v7a/libandroidx.graphics.path.so": "41399eba6fc2a60f6f14642375c1824f3cf25eb8fec7397d753730a3ceda3e2b", + "lib/x86/libandroidx.graphics.path.so": "eb0570b41fd3bff25d8204a967c03bd7550719e768b791f680cc40cbe35f29af", + "lib/x86_64/libandroidx.graphics.path.so": "4e56c996f13670e70082658de7880c4020eabf4f25e43387f88ed78a713fc9f0", + "assets/ANDROIDSVG-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "assets/ANDROIDSVG-NOTICE": "2e61b715e3553494f46f43e5a88e8d26c56201e0558c8d5ab02946edb4f7dedf", + "assets/COMMONMARK-LICENSE": "11cfcf6da0142fb1971c1f40f5924ddded14454e2793d7f1dd87c9f4abe42dfd", + "assets/COPYING": "14609801e0e520dac851e75d993ca4c75c3842a3be468f6f7f04a16c03c824db", + "assets/GEMOJI-LICENSE": "7ea1d1fd0602e6623b9a65e791499a0ea5a2f5f60f91bfad78cbaeee19da26e6", + "assets/NOTICE.md": "c263e44ea9a845c4e4ec564eeca46ae0fc343f63ffd10685afbf74586647e0f6", + "assets/REACT-LICENSE": "da6d3703ed11cbe42bd212c725957c98da23cbff1998c05fa4b3d976d1a58e93", + "assets/RaycastRuntime.generated.js": "b306b45453cc8507037ff2822066475aae17def757a8ef72d4a4fc64c6494bb7", + "assets/android-runtime.js": "1b5dfa3f5b512f55322f27703bbebf15d1a8c4569c4c1712a6dd64541dd552aa", + "assets/emoji-catalog.tsv": "e49f1cc09c6f487a6e7b55590ecc171dcff390f720a9ce3820fe2038810d5d66", + "assets/extension-workflow-evidence-v1.json": "4e8adc22b7887996140190a999f1c7272556f2dd379d219c88e276e48aea0fa5", + "res/color/vector_tint_color.xml": "4bbb4ef3e0e3db260a05d794047a1765e420d699ee5673e90b57ff682a2fe34e", + "res/color/vector_tint_theme_color.xml": "cf34dc5bdb4a6d1568143e115ac4e34448383ac772862ef0fdbb7fe8936c6dd3", + "res/drawable-anydpi-v21/ic_call_answer.xml": "5f6376dfe199d8a6e40033d3e623989d052c9b2f974d00c824fbb8b76fc6fde8", + "res/drawable-anydpi-v21/ic_call_answer_low.xml": "8f9acacabaf2dfb4bb53dab7ce7bec9c1451ce0a0219ffaa41760ea82da3d2d6", + "res/drawable-anydpi-v21/ic_call_answer_video.xml": "5d4cdaae5838ad9442c085f951b766b2808bff13b8c85a14e0bcf8571514492c", + "res/drawable-anydpi-v21/ic_call_answer_video_low.xml": "4a959580080ebb1d822a2459a4234d2abf0dd0b65d9c28bda8c258dafc888c51", + "res/drawable-anydpi-v21/ic_call_decline.xml": "2d825b79cce60203492ff09a04826db0ac8d9eb9bc0fb9fb139ae1aa5cde0f67", + "res/drawable-anydpi-v21/ic_call_decline_low.xml": "c8321364802409baf4d76e2a84e303871585bdc95b0395040c5ecea0e2051105", + "res/drawable-hdpi-v4/ic_call_answer.png": "5c80d88a7b82ef5833255bf70ff1c26c3efb2a92ae90cac222f3200f59e0b1ea", + "res/drawable-hdpi-v4/ic_call_answer_low.png": "5c80d88a7b82ef5833255bf70ff1c26c3efb2a92ae90cac222f3200f59e0b1ea", + "res/drawable-hdpi-v4/ic_call_answer_video.png": "6adcfc9dd1e1b82b985d223fc8a01c8e8f0dd3b9051d38062674b2380af79a50", + "res/drawable-hdpi-v4/ic_call_answer_video_low.png": "6adcfc9dd1e1b82b985d223fc8a01c8e8f0dd3b9051d38062674b2380af79a50", + "res/drawable-hdpi-v4/ic_call_decline.png": "12ec9f9ad5fa3d7d897114af6c2297b66f31cb056e43daffbe80d23f6f66396d", + "res/drawable-hdpi-v4/ic_call_decline_low.png": "12ec9f9ad5fa3d7d897114af6c2297b66f31cb056e43daffbe80d23f6f66396d", + "res/drawable-hdpi-v4/notification_bg_low_normal.9.png": "21f0b55280be10b187ceff8edef4a5a7047683e6e9fcf47de410aa3839f41094", + "res/drawable-hdpi-v4/notification_bg_low_pressed.9.png": "42aee0b03883e94df5e543348a397d1302c1b8221895871a83b81899f5a9647b", + "res/drawable-hdpi-v4/notification_bg_normal.9.png": "0c6328c7b2420570a7ec38b3beb3bac9a29d895ac1ab7239315aba7266418593", + "res/drawable-hdpi-v4/notification_bg_normal_pressed.9.png": "18b328d8017e677d5aad3dbd66bae356b5cac978c6f0670938ea648e51d0eb66", + "res/drawable-hdpi-v4/notification_oversize_large_icon_bg.png": "aa00088d0d9fd97bd92ed9ffd29b54bb69a48a984aa73448ce553fb9d812be41", + "res/drawable-hdpi-v4/notify_panel_notification_icon_bg.png": "8430ec003e003f3f2ba2f78d48fd150e25407667e530e82e87a7d4841c0fd676", + "res/drawable-ldpi-v4/ic_call_answer.png": "6d34a8bb29be26e343781603588506f33bd1b93732a1c1bc9fd84678aa36b178", + "res/drawable-ldpi-v4/ic_call_answer_low.png": "6d34a8bb29be26e343781603588506f33bd1b93732a1c1bc9fd84678aa36b178", + "res/drawable-ldpi-v4/ic_call_answer_video.png": "66356f564f051a568e25071f60da312c418309f9129773aceb2246773458681c", + "res/drawable-ldpi-v4/ic_call_answer_video_low.png": "66356f564f051a568e25071f60da312c418309f9129773aceb2246773458681c", + "res/drawable-ldpi-v4/ic_call_decline.png": "a18cdaaf3742b1a3d4f484fa15d00fa34afb21495884301aafa3213338661ed6", + "res/drawable-ldpi-v4/ic_call_decline_low.png": "a18cdaaf3742b1a3d4f484fa15d00fa34afb21495884301aafa3213338661ed6", + "res/drawable-mdpi-v4/ic_call_answer.png": "f2ff62f473d8a5e00a8b6c81c15be9a0536471c3d5a81e37d04bc3356ea81ca0", + "res/drawable-mdpi-v4/ic_call_answer_low.png": "f2ff62f473d8a5e00a8b6c81c15be9a0536471c3d5a81e37d04bc3356ea81ca0", + "res/drawable-mdpi-v4/ic_call_answer_video.png": "6306048ba5f7eca43e7bdadeefa9412180508486fd543e02de93d2a013e223f0", + "res/drawable-mdpi-v4/ic_call_answer_video_low.png": "6306048ba5f7eca43e7bdadeefa9412180508486fd543e02de93d2a013e223f0", + "res/drawable-mdpi-v4/ic_call_decline.png": "7e87b3e0229126dc3c2bdaddcd8f330f3bb5f7613a05024c3cd6445dd161f788", + "res/drawable-mdpi-v4/ic_call_decline_low.png": "7e87b3e0229126dc3c2bdaddcd8f330f3bb5f7613a05024c3cd6445dd161f788", + "res/drawable-mdpi-v4/notification_bg_low_normal.9.png": "2f7fbda0ba6e53e9a47e2fc0e24e32c447c613a5808c2d6285dc651e83a07ad7", + "res/drawable-mdpi-v4/notification_bg_low_pressed.9.png": "e17761ed280edd93d7141bd504b70f9e9e15a8652288d9e6333bf4ce964ef844", + "res/drawable-mdpi-v4/notification_bg_normal.9.png": "a8676a1793ac8310ffb12986232df66df092d29c242aeedc2b73556c010d38dc", + "res/drawable-mdpi-v4/notification_bg_normal_pressed.9.png": "99c14d6855b8be296d58017d3751b8dc849c47b6d1d80ab614ff9075080e461b", + "res/drawable-mdpi-v4/notify_panel_notification_icon_bg.png": "0d773e62c756422313262846c787e58f67e0ee87e45e1ae9942002e816c4cb9e", + "res/drawable-v21/notification_action_background.xml": "2f768c089cefa18cf7f1fde7f602410bf38998de5f9073a15ea83106c25e3c30", + "res/drawable-xhdpi-v4/ic_call_answer.png": "e64c2e57627e24ec1ed37e67344c2bf31d1d6bdd2d8d715840c1edf0bd1425b6", + "res/drawable-xhdpi-v4/ic_call_answer_low.png": "e64c2e57627e24ec1ed37e67344c2bf31d1d6bdd2d8d715840c1edf0bd1425b6", + "res/drawable-xhdpi-v4/ic_call_answer_video.png": "5d02a81102644428ca639aec3df626eeb4a839a9ddc76fc2b158b04461d7f00f", + "res/drawable-xhdpi-v4/ic_call_answer_video_low.png": "5d02a81102644428ca639aec3df626eeb4a839a9ddc76fc2b158b04461d7f00f", + "res/drawable-xhdpi-v4/ic_call_decline.png": "9a9a30c305022a2f8e075d2ed7d33f5c7711bba8d0d0385511fdb62f89f208e3", + "res/drawable-xhdpi-v4/ic_call_decline_low.png": "9a9a30c305022a2f8e075d2ed7d33f5c7711bba8d0d0385511fdb62f89f208e3", + "res/drawable-xhdpi-v4/notification_bg_low_normal.9.png": "3e09afa21c45372c035598c017c8fb405a6d678e6cb84dc857581cb3b40e482d", + "res/drawable-xhdpi-v4/notification_bg_low_pressed.9.png": "20343222f9f79dd565c3a2248494d452e70820ac1c437173c38badd45f962afd", + "res/drawable-xhdpi-v4/notification_bg_normal.9.png": "559bf783d765c02338e97952bdc9c6689c7ff99090b8c9813369118da8b080f0", + "res/drawable-xhdpi-v4/notification_bg_normal_pressed.9.png": "d27af435101ca4cbec0c840bd30687918cd39eb83aab1487420855623a45998b", + "res/drawable-xhdpi-v4/notify_panel_notification_icon_bg.png": "b44eeda34d7a529c2fe55719eb098fa29707caa91d18de06a7a775d6e6bcf973", + "res/drawable-xxhdpi-v4/ic_call_answer.png": "86763a30af2a934c7c13b123b36443d1d17918b71c6149bc6ee80115b872593d", + "res/drawable-xxhdpi-v4/ic_call_answer_low.png": "86763a30af2a934c7c13b123b36443d1d17918b71c6149bc6ee80115b872593d", + "res/drawable-xxhdpi-v4/ic_call_answer_video.png": "ca48f604262f2b4ef8b100c73130efe2ad33ef8c2a2c1b3516f24f51b7b04665", + "res/drawable-xxhdpi-v4/ic_call_answer_video_low.png": "ca48f604262f2b4ef8b100c73130efe2ad33ef8c2a2c1b3516f24f51b7b04665", + "res/drawable-xxhdpi-v4/ic_call_decline.png": "87adad32e0ec19c4e920420bf3a06c9f94f6128ed0d866a1891628aeab2cef06", + "res/drawable-xxhdpi-v4/ic_call_decline_low.png": "87adad32e0ec19c4e920420bf3a06c9f94f6128ed0d866a1891628aeab2cef06", + "res/drawable-xxxhdpi-v4/ic_call_answer.png": "ec698a3217bce74d8bc4a44bb008f2dbd3d1aebff1af1e9641805143dbf9fa87", + "res/drawable-xxxhdpi-v4/ic_call_answer_low.png": "ec698a3217bce74d8bc4a44bb008f2dbd3d1aebff1af1e9641805143dbf9fa87", + "res/drawable-xxxhdpi-v4/ic_call_answer_video.png": "4c717ce1ffb551c765981add65d1956132d8f522337de2866b045f0a60485426", + "res/drawable-xxxhdpi-v4/ic_call_answer_video_low.png": "4c717ce1ffb551c765981add65d1956132d8f522337de2866b045f0a60485426", + "res/drawable-xxxhdpi-v4/ic_call_decline.png": "ab73b729bb95878120a3bdc8dc915f3aaa1d7070fc644a0de64d40941ad507ed", + "res/drawable-xxxhdpi-v4/ic_call_decline_low.png": "ab73b729bb95878120a3bdc8dc915f3aaa1d7070fc644a0de64d40941ad507ed", + "res/drawable/ic_launcher.xml": "65a462fe84c64e76de6f6999e09b195ca227a5232453356a4743a17dae08882f", + "res/drawable/ic_palette_tile.xml": "099260576b37718ecf049e1405bcb60d989584dda8710e0905dd00d97edb3440", + "res/drawable/notification_bg.xml": "65ef0869565cde9539d285ee8b5e0156e4ba3bfc7fde288b3d78a96ead8bed62", + "res/drawable/notification_bg_low.xml": "a349184bd1ffb192438415fa98cb2ea5b9294a656d6f276f365b9b2753552777", + "res/drawable/notification_icon_background.xml": "b143ee7fcbba209f17607a720502d755f085ec75380ad6fbd6f99de6583f0a40", + "res/drawable/notification_tile_bg.xml": "42fb6470d6c3d395ab726d928ca23ba8573011a646b7475a89c9b17ec8c0f9bb", + "res/layout-v21/notification_action.xml": "e07d16d0717fb7a1f030dd43f76be647125f9abd78ebcee3bbd861b8df02fe90", + "res/layout-v21/notification_action_tombstone.xml": "c2f8eb9372d806f5f6532e507f4e5767091f681f7d2e9b7f5a64d134e6ed7717", + "res/layout-v21/notification_template_custom_big.xml": "2bcb3cb25a65b175c9880f60411239a019c2ded7cbaf3701d3650ebd1fd971ea", + "res/layout-v21/notification_template_icon_group.xml": "97d5723ad66c683d88d57918e197cb33d2dc1628aa77299e42e132622c2c948e", + "res/layout/custom_dialog.xml": "edd4e27b3f2407a02248205a2eb50288170e4201249bfeac074749ea60390103", + "res/layout/ime_base_split_test_activity.xml": "37ff040591f96786bfaf9d3d937fedf2f2f97e218c06beb3e7fe8a2442a181a8", + "res/layout/ime_secondary_split_test_activity.xml": "0034556846afe7278a6d1264855405a0c3ae65a81a6a05f9ba4dc0136a589685", + "res/layout/notification_template_part_chronometer.xml": "8bd30447bb9347f4c3dd38ff034f141000c7a952ac25760fc8a0c67f76b5bdb7", + "res/layout/notification_template_part_time.xml": "a8664275b4a0fad8ac25724d8d577fb5cd98c4e99a24fc362dbb56fb960aee84", + "res/xml/assistant_service.xml": "461b22a285e6d4cc97c23a8aa9f13802c16f20eff91d1ce1ca4739a527b6c99d", + "res/xml/data_extraction_rules.xml": "1d2dc5515fa0bfac79b6a028056f23ef2e9fd0c9091c9b13c15b52b78a751ab0", + "res/xml/keyboard_service.xml": "688f6294b5c093499f1253d5eb72c5fef80324d0c7e3bdcdff193c8ad9e851e6", + "resources.arsc": "5f13aba27cdb9bef26e38933801042374f3cba444e3fa3c145c99166eace2fb2", + "DebugProbesKt.bin": "ae8a082dd609313835ba93c3ef479a3af9903977d7bdc81df45bbd209ec7d0da", + "META-INF/LICENSE.txt": "523bfd872d038632d258f340a482d067a10e8d82b8e8ff3081755c5f8ccc1658", + "META-INF/androidx.activity_activity-compose.version": "118705d21506adb8d7c06a51156bb59497679f644fb4ae3d14bbbfc366643124", + "META-INF/androidx.activity_activity-ktx.version": "118705d21506adb8d7c06a51156bb59497679f644fb4ae3d14bbbfc366643124", + "META-INF/androidx.activity_activity.version": "118705d21506adb8d7c06a51156bb59497679f644fb4ae3d14bbbfc366643124", + "META-INF/androidx.annotation_annotation-experimental.version": "7d072b48526b023950e4c48db01e8c273554a6401119f5691e7589ba9bc65d9d", + "META-INF/androidx.arch.core_core-runtime.version": "1b7c606370188534dac5561fba2b2988093829697fce9e6e8832e9291d24ed00", + "META-INF/androidx.autofill_autofill.version": "59854984853104df5c353e2f681a15fc7924742f9a2e468c29af248dce45ce03", + "META-INF/androidx.compose.animation_animation-core.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.animation_animation.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.foundation_foundation-layout.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.foundation_foundation.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.material3_material3.version": "10e2e117b01523891ca271a615ae36e9d5e52348fd7d642f66727602c1b8dcbe", + "META-INF/androidx.compose.material_material-icons-core.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.material_material-ripple.version": "bb7320d831e7a151aa901c35e7326c752fa2ef5024f30768c42319b8bed171ed", + "META-INF/androidx.compose.material_material.version": "59854984853104df5c353e2f681a15fc7924742f9a2e468c29af248dce45ce03", + "META-INF/androidx.compose.runtime_runtime-saveable.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.runtime_runtime.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-geometry.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-graphics.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-test-manifest.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-text.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-tooling-data.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-tooling-preview.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-tooling.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-unit.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-util.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.core_core-ktx.version": "ca0bc79c4cde0ad64e1ec9df2882425197b5ba85704a4ac6bd67f8f99936eb25", + "META-INF/androidx.core_core-viewtree.version": "59854984853104df5c353e2f681a15fc7924742f9a2e468c29af248dce45ce03", + "META-INF/androidx.core_core.version": "ca0bc79c4cde0ad64e1ec9df2882425197b5ba85704a4ac6bd67f8f99936eb25", + "META-INF/androidx.customview_customview-poolingcontainer.version": "59854984853104df5c353e2f681a15fc7924742f9a2e468c29af248dce45ce03", + "META-INF/androidx.emoji2_emoji2.version": "64d23f858ef51b0f996e4966d4e27c0371b437e2d2787890b1f7ad22d4ec5663", + "META-INF/androidx.graphics_graphics-path.version": "44e161e4495cac2cf7858043e9e6418e9579f0ddcfae826f9a372622968ce066", + "META-INF/androidx.interpolator_interpolator.version": "59854984853104df5c353e2f681a15fc7924742f9a2e468c29af248dce45ce03", + "META-INF/androidx.lifecycle_lifecycle-livedata-core.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-process.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-runtime-compose.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-runtime-ktx.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-runtime.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-viewmodel-compose.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-viewmodel-ktx.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-viewmodel-savedstate.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.lifecycle_lifecycle-viewmodel.version": "f48da3d32b75f2a1f076aeb96afbffb54ee311bb42e7ff5952e818b275a60368", + "META-INF/androidx.profileinstaller_profileinstaller.version": "78b591400c56b7b67b8cb3b2b8a8e65e9093897f02ce0878e6b5405c68620fa7", + "META-INF/androidx.savedstate_savedstate-ktx.version": "6cf4e084b47f33c9b02ef79279d157833868f8f70514169a768be353ee328fea", + "META-INF/androidx.savedstate_savedstate.version": "6cf4e084b47f33c9b02ef79279d157833868f8f70514169a768be353ee328fea", + "META-INF/androidx.startup_startup-runtime.version": "cc52f678848b814373757b460383bf61960e4943c203735adde0a350b3e50989", + "META-INF/androidx.tracing_tracing.version": "59854984853104df5c353e2f681a15fc7924742f9a2e468c29af248dce45ce03", + "META-INF/androidx.versionedparcelable_versionedparcelable.version": "cc52f678848b814373757b460383bf61960e4943c203735adde0a350b3e50989", + "META-INF/kotlinx_coroutines_android.version": "179f9b723b6508aa1d6ce99991e8cd549ca819ee1b9b6102396c47815beffaaf", + "META-INF/kotlinx_coroutines_core.version": "179f9b723b6508aa1d6ce99991e8cd549ca819ee1b9b6102396c47815beffaaf", + "META-INF/services/kotlinx.coroutines.CoroutineExceptionHandler": "3129b8edf6db07de6f8ff47695e2177c8bba4eed2962d3085c719e5acbb58a33", + "META-INF/services/kotlinx.coroutines.internal.MainDispatcherFactory": "a1ea77ea8f93f419256b6e66f29713f950d8d6e90442b608d880a48003b5eb72", + "kotlin/annotation/annotation.kotlin_builtins": "5f75d4352e432664b2a235c472b991cf88365c73f5fcb5e1f9cc2cbe4b410abe", + "kotlin/collections/collections.kotlin_builtins": "0e654e03a38e119de0f4d11633711bd57e1e8b1a876eda74a90100a2a6e7daa4", + "kotlin/concurrent/atomics/atomics.kotlin_builtins": "955035527393d165a22da4cb9d992f42b4a30b6f070918f3e2b1f2678f83cc9d", + "kotlin/coroutines/coroutines.kotlin_builtins": "98ab3a3c18fcb237528dd63fa489815c583e1d6c13debd2a27ac6d74ccf8717b", + "kotlin/internal/internal.kotlin_builtins": "64712f94840e6b3f8123f522f32d08c46f083d87c312a74901f7c00224de775e", + "kotlin/kotlin.kotlin_builtins": "c4240215bc20e71b01cc62b43edebd02749b3249d7daa8e7f1dc1514f064c274", + "kotlin/ranges/ranges.kotlin_builtins": "f9d35b836ccb5380803aab5e6c76d708b1536fc6c82f27185e8cff5913824e1c", + "kotlin/reflect/reflect.kotlin_builtins": "23ecbc7cbb354f31ba37a1be1793d3bb53c00c92cdcf3867759d09d938a1d7c3", + "org/commonmark/internal/util/entities.txt": "fea6cf4d3bd2aa7ffd421116551654e2a22e40a17e4cd087c8725138113bad69", + "classes3.dex": "e1ee32587788c0a3903c50de27d1482a358b8a054bac017be613d2686c492471", + "classes4.dex": "bf75d7e39f7a813e216c53b0189c1b5fb323b3478e11a59a56b6281608c6a6c7", + "AndroidManifest.xml": "a6cdf987b9cfaa397acbf2045ae10f0a9500eb5fc052488c8638eafa143adee6" + }, + "app-debug-androidTest.apk": { + "classes.dex": "35f32eb3c6a38b451d1d47b53e49faa8fdca4db12df6e8e6385f44f1f5c1d403", + "classes2.dex": "468450c6993a81875894c0a142093a2e6dad1778f192763895e927a2f07c1d71", + "classes5.dex": "4cb87f7ace7c665d16755b3466eca73c87cc7167104d4b901b704bb2a4c9d30b", + "assets/owned-detail-fixture.js": "873d3f25f95271029e31779b0920b5955a2908a820a07652b58efa21a2358cfd", + "AndroidManifest.xml": "caff3c10989799f80e8bea4722a1e2e143b75cef522c7aff7211e7c79704f416", + "res/color/vector_tint_color.xml": "4bbb4ef3e0e3db260a05d794047a1765e420d699ee5673e90b57ff682a2fe34e", + "res/color/vector_tint_theme_color.xml": "cf34dc5bdb4a6d1568143e115ac4e34448383ac772862ef0fdbb7fe8936c6dd3", + "res/drawable-anydpi-v21/ic_call_answer.xml": "5f6376dfe199d8a6e40033d3e623989d052c9b2f974d00c824fbb8b76fc6fde8", + "res/drawable-anydpi-v21/ic_call_answer_low.xml": "8f9acacabaf2dfb4bb53dab7ce7bec9c1451ce0a0219ffaa41760ea82da3d2d6", + "res/drawable-anydpi-v21/ic_call_answer_video.xml": "5d4cdaae5838ad9442c085f951b766b2808bff13b8c85a14e0bcf8571514492c", + "res/drawable-anydpi-v21/ic_call_answer_video_low.xml": "4a959580080ebb1d822a2459a4234d2abf0dd0b65d9c28bda8c258dafc888c51", + "res/drawable-anydpi-v21/ic_call_decline.xml": "2d825b79cce60203492ff09a04826db0ac8d9eb9bc0fb9fb139ae1aa5cde0f67", + "res/drawable-anydpi-v21/ic_call_decline_low.xml": "c8321364802409baf4d76e2a84e303871585bdc95b0395040c5ecea0e2051105", + "res/drawable-hdpi-v4/ic_call_answer.png": "5c80d88a7b82ef5833255bf70ff1c26c3efb2a92ae90cac222f3200f59e0b1ea", + "res/drawable-hdpi-v4/ic_call_answer_low.png": "5c80d88a7b82ef5833255bf70ff1c26c3efb2a92ae90cac222f3200f59e0b1ea", + "res/drawable-hdpi-v4/ic_call_answer_video.png": "6adcfc9dd1e1b82b985d223fc8a01c8e8f0dd3b9051d38062674b2380af79a50", + "res/drawable-hdpi-v4/ic_call_answer_video_low.png": "6adcfc9dd1e1b82b985d223fc8a01c8e8f0dd3b9051d38062674b2380af79a50", + "res/drawable-hdpi-v4/ic_call_decline.png": "12ec9f9ad5fa3d7d897114af6c2297b66f31cb056e43daffbe80d23f6f66396d", + "res/drawable-hdpi-v4/ic_call_decline_low.png": "12ec9f9ad5fa3d7d897114af6c2297b66f31cb056e43daffbe80d23f6f66396d", + "res/drawable-hdpi-v4/notification_bg_low_normal.9.png": "21f0b55280be10b187ceff8edef4a5a7047683e6e9fcf47de410aa3839f41094", + "res/drawable-hdpi-v4/notification_bg_low_pressed.9.png": "42aee0b03883e94df5e543348a397d1302c1b8221895871a83b81899f5a9647b", + "res/drawable-hdpi-v4/notification_bg_normal.9.png": "0c6328c7b2420570a7ec38b3beb3bac9a29d895ac1ab7239315aba7266418593", + "res/drawable-hdpi-v4/notification_bg_normal_pressed.9.png": "18b328d8017e677d5aad3dbd66bae356b5cac978c6f0670938ea648e51d0eb66", + "res/drawable-hdpi-v4/notification_oversize_large_icon_bg.png": "aa00088d0d9fd97bd92ed9ffd29b54bb69a48a984aa73448ce553fb9d812be41", + "res/drawable-hdpi-v4/notify_panel_notification_icon_bg.png": "8430ec003e003f3f2ba2f78d48fd150e25407667e530e82e87a7d4841c0fd676", + "res/drawable-ldpi-v4/ic_call_answer.png": "6d34a8bb29be26e343781603588506f33bd1b93732a1c1bc9fd84678aa36b178", + "res/drawable-ldpi-v4/ic_call_answer_low.png": "6d34a8bb29be26e343781603588506f33bd1b93732a1c1bc9fd84678aa36b178", + "res/drawable-ldpi-v4/ic_call_answer_video.png": "66356f564f051a568e25071f60da312c418309f9129773aceb2246773458681c", + "res/drawable-ldpi-v4/ic_call_answer_video_low.png": "66356f564f051a568e25071f60da312c418309f9129773aceb2246773458681c", + "res/drawable-ldpi-v4/ic_call_decline.png": "a18cdaaf3742b1a3d4f484fa15d00fa34afb21495884301aafa3213338661ed6", + "res/drawable-ldpi-v4/ic_call_decline_low.png": "a18cdaaf3742b1a3d4f484fa15d00fa34afb21495884301aafa3213338661ed6", + "res/drawable-mdpi-v4/ic_call_answer.png": "f2ff62f473d8a5e00a8b6c81c15be9a0536471c3d5a81e37d04bc3356ea81ca0", + "res/drawable-mdpi-v4/ic_call_answer_low.png": "f2ff62f473d8a5e00a8b6c81c15be9a0536471c3d5a81e37d04bc3356ea81ca0", + "res/drawable-mdpi-v4/ic_call_answer_video.png": "6306048ba5f7eca43e7bdadeefa9412180508486fd543e02de93d2a013e223f0", + "res/drawable-mdpi-v4/ic_call_answer_video_low.png": "6306048ba5f7eca43e7bdadeefa9412180508486fd543e02de93d2a013e223f0", + "res/drawable-mdpi-v4/ic_call_decline.png": "7e87b3e0229126dc3c2bdaddcd8f330f3bb5f7613a05024c3cd6445dd161f788", + "res/drawable-mdpi-v4/ic_call_decline_low.png": "7e87b3e0229126dc3c2bdaddcd8f330f3bb5f7613a05024c3cd6445dd161f788", + "res/drawable-mdpi-v4/notification_bg_low_normal.9.png": "2f7fbda0ba6e53e9a47e2fc0e24e32c447c613a5808c2d6285dc651e83a07ad7", + "res/drawable-mdpi-v4/notification_bg_low_pressed.9.png": "e17761ed280edd93d7141bd504b70f9e9e15a8652288d9e6333bf4ce964ef844", + "res/drawable-mdpi-v4/notification_bg_normal.9.png": "a8676a1793ac8310ffb12986232df66df092d29c242aeedc2b73556c010d38dc", + "res/drawable-mdpi-v4/notification_bg_normal_pressed.9.png": "99c14d6855b8be296d58017d3751b8dc849c47b6d1d80ab614ff9075080e461b", + "res/drawable-mdpi-v4/notify_panel_notification_icon_bg.png": "0d773e62c756422313262846c787e58f67e0ee87e45e1ae9942002e816c4cb9e", + "res/drawable-v21/notification_action_background.xml": "2f768c089cefa18cf7f1fde7f602410bf38998de5f9073a15ea83106c25e3c30", + "res/drawable-xhdpi-v4/ic_call_answer.png": "e64c2e57627e24ec1ed37e67344c2bf31d1d6bdd2d8d715840c1edf0bd1425b6", + "res/drawable-xhdpi-v4/ic_call_answer_low.png": "e64c2e57627e24ec1ed37e67344c2bf31d1d6bdd2d8d715840c1edf0bd1425b6", + "res/drawable-xhdpi-v4/ic_call_answer_video.png": "5d02a81102644428ca639aec3df626eeb4a839a9ddc76fc2b158b04461d7f00f", + "res/drawable-xhdpi-v4/ic_call_answer_video_low.png": "5d02a81102644428ca639aec3df626eeb4a839a9ddc76fc2b158b04461d7f00f", + "res/drawable-xhdpi-v4/ic_call_decline.png": "9a9a30c305022a2f8e075d2ed7d33f5c7711bba8d0d0385511fdb62f89f208e3", + "res/drawable-xhdpi-v4/ic_call_decline_low.png": "9a9a30c305022a2f8e075d2ed7d33f5c7711bba8d0d0385511fdb62f89f208e3", + "res/drawable-xhdpi-v4/notification_bg_low_normal.9.png": "3e09afa21c45372c035598c017c8fb405a6d678e6cb84dc857581cb3b40e482d", + "res/drawable-xhdpi-v4/notification_bg_low_pressed.9.png": "20343222f9f79dd565c3a2248494d452e70820ac1c437173c38badd45f962afd", + "res/drawable-xhdpi-v4/notification_bg_normal.9.png": "559bf783d765c02338e97952bdc9c6689c7ff99090b8c9813369118da8b080f0", + "res/drawable-xhdpi-v4/notification_bg_normal_pressed.9.png": "d27af435101ca4cbec0c840bd30687918cd39eb83aab1487420855623a45998b", + "res/drawable-xhdpi-v4/notify_panel_notification_icon_bg.png": "b44eeda34d7a529c2fe55719eb098fa29707caa91d18de06a7a775d6e6bcf973", + "res/drawable-xxhdpi-v4/ic_call_answer.png": "86763a30af2a934c7c13b123b36443d1d17918b71c6149bc6ee80115b872593d", + "res/drawable-xxhdpi-v4/ic_call_answer_low.png": "86763a30af2a934c7c13b123b36443d1d17918b71c6149bc6ee80115b872593d", + "res/drawable-xxhdpi-v4/ic_call_answer_video.png": "ca48f604262f2b4ef8b100c73130efe2ad33ef8c2a2c1b3516f24f51b7b04665", + "res/drawable-xxhdpi-v4/ic_call_answer_video_low.png": "ca48f604262f2b4ef8b100c73130efe2ad33ef8c2a2c1b3516f24f51b7b04665", + "res/drawable-xxhdpi-v4/ic_call_decline.png": "87adad32e0ec19c4e920420bf3a06c9f94f6128ed0d866a1891628aeab2cef06", + "res/drawable-xxhdpi-v4/ic_call_decline_low.png": "87adad32e0ec19c4e920420bf3a06c9f94f6128ed0d866a1891628aeab2cef06", + "res/drawable-xxxhdpi-v4/ic_call_answer.png": "ec698a3217bce74d8bc4a44bb008f2dbd3d1aebff1af1e9641805143dbf9fa87", + "res/drawable-xxxhdpi-v4/ic_call_answer_low.png": "ec698a3217bce74d8bc4a44bb008f2dbd3d1aebff1af1e9641805143dbf9fa87", + "res/drawable-xxxhdpi-v4/ic_call_answer_video.png": "4c717ce1ffb551c765981add65d1956132d8f522337de2866b045f0a60485426", + "res/drawable-xxxhdpi-v4/ic_call_answer_video_low.png": "4c717ce1ffb551c765981add65d1956132d8f522337de2866b045f0a60485426", + "res/drawable-xxxhdpi-v4/ic_call_decline.png": "ab73b729bb95878120a3bdc8dc915f3aaa1d7070fc644a0de64d40941ad507ed", + "res/drawable-xxxhdpi-v4/ic_call_decline_low.png": "ab73b729bb95878120a3bdc8dc915f3aaa1d7070fc644a0de64d40941ad507ed", + "res/drawable/notification_bg.xml": "20a1a2e83aa9806faeb234fc0a1094bc079adf5a25ef4cfef1491c5ca3b3c745", + "res/drawable/notification_bg_low.xml": "49041ec87bb2ec2a8bc23685c8eb2c2d5297aa39f1412dc7aa6639aeec12ee49", + "res/drawable/notification_icon_background.xml": "b143ee7fcbba209f17607a720502d755f085ec75380ad6fbd6f99de6583f0a40", + "res/drawable/notification_tile_bg.xml": "fb5d113d15ff98da0eab3cb9e178e909ad5e261f30a24add0267e2827b4c7774", + "res/layout-v21/notification_action.xml": "4e046a162878e2f8796c6380f0c5a9a7b40f1ffb251478ecfcbbe3b434bd1178", + "res/layout-v21/notification_action_tombstone.xml": "a9657e68fd0c10ced5011b67b9e37a5ebe262957ef15fa3679a9a1f8784fee21", + "res/layout-v21/notification_template_custom_big.xml": "4879194cce032a3c5ea58d2ec796766b00bb057a4ca4bc11c56ed1830a61c7d2", + "res/layout-v21/notification_template_icon_group.xml": "97d5723ad66c683d88d57918e197cb33d2dc1628aa77299e42e132622c2c948e", + "res/layout/custom_dialog.xml": "edd4e27b3f2407a02248205a2eb50288170e4201249bfeac074749ea60390103", + "res/layout/ime_base_split_test_activity.xml": "37ff040591f96786bfaf9d3d937fedf2f2f97e218c06beb3e7fe8a2442a181a8", + "res/layout/ime_secondary_split_test_activity.xml": "0034556846afe7278a6d1264855405a0c3ae65a81a6a05f9ba4dc0136a589685", + "res/layout/notification_template_part_chronometer.xml": "9ae2b91ed155032cb90ee4cfead57eba2728d0e6ff262d2275ff63516604fc94", + "res/layout/notification_template_part_time.xml": "4a838e479642de5ee2cd1d0785b35d195995fcf27b0b9561140a6cdccbfe3ad6", + "res/xml/native_input_test_ime.xml": "d560413501650fb393941eb5e8e36b30aed25a309dc294cc0435f74d6dfe326d", + "resources.arsc": "a743d0f25129f83afc5a9790dfabdd4c6937b071c930014b432aa9a2fd74e4eb", + "LICENSE-junit.txt": "9648bb2891b9813970bddb68d4be8a5e6ec8280d0180a53dfb29236b579c55bb", + "META-INF/androidx.compose.ui_ui-test-junit4.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.compose.ui_ui-test.version": "406b9efb67a070bc32c23c3ac6c886a8d25cfac10b1861ef92e4166708aa6ce1", + "META-INF/androidx.test.uiautomator_uiautomator.version": "a42caf4a54bbbe27aa45b6efbc6356c5e299b19763e728b6cdb7201b02ebbe36", + "META-INF/kotlinx_coroutines_test.version": "179f9b723b6508aa1d6ce99991e8cd549ca819ee1b9b6102396c47815beffaaf", + "META-INF/services/kotlinx.coroutines.CoroutineExceptionHandler": "1b8e1a088e38c9bc8dd36517de1202651f06a9ca9eb0e6adad7305392289a94c", + "META-INF/services/kotlinx.coroutines.internal.MainDispatcherFactory": "90d3bc46060b2a33332bd2bc8122d5b03dd1a507718db830d5e809cc62c4490d", + "javax/annotation/CheckForNull.java": "4807942043605b325f0fefa243344db0d11e32cebd8f133df2b7c5d8486f2312", + "javax/annotation/CheckForSigned.java": "9c3d742fe9ab8e5fb08d5562ab0cb0255e2960facf94f83349be542b6557f3c1", + "javax/annotation/CheckReturnValue.java": "fc328c2dbc79fb3bc25d47a7f0486410fe8a04e6d6ceadf97f7ed44fa6dc0ebb", + "javax/annotation/Detainted.java": "7d272cf814d47c8cf89dd0d2f283ddfc88a26405122fd98f2842dbcb0789ed0e", + "javax/annotation/MatchesPattern.java": "ff2ffbca3823c1a3f5333630878068c724f67058264cca7396d9abef821897dd", + "javax/annotation/Nonnegative.java": "73b83d783bc7cdf7b5c9f4331a928154c6dc4e97ba349a5e5124e026ba4221b0", + "javax/annotation/Nonnull.java": "eb2d5ac7cd628dd3c59e5f7b14378fea531d5c76857df837cfe8f9a2ece1dddc", + "javax/annotation/Nullable.java": "511c9e8888bbdc13e0388eb5c3a882f43ff21160093b404c870ce94e83a1f509", + "javax/annotation/OverridingMethodsMustInvokeSuper.java": "5d786c4fff3f381babab9f745252dd80ba10210c402bd4c15161ce9b63decca6", + "javax/annotation/ParametersAreNonnullByDefault.java": "94233ca1ca4fb6d457bed883f8369019d4f0016be81d4e5ccfc01f5d50bf946e", + "javax/annotation/PropertyKey.java": "5559001d0f69e49487f1cc0cfa82d37e064b04436ccc7026a3d8a5aa30215d7d", + "javax/annotation/RegEx.java": "7b08d091734672f8f8f320fdaa7cde6ba48c786a2fdca94c9e2407e1e2af2aba", + "javax/annotation/Signed.java": "76633adce590e7c771ef7f727b575f9ae54389539d666677a9ca1a9e4256e374", + "javax/annotation/Syntax.java": "63c05bd38c7c279d147058d6e154a44ee1da62c92cc6849a573bdc6c345869e0", + "javax/annotation/Tainted.java": "9b755d095cf2c4a41a8e064b5bd0ab3e556845048b705d2cc98e8635b8bda6f2", + "javax/annotation/Untainted.java": "e44096a654f825c9f8f3fb9ba099f805155b3daf41918c177d7193558bb11981", + "javax/annotation/WillClose.java": "1c81ea1c7284c37c5d66b436fc63267877667da03b2b646fc6c11ea2a8dfac08", + "javax/annotation/WillCloseWhenClosed.java": "b3c6e342b4dfc4c62d33857f8920cfe077e9f2c31379d8f627495e0c4a06cb13", + "javax/annotation/WillNotClose.java": "6c258758fcf54c9657052dc9e86d0abc780f8a4580804e3a0a8b8b376529e453", + "javax/annotation/concurrent/GuardedBy.java": "f2650971001cbfd4c127487e0115e7a9539d64fd6a98dd8dd0675330ae3b790d", + "javax/annotation/concurrent/Immutable.java": "47f9a076a4396c492a373eec9622a15497b56b633a67af97ca51bd3b1142a08d", + "javax/annotation/concurrent/NotThreadSafe.java": "73060a8907c01ee7a72bfbd9c74a037ff1953bd7a4510b8997fdcec0a5741a19", + "javax/annotation/concurrent/ThreadSafe.java": "bcfd9f7a27af49a6505734ab03259f02a7222d3bd052821caa6d94d930bdfc9a", + "javax/annotation/meta/Exclusive.java": "0b0405f1dc140ac2ebdb4cdd3bbbfdcf19e22d724bc57a89d530b33e8c9b7ff5", + "javax/annotation/meta/Exhaustive.java": "c9b4085041acd1602691ee49535a6a91afc2b67d6bd9d9fb4e1ab2169d627a6f", + "javax/annotation/meta/TypeQualifier.java": "828fffa618ac1cda2fc07fcc0e5e58785aadfe4bc481c0e4e8dc5fc23d662ce5", + "javax/annotation/meta/TypeQualifierDefault.java": "27faa048d7c23bd6d79d3515816ec1f356758ae140c0edc702a74b91f9215395", + "javax/annotation/meta/TypeQualifierNickname.java": "309cf58e837f1bc63183fc9443b231904157f1ac25bfee0e5cebcae52f44eb51", + "javax/annotation/meta/TypeQualifierValidator.java": "4d1e2ca6f465ce130a8233086053acc991e5fd389f7e31c88a0cd19ef32c666a", + "javax/annotation/meta/When.java": "d79dfa99e03fa1eb6d0e6f024833ef16c1029b98975e2e767f760b2dbf4d8790", + "junit/runner/logo.gif": "345b5e2207a524e0019779d13f0f8ae51359f894a230479467761331e3d1ca16", + "junit/runner/smalllogo.gif": "b4819008f181bf3e0b47254f72149c62a556a56fc0358d3143e405b191de2081", + "classes4.dex": "2efdde5d3076434245278528952622f4429d94e0d68acee9c97c2582852cacf7", + "classes3.dex": "7a8f710f67e84d2d24c1abbadcc1fcc49a721da565193b3964b3fdf1c4be86f3" + } + }, + "unchanged_original_assets": { + "assets/ANDROIDSVG-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "assets/ANDROIDSVG-NOTICE": "2e61b715e3553494f46f43e5a88e8d26c56201e0558c8d5ab02946edb4f7dedf", + "assets/COMMONMARK-LICENSE": "11cfcf6da0142fb1971c1f40f5924ddded14454e2793d7f1dd87c9f4abe42dfd", + "assets/COPYING": "14609801e0e520dac851e75d993ca4c75c3842a3be468f6f7f04a16c03c824db", + "assets/GEMOJI-LICENSE": "7ea1d1fd0602e6623b9a65e791499a0ea5a2f5f60f91bfad78cbaeee19da26e6", + "assets/NOTICE.md": "c263e44ea9a845c4e4ec564eeca46ae0fc343f63ffd10685afbf74586647e0f6", + "assets/REACT-LICENSE": "da6d3703ed11cbe42bd212c725957c98da23cbff1998c05fa4b3d976d1a58e93", + "assets/RaycastRuntime.generated.js": "b306b45453cc8507037ff2822066475aae17def757a8ef72d4a4fc64c6494bb7", + "assets/android-runtime.js": "1b5dfa3f5b512f55322f27703bbebf15d1a8c4569c4c1712a6dd64541dd552aa", + "assets/emoji-catalog.tsv": "e49f1cc09c6f487a6e7b55590ecc171dcff390f720a9ce3820fe2038810d5d66", + "assets/extension-workflow-evidence-v1.json": "4e8adc22b7887996140190a999f1c7272556f2dd379d219c88e276e48aea0fa5" + }, + "old_app": { + "source": "6c5825bf0da60ad9b452ec4550aa49d60704e677", + "sha256": "66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c", + "scope": "Reviewed PR113 app; common instrumentation exercises actual keyboard Show/Hide" + }, + "changed_inputs_since_app_source": [ + "app/src/androidTest/java/dev/tinycast/android/TouchSearchDeviceTest.kt", + "scripts/test-webview-engine.py" + ], + "unused_compiled_app_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "compiled_app_equals_executed_app": true, + "jvm_reuse": "343 passed at f30 with all production/build/JVM inputs unchanged; this test-only build does not rerun JVM cases.", + "scope": "Execute the exact frozen f30 app with this final separately compiled test/controller revision. Only the AndroidTest fixture and its CLI allowlist differ; no stamp-only equivalence is inferred." +} diff --git a/docs/validation/keyboard-toggle/identities/final-harness/test-manifest.xml b/docs/validation/keyboard-toggle/identities/final-harness/test-manifest.xml new file mode 100644 index 00000000..ec741fb2 --- /dev/null +++ b/docs/validation/keyboard-toggle/identities/final-harness/test-manifest.xml @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/validation/keyboard-toggle/initial-settings-receipt.json b/docs/validation/keyboard-toggle/initial-settings-receipt.json new file mode 100644 index 00000000..affa105c --- /dev/null +++ b/docs/validation/keyboard-toggle/initial-settings-receipt.json @@ -0,0 +1,14 @@ +{ + "checks": { + "emulator-5580-owned-avd": true, + "emulator-5580-api": true, + "emulator-5580-unprivileged": true, + "emulator-5580-idle": true, + "emulator-5598-owned-avd": true, + "emulator-5598-api": true, + "emulator-5598-unprivileged": true, + "emulator-5598-idle": true + }, + "current_four_field_baseline_saved_privately": true, + "scope": "Read-only current baseline after PR113; older original pre-probe IME-history identity remains uncertified. No device mutation." +} diff --git a/docs/validation/keyboard-toggle/pipelines/back-diagnostics.json b/docs/validation/keyboard-toggle/pipelines/back-diagnostics.json new file mode 100644 index 00000000..27fef2e1 --- /dev/null +++ b/docs/validation/keyboard-toggle/pipelines/back-diagnostics.json @@ -0,0 +1,140 @@ +{ + "completed": true, + "test_source": "69bd578d528c42296ef4a10fa24d675a8f635408", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d", + "cohorts": [ + { + "name": "back-diagnostic-old", + "state": "finished", + "app_sha256": "66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c", + "exit_code": 1, + "passes": 0, + "failures": 1, + "completed": false, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "after_injection": [ + { + "kind": "back-probe-after-injection", + "injection_accepted": false, + "query": "", + "route": "emoji", + "ime_visible": false + } + ] + }, + { + "name": "back-diagnostic-current", + "state": "finished", + "app_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "exit_code": 1, + "passes": 0, + "failures": 1, + "completed": false, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + }, + "after_injection": [ + { + "kind": "back-probe-after-injection", + "injection_accepted": false, + "query": "", + "route": "emoji", + "ime_visible": false + } + ] + } + ], + "matching_query_loss_reproduced": true, + "regression_candidate": false, + "scope": "Diagnostic observations remain separate from keyboard-toggle credit. Matching loss reproduces only this captured sequence on old/current apps; no root cause, Back repair, or wider platform certification is inferred." +} diff --git a/docs/validation/keyboard-toggle/pipelines/baseline-controls-v3.json b/docs/validation/keyboard-toggle/pipelines/baseline-controls-v3.json new file mode 100644 index 00000000..15ae1684 --- /dev/null +++ b/docs/validation/keyboard-toggle/pipelines/baseline-controls-v3.json @@ -0,0 +1,134 @@ +{ + "completed": true, + "test_source": "723ecda10614dc105e4e971143fcdc01dc81ca7a", + "app_sha256": "66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c", + "test_apk_sha256": "b08f6a53b8b1ba5fe1bbc5309395c6f877aeb6ef1e01e843caabf939cb8aa28c", + "cohorts": [ + { + "name": "baseline-v3-old-landscape200", + "state": "finished", + "started": 1793902924.8119848, + "exit_code": 1, + "finished": 1793902976.3307981, + "passes": 0, + "failures": 2, + "completed": false, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + } + }, + { + "name": "baseline-v3-old-landscape100", + "state": "finished", + "started": 1793902976.3319838, + "exit_code": 1, + "finished": 1793903026.758034, + "passes": 0, + "failures": 2, + "completed": false, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + } + } + ] +} diff --git a/docs/validation/keyboard-toggle/pipelines/baseline-controls.json b/docs/validation/keyboard-toggle/pipelines/baseline-controls.json new file mode 100644 index 00000000..507713fe --- /dev/null +++ b/docs/validation/keyboard-toggle/pipelines/baseline-controls.json @@ -0,0 +1,134 @@ +{ + "completed": false, + "test_source": "dfd1b38ce62cf5b029884d33071c830daed39923", + "app_sha256": "66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c", + "test_apk_sha256": "ba781590ada744782b7ccfa9d055db96bd3810a303e50f6e18bb2672c5305062", + "cohorts": [ + { + "name": "baseline-old-landscape100", + "state": "finished", + "started": 1793902594.417164, + "exit_code": 1, + "finished": 1793902643.618537, + "passes": 0, + "failures": 2, + "completed": false, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + } + }, + { + "name": "baseline-old-landscape200", + "state": "finished", + "started": 1793902643.619644, + "exit_code": 1, + "finished": 1793902693.426913, + "passes": 0, + "failures": 2, + "completed": false, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + } + } + ] +} diff --git a/docs/validation/keyboard-toggle/pipelines/native-v1.json b/docs/validation/keyboard-toggle/pipelines/native-v1.json new file mode 100644 index 00000000..13378e81 --- /dev/null +++ b/docs/validation/keyboard-toggle/pipelines/native-v1.json @@ -0,0 +1,140 @@ +{ + "completed": false, + "source": "1355f84cb4f3cc93ae732a5ae9028c42747f0f8e", + "apk_sha256": { + "app-debug.apk": "32e2726d35d1c01fe488aa0781a3a0d67d99498699f7121ab4ad2f1be95e5286", + "app-debug-androidTest.apk": "931201bf4e68fbe15577ab310d4cc829cb8c4c9d1809a67f919cf93b01d2f14c" + }, + "cohorts": [ + { + "name": "candidate-landscape200", + "methods": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "expected_control": false, + "state": "finished", + "started": 1793903370.182826, + "finished": 1793903459.066101, + "exit_code": 0, + "passes": 2, + "failures": 0, + "completed": true, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + } + }, + { + "name": "candidate-guards-tablet100", + "methods": [ + "launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus" + ], + "expected_control": false, + "state": "finished", + "started": 1793903459.0669801, + "finished": 1793903514.576183, + "exit_code": 1, + "passes": 0, + "failures": 2, + "completed": false, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + } + } + ] +} diff --git a/docs/validation/keyboard-toggle/pipelines/native-v2.json b/docs/validation/keyboard-toggle/pipelines/native-v2.json new file mode 100644 index 00000000..147f6d3f --- /dev/null +++ b/docs/validation/keyboard-toggle/pipelines/native-v2.json @@ -0,0 +1,72 @@ +{ + "completed": false, + "source": "411b7f73ffea57b15ffa1c5ff01a468506495467", + "apk_sha256": { + "app-debug.apk": "1291d0619b6f70ae90c4d25f759a444fbf32827ffa3ee36233f91006fdf8b2ac", + "app-debug-androidTest.apk": "f4925b8c25e900ed336a48f9bfdabd0358bf158818938fd4cdbd47b57b58e1a9" + }, + "cohorts": [ + { + "name": "candidate-v2-guards-tablet100", + "methods": [ + "launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus" + ], + "expected_control": false, + "state": "finished", + "started": 1793904068.679979, + "finished": 1793904166.323256, + "exit_code": 1, + "passes": 1, + "failures": 1, + "completed": false, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + } + } + ] +} diff --git a/docs/validation/keyboard-toggle/pipelines/native-v3.json b/docs/validation/keyboard-toggle/pipelines/native-v3.json new file mode 100644 index 00000000..10bffbd5 --- /dev/null +++ b/docs/validation/keyboard-toggle/pipelines/native-v3.json @@ -0,0 +1,598 @@ +{ + "completed": false, + "source": "f30bebd6c414307a5b5fe690d80dfffe5fc58ccc", + "apk_sha256": { + "app-debug.apk": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "app-debug-androidTest.apk": "0b855d722fcda7e25b8c873ca1b75a3d44f7ab2069fc0ae032a64d4a3a097eed" + }, + "cohorts": [ + { + "name": "candidate-v3-guards-tablet100", + "methods": [ + "launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus" + ], + "expected_control": false, + "state": "finished", + "started": 1793904869.977718, + "finished": 1793904975.586376, + "exit_code": 0, + "passes": 2, + "failures": 0, + "completed": true, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + } + }, + { + "name": "candidate-v3-landscape200", + "methods": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "expected_control": false, + "state": "finished", + "started": 1793904975.5869598, + "finished": 1793905033.466936, + "exit_code": 0, + "passes": 2, + "failures": 0, + "completed": true, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + } + }, + { + "name": "control-proxy-v3-tablet100", + "methods": [ + "launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus" + ], + "expected_control": true, + "state": "finished", + "started": 1793905033.467395, + "finished": 1793905077.485677, + "exit_code": 1, + "passes": 0, + "failures": 2, + "completed": false, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + } + }, + { + "name": "control-old-v3-landscape200", + "methods": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "expected_control": true, + "state": "finished", + "started": 1793905077.486994, + "finished": 1793905129.77527, + "exit_code": 1, + "passes": 0, + "failures": 2, + "completed": false, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + } + }, + { + "name": "control-old-v3-landscape100", + "methods": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "expected_control": true, + "state": "finished", + "started": 1793905129.77688, + "finished": 1793905180.2153, + "exit_code": 1, + "passes": 0, + "failures": 2, + "completed": false, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + } + }, + { + "name": "candidate-v3-landscape100", + "methods": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "expected_control": false, + "state": "finished", + "started": 1793905180.217408, + "finished": 1793905234.716955, + "exit_code": 0, + "passes": 2, + "failures": 0, + "completed": true, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + } + }, + { + "name": "candidate-v3-tablet100", + "methods": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "expected_control": false, + "state": "finished", + "started": 1793905234.718079, + "finished": 1793905293.2872388, + "exit_code": 0, + "passes": 2, + "failures": 0, + "completed": true, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + } + }, + { + "name": "candidate-v3-tablet200", + "methods": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "expected_control": false, + "state": "finished", + "started": 1793905293.288071, + "finished": 1793905350.463537, + "exit_code": 0, + "passes": 2, + "failures": 0, + "completed": true, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + } + }, + { + "name": "candidate-v3-feedback-landscape100", + "methods": [ + "launcherEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable", + "emojiEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable" + ], + "expected_control": false, + "state": "finished", + "started": 1793905350.46482, + "finished": 1793905391.76348, + "exit_code": 1, + "passes": 0, + "failures": 2, + "completed": false, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + } + } + ] +} diff --git a/docs/validation/keyboard-toggle/pipelines/native-v4.json b/docs/validation/keyboard-toggle/pipelines/native-v4.json new file mode 100644 index 00000000..846a0aff --- /dev/null +++ b/docs/validation/keyboard-toggle/pipelines/native-v4.json @@ -0,0 +1,928 @@ +{ + "completed": true, + "source": "69bd578d528c42296ef4a10fa24d675a8f635408", + "app_source": "f30bebd6c414307a5b5fe690d80dfffe5fc58ccc", + "test_source": "69bd578d528c42296ef4a10fa24d675a8f635408", + "controller_source": "69bd578d528c42296ef4a10fa24d675a8f635408", + "apk_sha256": { + "app-debug.apk": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "app-debug-androidTest.apk": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d" + }, + "cohorts": [ + { + "name": "final-guards-tablet100", + "methods": [ + "launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "currentKeyboardAccessibilityActionsApplyTheirPublishedVisibility" + ], + "expected_control": false, + "state": "finished", + "started": 1793906213.002413, + "finished": 1793906305.522211, + "exit_code": 0, + "passes": 3, + "failures": 0, + "completed": true, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + } + }, + { + "name": "final-landscape200", + "methods": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "expected_control": false, + "state": "finished", + "started": 1793906305.522666, + "finished": 1793906358.6808891, + "exit_code": 0, + "passes": 2, + "failures": 0, + "completed": true, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + } + }, + { + "name": "control-proxy-final-tablet100", + "methods": [ + "launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus" + ], + "expected_control": true, + "state": "finished", + "started": 1793906358.681323, + "finished": 1793906403.211183, + "exit_code": 1, + "passes": 0, + "failures": 2, + "completed": false, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + } + }, + { + "name": "control-old-final-landscape200", + "methods": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "expected_control": true, + "state": "finished", + "started": 1793906403.214296, + "finished": 1793906454.031614, + "exit_code": 1, + "passes": 0, + "failures": 2, + "completed": false, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + } + }, + { + "name": "control-old-final-landscape100", + "methods": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "expected_control": true, + "state": "finished", + "started": 1793906454.032938, + "finished": 1793906505.3892071, + "exit_code": 1, + "passes": 0, + "failures": 2, + "completed": false, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + } + }, + { + "name": "final-landscape100", + "methods": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "expected_control": false, + "state": "finished", + "started": 1793906505.39081, + "finished": 1793906559.945038, + "exit_code": 0, + "passes": 2, + "failures": 0, + "completed": true, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + } + }, + { + "name": "final-tablet100", + "methods": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "expected_control": false, + "state": "finished", + "started": 1793906559.94555, + "finished": 1793906618.674891, + "exit_code": 0, + "passes": 2, + "failures": 0, + "completed": true, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + } + }, + { + "name": "final-tablet200", + "methods": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "expected_control": false, + "state": "finished", + "started": 1793906618.675474, + "finished": 1793906676.780618, + "exit_code": 0, + "passes": 2, + "failures": 0, + "completed": true, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + } + }, + { + "name": "final-feedback-landscape100", + "methods": [ + "launcherEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable", + "emojiEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable" + ], + "expected_control": false, + "state": "finished", + "started": 1793906676.781145, + "finished": 1793906727.005761, + "exit_code": 0, + "passes": 2, + "failures": 0, + "completed": true, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + } + }, + { + "name": "final-feedback-landscape200", + "methods": [ + "launcherEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable", + "emojiEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable" + ], + "expected_control": false, + "state": "finished", + "started": 1793906727.0065331, + "finished": 1793906780.8307042, + "exit_code": 0, + "passes": 2, + "failures": 0, + "completed": true, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + } + }, + { + "name": "final-clear-phone200", + "methods": [ + "launcherTouchClearPreservesFocusCategoryAndKeyboard", + "emojiTouchClearPreservesCategoryGeometryAndKeyboard" + ], + "expected_control": false, + "state": "finished", + "started": 1793906780.831403, + "finished": 1793906821.460613, + "exit_code": 0, + "passes": 2, + "failures": 0, + "completed": true, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + } + }, + { + "name": "final-core-guards-tablet100", + "methods": [ + "pointerClearRemovesControlledCompositionAndWhitespace", + "retainedClearCallbacksRejectReplacedSurfacesAndMenus", + "currentClearUsesLiveQueryAndRecreationRejectsOldCallback" + ], + "expected_control": false, + "state": "finished", + "started": 1793906821.461204, + "finished": 1793906864.489716, + "exit_code": 0, + "passes": 3, + "failures": 0, + "completed": true, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + } + }, + { + "name": "final-input-phone100", + "methods": [ + "committedEmojiNavigationAndCaretAreExact", + "activeMultilingualCompositionKeepsResultSelection" + ], + "expected_control": false, + "state": "finished", + "started": 1793906864.490722, + "finished": 1793906898.261647, + "exit_code": 0, + "passes": 2, + "failures": 0, + "completed": true, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "restore-input-method-before-test-apk-stop": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "palette-bytes": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "restore-size": { + "passed": true + }, + "restore-density": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "profile-installer-marker": { + "passed": true + }, + "installed-data-and-evidence": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-binary-dev.tinycast.android": { + "passed": true + }, + "verify-binary-dev.tinycast.android": { + "passed": true + }, + "restore-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-binary-dev.tinycast.android.test": { + "passed": true + }, + "verify-input-method-after-original-apks": { + "passed": true + }, + "release-owner-last": { + "passed": true + } + } + }, + { + "name": "final-input-api26100", + "methods": [ + "committedEmojiNavigationAndCaretAreExact", + "activeMultilingualCompositionKeepsResultSelection" + ], + "expected_control": false, + "state": "finished", + "started": 1793906898.262263, + "finished": 1793906912.034156, + "exit_code": 0, + "passes": 2, + "failures": 0, + "completed": true, + "cleanup": { + "idle-owned-instrumentation": { + "passed": true + }, + "restore-input-method-before-test-apk-stop": { + "passed": true + }, + "stop-dev.tinycast.android.test": { + "passed": true + }, + "stop-dev.tinycast.android": { + "passed": true + }, + "owned-paths": { + "passed": true + }, + "restore-font": { + "passed": true + }, + "verify-settings": { + "passed": true + }, + "verify-unprivileged": { + "passed": true + }, + "restore-absence-dev.tinycast.android.test": { + "passed": true + }, + "verify-input-method-after-test-apk-removal": { + "passed": true + }, + "restore-absence-dev.tinycast.android": { + "passed": true + }, + "verify-initial-package-absence": { + "passed": true + } + } + } + ] +} diff --git a/docs/validation/keyboard-toggle/retained-captures.json b/docs/validation/keyboard-toggle/retained-captures.json new file mode 100644 index 00000000..d2809a68 --- /dev/null +++ b/docs/validation/keyboard-toggle/retained-captures.json @@ -0,0 +1,4602 @@ +[ + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "6d2eff290e3fa5412bffe578efd48be3b35f51f21e3a0c5eb52f734814a56fec" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "58e10391cc2948bb77ecea86d2a91e8eff218badb932cf35bf5fea885d830c63" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "5b9bafd96f811b0cb4b83df751ae0aed3a948cd5b453da1fef483c8610236b86" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "6d2eff290e3fa5412bffe578efd48be3b35f51f21e3a0c5eb52f734814a56fec" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "cc04994989f6967a4974aa70d06db2f74139022b4426656b55726084c28ac497" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "1813955009e7148a125948107b5b471d1cd9fe7ff2334928922aaf9c465b8f39" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "b9a115f99dde7ae29b313b655c4ce490f4544ebdca23f1d1119c3ba8f963b55c" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "efcb49e90f78cc62002e06615da8ae1058a88faca61f7be8945234516360d58e" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "380ff17c463dffe3fa10faef493c4030ccdbeb085a22a625d08f7b0456e6889c" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "30324492b9b32081f8dbe3393aa8580263fd77079f7fa28dfc5fbbf79271d478" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "05fe6f2353e267903463362f06b3c463e712c81fd4b4df849f6913e0990dc61c" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "d9bf0468c115576e4c655634c7d4993648cebb4a17852b037d76f0c54b7873ae" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "b2050027d7e41ce99f99b847788d96978c631fa132d7c2746ca0de8050e50ca4" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "573b25cbc8263dccaf1962f3945cd197d59f0d330e6fd028a9ec297f92773049" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "294146063f415e6656571427e2f0f2af9204bf6acef679c04f8c5e49388b55e6" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "3dde55fd435b237087a6f856949b9b7e63837f87ec52502000eb4b96bc98ca92" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "c88312f9329c5fe887f93e45ff69b7f8cba5c41c01adc5f9dff9ecf4620da87a" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "3aee75b3c779520e9185f1b51a1c081d1d434e38c15856f3d87264cb2be4699e" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "975b704f979a1b0e1d7880ce1306b36bf4635e09514edc260c273e0570f99ed6" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "374311ce389a4ad14ab7103680002a087f5b1a6ddc115f1e0d2dc00ea0a7485f" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "ece83da11ff1e600cfe5f07186c5251a1060df6f741c839e0c6e9716a3929fc3" + }, + { + "original": "artifacts/keyboard-toggle/baseline-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "729320903eb68e5598054816520a960f7bd5dfe36c3bfbfba69473ca2c4c750e" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml", + "sha256": "5e108961a8aba37fb4436990f645d128c32c77af13c7ef02d1500e4a24b4a60b" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png", + "sha256": "5cc66455d715901a81cad4b8634c0ee1945bf425bb612556955a550267137bdd" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json", + "sha256": "fd010edfb5b7df9e4c92988af191a61b1e047821d894459fb6f1b4beaba0e03c" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "5e108961a8aba37fb4436990f645d128c32c77af13c7ef02d1500e4a24b4a60b" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "95ec90283366d4258413bfba41fd95299cedb0dcf0f1c715d0ef434cfada2bf8" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "36af18583a084fae09c1c554508c3d1828aa761d6875890b05031c68d36eef28" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "02aec88e136336bc433d648d3bb3719b935ad6eb9a9f666085806736004321d0" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "abcf3cb8a340b85214f51795fced7901fb14b237d0c44b58387d8a2c4cbd07ac" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "03e206efabc8c009a17acc85d24b4d16faa74934e967dd92d18094ab3fb4f772" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "3fb46039ec47f89270b1c0972ec95b4b1c5f8252aea186f34b515872318c529c" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml", + "sha256": "d0e2f1543412ec295670332b1464edfc088d5e06a2dbae4f5786178519068d4d" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png", + "sha256": "db4a67929ab002506bd44f69e0e0a21e22aabe4a493a5371f2bc8af70e084a1a" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json", + "sha256": "e5b6554c76db6c95fff540693e774594a8179427e385d3d7a9a469044652a567" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "5b0238aba4982c006023503cebb7c3edc9719976a080a3f8e9275534f190d117" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "967dea786a85edb688797b7f099e9ac50f1d7eb499b302cc29fc169f9cbbc915" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "3aee75b3c779520e9185f1b51a1c081d1d434e38c15856f3d87264cb2be4699e" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "1f87870a930e9350e9a0d1fbfe68177d3f1f43d2bd7c8a39dd4964e5bbc8710f" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "74a618f3947baeb8c15d241b9c9e157f60e72a306ca1bb68109c860eadc627c5" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "ece83da11ff1e600cfe5f07186c5251a1060df6f741c839e0c6e9716a3929fc3" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "55b861597acea563d4881dcf94294c13f7aee4f759f181473e355bd113029545" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml", + "sha256": "6bcf5b687f251971103374a4882bf973a3630b6b9cfb035c3bb707f1ff48507a" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png", + "sha256": "bde1e9566031c59ff2572c76f3636bb8df782518363ceb11e9e058a83f9bd7f4" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json", + "sha256": "9a3eadc4b50cceb0886feb0af9d1758b3c613cfb8295bd969b9606c0178b9c55" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "6bcf5b687f251971103374a4882bf973a3630b6b9cfb035c3bb707f1ff48507a" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "af3efc6946d8bb571a534030f1b2147df83e347cecb0f018d5c291010f50586b" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "5b9bafd96f811b0cb4b83df751ae0aed3a948cd5b453da1fef483c8610236b86" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "b885654f67d10039ed78970d9459661795a3ef8afc64e2b8909a98260566e486" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "51909b2c90cdd4ee1eb432ffda148abc1b04bdb691245531cc19fc28612ad302" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "1813955009e7148a125948107b5b471d1cd9fe7ff2334928922aaf9c465b8f39" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "2cad14379782102b85a376eef0f3112f13c780eefd10ad4dcd15fca4c24c4cad" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml", + "sha256": "bdd02edfed5e1d5e7d0e86ff1f9ee40e0ca42fe00cf76e7b0fbbd6e9de66988f" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png", + "sha256": "8dc13933dcd28108bf59736c3702ca7fd395f8d533665c4dc695127fe36637c5" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json", + "sha256": "73a1acba609037c73ccf5bd54de8011f86a8861e3f0f4d08f2f45123768e53eb" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "7692e749a3a0c84eaa3b07c1df853c7fd52709dbe0ff8ce9aab8e0b6e19d89f7" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "ec3d8e27b8373a9905ec2f7205a6221cb6300f688f14dc31246914b644672bb0" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "30324492b9b32081f8dbe3393aa8580263fd77079f7fa28dfc5fbbf79271d478" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "068805831a0a433df2bbd4cfc8d04754e3cce5a325d9e3e3aa9d80db1e74ccbe" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "735aca8eeb3b66dc168247fc2179ad01a8e4e94865ad43ad4dfd144e309ab45e" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "b2050027d7e41ce99f99b847788d96978c631fa132d7c2746ca0de8050e50ca4" + }, + { + "original": "artifacts/keyboard-toggle/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "cd8e6159eaa739cf0c6973350d36b4479016d94d390007626af0385fd679a42f" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml", + "sha256": "f2a3e86dbd35b67558c9d940a9e15a7e88a234e07156de883d6c9348003742ad" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png", + "sha256": "e05e1552ad76e657b23c1422e72915a5bf97663a499e0421d37bae6dcff5e204" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json", + "sha256": "fd010edfb5b7df9e4c92988af191a61b1e047821d894459fb6f1b4beaba0e03c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "f2a3e86dbd35b67558c9d940a9e15a7e88a234e07156de883d6c9348003742ad" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "50b90623a4941d835750b3d39f57d7e8700c361b6bf031c050c925b611f75812" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "36af18583a084fae09c1c554508c3d1828aa761d6875890b05031c68d36eef28" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "342663802aaae0551cc1bc46f76b534237bc5403cfd5eab4576f962e0cf54b40" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "39be7639b365e6393083daa323bc4e8eea74b453217ae359396abff6a3443b96" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "25eaf8e602a6b519869334b56598c27ac9454f8ea7ab9a05233f41327bac9b2c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "sha256": "a8365241bad377c0133cbb40e94946df4d0e10d9fa9f9bdac215cb87a3c10935" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "sha256": "16b721158b8204c4d5aca787ed2f5f6963531870ac0f8c3942adf8470dfb9c37" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "sha256": "93528d221bffdc7c90bb731b2d842ca5f230c9c19627308ed50a1e0f056f6809" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml", + "sha256": "669287e7866e5a806d9026acacf8df1fb3c6912b7bdd7ab695d7ca10a8605eb4" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png", + "sha256": "6d2478360b0559a7d7fe40594ecf5b1c7f2d2d3937c2e1fabd91f9dda00c1858" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json", + "sha256": "b1acff232c2b7974a9c4ccad7fabc55581a164bce9016b2e28ec9d7910c3c2bc" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml", + "sha256": "669287e7866e5a806d9026acacf8df1fb3c6912b7bdd7ab695d7ca10a8605eb4" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png", + "sha256": "6d2478360b0559a7d7fe40594ecf5b1c7f2d2d3937c2e1fabd91f9dda00c1858" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json", + "sha256": "8c6c7303a2bf50c6c96136022b68305dd228931e97360868670ebc835f70a125" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml", + "sha256": "df63a5a7b6ab4cf270726b80aaa92de362b4b21e908181f9f5ffd2bf69fabc58" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png", + "sha256": "72cbe5ac29584ee08fe68e2c900a919a141fc588e97e1d135a9c78cc71b58714" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json", + "sha256": "08f1fd054e1eedc9e86300146abc600a84e7e5ac53efaa5e87ecacdf9d4cc2ab" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml", + "sha256": "669287e7866e5a806d9026acacf8df1fb3c6912b7bdd7ab695d7ca10a8605eb4" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png", + "sha256": "6080c7f45c2f5b4ef0812701496ed8d046ccb4959d84810e3cca9e13fd453d7b" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json", + "sha256": "54ef6e140277418d4da4467ff7f0fc5004fa04532d5d212b55bca34f1c4d5941" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "6df0e02b2b57bd06b965ccda10c44cdaff97c52d3ab361a74f83b3f0b02906b1" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml", + "sha256": "44ebcab8b0812b9452db065ac0033aeddef8f646a6f2f9cbfcd1ff9d119fa50f" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png", + "sha256": "df11664aa3daa1c71c192d1e143e9f6e71d3d043fc58cb095ee449f0324ae897" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json", + "sha256": "e5b6554c76db6c95fff540693e774594a8179427e385d3d7a9a469044652a567" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "44ebcab8b0812b9452db065ac0033aeddef8f646a6f2f9cbfcd1ff9d119fa50f" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "c5ae577ed383d1ccadd7f30fa6b8ed35fbc134251998ebfe7f36a8f3b0b80d05" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "3aee75b3c779520e9185f1b51a1c081d1d434e38c15856f3d87264cb2be4699e" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "722cef2872bb2b80799fc33640f94e2e15ee3903e25361163014e0aee4324581" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "3756d502f9df21f38403973e7f9cbdaab3307f84a47f3086e836576601a3acaa" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "1181267a2aebbdf238b8d055342c6e277e328cb3c92b7b609a5f883d6abc1ceb" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "sha256": "fdeab8051dbe2badba6d33e63d554d467453a78ff1b3b86c19504f06af5d9ae0" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "sha256": "cbd176a219faeb054cff07f05918c6ac834be2f1dbb7b62728990d9b18f50b1a" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "sha256": "cd7dc5f93bb3e63c72d8fea055df4a1013ba71817afaadf3daa7e3fdfd1c286b" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml", + "sha256": "e029771c339c426f41ce1d8800796a0cb96d184940bd103ccc7e3da757a05d37" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png", + "sha256": "8b841a785c65775a16eb65bb31b31a87c6e67e4a0debad1d915f08cc73b1c18f" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json", + "sha256": "a7aa7882a7e06e559deb0f6b51f3ac38c0e42fabdcb1bf46d1684ac8f16a4987" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml", + "sha256": "e029771c339c426f41ce1d8800796a0cb96d184940bd103ccc7e3da757a05d37" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png", + "sha256": "9e7780b296b3c227f5f1d1d376a2fc8e3360aa9a89f6f3215d56ce7eb98ce6cf" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json", + "sha256": "417b704268cfa46cc1f5a2706903c8d73fef73984ee54cc57f6fca2dba2892f8" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml", + "sha256": "d5224dcf37884ecc2f347149aaf2a00d39beb93924c7f8db53f0d46973c43ee4" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png", + "sha256": "271babbc9e69a7c239186cdf4bc8069d3470b69dc54339e3d4dd3d23627db17a" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json", + "sha256": "6161a81e2bbba64723875ed736d0a45c347898c9312d2ad1c08f6fca9fee928c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml", + "sha256": "e029771c339c426f41ce1d8800796a0cb96d184940bd103ccc7e3da757a05d37" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png", + "sha256": "deec65211e73016c73b387469f5d5b0aa81c3950b217fd1eab82e061500a0641" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json", + "sha256": "141de3e9f6d16c353a164a2aca3722efd3c340d7a05420eaef2d23d57b1f683b" + }, + { + "original": "artifacts/keyboard-toggle/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "ecba92601af22a39d80eac49d76953e214ae8b6ed4936acc52913c8dbec2169c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.xml", + "sha256": "b52f0752d9b0df763500c3eddac923947f7c12fd7928bd9d34e41323b20a0491" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.png", + "sha256": "70ce56cebd7ac93a9504952ff91faa3ba4f5b0220fe4748ccffac5e1a2c8cb09" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show-frame.json", + "sha256": "4bda7f266af8cd34912cb251fb98f307c9831a9b8e950951ce80fece74ce434b" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.xml", + "sha256": "ebdb544eae719f91af063a1a6d0494e36b1eed51498c578a4347e654344902dd" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.png", + "sha256": "9ed3b4b5d301ca916e6cbe90b1191f140939547a0103cbd2143f5d8aae06961c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide-frame.json", + "sha256": "0853b17700b2db730dd78459caa6b0ecb1411e92cc902e069b383603a16a57d7" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.xml", + "sha256": "b52f0752d9b0df763500c3eddac923947f7c12fd7928bd9d34e41323b20a0491" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.png", + "sha256": "3df836d388f2442632a49ea6fec7b0d00a1c86c3712e8c8eee83cffb7071ddca" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show-frame.json", + "sha256": "2bf3a286716d1fd8c7790feeb262a49f6792eb19cf2feb370895fc30252ea277" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "sha256": "ebdb544eae719f91af063a1a6d0494e36b1eed51498c578a4347e654344902dd" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "sha256": "cdd9e613420ea1bb81e667230705b6cf6b251439e11a3579ab26dd5bbb66073d" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "sha256": "11e3c14df5a65af4d01fec89eaad41aac0951525cd8bb618f7e622a5b2f701d0" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "sha256": "08ff6a5a9ee267157e82bd2dc04b38c8cf5b67e40ae6228e471a3f19027f3ab8" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.xml", + "sha256": "71f74f5af570f6c009b8d2ba96642261b788be1bc1b58be33c02690d5fb22f3c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.png", + "sha256": "8c9866745b079b69be506eb2f5bffef15eee55a9b5034e8c2f45947ccc535ef4" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show-frame.json", + "sha256": "d7c4bd0549724e1d28c9e9facfc67ee9ee0b6276fd3863ce8ea55ea6dff84fa7" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.xml", + "sha256": "2f673828c3776ffd2d6ee034bea0ab8d046ef1a343c63562af560127475b6dfe" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.png", + "sha256": "cd4f7368eb484deada1647c55747b6b0646821e9b8061c99d56590ed05247d4c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide-frame.json", + "sha256": "6d97a7f5ff9365643b33ed2059aa72345dd1265c28fd0466ec0c0e99e348582c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.xml", + "sha256": "71f74f5af570f6c009b8d2ba96642261b788be1bc1b58be33c02690d5fb22f3c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.png", + "sha256": "2cd9495ca3635c8eb9d6fd0b33b58371b01fecb1e4db9b40b10307519b577f26" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show-frame.json", + "sha256": "76cba8f2c6975ed77555a10612ae2265615e3ea786af16751bc33d8fd5b295e9" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "sha256": "2f673828c3776ffd2d6ee034bea0ab8d046ef1a343c63562af560127475b6dfe" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "sha256": "f139e4b14922614750acb8eb0b8702409823bac1833ca629587df297282c1e61" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "sha256": "cfaa0717cb125ece3527ef23021d187d8582f01abacb0b059ac9c810f9f811b6" + }, + { + "original": "artifacts/keyboard-toggle/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "sha256": "bacbb97b3373aafa9cf223c6080197ee96ba9f60b20e4362ba49ef258b04f312" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.xml", + "sha256": "f3d8d7f8e8ba1d7641e36a338a1118e7a2dc69a93363fe0f40df588db4df38e6" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.png", + "sha256": "6066b963369e9f860b49c15866bd66c1859e115a458670a9c8f727d8e15dc427" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show-frame.json", + "sha256": "4bda7f266af8cd34912cb251fb98f307c9831a9b8e950951ce80fece74ce434b" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.xml", + "sha256": "fda53cd261fe2cd448c46b9a4f80e202a231321fc5a1c1eaae5aa241ccccb35f" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.png", + "sha256": "a8f28cbc6cafb42131a9a3edf50aaae2953dd1cd46ef14eca005d437445364e8" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide-frame.json", + "sha256": "0853b17700b2db730dd78459caa6b0ecb1411e92cc902e069b383603a16a57d7" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.xml", + "sha256": "f3d8d7f8e8ba1d7641e36a338a1118e7a2dc69a93363fe0f40df588db4df38e6" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.png", + "sha256": "be41821370a160a277c1e05cc90db76b7c124c0a44865de9e5f70580a8b00d0d" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show-frame.json", + "sha256": "2bf3a286716d1fd8c7790feeb262a49f6792eb19cf2feb370895fc30252ea277" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "sha256": "f3d8d7f8e8ba1d7641e36a338a1118e7a2dc69a93363fe0f40df588db4df38e6" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "sha256": "2cad7b7fa0b00081325cfb98b4cab4f2743320f3171105245bef1075ec70c69d" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "sha256": "d085baee4ca4de246b00a3c5f7e0edb9d28aa1295260947d3d53eea26902106e" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.xml", + "sha256": "f3d8d7f8e8ba1d7641e36a338a1118e7a2dc69a93363fe0f40df588db4df38e6" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.png", + "sha256": "a5691176b4c78e22fd3bf1067015c7e06399796917794951b4c07459f6a249f0" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch-frame.json", + "sha256": "8b3552ba6e3d425d809f9f75527e3c5dacd95074904b85904409032977f5731e" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu.xml", + "sha256": "fda53cd261fe2cd448c46b9a4f80e202a231321fc5a1c1eaae5aa241ccccb35f" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu.png", + "sha256": "5c2685895f1b26e2d8c23754f87e234b6691fc5f9cb000e3bf181b5944459b05" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu-frame.json", + "sha256": "0900e6869da64acd29a89edc4571ed38fc4754c6c326e540baf2b8f47e437fa4" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml", + "sha256": "eb92d4960d48917094b57a11aff545c5c97a7f888f99db820b277404eac8ef0d" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png", + "sha256": "fe272866d9f068050cf68e082aeb6d185f4e20d79c2ff515dfc9f66731ba7f3f" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json", + "sha256": "3718e28c22fba4146905c4fde37c5b974b43bd4f5d63d37f5305c9a60a4f19a3" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "sha256": "ef50ab82456c458a2b4319ac97180184a7762ed2bd8f7acabae8ee347df7ea69" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.xml", + "sha256": "a36f10ff298a227a9710e4f166ce5b3c380ab62e06a20067684aff3361a2c8a4" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.png", + "sha256": "c5d44de2be00c52d1155ac1008a612fa41ef54d54181e5b398cfd5a45cf85c61" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show-frame.json", + "sha256": "d7c4bd0549724e1d28c9e9facfc67ee9ee0b6276fd3863ce8ea55ea6dff84fa7" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.xml", + "sha256": "3271920737a6b32c9e131ca622128ba6b9d64063202ec5f99381bcec32973f71" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.png", + "sha256": "a42b3152970ee12c51e5ec5e9dc44bd1b4c850587e94e47edd0fffd5ad126779" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide-frame.json", + "sha256": "6d97a7f5ff9365643b33ed2059aa72345dd1265c28fd0466ec0c0e99e348582c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.xml", + "sha256": "a36f10ff298a227a9710e4f166ce5b3c380ab62e06a20067684aff3361a2c8a4" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.png", + "sha256": "898316187b32af78cdc45b18720565b8c303bf46a72da08a4009bc36b61873b4" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show-frame.json", + "sha256": "76cba8f2c6975ed77555a10612ae2265615e3ea786af16751bc33d8fd5b295e9" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "sha256": "897e91a27e1f486680fc82ed11da29bf3a072d8088908291210fc3e271adfc19" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "sha256": "d3af3205ded5781b0c6e669c7b47ccd06b9662a0c69328a2bc6650309122d645" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "sha256": "09429d975cd9dbdd78e0feb6a418d244f7f146b12609c8f541b811cfa8f00735" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.xml", + "sha256": "897e91a27e1f486680fc82ed11da29bf3a072d8088908291210fc3e271adfc19" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.png", + "sha256": "be35511792eedfba26605a8fbd4752335f5f86aec7dae7369a9469a3b14ce5fc" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch-frame.json", + "sha256": "8cc8ff837409f2a42eb647567d2d603a1c286b38593ce0a40ec5dace31a5b241" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu.xml", + "sha256": "3fade7b9fa22cdbc95f13f6ff920f1f64dd6f68aa10c6eb312d4f61c7cf0741c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu.png", + "sha256": "0d941fc27aef2fea742a82168166718dc3a47d25bff751de8331492d2385dd05" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu-frame.json", + "sha256": "0d8041ecaf2c5577053896ac693e3c8e17c330d9d45ae02ffd98ecd0d818cea2" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml", + "sha256": "db535c25cd4ca83ab662a646813958b1eebee56a27e04a52e801184095616e2a" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png", + "sha256": "3802d473ae4c4f95bb1a477f099c5171b64a27ccec445876c4388feaedfd3a98" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json", + "sha256": "9dec30b9f56a16e3d7b36d303d13fcf5f7effe1b673f8cc479be52daae2659e1" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-after-menu.xml", + "sha256": "897e91a27e1f486680fc82ed11da29bf3a072d8088908291210fc3e271adfc19" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-after-menu.png", + "sha256": "a07095af2e3b95357dd84bd46ba8993f586014ffacbfa62b6ad6fbb5b1ca8221" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-after-menu-frame.json", + "sha256": "4a7663cb567527f7b66801e9f2db42bf3a45d39ceb4dca3ffcb7f2b14195dea4" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-replacement.xml", + "sha256": "3fade7b9fa22cdbc95f13f6ff920f1f64dd6f68aa10c6eb312d4f61c7cf0741c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-replacement.png", + "sha256": "168b979f8e9261509c8f8d2dc44a28243645f5d7718d16900783e46d0304abb2" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-replacement-frame.json", + "sha256": "c8a54d9c3417e45f5aca1b29aa95b8cb11263da710094b728fd3cb7ff2b1eb7c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.xml", + "sha256": "3fade7b9fa22cdbc95f13f6ff920f1f64dd6f68aa10c6eb312d4f61c7cf0741c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.png", + "sha256": "1864b2293f3ca3f6750cca55e3227534dd8f62e823837565986900bb7195f842" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route-frame.json", + "sha256": "3837ce197f7ab34199d967f6e262c1c49fe3370c41c3d7885b2925e05f70a94a" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-replacement-show.xml", + "sha256": "897e91a27e1f486680fc82ed11da29bf3a072d8088908291210fc3e271adfc19" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-replacement-show.png", + "sha256": "84a0b75e56032a99f72e3b843652e4fc4feac48ed7fbc914c78d9bde3b64be27" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-replacement-show-frame.json", + "sha256": "fb174dffca1fb576c534887dcb8ee29b9e63ea50b1bf310cf2d586ce6cd533f6" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-recreation.xml", + "sha256": "3fade7b9fa22cdbc95f13f6ff920f1f64dd6f68aa10c6eb312d4f61c7cf0741c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-recreation.png", + "sha256": "1205f1b9b2309e743df6475a61c799f0ecc82b8f834cfe0c3732325a4a74af4c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-recreation-frame.json", + "sha256": "ebb7e2adf59fc237d4182431d9cf043e55f018c25ca5d1d5cc525b9ef32a7563" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.xml", + "sha256": "3fade7b9fa22cdbc95f13f6ff920f1f64dd6f68aa10c6eb312d4f61c7cf0741c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.png", + "sha256": "8e70019330f1d84cb2f833baa27871dd41c08fb4fcda26da886956b60509827b" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner-frame.json", + "sha256": "8ff3b67629b4ea269132bbb2cc0c0c71d35360029a7238bf859632b92bfc470f" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.xml", + "sha256": "897e91a27e1f486680fc82ed11da29bf3a072d8088908291210fc3e271adfc19" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.png", + "sha256": "200b28446273de5ff5648029c1f39aa48a5a9ccbdee634c520902739ec1a1638" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show-frame.json", + "sha256": "8c1c5c8e4f62f217d1e2a95ccc2fe9c399c1ef00c5fd6343a2185ca4636945a0" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "sha256": "05a607d2f9f5c989f5c9c85a91729394f362a4c9f4e9b2c096546c8ba5096703" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.xml", + "sha256": "96fa92754c736906c91af3ced52af345869197dd6f66fcf2516a4c8e3760471c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.png", + "sha256": "3af3f70279318bd73afc2f30ee4eac85dd238cb0c015ddfabccff1890a1f870c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show-frame.json", + "sha256": "be1b9fd29b46685c9e3e39d3af4930828a55a8d53440b30205ede0d28f27db4e" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.xml", + "sha256": "24dbad69c2376fe548ca2d0991d0d27d3da0e7be1d6298d7db008cf80c230331" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.png", + "sha256": "0f475a5934490f864146696317de4dc9fd9c760534cac54c6fe2a2a87affa217" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide-frame.json", + "sha256": "7f874c1364efff15fa38e5b9518b44f2b76dafbc0f642e71c0be8279fc96b250" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.xml", + "sha256": "96fa92754c736906c91af3ced52af345869197dd6f66fcf2516a4c8e3760471c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.png", + "sha256": "52281d1f72679a5c3a002d00485fab20f52642452213453edc914190c5b37163" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show-frame.json", + "sha256": "0193da82e862287e9571cc3d12a787bdc5d194917a99272e97216038cfd1c63c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "sha256": "96fa92754c736906c91af3ced52af345869197dd6f66fcf2516a4c8e3760471c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "sha256": "b71daa468bee932442e00675e1a8d2add3e50820a044336bfd6fec3bfcae43d4" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "sha256": "49de88fa56e720b346da4841e06a54352fb6c77a7aa3440cf73a360cdebd9d1e" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.xml", + "sha256": "96fa92754c736906c91af3ced52af345869197dd6f66fcf2516a4c8e3760471c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.png", + "sha256": "efd7127bca18c751ee79f0621b0be23f5094afff9c87c7c153f813d0062a78e0" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch-frame.json", + "sha256": "22f09e22ea05f811e443064ed362996898cd8342dfe91330b3564369fb05918c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu.xml", + "sha256": "626d6ce77e5b595f0dc8f8835ae454d011c03f812aa321720cac0f22ecba43a7" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu.png", + "sha256": "02c6e8dbb70d2cf72b95bbcd807666b8aa9460e98d19548c84fb932c02805f8d" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu-frame.json", + "sha256": "51ea799ba493c440473463308594ea0350ebe7037490f7974e264b6ded47f8ff" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml", + "sha256": "d1e4c7a08b333dc866e333d10189a0fcb6f871a616e65f889b3127e7292361ef" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png", + "sha256": "e20dd394841b824fa3318e3bedf3ff5ca58fa249d77a9923ae6137d18335b9bb" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json", + "sha256": "3723d6f36da6c7ed43ffdb5dcad16f37b86370d58c1e5f70bfdf8d2c6d5c84d7" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-after-menu.xml", + "sha256": "28e78df21e8fd763d90a61e6bd0ecddb0bf4e35c4cf27d9258efdbbba32130bb" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-after-menu.png", + "sha256": "c0ff24e08351a46af0fe676f16386434e6c5c31cca758b471de6009f9727eee1" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-after-menu-frame.json", + "sha256": "7c4b817e91efd805f74f299eed266c1fc0014171bfcc548d3c35a97371d7c5df" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-replacement.xml", + "sha256": "626d6ce77e5b595f0dc8f8835ae454d011c03f812aa321720cac0f22ecba43a7" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-replacement.png", + "sha256": "7bcb08b8b0b756aff7c4ae493065e1af0ee8742da7dcd3e854feb2f65ca3bb2e" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-replacement-frame.json", + "sha256": "a02366e24d018c67ac5e9e8dbac4d9d0987d307423055b19b71aaf99dfdd8cfd" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.xml", + "sha256": "626d6ce77e5b595f0dc8f8835ae454d011c03f812aa321720cac0f22ecba43a7" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.png", + "sha256": "8f0aaa199a483c7e3c2a09d7adb705a7af5bc9e753a359a2d210526c736af645" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route-frame.json", + "sha256": "ff7884d4d28a589bd03fc97a5b2bfcfddf9b8996f7fea2ca1a88d246569cd2d3" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-replacement-show.xml", + "sha256": "28e78df21e8fd763d90a61e6bd0ecddb0bf4e35c4cf27d9258efdbbba32130bb" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-replacement-show.png", + "sha256": "22c49964dc8b23c3212298009c064cfe7caad157e69c5fa920a71e37c62eddca" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-replacement-show-frame.json", + "sha256": "8dacd2c5d11726c6a9b8ab7c32d91c165a42c8f23b184e7e7fcfd03237c93771" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-recreation.xml", + "sha256": "626d6ce77e5b595f0dc8f8835ae454d011c03f812aa321720cac0f22ecba43a7" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-recreation.png", + "sha256": "5afbc6a1464f83af35154ae9e719db18184a81f19dd5e08e09814278405c1ed4" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-recreation-frame.json", + "sha256": "b118e8292c7c7728fde6024a9576d269782bfe0eef6f29df2ba1641fccbcb0e9" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.xml", + "sha256": "626d6ce77e5b595f0dc8f8835ae454d011c03f812aa321720cac0f22ecba43a7" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.png", + "sha256": "a43b7165ea0fe6b9f5d67b4631a33b4397992c5966e5d6d76b56c60197a61127" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner-frame.json", + "sha256": "0e464e7d0271445c97141db900a5097f6f41290e066ef3efd1364486875154e1" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.xml", + "sha256": "28e78df21e8fd763d90a61e6bd0ecddb0bf4e35c4cf27d9258efdbbba32130bb" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.png", + "sha256": "03f9c87cdd9a66b3400ceb04e6f66d18bd4d74779933597d1464ee1fe07441a0" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show-frame.json", + "sha256": "894d08087dcb5dbedf7415ed5207baeaa2cf4845ed58613dbdd02ca0e559a61c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "sha256": "7ec3a009d2c9bb73d64b2ea9aef316c7ab40e0aa7ba4abf5aeadf29811f3e234" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.xml", + "sha256": "62549f33870545ff887d2a594b5968c96258d2fe550b9e77447eed1c84bbef70" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.png", + "sha256": "b858de5fc85f500660daec675f8eee643778806c31b07decde91961f7c6d2d53" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show-frame.json", + "sha256": "43d3b1d49420775301cbbb47348c6fde718ec116f8e3acb357d8753efdbb2d0e" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.xml", + "sha256": "69b275251b2eb6fa2af63923e1ce3698156d34480b2beabb9f8fd7d1c6d11da1" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.png", + "sha256": "390a83c35ac2a30e432aecf9f28ed541fcf253a9865ec3de4870ca85c6bd7f4e" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide-frame.json", + "sha256": "052d6fd643b7fc0d0c97a5934df147caeebb7f88733dc1af1b810bb47841b67b" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.xml", + "sha256": "62549f33870545ff887d2a594b5968c96258d2fe550b9e77447eed1c84bbef70" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.png", + "sha256": "0a8643f2c426953f253fb294cbb67098521af9fb9184dc94864aaa4d4a5f829b" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show-frame.json", + "sha256": "48ced2d759bababde2b9381300fa2500a229de33b0434c088651713fff9fb3ae" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "sha256": "62549f33870545ff887d2a594b5968c96258d2fe550b9e77447eed1c84bbef70" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "sha256": "135ebb78ad4e734cddf8652ce26c7f9e326c6590be9f3950dd60234d55f7cb3d" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "sha256": "26a272e81174509a59872312e6fc23fef804de86447fd1b6b74b4989ccdb4903" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.xml", + "sha256": "62549f33870545ff887d2a594b5968c96258d2fe550b9e77447eed1c84bbef70" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.png", + "sha256": "1e3829e9f572e0fef8c5ee478855d62521ae6ba634e6bcfbcf266a1aecf7e2b3" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch-frame.json", + "sha256": "aedceaf0a58fb3228786bdff3f153c11a7da2223cc2e7bb1a866c79826de9476" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu.xml", + "sha256": "62f1fe6c38ed9c6f179cf269b2874d8144a628d388b056f88454f17713b0e007" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu.png", + "sha256": "e8f69767062d17f3fb1aff015c54a496ee85c4ce566d46cf8e3b568cd186a424" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu-frame.json", + "sha256": "63766f68ad92d91d8d189440c5476742de13a7f4aa58d6b47600fa489aab19fa" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml", + "sha256": "b268918416b34eb427d0472021fa76e23dbeb873a34359464aaa68eda11cf719" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png", + "sha256": "47ed3dc7b27288ede18f83496ba39029842e0dd37c2410caa7380f4347f8b655" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json", + "sha256": "47eb6d88c2228839ce2e5509435b112678f2e083b981a6506fd2a68b690fcb11" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-after-menu.xml", + "sha256": "aa8d8dd33a1411bcbbd6f6f7b2f8e871df674de5ce782c94ad503a4abd686d78" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-after-menu.png", + "sha256": "6b2bd69170e6f78b36040076541e15e95eefbe90a71ca1a504a7ab8fa277e71a" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-after-menu-frame.json", + "sha256": "b22a9236fff224189fe8a54f50aa4059af0789e39d02c9e8bebb628f3aec88f8" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-replacement.xml", + "sha256": "62f1fe6c38ed9c6f179cf269b2874d8144a628d388b056f88454f17713b0e007" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-replacement.png", + "sha256": "28f87878912b9d00b3cfe32951f7b1dd1bb4af965b95c6606ed8df1c7ba7f51b" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-replacement-frame.json", + "sha256": "fdbd9e7859e36867b8531a96ef9f87702e90407344cb81df8ce757cecc01ec29" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.xml", + "sha256": "62f1fe6c38ed9c6f179cf269b2874d8144a628d388b056f88454f17713b0e007" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.png", + "sha256": "3142c0c5f9627546da40991057121600a65e95e49c1920c2fec19abac9912af7" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route-frame.json", + "sha256": "9f2dfde902468786283988d42b63eb485c5252a485c20dc3cd7bce79fa864c5c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-replacement-show.xml", + "sha256": "aa8d8dd33a1411bcbbd6f6f7b2f8e871df674de5ce782c94ad503a4abd686d78" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-replacement-show.png", + "sha256": "05efe545aa729817ef286c2bc68abe51b55de5b45e2bb41ba7b34dce84b10dc4" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-replacement-show-frame.json", + "sha256": "566cf7d5029b80d805ed3458f6d361a99b2421a7da599c13747fc1684bca5aa0" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-recreation.xml", + "sha256": "62f1fe6c38ed9c6f179cf269b2874d8144a628d388b056f88454f17713b0e007" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-recreation.png", + "sha256": "3869f92835e1eb037168a1616c55d06e22d0e909bd2afaa41d584d3159182e0d" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-recreation-frame.json", + "sha256": "2732868f517c87a5599fd094fb3a3f3259da82a6c16ac1b5b8250e1add94e852" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.xml", + "sha256": "62f1fe6c38ed9c6f179cf269b2874d8144a628d388b056f88454f17713b0e007" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.png", + "sha256": "afa34e3e26a62e6c7dda367bcb587855788322c5615e14395831f1635fca7b38" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner-frame.json", + "sha256": "e320dd38451edbec07cfcf53457c0e872f8bc566250c8c4168700d2bf23ef01f" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.xml", + "sha256": "aa8d8dd33a1411bcbbd6f6f7b2f8e871df674de5ce782c94ad503a4abd686d78" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.png", + "sha256": "c7d974288e950afe83e4b938e38f42810c0d1ccefdc6c382ded3ac88f6a57056" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show-frame.json", + "sha256": "2ef0203b654129b93444fbc5833c36605974c46046b499f7a6c8f0781460c36f" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "sha256": "62af77ff5c51ed5f7fe88c7dcf06660e7210d394843e8d9efd7210879d2a5ddb" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml", + "sha256": "cd3d36b2a778a11e9cd0e2b701970ab8329343eb54e3fba8281d7e4e4195d2cd" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png", + "sha256": "82809a319800462e57398a04df31fbdcce7258400b5bc6be50bc23a47ac5e0bc" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json", + "sha256": "fd010edfb5b7df9e4c92988af191a61b1e047821d894459fb6f1b4beaba0e03c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "a335a88b4bd3e5075a55bb379bed09374fab1e4c3050675e6f3a4bab10440eb3" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "a363a292b45b36d08020a3ac443f7e5e2222a498250837c5f177d7123ed76173" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "36af18583a084fae09c1c554508c3d1828aa761d6875890b05031c68d36eef28" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "d0666342e7ff59bc4d35c704eec7aa93c214d8455d27c989e0ddeefabea0e37f" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "6e6fc0af435e09f7d4a63ff8179f9c8fe0e6a0f60bc696b77201abbc49eb8f23" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "25eaf8e602a6b519869334b56598c27ac9454f8ea7ab9a05233f41327bac9b2c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "sha256": "26fbafdf6654b4703d17e559d449ac34f4bff8a0276b51bc473a85970666916c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "sha256": "8b89ffcb79791461e33d2699ab98509363bc1293da92efd0a32394baa28138d6" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "sha256": "93528d221bffdc7c90bb731b2d842ca5f230c9c19627308ed50a1e0f056f6809" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml", + "sha256": "6977e3cd9da786042542cf30deca3234a4ef1a172f88a45d449a97dd0f95e763" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png", + "sha256": "447735ca42af31cb9b5bfc2dec8db9483187def9263590dc937262bc9a2b676c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json", + "sha256": "b1acff232c2b7974a9c4ccad7fabc55581a164bce9016b2e28ec9d7910c3c2bc" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml", + "sha256": "6977e3cd9da786042542cf30deca3234a4ef1a172f88a45d449a97dd0f95e763" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png", + "sha256": "447735ca42af31cb9b5bfc2dec8db9483187def9263590dc937262bc9a2b676c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json", + "sha256": "8c6c7303a2bf50c6c96136022b68305dd228931e97360868670ebc835f70a125" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml", + "sha256": "1d1aff71fbe1411b24cae6dda8cd2bf731ae74ce6d0ba4e9e72277a49ba8fdee" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png", + "sha256": "a420ff1d63654531834bc429eaa74d5b14e062698ed2677c299940482c3eb4ea" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json", + "sha256": "08f1fd054e1eedc9e86300146abc600a84e7e5ac53efaa5e87ecacdf9d4cc2ab" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml", + "sha256": "6977e3cd9da786042542cf30deca3234a4ef1a172f88a45d449a97dd0f95e763" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png", + "sha256": "eda9e3cd85785e0be1d8a8da5e9a5b79160f633cb5b3d78d5d7b9a9cc080e181" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json", + "sha256": "54ef6e140277418d4da4467ff7f0fc5004fa04532d5d212b55bca34f1c4d5941" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "6df0e02b2b57bd06b965ccda10c44cdaff97c52d3ab361a74f83b3f0b02906b1" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml", + "sha256": "3c481b4c7c42b40973209ea849785ff40e542dd2091f980a5049a86d57088a10" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png", + "sha256": "8b89a0353f996d4dca7863648c1ffdcf90ed9d13fff979d18bab0b74c44a5157" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json", + "sha256": "e5b6554c76db6c95fff540693e774594a8179427e385d3d7a9a469044652a567" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "961389e9fdd95ef136f32c8771720c8143c2b0e25c55e5a1ef3356e57c6b0e25" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "4e18c71211830ebc3ca251db7824158ec78acc687d4ad2eec26645a0ed1fe447" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "3aee75b3c779520e9185f1b51a1c081d1d434e38c15856f3d87264cb2be4699e" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "a9009a255ab5940619eae94630b15ecffd487bef46c86a2f792de04c8191f094" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "29606615310ab7e855bea5ca8d600de4afa25a7d4f471b19e6b992a904f85f8f" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "1181267a2aebbdf238b8d055342c6e277e328cb3c92b7b609a5f883d6abc1ceb" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "sha256": "2edb70ff5503171a6efe9586815c30231b51ce279317cda0a5496cf69467c36e" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "sha256": "60dba2a803656d206f1d554637d14bb6bab71948bb2bc4d8b5ad7b5983c4dba0" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "sha256": "cd7dc5f93bb3e63c72d8fea055df4a1013ba71817afaadf3daa7e3fdfd1c286b" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml", + "sha256": "bd1bdb799071de55429f1db674f6ae1754fcab0a96f780f9ce52e8164aa5a03c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png", + "sha256": "41dadfff70983aad979a00d0015e44746b86f0ee4c9448f37b5f9cfa6085faff" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json", + "sha256": "a7aa7882a7e06e559deb0f6b51f3ac38c0e42fabdcb1bf46d1684ac8f16a4987" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml", + "sha256": "bd1bdb799071de55429f1db674f6ae1754fcab0a96f780f9ce52e8164aa5a03c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png", + "sha256": "9833c513fc06d752945d191181503ef255a79962fda2e632e8ad71ae63e22bce" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json", + "sha256": "417b704268cfa46cc1f5a2706903c8d73fef73984ee54cc57f6fca2dba2892f8" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml", + "sha256": "6e58c280e9215b04400fb8d4352f0136236c319fe5c99a646108daa5b2a32bdb" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png", + "sha256": "9221d308ce6d675fa4d26a2f539b97b548dd6fa1c9ea27743f54c6f32994b8e2" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json", + "sha256": "6161a81e2bbba64723875ed736d0a45c347898c9312d2ad1c08f6fca9fee928c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml", + "sha256": "2766640c23f615e6d1fd5c74f09d2ae6a6c7c27189478e087bb22bea532121cb" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png", + "sha256": "35649197f90b22aa1946a99eb52b597982e01899e6d62019d034f7ec3a2011b3" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json", + "sha256": "141de3e9f6d16c353a164a2aca3722efd3c340d7a05420eaef2d23d57b1f683b" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "ecba92601af22a39d80eac49d76953e214ae8b6ed4936acc52913c8dbec2169c" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.xml", + "sha256": "38f1ab7fb64f8d0464591f31f4b1ab4182776979c05e78025fb8a8d1cfa2cda6" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.png", + "sha256": "3dc555f8d05c826847422208147971141d849f614cac20caf821d0dbddfc637d" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show-frame.json", + "sha256": "be1b9fd29b46685c9e3e39d3af4930828a55a8d53440b30205ede0d28f27db4e" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.xml", + "sha256": "07586c4c480f3c29f406b54b807ed08b238a4f435ceeb5832735637eac2c3600" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.png", + "sha256": "d8d4dd66290606ad85b4d6249713d616e9af2c3cbdc8610dbe66ba707d1e3110" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide-frame.json", + "sha256": "7f874c1364efff15fa38e5b9518b44f2b76dafbc0f642e71c0be8279fc96b250" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.xml", + "sha256": "38f1ab7fb64f8d0464591f31f4b1ab4182776979c05e78025fb8a8d1cfa2cda6" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.png", + "sha256": "13322d7c029b58499f771bee8963996dc819c3ac14c99f54026bad035f856dc9" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show-frame.json", + "sha256": "0193da82e862287e9571cc3d12a787bdc5d194917a99272e97216038cfd1c63c" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "sha256": "07586c4c480f3c29f406b54b807ed08b238a4f435ceeb5832735637eac2c3600" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "sha256": "631a3319e076c08296e0185cb6350b5c7a5e5c080647a05c918497653a4105a3" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "sha256": "ab3da0a03d59b6b7cc1e60f69f18c854cdfc1eb040634784dbdcc024736167f3" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "sha256": "d4db51f5fa16832354e68ebb7f26099159aec13486e4c57596acaccdecf35899" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.xml", + "sha256": "eeadd2477bfd9c140e575f9b0390ae2b0a266e26013f44da815397fd35b0637a" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.png", + "sha256": "62663d2134a8487a631a0ff7dcb6c143c6233ea5681e055ad56e001476e4e45f" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show-frame.json", + "sha256": "43d3b1d49420775301cbbb47348c6fde718ec116f8e3acb357d8753efdbb2d0e" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.xml", + "sha256": "91ef5a71ea2b4fe7392619c02ebc3c58d1bf48c2578105b7a33a9f5752446125" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.png", + "sha256": "24c53d99bd846c183d5443d96ecf9acb5befe2804ddd5e5ba37edfde67dc5cb1" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide-frame.json", + "sha256": "052d6fd643b7fc0d0c97a5934df147caeebb7f88733dc1af1b810bb47841b67b" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.xml", + "sha256": "eeadd2477bfd9c140e575f9b0390ae2b0a266e26013f44da815397fd35b0637a" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.png", + "sha256": "7ad6087c7704646798c6bf11b370db935533a6011f378917e54eae1dc20a09ef" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show-frame.json", + "sha256": "48ced2d759bababde2b9381300fa2500a229de33b0434c088651713fff9fb3ae" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "sha256": "91ef5a71ea2b4fe7392619c02ebc3c58d1bf48c2578105b7a33a9f5752446125" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "sha256": "e24f05353f1179973b7c765a4c14af2a1ab14cfc8a6b39c449c0d7a58e007003" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "sha256": "2295281ccca7b1832df53fc1c83b1c956cd04935db5c9e2807a88956e3911c1f" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-v3-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "sha256": "82fe8b90cae7ab2ce65a0fbce90086435529cd57486923ff3ae747006a5e1e8c" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml", + "sha256": "73a2d2ed6193ebad4b41dd58ce3ba9da83d1cf4b08f040444e48e1a4b1c3b331" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png", + "sha256": "6f616b31303314978da8af68ade4da404d48262ea18fa9bebe1fd5b9cf13cd42" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json", + "sha256": "fd010edfb5b7df9e4c92988af191a61b1e047821d894459fb6f1b4beaba0e03c" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "2f1c3bacc26956585edf4a9c9176a1959b3867af8a30ea1da4c7e9c74fc8ec01" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "4c8bfc4baf6c8b188bf1e661b9ce64ebd17b5988456f20ec89e79004ec858f62" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "36af18583a084fae09c1c554508c3d1828aa761d6875890b05031c68d36eef28" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "173a2e3c49885ef8077b36ad2afc471faebfb028b8a2fd14010fca8f19875299" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "6c38a3ba3227b09e807cd6113efe0166cd71ffb3f4aa12ca2962783440ebc169" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "03e206efabc8c009a17acc85d24b4d16faa74934e967dd92d18094ab3fb4f772" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "3fb46039ec47f89270b1c0972ec95b4b1c5f8252aea186f34b515872318c529c" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml", + "sha256": "9de7820c84299b374cbe6a7760c16a3375c1820e7373efbc86afcdcacb099366" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png", + "sha256": "54fffbd08e144cda98d202b372544dc93c3bbf592e94d726aa4e9daa63954488" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json", + "sha256": "e5b6554c76db6c95fff540693e774594a8179427e385d3d7a9a469044652a567" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "9de7820c84299b374cbe6a7760c16a3375c1820e7373efbc86afcdcacb099366" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "57180deb92306a4f519b76d54324f227bf1a297ba1fd102e7df431ce0c3f4976" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "3aee75b3c779520e9185f1b51a1c081d1d434e38c15856f3d87264cb2be4699e" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "fda02aa5f8b0f81fd07fc197119c29ce7907d41807b141c6137079c161063ca2" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "2a7ec2b7865b04f468fd47db581a0d2cf50f73fa5f5fab0acaa55dfd32d44070" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "ece83da11ff1e600cfe5f07186c5251a1060df6f741c839e0c6e9716a3929fc3" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "55b861597acea563d4881dcf94294c13f7aee4f759f181473e355bd113029545" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml", + "sha256": "ba850990af7d6705962458505ebfb1700f30708f2a6688b85417eb1b4a4842f3" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png", + "sha256": "1b608cde3f157ba562012c8a9a9da4e3b2cb22dc5951305eb410457d35471a65" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json", + "sha256": "9a3eadc4b50cceb0886feb0af9d1758b3c613cfb8295bd969b9606c0178b9c55" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "94f467856b2df6e527bbf9751db9773b795d0ce8e0eb657f98ac13b475b34b8c" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "3754228b75b19620ff4ffe9bbc6d62bb946312c927cebfd43f325a45f841b874" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "5b9bafd96f811b0cb4b83df751ae0aed3a948cd5b453da1fef483c8610236b86" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "8bd2d811630c71bdcf6208d8ae30f8ca49b477dc67ac801c70de3ced04bb45f8" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "aeb72c8b49177cf18d74784a4688d8bd272deb48e8986d86bd49d4fb66cd58b1" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "1813955009e7148a125948107b5b471d1cd9fe7ff2334928922aaf9c465b8f39" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "2cad14379782102b85a376eef0f3112f13c780eefd10ad4dcd15fca4c24c4cad" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml", + "sha256": "6c032aa1437e0f63a847a1725fbb7965e8f573730e1308008a129aa5be2e4bbd" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png", + "sha256": "faa2d07b040d0c3ecceb987d6fe40ce3c2e40865622a80d2df20e2d14754d5a6" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json", + "sha256": "73a1acba609037c73ccf5bd54de8011f86a8861e3f0f4d08f2f45123768e53eb" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "f662ef634019efb9ca1860b77e5ef20290ae3399ec890b076a848d79ad68221e" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "45f751492ec14227e2b0c42b4dd9421d4eafcd1daad6cddd08c812cc5a11864e" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "30324492b9b32081f8dbe3393aa8580263fd77079f7fa28dfc5fbbf79271d478" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "f662ef634019efb9ca1860b77e5ef20290ae3399ec890b076a848d79ad68221e" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "17e66337885380dd6eb34ce56e065a428ccea5ec0df27c23dccad6f861f74544" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "b2050027d7e41ce99f99b847788d96978c631fa132d7c2746ca0de8050e50ca4" + }, + { + "original": "artifacts/keyboard-toggle/control-old-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "cd8e6159eaa739cf0c6973350d36b4479016d94d390007626af0385fd679a42f" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml", + "sha256": "eb02f9fdbba7f9b74457c039c798277f84cd0f805a358d49247c9a77ed37d742" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png", + "sha256": "8eed8f58892cb45e5cafc919300fd66616498d72c589ee8087ea05eb834714d5" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json", + "sha256": "9a3eadc4b50cceb0886feb0af9d1758b3c613cfb8295bd969b9606c0178b9c55" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "d5f518ff7b751cf30b0038e0d9ef8b760b29bdf4845b0f7bafabc85d3ce2d0ff" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "cf1344706aa70a41d1a0ea0170bc870010ab627c4730c6ce5c61671d8a182d80" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "5b9bafd96f811b0cb4b83df751ae0aed3a948cd5b453da1fef483c8610236b86" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "d4703d140d3797c2ef02701a1792d65ca4db0a396b7b9cb5545dbceb6e358730" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "f4d9cb4e761a8cf290313d9b40b7960cc3eec36710a763648deef58e215ac7d9" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "a4c281c1d1b6e42acb760c721c016e47755a64ae2fd06315b24a8ddd207c0d8c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "sha256": "aab8589c3f1839d255003c114f823894921c3c101aea7939b7e6bf4e09f40043" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "sha256": "fc3f5a79f56387f8d8a0095dd3531a2e80a55dff20d9a3655a75b8f186ddf0e9" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "sha256": "31b05faebd8ab820a79e7bc65e5ca03c67c4dc5242a1691466449419cb4ad71f" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml", + "sha256": "f2e5c8acbff502194fbf15e88fc43defbfe7dbfe58890ed7d2fc83c170f74dfa" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png", + "sha256": "cbfc57c5e701c05423ae7d71ebfe6e869537d2208524a61659b2edb0f242e749" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json", + "sha256": "d3e71c75168bc0998ee8c84980954ac4f0f345ec4d28baaf08c7a55e8994e844" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml", + "sha256": "f2e5c8acbff502194fbf15e88fc43defbfe7dbfe58890ed7d2fc83c170f74dfa" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png", + "sha256": "4d030eca0b0849b4094d288172cdd84cd7688b8424088aadada6824d8b515bcb" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json", + "sha256": "4d07f8d03ab85f6dbc240979b55add5a09e8cb0560a582d7add2cf86cf209da2" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml", + "sha256": "e6e8209067e34f6d699f7ff533750f61c1ab670c528a879227ef350487762e44" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png", + "sha256": "e3e9e0006f64ee6f0ff2ec3068270502ee48cb9c72e1d33326458e75e579be81" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json", + "sha256": "102baa71e40b73d69523df885daf490c3461c683df3a3531341f6ce70e2b9a27" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml", + "sha256": "f2e5c8acbff502194fbf15e88fc43defbfe7dbfe58890ed7d2fc83c170f74dfa" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png", + "sha256": "96001a00b566cc4f635c98ebc123115f5aec1814845e21fd42ec178c512fe5cf" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json", + "sha256": "d7d64a571026d1b201df281a3f96d49977fe9131f475a8b19cae1dcebda73c5d" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "7987e463b650cd9a1e347151d003cce87251478cc2ca80b3b9c15ee2f6f1572d" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml", + "sha256": "de5c99cfe669974e20c7ef670438e756d7f23547abd7527472cce25c551ac2dc" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png", + "sha256": "b5a32b8196411872149d768407600bbb234185bf99f724941322f85d5fab3a5a" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json", + "sha256": "73a1acba609037c73ccf5bd54de8011f86a8861e3f0f4d08f2f45123768e53eb" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "bab7dcf56d19269cfe0b579d0de798dc7d8d07bef4e7a4aaf181f1d7ea6761bd" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "9d1e6f31abcda66f615c601cc2538e748ac9e9d686b1d6f88e910b93c7da620b" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "30324492b9b32081f8dbe3393aa8580263fd77079f7fa28dfc5fbbf79271d478" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "1b7018d9c191d78e4057fe8ea9eba0835a5a164ba9788d8156941bc57e0272a3" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "a39e05d774ec798f026474bb1b9ad8c8a30297b9e586758a0d83409cc0b2432e" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "07045a076a61eba2bd5d99b5cb324a6f4431595b5341edc1f0234dc8ae9b4bf7" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "sha256": "11f84798b867cb2c4040b22b68031db70ecd95cba790c9d3edba029f4253e09d" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "sha256": "4f4f9805f1a14f317ab0311439d103a753416cecc6fd586fe5794da8b83b593f" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "sha256": "23c84d4b72caaba22166d5053bfba21da389f68cd0112a507176bbdf2eb17f25" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml", + "sha256": "c796732d9e23655744460b8200d407470ac41a71a51adf78e7fe941abda8ca7b" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png", + "sha256": "9b03970666da94b940135f78a1b07d3ca0d22b70e42f72e8e03b8d4f0682e4c8" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json", + "sha256": "b895f012479205b38e44bd84c15499c5ef76a6abec9869fb57feb6bbb09cd13b" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml", + "sha256": "c796732d9e23655744460b8200d407470ac41a71a51adf78e7fe941abda8ca7b" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png", + "sha256": "9b03970666da94b940135f78a1b07d3ca0d22b70e42f72e8e03b8d4f0682e4c8" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json", + "sha256": "d0fa36552dc1e30233998d8423fc62ba5447efdc7e0a1173799d5a3d860a9fea" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml", + "sha256": "5190ab87de84d2cb862cb7172123c42901abd9bb5d81ce1718faff9e688e00b7" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png", + "sha256": "b26bd50afdbdf26cfe69223f3ccdef3744a8643944b34f1a26aa04b5782a40ed" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json", + "sha256": "f76c84dbc50c0767ca3da2c4b0a4a6a6de2c918d8ee24882c3fcf511ce0b596b" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml", + "sha256": "c796732d9e23655744460b8200d407470ac41a71a51adf78e7fe941abda8ca7b" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png", + "sha256": "676a0290d0e6b027cfad648a417c15a486006f5cd90cd974ad8cb8b2190afb80" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json", + "sha256": "76e3b9ced31235256e12ff1dfb600d8ffeb3054860671b775e32acd75efb1d90" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "0117b62a630b1a45b51dcfa8ef15beccc9b429dc187c0beab943d781eff4fd40" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml", + "sha256": "0981bd4b66fb60dbc7525f6173c992216fabe419136f3507bcf3ed8faa37d1d6" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png", + "sha256": "dea9c22de960d623ee4d88b5746667d59315bcaaa57954174d28c0c6a5168955" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json", + "sha256": "47d3a38f3e735533d98a8b7527500306db58e20cf16afa0751ff2b24b3ac69ac" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "0981bd4b66fb60dbc7525f6173c992216fabe419136f3507bcf3ed8faa37d1d6" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "5a60b69021dc9f71dff38f8bbe43c30beec2929855f134b62b1aeba8ca977da4" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "2d9dfca03bd30c2836a510f55746a2dc53c3cc1b8cc9e009004e9137be05285e" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "352cd0a0bcb6581b794dd19b69cf50f1a1a0acfa3a07e07e1b9e8c18604c48ea" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "82da4587950e7ce3994e25eea47b5092a7d74bd3c8b87c8f4bc733db96dcd343" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "b0c20464841fe433312c342bfa43d8c4d7a9b8f6d2fef79d7d00cb591367ff4e" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "sha256": "d990cd03feb1865190066ef9264ef805d236ecbbee3d17ce7fe3ca46f0b00b4d" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "sha256": "9919722c2925b9ad4d34c9d815633ad647c38e705c16a860f27183a047cf2e40" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "sha256": "eddf2999ad79fd92ed594516884c4a01ca0f309287a64013605d4b9275071679" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml", + "sha256": "1dca421373c2f7d1221da96b169cd78c64105602180e8076b368243d268de563" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png", + "sha256": "d5fde9f9e1783558f65fdac189df843b0b9109261294b50c772dfe23401c05a3" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json", + "sha256": "7bce0c05151c91e11207e6a5e23d44a965fbc6cdbf3ee5e8c34f02c72a663bc7" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml", + "sha256": "1dca421373c2f7d1221da96b169cd78c64105602180e8076b368243d268de563" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png", + "sha256": "d5fde9f9e1783558f65fdac189df843b0b9109261294b50c772dfe23401c05a3" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json", + "sha256": "5f7fc3dc27ceed2f38710a26a3fb20bf1365a7a746bb39a13ba6d5ade3e7b0b5" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml", + "sha256": "e4d608ed3035f6fa5519ad62cc2ed46741409edf630c1a48908f575a3ebcdb6c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png", + "sha256": "1920bf0af7b9f7d95cd2ae95cf4a29a1c86403bbc9e0ef4bcdfb1503c9ff907b" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json", + "sha256": "8a1b8db55f2ccc1efd98413ac8d4b8d856d4cb87b548f91a34494aff3bcba867" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml", + "sha256": "b4ac245fc6cc7aeda30268c919f3dac8b0dfe1ba1ae8bc108d481af6e17fb961" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png", + "sha256": "581633840316dd67872506247dfdbc810030f65100581259c9119ac1f462df89" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json", + "sha256": "aef3fc0ec9b8e8541c55b8c4d7b4c97d276023599cd16826ca47ad828799f3a0" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "e1d1ac0d924c19835708fcc59373fb821eeceb3b4b959c1209a8556f516da3cf" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml", + "sha256": "22b129a65346f4b168a0fa10db387b124e3e6e6515c8dec65de468802bf1b879" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png", + "sha256": "a35aa95ad406dfc075764fdaccf17a168687e62064d764b5114de9059710df2b" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json", + "sha256": "b00d24a2e6c908048b295351eef8d92d168f839482de4293f222c6a188ccc930" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "22b129a65346f4b168a0fa10db387b124e3e6e6515c8dec65de468802bf1b879" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "7c74784c71885c96c7724b1867e3299f3261631dfa088558f221198376cb0f51" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "9e959fef3c96a526d457227890ba17d1d596b951179cee8644c24a25dd0f5334" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "0f063627a97b3cdf19fbee3d3077f05a25265e0964846c7a4d90e0edd923cb1f" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "689258b3db895467bf5650f848017ef3ced5f06f88c39cdda8668e28e8edf9c6" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "b7048eb8b8a384197c54c64a1742c6d142d29caf99b7e2a59951c658fdbca04f" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "sha256": "561620a1e505b9ad17471121820f3ee2c43995c73a05297e60dc5df86de006f8" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "sha256": "e78e9424d7797009b1ae0130f59cf83979358c4a526ccfd17eea9e32dce6ffe4" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "sha256": "6465b9de12b18008bed3d7bd65618f23794d0b7fd7989716d80f1cdc34cb00dd" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml", + "sha256": "df1e673fcc79a5d68b5cac88b8a8f67ab78fb6fdf29b7776c2e01e3aeca05670" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png", + "sha256": "120c723f3232daad5cc1def4ba9e7a0255a086628d728ad04290e55a6a51dc27" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json", + "sha256": "750ec5e21a9dc305427797528c12608d4cd2338a6f351c586789dc5c7c1eb3e3" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml", + "sha256": "df1e673fcc79a5d68b5cac88b8a8f67ab78fb6fdf29b7776c2e01e3aeca05670" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png", + "sha256": "bddb9d917e0cbb8743f46360f8f1c12168b9a48fb7c3eba498e2631a60093a36" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json", + "sha256": "6d219416045ce6a096ef7e2fc870c774c0ec3ba0f9a2cbf5b52f71847318158f" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml", + "sha256": "aa60f62207ea39bb157441f42392a36edde64ffa539e14981a3cecbdd74a30dd" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png", + "sha256": "6d8c6de73a7024fd35628f14d8e03ece7471d2bbe7fe9b283acf0af01cdea945" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json", + "sha256": "93ffc8d68c9990e5fc5fc18bc60c690186c93291fa1783c07d05a6f36b93013b" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml", + "sha256": "171c83137c5c1376f97c4c79813e604fff843d4da820d50abfdda5e435f0cd00" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png", + "sha256": "1d93d6dd2bad48d2251f9a3405ce117b37a35a773076285c550dca2dffca469c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json", + "sha256": "56e48fc066a801d06df28370c95a89a3a726d73e91d92250d2d8554504740718" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "fbe11d4898b097e66b35a5ed0d2cd27da2bf336695171f47ef3e2c90e3a28e7d" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml", + "sha256": "ddfc3c188535b99977bc961f1fa2942cdf680060d10263f28bfbbe6500fc981b" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png", + "sha256": "eb8c37ce43437a141f6557bbad91ef6bb1831351e6f2e1a3ed50c4fb9dedea56" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json", + "sha256": "bbbd6e95ba6bd26afd08fc4ced1e0b08802aa586de92d4d54388a0e825e01f51" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "ddfc3c188535b99977bc961f1fa2942cdf680060d10263f28bfbbe6500fc981b" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "c6a10d9cc765bb7741520cfa346bd5be14c0097493c28c82274c487af139b0d4" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "8ca421bdc53974151d4dda86d9cdfafaef2563b0d92b8b75411feae0fd25c187" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "8d28718df86ae42ef0791b9c070c7a7f346a6fa97af564395e6a6bfacf38576d" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "e53c450870f29be4f11b5a1debadb43ad08e9b24274652cef1a83f2283f07b1b" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "f6b2ce66aef5075c7618d533cfb854c022c0c45a558efd6d22b94f2770c3fd4e" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "sha256": "e7adfb2eeb107d35b25de94d0299cfd392fdbbc46e936385e09b459e730a6157" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "sha256": "2bbfc9a7559a6483a5d5fa4fd9c99127da95b7a8b934f86c3caa3c73d44db2da" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "sha256": "035e9cb9cfc5c057a012271e1ce3ea74b1a716311282d4d0e0896e7ea17d4eba" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml", + "sha256": "37ae5ec6ddcef5931e8688aeb0e47b52750683a342c29c877b4b4fb00ca80857" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png", + "sha256": "21bac004c8daac4e2a8d14e92e5cecaa3a6c231ba2cea059ffd77d2009500262" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json", + "sha256": "8ebbb018e4c28fd4856d5d2c88a039aeab837f4df9bbbc3362d6476ec954a0ab" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml", + "sha256": "37ae5ec6ddcef5931e8688aeb0e47b52750683a342c29c877b4b4fb00ca80857" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png", + "sha256": "231fa3f23b875c03a3ff841ff974d2928bdcb96e661b41670c3c65d7d92b615f" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json", + "sha256": "747dc834d6524ad4f96b648033bc79e813265c83c36a1d74e3d8578d5087f321" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml", + "sha256": "53095ab1b677557e623e06f48e3214e5ea4d4bfba764d99ad0ff4f8fd3fc1be5" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png", + "sha256": "dbbf2882835c83a0cbceef05679c53a2a7354aba6561f13d750e023b697f818d" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json", + "sha256": "c5a0c83b1dcc2112c2233589226211a1371b449eda6817549c5ed515c1986ddf" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml", + "sha256": "d4ae2ea27df9c2239e52ace8b2ae31766bdc88ef8ffeda0b2f6f4148c34a78bb" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png", + "sha256": "4102f792755bd4d23231e80234d6113ab84675ab2ce2669390e3cd9db45e89fa" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json", + "sha256": "2226004210f207bda126c76ec168dcfaeaeb84635a14cb36cf43ce0f104a4b88" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "bb6e17fc39462fdf7b037825d3a32967fa59f7388c434aa56c79b06a6c84697e" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml", + "sha256": "535f9044f93fbcf86d768d4d91f85bd10024cbc061f691fcd4db3546d4fa3e0e" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png", + "sha256": "5c8fdb84534339be18bcddddffd4a5ddc7790249a37c4bc5764cdc03b0a7aaed" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json", + "sha256": "1e511620bdf44f45fc6c5a1a0afb2b45edcf426133a37ee50c139e7191e1313f" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "535f9044f93fbcf86d768d4d91f85bd10024cbc061f691fcd4db3546d4fa3e0e" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "e1e319d8b81011048da0d2c9fed0d7870ee9d27a42f73760b55dc0b3cb8b9b43" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "b57d14345a5f9e17bbeda8209298c79a1fb4217568efe130fe86a60a6f3c4c4c" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "f7642e4b54205e0195fb7c1d1dbd876fbe1f24dc1779a545eb3cdb874bae9f6d" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "e56040f8f47013905922d3be10bf9681a38333f810776fd971482f11a01ceead" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "47945103e56b434cc58564bdc42902531a0fd72b56ab1318382e9b4e9e700894" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "sha256": "00a3d09e2e0b320a0c491011461a7e8b9bc2e483eb12d83c835f2c50b7614e82" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "sha256": "d5cc538ede1224298d865a11651a09faccc7da52d355f7202a20d51cfd6ed55d" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "sha256": "935e6f3e8488c05f00bba7c473c97655bad1107a89213f6ec104cc6ab04f4d35" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml", + "sha256": "66ceee3377387cc1a567ed7576ac403fa3daf595692fe47058bc27820dd088c4" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png", + "sha256": "d5f0360d1a52ac41f4217a4368a4ddd22d91062ee1a99dbf8f672b185a9b4f9d" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json", + "sha256": "d779f0b1803a029a01c7fbd3c086d69e3759f970747cb49b2cb4fe7ec74ba752" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml", + "sha256": "66ceee3377387cc1a567ed7576ac403fa3daf595692fe47058bc27820dd088c4" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png", + "sha256": "d5f0360d1a52ac41f4217a4368a4ddd22d91062ee1a99dbf8f672b185a9b4f9d" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json", + "sha256": "1c26bbeb748b3b5b5844da1dc20d8359cb479cbfc2ad3f92e49f9dc2cef861fe" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml", + "sha256": "4d45a80275508479602a60ae966f988344ec80fa2932fdd8b5235e6694907305" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png", + "sha256": "6e9c2b003dd819d80d583d6f7adcbb15a3b8886b23f491d0a0b7bf8b89fd9a01" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json", + "sha256": "c15136d23a4b158700f121d1a2a0633cfaf1008ec2d4cbb4e5fad191c89517e3" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml", + "sha256": "66ceee3377387cc1a567ed7576ac403fa3daf595692fe47058bc27820dd088c4" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png", + "sha256": "c2df339b2a5423fea4259441ceaf44a26684b7276ecdd24829313ccd45543aee" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json", + "sha256": "26c83629b6e207deecb1484b993d30c0373eb96810d3b857eca9de4bdd0a0975" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "ddfa8cc95708e7886fd94d3cc6840342ddbe827a73af14aa7010ae76fba382de" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty.xml", + "sha256": "8eb2202e64f99103c7e7a50533040486ef70f23140aeb88e812a60055c2808c2" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty.png", + "sha256": "a366b1f4b01573c574f685de51398f7514b32d40e6f8a13ff39196eac0006285" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty-frame.json", + "sha256": "7b8649e0430770e732fc6a7bda82ef472d04598399301d3a38cf4713348c206f" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer.xml", + "sha256": "8eb2202e64f99103c7e7a50533040486ef70f23140aeb88e812a60055c2808c2" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer.png", + "sha256": "a366b1f4b01573c574f685de51398f7514b32d40e6f8a13ff39196eac0006285" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer-frame.json", + "sha256": "2adf20d0c9d920b71597dfae8ff9cc275c68960c2c5445a92e61692726814964" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching.xml", + "sha256": "5a4bc641708652ede45f3d4d8f28f62d8c801cd6486aafc17ca9743bd188dfae" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching.png", + "sha256": "e7cdd91fb169f77bc16d839c75134a27def21603d773e1e55a05de9212748ad8" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching-frame.json", + "sha256": "88cacf61e846e65b025bfaffaf0ee6d17075685a2b95abc42e7b80413ac388e4" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared.xml", + "sha256": "fc3cbe5f96ee673402b667621441af0516995b261db61b7a1314b2356be0a69a" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared.png", + "sha256": "0e1a84086427980b2b6203a5bb5e9b0cac7e3070a2b6fd24a643ea39ff9d8f78" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared-frame.json", + "sha256": "125303e0c950c98d6fd4196092734e754c44e835464068f265e26e88d0598dd1" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.xml", + "sha256": "2b0f7b5f0bf10760484aa7f445299da476061b463d6e2220d482f0f1ff459138" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.png", + "sha256": "7b631669392969dc0231362dd6899e3af9cdd104f34ded7a7e9e0563be082e58" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty-frame.json", + "sha256": "e4434f6e10d7590510c17f9e36f6adbc299efd2f5b9c803e7fd1bc25c5620ff8" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json", + "sha256": "e517efab9a25e3b8270063afec359a3da42acbb75bf24cb6987681c9d1e642ff" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty.xml", + "sha256": "1c6d9210c9c1a71c819eb23cff47d827428b6fb56e5d829e9fc48b07d854a799" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty.png", + "sha256": "1cd223a4742fe8a716cdb06981fd61842aa5fe86c699fd23efdb69b9d76c7837" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty-frame.json", + "sha256": "c40ff24358a7cdbb5509f2684776463f48cb143f9fbbc4a971a37d3751ad97ff" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer.xml", + "sha256": "1c6d9210c9c1a71c819eb23cff47d827428b6fb56e5d829e9fc48b07d854a799" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer.png", + "sha256": "1cd223a4742fe8a716cdb06981fd61842aa5fe86c699fd23efdb69b9d76c7837" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer-frame.json", + "sha256": "0c023b6e39c2f1de019d994379a016bab80bb80bef30dc9aac2cdc120b82b7b7" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching.xml", + "sha256": "117112271279d53f7e640f346fc734649f277bcc38fa3417ba7054198890c624" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching.png", + "sha256": "9587d5ab4ccb31f1de03b61b3f9ae3de1a64e50990e2531e495c989fbc695cb4" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching-frame.json", + "sha256": "f203ccd6275346d502fe67d9eaeb6a35064b66c9c2a8d6528297bdac12d94f4d" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared.xml", + "sha256": "c457c0efafb468fb644150739155e707313986395924944678a3076fa77193a7" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared.png", + "sha256": "7ea8352beb9ca3da0fd36b669aef242e7a690bde2fddbc5f528487bec1d9cedf" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared-frame.json", + "sha256": "485332371897fee2e4d2310e3c32f4f478373750c3169ced6afb77466c6021cf" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.xml", + "sha256": "72376f6b5b6e3a96aaa069510950f59827141c4afa16bc04bc44872c05b847a0" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.png", + "sha256": "95c6757a651de438ed4b45f8f9b5308b49532be8251264ca988ed6c0bd612fc2" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty-frame.json", + "sha256": "1fe33d9819ba45418cb13ec90578a5ca0c9b9c534969127992c7c53ea61511f6" + }, + { + "original": "artifacts/keyboard-toggle/candidate-v3-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json", + "sha256": "b1094e8183dd98165eea9ff81332438a91f5efe97ecbc913fcf7e776f128ed9d" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.xml", + "sha256": "10034d48eeb1347070ef7ec2311389874059d38150c7e258cce6dc479633e274" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.png", + "sha256": "b39db1c786e6e7c1bcca8205056dc70ae2df1843e245c1b7990ee8578a64e58e" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu-frame.json", + "sha256": "1a8b98daf5897621328ff4d246f77ba5f1352eaee3888c215f265a1813e5e9a2" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.xml", + "sha256": "10b5f5c022e6d3927e822441d5cdbaf1d5a9136fafd49122428427ed150ce130" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.png", + "sha256": "ad377de731e11c65b682b474f08b0aef9fb70a89977d900ac7acfff63f1ee7df" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu-frame.json", + "sha256": "7756ba0720372b4760a77b9e8152fd8046384b4c35579a1fdc540915faf566dd" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.xml", + "sha256": "514893bdf6891104ac3bb0729f2b704358fdfdda1d95a0640c86db80f120b38d" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.png", + "sha256": "fbc6d89855fcff9d69cc333121fceb9e3d39e64dc1cedea5a412a44ec0d54190" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after-frame.json", + "sha256": "3d9890e65b14c452a7bb84a325cbb71d2e0793933809209715d8a95e74ba860b" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-case.json", + "sha256": "fee4474be8e691a56ebc0e87bd452eeef9f556d21779f345cc4ca52642fde7ca" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.xml", + "sha256": "4a28ba14d20869a26f7f8041fbcd6b928ec0cda9cd555fa2b8418a6df454caae" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.png", + "sha256": "15fb25e6bd90b7e3c3d2922a53befab40bf7fcacd41a6f596f2b70b04e1b8ff2" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu-frame.json", + "sha256": "1a8b98daf5897621328ff4d246f77ba5f1352eaee3888c215f265a1813e5e9a2" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.xml", + "sha256": "b631ce0aefb65c763d38120445bed59c7ca76002cd304a76b8811f335887e69a" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.png", + "sha256": "3dc56c25e820beee8f502414f36b58ef200150b88ade3aae6525e31f77076aac" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu-frame.json", + "sha256": "7756ba0720372b4760a77b9e8152fd8046384b4c35579a1fdc540915faf566dd" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.xml", + "sha256": "6971b4d3bd36f6cef938e79b9689165a2bfc9df7d742b50603511cf489b8d3f2" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.png", + "sha256": "3a0600c45e0ff73b0c84d7194ca061e7f77683c1cce42b5ec5112fdd16a633a6" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after-frame.json", + "sha256": "3d9890e65b14c452a7bb84a325cbb71d2e0793933809209715d8a95e74ba860b" + }, + { + "original": "artifacts/keyboard-toggle/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-case.json", + "sha256": "fee4474be8e691a56ebc0e87bd452eeef9f556d21779f345cc4ca52642fde7ca" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-0.xml", + "sha256": "8d32f675ff720c15191843a9d00d82707018e42ba4eea25fa96932b5c04a1050" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-0.png", + "sha256": "72c996d07465f6099f5f021ddd80f9fdf799455c386a52c25dcd7806522d887e" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-0-frame.json", + "sha256": "88022fa4333be54a941400b8c4dd60b4fa36bb77c448b8507a85163a53f6671e" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-1.xml", + "sha256": "783b8093347aa1eb1bb2e9b9732fcbafbd88161f7c9f90e71564e10267384a88" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-1.png", + "sha256": "683da9641e87e6af9be358f4c06702ceb9415205016b1a1f725842eee2709028" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-1-frame.json", + "sha256": "261d988f8decf2b56733d43e8a56a82a4ce6bd7941e7c3c8d332f46f2e85fcbb" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-2.xml", + "sha256": "8d32f675ff720c15191843a9d00d82707018e42ba4eea25fa96932b5c04a1050" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-2.png", + "sha256": "d2d6e8f5a7a10cf053ec37901a1c3428459a0370a8655f2485b58d424603ef38" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-2-frame.json", + "sha256": "4074174ea4040f566f68b9cbad94d6ff6955c59e4cca7393380a43d71fedae2d" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-0.xml", + "sha256": "920e97ee22f0745daf72161b87f21bd2e6d34c6b0864f0808fde4bd34ec8b531" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-0.png", + "sha256": "ce6578c82166c69f929921f371c2e37d04277e60c8ae779d7550ebb6f718c7f2" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-0-frame.json", + "sha256": "814aab371137ef7224b580ad539c4757f586e02be83c0cd21669a80fd9823fe3" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-1.xml", + "sha256": "3968b972a26936f4f9ddd772ca683f8665d6df59300256912ae7da94f1e52287" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-1.png", + "sha256": "f7d77704146f4d29686f97b7d7d22b7aff37d8f28342a4505da90fce7f372114" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-1-frame.json", + "sha256": "e31098814b128dab93638e30ad55b2f68ab497e3072828cd0eb4b8b53219f32d" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-2.xml", + "sha256": "167dcd3240befb4ace05722f535368d8c73800c407f613532410b1500a403309" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-2.png", + "sha256": "7618d64e07c50b4a4037b0d50108452fa62eea7d0acbc2de11e0387e5cb0497d" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-2-frame.json", + "sha256": "7161efa985063b8c0265210a1d5e794afa2b7c70f42008bccf2be3635771fa39" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-case.json", + "sha256": "a4d2ea1442e881b950547978ce12c3df1e13310cf9072b98f5bd3663d2b67f72" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.xml", + "sha256": "167dcd3240befb4ace05722f535368d8c73800c407f613532410b1500a403309" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.png", + "sha256": "332e72edaabad8bd1c0a94547c390a8cfe729898066c7d98ed2649efde8d5b60" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show-frame.json", + "sha256": "16daad1eef0957b1b8bc75a1b86c80f4e5d2987f88e5d2fd9b5ec547ffb7b717" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.xml", + "sha256": "8cf3a90f10d6eec7df233378e7daa8b3383984c115382e891dcc2ab4fb3a3bc7" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.png", + "sha256": "492684a5b7a1eb9989c1eea8f5fd72a805adde22bbc267aa0b09a5ef1f856f6c" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide-frame.json", + "sha256": "6603dc62fe03f29ad0d642eb32d16a958d6319a6edad8c4a851194f5462f7e16" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.xml", + "sha256": "167dcd3240befb4ace05722f535368d8c73800c407f613532410b1500a403309" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.png", + "sha256": "6e48ea0bcbd16e88a2ada009901a23d1ba9b043e09547bbe9798215c04ef2550" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show-frame.json", + "sha256": "34d7d1afd5f68148d05b298170023beee817cc13f54f2e1cf2900ee03f4e85a2" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "sha256": "167dcd3240befb4ace05722f535368d8c73800c407f613532410b1500a403309" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "sha256": "d09b66269e1451273b39620c9dc53bf657638fcc553eaaa4cb5d2a18f41642d6" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "sha256": "48c6dc2b7f9dc8d551893ed1711dd475bdd47470888a6d01ae7fdcb0a378f220" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.xml", + "sha256": "167dcd3240befb4ace05722f535368d8c73800c407f613532410b1500a403309" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.png", + "sha256": "9f997e06fd69cf2d8b84eb19662855271121335d77ac611deec6885474bc4f7d" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch-frame.json", + "sha256": "87226601975f7853a483a07c7d694c0fd771391b1e7f2a6449b7ecb139ef95bc" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu.xml", + "sha256": "8cf3a90f10d6eec7df233378e7daa8b3383984c115382e891dcc2ab4fb3a3bc7" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu.png", + "sha256": "ffe72c1df37f5846a6ee11723660fc51483235507e2e6c2cd3f023402548831a" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "sha256": "538bbab99da53f8d3d879b4e385fe086a19c4b598403e72a0450a24b352644c3" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu-frame.json", + "sha256": "0558d9acf593b72e2c3a0d5e3d0fb1dddadfccbef14a83994c5f798ab2d03927" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml", + "sha256": "c82e0a2a70a8be824768fd2e359d6c6dde6cc829071a0cf164d21aa4b7f542a7" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png", + "sha256": "6adc070dad29a20cf6135fb8041ed28af3ae713fa69cb7287148b12ab16520b8" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json", + "sha256": "c548ae46776c3d0f74e53cc233479bbdf522a33ed4ba33274758e06439f2dd69" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-after-menu.xml", + "sha256": "167dcd3240befb4ace05722f535368d8c73800c407f613532410b1500a403309" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-after-menu.png", + "sha256": "dfa949a4d7f21b9f796b13bd870dfef50d7c82232aa54149a7825e54f3b8fe2b" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-after-menu-frame.json", + "sha256": "a9caf24aa53c8c93f996c3fdb427ccd598101ea3f893eec1a794fa5cd6500733" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-replacement.xml", + "sha256": "8cf3a90f10d6eec7df233378e7daa8b3383984c115382e891dcc2ab4fb3a3bc7" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-replacement.png", + "sha256": "e78864b065f997f29c93b0b9dd638baebe4127bd982d1e5967057303e4a4d5a1" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-replacement-frame.json", + "sha256": "46f429558a4da5d91d4bec4863ab80e365127758c0700b87034ed601bd4deb97" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.xml", + "sha256": "8cf3a90f10d6eec7df233378e7daa8b3383984c115382e891dcc2ab4fb3a3bc7" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.png", + "sha256": "337abefff7a6acbb55b0deda11a8cf6f313ab3a8b25e065567a0e0c635f2108c" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route-frame.json", + "sha256": "0afec2e5b8f08fc51048f5cf6d11f7c7d3bc64c12b6e109be037cfe12b6b1486" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-replacement-show.xml", + "sha256": "99203478870f1f97fcada6a0b85410a81e0085e15cf54f8279d4d9bf2a51d9a9" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-replacement-show.png", + "sha256": "6af05bee3dc1092b17b283f67da7380381a48c2178bdc7cc94ad92299385631e" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-replacement-show-frame.json", + "sha256": "4cff38db38c86cdada7a7da93a53d3449e3044f4586e6c19e9e1ac1471a1530b" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-recreation.xml", + "sha256": "e9132c55f0e6e8486a162c52b8b5755fdd65e5a5ca070755e2b85d1a9c7d8f64" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-recreation.png", + "sha256": "eaa1cc1f34d1dd41e991804f35ba9e497b1d380b7cd8ba95c14165d6b585be2b" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-recreation-frame.json", + "sha256": "b989c155b994b614b111358fca588fc4a1d4d8c4741f701912bf89d1c1dcb923" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.xml", + "sha256": "e9132c55f0e6e8486a162c52b8b5755fdd65e5a5ca070755e2b85d1a9c7d8f64" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.png", + "sha256": "b79f86010ad2c4e8caef8b6c44c646c192ac768442c6e1376a587276fbfaf13f" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner-frame.json", + "sha256": "eb8d0b7ea7c84d00bda951d0214c7eda8f6c3322b25a00e940e23e6e938c8c5a" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.xml", + "sha256": "167dcd3240befb4ace05722f535368d8c73800c407f613532410b1500a403309" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.png", + "sha256": "76c443a135c609f68e9ab51254bb42dd3ad891c3866ae9849c0f1bf158b1cc60" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show-frame.json", + "sha256": "925990b48fea02e6187d86597be7e657ca974cc679cc72ea3d2842e0adbe191e" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.xml", + "sha256": "81f2d687f225eb1c959f51b3693aa3aada1dcd440808571a3f2a38ea3cf1486d" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.png", + "sha256": "85cec1e4fdc5140c1f94f3de7cba0c5c1d1c3d7dabeac499286c66831d396250" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show-frame.json", + "sha256": "554b08aa0d3dd50ff6a54e07176a85fdfd4cceb70052137b8621ef406c550548" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.xml", + "sha256": "32261ab41e6557c4328a00889524164a039337da0a732126d973f8ef6f863c3c" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.png", + "sha256": "30fe5a529d874619223ae8faede8d8fd0d65cc7fc83b22a1e3e76797e85571e6" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide-frame.json", + "sha256": "2da02eff294aeff70b20d3c0dba8d1a085cbe2a5d2588540697e531039a729c0" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.xml", + "sha256": "81f2d687f225eb1c959f51b3693aa3aada1dcd440808571a3f2a38ea3cf1486d" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.png", + "sha256": "e84e605b86db275d7bebd82b768142dcb5cc4068976e273ecfe97a1d38772e5c" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show-frame.json", + "sha256": "80acb74de7e9b2ab66ef6279b09d7d2672c37d7ebfcf1e8c3a82c0e1add4da63" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "sha256": "81f2d687f225eb1c959f51b3693aa3aada1dcd440808571a3f2a38ea3cf1486d" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "sha256": "2a5d4a53ad0639238a786050f49bf4b8cb897bd3eebe654c9ecec26f2ea36b7d" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "sha256": "e691b0299a9a1c4dffba2df31d0545b9859e644812b7cd4b6cd667912fb27c55" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "sha256": "dc66aca81db0b35eadb666dc1679ca0f491ab419df2e6a60df4515bf6b285124" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.xml", + "sha256": "81f2d687f225eb1c959f51b3693aa3aada1dcd440808571a3f2a38ea3cf1486d" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.png", + "sha256": "0888837937ec4ef726199ef58d07f15fa0b6581c046e84c27439a774b2c4dfed" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch-frame.json", + "sha256": "65b05c4f8e0924ea2dc497fef15e685d61b95dab9b90aaca9560bd1f52f3e2cf" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu.xml", + "sha256": "32261ab41e6557c4328a00889524164a039337da0a732126d973f8ef6f863c3c" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu.png", + "sha256": "acad325c26ee065ade8734e83585c709b010bfe0090d5f4324c0a895984684a3" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-menu-frame.json", + "sha256": "79073ac589a5b64cb416fe6572d734400c17e5d08d6f1370fe5838e2d5e1ced9" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml", + "sha256": "1c1969829c30b837251c0846477eb56290b72ead385c6dfd97b7e5d11d1dde5e" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png", + "sha256": "61139a0f3c7e30887c609206190cead18bde69687171e96ffeb23f1f9ac844ae" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json", + "sha256": "cc42774be675d2c2d1ede544cb6380dde597ce3b06209568ad338f3a9150d1b5" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-after-menu.xml", + "sha256": "81f2d687f225eb1c959f51b3693aa3aada1dcd440808571a3f2a38ea3cf1486d" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-after-menu.png", + "sha256": "f98b776f7cba1e5c9fbdb7d4a5680c6f35741a963fb5a4b0f9aa0426bde005b9" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-after-menu-frame.json", + "sha256": "3b4b146762fb555be2733a45753b1eb5a4cc2d87ed90c0635a9aa2e704056a27" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-replacement.xml", + "sha256": "70c5fb3d69af14aef7b8a4d449732ff1b6bd5e176962759454c6f9f3ab769299" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-replacement.png", + "sha256": "9aa993c58061d583592ae47a7b85f1100f1a02f130158f4a5f0a980d5779dea4" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-replacement-frame.json", + "sha256": "e3ff3c371aa6ce1495b7f322abf9f2b6fc773215146c0929cee3e7af78029ecf" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.xml", + "sha256": "70c5fb3d69af14aef7b8a4d449732ff1b6bd5e176962759454c6f9f3ab769299" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.png", + "sha256": "01eea78447471eb716442da3c5b0dfb662d40e8435dc603d9fd0a0e2d2e9782b" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route-frame.json", + "sha256": "4cb08de0fbd2a9b49001f6623b7534263a8203f9538f85e908f929aae4dba212" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-replacement-show.xml", + "sha256": "6450e63572811592c7168dc9f8241a35d58de5a614bd8d2ffcade433c5e9cd14" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-replacement-show.png", + "sha256": "f47ab52b9df8a52bbea4ae6986b14814bfbe2cdc638571915b35f92559fef129" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-replacement-show-frame.json", + "sha256": "49c394c69554ec6d7894617d2d5468f2932deee1ae8944fe1b099637b829ab24" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-recreation.xml", + "sha256": "70c5fb3d69af14aef7b8a4d449732ff1b6bd5e176962759454c6f9f3ab769299" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-recreation.png", + "sha256": "545a4f0e75626a82c54b03e2c244d60848ae276e9134aed72d63a02f02d4eca7" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-before-recreation-frame.json", + "sha256": "d41399f1e966e5a52e038ae26e75605a7e20735bfdc2c36d182d41488aa18501" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.xml", + "sha256": "70c5fb3d69af14aef7b8a4d449732ff1b6bd5e176962759454c6f9f3ab769299" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.png", + "sha256": "9ad61fc02daa71ef45a32586f4197b64c9c29676499e575e960e883e26956765" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner-frame.json", + "sha256": "5523738e4fc2045085cd5735d7eb697568a1df56c00183eb6817deef02b46d6d" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.xml", + "sha256": "495dd35c72bb074c90943500bdcb34c2182a70c4fdfcc4171f1a04812258085b" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.png", + "sha256": "5b26029118a9eb43dc400d66f5ccf6ba1c00277c0cb2f08a7d7d804c81c0d1db" + }, + { + "original": "artifacts/keyboard-toggle/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show-frame.json", + "sha256": "b225be89cc82c3fdfbc769e7004c38cadc70155d50f4ef354efd34c13d5d8392" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml", + "sha256": "4104778e71f55f80c63dce3c6360b3c5c711e1324c28d0e5d29128f4804cc38b" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png", + "sha256": "bb8bf34de97ad228bdd70becf67f95144c1ad7b49b56bd614ea0a9410363cea8" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json", + "sha256": "fd010edfb5b7df9e4c92988af191a61b1e047821d894459fb6f1b4beaba0e03c" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "0e9c9377768ec2f3127e9ff3128f91c76ecb36ff66e6b1527ca52e4cbc29e3c1" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "35fa3bd3b6b17c98e44e11902d690162a309361247106611014812c268d87b4a" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "36af18583a084fae09c1c554508c3d1828aa761d6875890b05031c68d36eef28" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "c785c7cb5dc7489e517bfde3e9cca9031733044937ee9f760c37efe153ab1178" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "7b3f212babf9e4d0ddd81f56d5717b5253ed91de1ffab270c7b74347c742a594" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "25eaf8e602a6b519869334b56598c27ac9454f8ea7ab9a05233f41327bac9b2c" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "sha256": "6bf9d05ca1734927247a34c2fbcc56ec49445d0f0cd46d498c82f1d5a9c035b1" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "sha256": "58f0b5ad3cbc61925b47cd2c31cb49b84524037b146c79062cf2eb8e3895e3f9" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "sha256": "93528d221bffdc7c90bb731b2d842ca5f230c9c19627308ed50a1e0f056f6809" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml", + "sha256": "9867a8963088c6abb8386880763d05e7796aef1fde9fa08284469e1790c60710" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png", + "sha256": "717ed0c1946b725b784990fa466b7176b1603b31fec28736fb6b4d52585a002a" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json", + "sha256": "b1acff232c2b7974a9c4ccad7fabc55581a164bce9016b2e28ec9d7910c3c2bc" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml", + "sha256": "9867a8963088c6abb8386880763d05e7796aef1fde9fa08284469e1790c60710" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png", + "sha256": "38d0fddb758dbf7f242cd7758baae28dd8ce0647c7ea11ffe0c350df040b3493" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json", + "sha256": "8c6c7303a2bf50c6c96136022b68305dd228931e97360868670ebc835f70a125" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml", + "sha256": "2ff0be54bc0d004a1404d29ba598c076bfa4781518cd7352ab2862082f4d1a00" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png", + "sha256": "61a5fff000c1e99fb787334007679fd6d934bd149f09435922591371d53f27ef" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json", + "sha256": "08f1fd054e1eedc9e86300146abc600a84e7e5ac53efaa5e87ecacdf9d4cc2ab" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml", + "sha256": "9867a8963088c6abb8386880763d05e7796aef1fde9fa08284469e1790c60710" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png", + "sha256": "2e3d8af2ecb8af876945ac2ae956c6d51c05e3baecf6d0b98e9a3265ff37841e" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json", + "sha256": "54ef6e140277418d4da4467ff7f0fc5004fa04532d5d212b55bca34f1c4d5941" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "6df0e02b2b57bd06b965ccda10c44cdaff97c52d3ab361a74f83b3f0b02906b1" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml", + "sha256": "8ae2d5a2fafb207468a4a1af961c285cea15d221c228373e3c04ba6847c701b4" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png", + "sha256": "adab54de0014ebad923641d566c3d8ee4f22e5b6a7571d87c11b57b0128c5db9" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json", + "sha256": "e5b6554c76db6c95fff540693e774594a8179427e385d3d7a9a469044652a567" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "00663adf15ed40186fc5923398acc0bb6f50bd4927906482d05c9e990805003f" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "0c1da1044e3fb09db00a4b044aab283ef2b8f599febd76203fa0cdc6eb3fd3b0" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "3aee75b3c779520e9185f1b51a1c081d1d434e38c15856f3d87264cb2be4699e" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "a6194ba5c79eb443d5033a103e07966bd13326861c0472e8a2383d5ee2cfa8af" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "ef05dba85ff199584a25d6f40f5595f5731c9f0875811d60c3d57d0d57869b68" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "1181267a2aebbdf238b8d055342c6e277e328cb3c92b7b609a5f883d6abc1ceb" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "sha256": "e499654611dff64f49da1f6c309c0b8b7ff7d7b37f93d8e8554145f95fb03fa9" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "sha256": "9ec2e841267888bba9cf819e05b8021eb7984a19ede3e060068fad0e8a307fe0" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "sha256": "cd7dc5f93bb3e63c72d8fea055df4a1013ba71817afaadf3daa7e3fdfd1c286b" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml", + "sha256": "a994836758a00455cc2e924c9374f29325bf649059308c04d9738e1c1c1766db" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png", + "sha256": "75f1da295bf1da10c29a9e4a888dce98f489a9e7deb8cb12946634b2200a0f7c" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json", + "sha256": "a7aa7882a7e06e559deb0f6b51f3ac38c0e42fabdcb1bf46d1684ac8f16a4987" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml", + "sha256": "a994836758a00455cc2e924c9374f29325bf649059308c04d9738e1c1c1766db" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png", + "sha256": "724d3dcb30bd14712392a220a7eb1e942fbabaf7b707880b505ab616274d7f72" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json", + "sha256": "417b704268cfa46cc1f5a2706903c8d73fef73984ee54cc57f6fca2dba2892f8" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml", + "sha256": "6d81dbe3e6d3af63469e7574be58983674adc62b0159df620c5d3e8f2cf42f8b" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png", + "sha256": "fffc26b4c6e47b78ef7dd152c6cb61a666bef61f0d882e9c92ec8eed0a059bd1" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json", + "sha256": "6161a81e2bbba64723875ed736d0a45c347898c9312d2ad1c08f6fca9fee928c" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml", + "sha256": "a994836758a00455cc2e924c9374f29325bf649059308c04d9738e1c1c1766db" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png", + "sha256": "eb4610cdf3429e3e803f0b58865c2ba990efb86e27be708dc94b9f26b80222fa" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json", + "sha256": "141de3e9f6d16c353a164a2aca3722efd3c340d7a05420eaef2d23d57b1f683b" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "ecba92601af22a39d80eac49d76953e214ae8b6ed4936acc52913c8dbec2169c" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.xml", + "sha256": "4cb8ed138228a0f00c680502a851522b1fb677a33bb29771d0fd5b9080dff728" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.png", + "sha256": "6cb6882a536cfd20e203cdb3ea88278fd530afb1327a58ca1a4f4851d98dc9c6" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show-frame.json", + "sha256": "16daad1eef0957b1b8bc75a1b86c80f4e5d2987f88e5d2fd9b5ec547ffb7b717" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.xml", + "sha256": "d18c845e91909af70857f9235f05066f780c3997d2cd073fbe8b6a48ab81eaec" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.png", + "sha256": "60e979cb5c4f421baed33837f6053b0feda28f9a5bf3692385099d59d43901b2" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide-frame.json", + "sha256": "6603dc62fe03f29ad0d642eb32d16a958d6319a6edad8c4a851194f5462f7e16" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.xml", + "sha256": "4cb8ed138228a0f00c680502a851522b1fb677a33bb29771d0fd5b9080dff728" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.png", + "sha256": "7d94be69507ba6069750b745bef8dc586c46e73d6d6da98ae969c0b9090bbdb6" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show-frame.json", + "sha256": "34d7d1afd5f68148d05b298170023beee817cc13f54f2e1cf2900ee03f4e85a2" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "sha256": "d18c845e91909af70857f9235f05066f780c3997d2cd073fbe8b6a48ab81eaec" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "sha256": "cd8ce9376ac29fa6eee37ee6122c8a944d69709434dbabecf7c3040a76069b65" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "sha256": "7a9c905a232410a42ed73ffa023143c6c237aad8b2be080c0be2419f1fe3cb00" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "sha256": "b338c38dab75f6c1d2f124d5078945bd66bf9d22890a9ad86f7f1ebef50faf68" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.xml", + "sha256": "a8badaa0dd88ddf81a1f9f1b9633bba50185ad4ea3f1e9e6edd13c642e4f7eaa" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show.png", + "sha256": "9b922a26ebed47f57e58bfb2fd376ffb735ca76f96c6d0fd2696b5b3f2a1d209" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-first-show-frame.json", + "sha256": "554b08aa0d3dd50ff6a54e07176a85fdfd4cceb70052137b8621ef406c550548" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.xml", + "sha256": "3d5fc11771146b9ea01c9e3d4290e42d3dc7929ab03bfd7aa4eee63397728414" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide.png", + "sha256": "f595e889f7b6e1c2586e720d4a7a7fd65aa2d35a1b5bf19e347c8ebe5dba2281" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-hide-frame.json", + "sha256": "2da02eff294aeff70b20d3c0dba8d1a085cbe2a5d2588540697e531039a729c0" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.xml", + "sha256": "a8badaa0dd88ddf81a1f9f1b9633bba50185ad4ea3f1e9e6edd13c642e4f7eaa" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show.png", + "sha256": "310938650bd27a857ee33532be1459556f9f12b75143cb5c6ec19e427407a2f8" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-live-show-frame.json", + "sha256": "80acb74de7e9b2ab66ef6279b09d7d2672c37d7ebfcf1e8c3a82c0e1add4da63" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "sha256": "3d5fc11771146b9ea01c9e3d4290e42d3dc7929ab03bfd7aa4eee63397728414" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "sha256": "0bc019d8840abdf43b707150e402686cd8d28b06f1238c4118b3075126554ea2" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "sha256": "12de910259e63531209a08d948ed0942a8f9a98f738b8fec5a5d73a56a7e6519" + }, + { + "original": "artifacts/keyboard-toggle/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-case.json", + "sha256": "b97217edde8e460e0573ede2faa0e5cbd937f43026fcf3a282dd445dddea032f" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml", + "sha256": "c2c64f964511341713c8b406f1c40ffeff913a6210e4e8a68ccd785945a60d26" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png", + "sha256": "2ef9ba827cb23824f522b2369c490092082bf48cae3ee48b0cc67f9fd46d9327" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json", + "sha256": "fd010edfb5b7df9e4c92988af191a61b1e047821d894459fb6f1b4beaba0e03c" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "c2c64f964511341713c8b406f1c40ffeff913a6210e4e8a68ccd785945a60d26" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "d882e73a6c77477701c7d76d61edf6f7c95bfdb51c8d73b311ad3f6a3dda7ce8" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "36af18583a084fae09c1c554508c3d1828aa761d6875890b05031c68d36eef28" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "4d26ee304113c9890bb4c9b6ebe420b4ed618d821d73a9b147a56ed3f6b40896" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "2fb233cb5617bf98d8c53c51f721488b62c3f72690ca363096a5131dc627195d" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "03e206efabc8c009a17acc85d24b4d16faa74934e967dd92d18094ab3fb4f772" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "3fb46039ec47f89270b1c0972ec95b4b1c5f8252aea186f34b515872318c529c" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml", + "sha256": "5ee44ec8ea72d2ebacd2f5a1f367fe2a5ff717c89c34647d44663e448aba89a6" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png", + "sha256": "3224910d03d45d454dc26b0fc2bcc4fea9f33a9ec2a74b2696875a53f47df8f5" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json", + "sha256": "e5b6554c76db6c95fff540693e774594a8179427e385d3d7a9a469044652a567" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "073f6019c06060b876ef8ef4e7b61c328a6da11bbe239c01c05cf5148ab6eee9" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "b26148a1251055f94693962e43a865fd73cecd37ee53c7bef90726c3cc61ee73" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "3aee75b3c779520e9185f1b51a1c081d1d434e38c15856f3d87264cb2be4699e" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "0d99d917d664286dbb7cb448e9e4e55335e44080f8cb00159e30bd6c5132375d" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "5d4a82154e16eab024e91f37af42d0d1ead7d5d608e213a0717d58630f9070e5" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "ece83da11ff1e600cfe5f07186c5251a1060df6f741c839e0c6e9716a3929fc3" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "55b861597acea563d4881dcf94294c13f7aee4f759f181473e355bd113029545" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml", + "sha256": "1ff4900f230e445875bf0534759ef002ced37d1e949386aaff9dca1b75d20242" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png", + "sha256": "ec201b97268c7560bd8e3ff9d4c76a12fdd31620d8eb9a73f2372348db971c18" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json", + "sha256": "9a3eadc4b50cceb0886feb0af9d1758b3c613cfb8295bd969b9606c0178b9c55" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "1ff4900f230e445875bf0534759ef002ced37d1e949386aaff9dca1b75d20242" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "eea87a46e0d80360c83b28106bc82aadb78c0fd7e0487457afb4d2988d892daf" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "5b9bafd96f811b0cb4b83df751ae0aed3a948cd5b453da1fef483c8610236b86" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "a269b3279e148cd7f8352ed7b6dc1f3423ac4ca52e7c741e056f26f7b948c907" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "74f206b6891482a789ee4d35ccd4192342e594238e8dae1843ff2ac92b52f27c" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "1813955009e7148a125948107b5b471d1cd9fe7ff2334928922aaf9c465b8f39" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "2cad14379782102b85a376eef0f3112f13c780eefd10ad4dcd15fca4c24c4cad" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml", + "sha256": "98b85b50bdda7616da025d031b86ef8450cfb6afda2aef64812f4ad9b5f7c082" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png", + "sha256": "d90b0b9f656c7b9c2037c0530ddcd7c66b8d45eef2fa7ac7ed26815b02e694b8" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json", + "sha256": "73a1acba609037c73ccf5bd54de8011f86a8861e3f0f4d08f2f45123768e53eb" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "67cf8c798b8ed46e37722177e9abcfe92fc17f0d8a2cde8ebe6b46b624ff28d8" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "9057b1d4c1ac200a5de71876a86ffc0ecf926ff57eb7364fe45cef55bc4642c3" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "30324492b9b32081f8dbe3393aa8580263fd77079f7fa28dfc5fbbf79271d478" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "f467bb3f80c7bf6e54a1f5afe1ad88f7f2b33e38167e2c290ef7e8565a80bd5e" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "85598917b0367cae1bfa1046a25fba347f0ad32bd4eef5d5a2a32aee2b7adfde" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "b2050027d7e41ce99f99b847788d96978c631fa132d7c2746ca0de8050e50ca4" + }, + { + "original": "artifacts/keyboard-toggle/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "cd8e6159eaa739cf0c6973350d36b4479016d94d390007626af0385fd679a42f" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml", + "sha256": "fece238c151cd43c8645dfda7be0f02c8b93cf9f4036f2ebbafae1a3aef465d6" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png", + "sha256": "932aa31b4e31605ccfc670ac41976d7a22c29b2f2ea029a28444482441221453" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json", + "sha256": "9a3eadc4b50cceb0886feb0af9d1758b3c613cfb8295bd969b9606c0178b9c55" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "fece238c151cd43c8645dfda7be0f02c8b93cf9f4036f2ebbafae1a3aef465d6" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "a09ba7924ecc2b2b3147f6489fb150d32f1c36b95c332f7597e7f180dd3573a8" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "5b9bafd96f811b0cb4b83df751ae0aed3a948cd5b453da1fef483c8610236b86" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "5a7783df7ed6df2c6962466fe977c374c8f8ec2131919a826e26fbc003f24412" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "a8e789a430914f01971d906502dbfccbeade26777f908d75b6dc17ae84a88ecf" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "a4c281c1d1b6e42acb760c721c016e47755a64ae2fd06315b24a8ddd207c0d8c" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "sha256": "bdcbbd0816ad76e7f2b2e90e4d344b5277cd9456df5cb4cd076c0bf280cdff7a" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "sha256": "bef2db9e10e4658458715a34299f61d4e9c6831e9ed0e1cb925484cf67f3cff0" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "sha256": "31b05faebd8ab820a79e7bc65e5ca03c67c4dc5242a1691466449419cb4ad71f" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml", + "sha256": "d034e1ca2d493bd149284993d017b3c4a876d805251713aea0060fb80bd274ae" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png", + "sha256": "76add856f3cc169eb66721cb6c2053e55cfed384547c1ac0b5d66de1b28b40cd" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json", + "sha256": "d3e71c75168bc0998ee8c84980954ac4f0f345ec4d28baaf08c7a55e8994e844" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml", + "sha256": "d034e1ca2d493bd149284993d017b3c4a876d805251713aea0060fb80bd274ae" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png", + "sha256": "25f6ca31220dc05383bc96a24c4c3b184f4d898e48e706126fdb100b67144e39" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json", + "sha256": "4d07f8d03ab85f6dbc240979b55add5a09e8cb0560a582d7add2cf86cf209da2" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml", + "sha256": "bcb8a94c7df79c2c12fb0dc68a60e3b06cc7d6f57c9a665de12f00b6447b1c0a" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png", + "sha256": "a1bc0c4bf400f92fb1709745a78c5ada83a53fdb0dca265cd25e829c0b3084ac" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json", + "sha256": "102baa71e40b73d69523df885daf490c3461c683df3a3531341f6ce70e2b9a27" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml", + "sha256": "d034e1ca2d493bd149284993d017b3c4a876d805251713aea0060fb80bd274ae" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png", + "sha256": "977e4c36b80e695156bb73605ec39ea1ca075c798f37dc610c9e9991f4dd9399" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json", + "sha256": "d7d64a571026d1b201df281a3f96d49977fe9131f475a8b19cae1dcebda73c5d" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "7987e463b650cd9a1e347151d003cce87251478cc2ca80b3b9c15ee2f6f1572d" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml", + "sha256": "a0cc8ca65f82d0275c2c5cc02c57c7f12d2613b29f99905410aa3531da8625ff" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png", + "sha256": "43a865b3a1311fc45acf38ae1a52ff4307450ded78124c480bd9d166ffbd0ad8" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json", + "sha256": "73a1acba609037c73ccf5bd54de8011f86a8861e3f0f4d08f2f45123768e53eb" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "6a7120005b53d59c1282241ce0fd511db43dc1bb91b1c8ad2a8ace78669345fa" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "55b397fdcc427555d594af27a1abcc0f1c751b8570704fecccd8a208e5faf3fb" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "30324492b9b32081f8dbe3393aa8580263fd77079f7fa28dfc5fbbf79271d478" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "d14fb962d969ad55a7b54433725b10affa6083a5b9a5a00671843137427056a0" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "6d164e8630b5ceb1d297e9903d1e1d445fbc8fac802cac8957dc3df6e878d3e4" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "07045a076a61eba2bd5d99b5cb324a6f4431595b5341edc1f0234dc8ae9b4bf7" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "sha256": "5ed960b72ef109cdf2ed280bf51e76249d4785abf937b6f24645184aef3a75c7" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "sha256": "0a96b8e66d91a551e7d9ba86ac4c92c4ba9d2bdea7573299482f910b6c173692" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "sha256": "23c84d4b72caaba22166d5053bfba21da389f68cd0112a507176bbdf2eb17f25" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml", + "sha256": "f706adb846842c0848a4967a268d052fbfdd5c3732ede969977b8b4b4b01be44" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png", + "sha256": "52ea07f8cb7e131d31c43e7c3e4fcf57b2fc4afdcac45e2af9d932d5d1e620bd" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json", + "sha256": "b895f012479205b38e44bd84c15499c5ef76a6abec9869fb57feb6bbb09cd13b" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml", + "sha256": "f706adb846842c0848a4967a268d052fbfdd5c3732ede969977b8b4b4b01be44" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png", + "sha256": "52ea07f8cb7e131d31c43e7c3e4fcf57b2fc4afdcac45e2af9d932d5d1e620bd" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json", + "sha256": "d0fa36552dc1e30233998d8423fc62ba5447efdc7e0a1173799d5a3d860a9fea" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml", + "sha256": "dfec1c16642c141d33f5ec1f69f472eb6b1e4d7011c1f71524233b3e3e360258" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png", + "sha256": "b0b5f44d2819257272986a5c8cc62e915f32b26df7bdae7aa24b09f11ea36d7c" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json", + "sha256": "f76c84dbc50c0767ca3da2c4b0a4a6a6de2c918d8ee24882c3fcf511ce0b596b" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml", + "sha256": "f706adb846842c0848a4967a268d052fbfdd5c3732ede969977b8b4b4b01be44" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png", + "sha256": "d4ed1b2313272e9d7f47fe4e7473b671cbac1a4791ffa8dd63dd6dcc844369f4" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json", + "sha256": "76e3b9ced31235256e12ff1dfb600d8ffeb3054860671b775e32acd75efb1d90" + }, + { + "original": "artifacts/keyboard-toggle/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "0117b62a630b1a45b51dcfa8ef15beccc9b429dc187c0beab943d781eff4fd40" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml", + "sha256": "e7657fc4ac690a9bffa49b73d8a17f1a397f7ea94463e1999af072f91dc1af2e" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png", + "sha256": "ec11167a8e98fbd3e2eee167f259c75c337878fb61254bc567d282a7c527248b" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json", + "sha256": "47d3a38f3e735533d98a8b7527500306db58e20cf16afa0751ff2b24b3ac69ac" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "e7657fc4ac690a9bffa49b73d8a17f1a397f7ea94463e1999af072f91dc1af2e" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "9fbf0486ab6d9a973004254f8e5f0da0e985b3bb8988385f756a786a46cb15f5" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "2d9dfca03bd30c2836a510f55746a2dc53c3cc1b8cc9e009004e9137be05285e" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "53b439e101b402bac847e65d1c16eccd667185e49265dd023d8e269d86906b4b" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "485b5e60f831d327a99f3f29ecbf4c4ee1f44877041977784e7a048cb82e11a6" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "b0c20464841fe433312c342bfa43d8c4d7a9b8f6d2fef79d7d00cb591367ff4e" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "sha256": "237583143c9ecdafb51d2d8438388dcb026c3bdebec7859793398bcaf64e490d" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "sha256": "928862b702fc9ab23cac95d7040c80ac51ecf8aca0f4b91b935046c070a7cf50" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "sha256": "eddf2999ad79fd92ed594516884c4a01ca0f309287a64013605d4b9275071679" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml", + "sha256": "7e433639952bc823c2d5574c7658b28fa3f0c4d987f740b3a7e865ade9d7cfdc" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png", + "sha256": "4c91f0995344810f893d498c33928a4c31a41bc08b9fdc20ec4f0d3e6d12584b" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json", + "sha256": "7bce0c05151c91e11207e6a5e23d44a965fbc6cdbf3ee5e8c34f02c72a663bc7" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml", + "sha256": "7e433639952bc823c2d5574c7658b28fa3f0c4d987f740b3a7e865ade9d7cfdc" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png", + "sha256": "cc4544e5e36b4a0235ae60be498d26f9ac04f5697536ae430cd051f0844368b3" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json", + "sha256": "5f7fc3dc27ceed2f38710a26a3fb20bf1365a7a746bb39a13ba6d5ade3e7b0b5" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml", + "sha256": "05887539e6cfdca5160ef2070ed6ab275055d1b9427eb0a046c848649c19281c" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png", + "sha256": "b7178765038007378a5aed31e72c324666b62d0fea0731418611db19f3dd0d91" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json", + "sha256": "8a1b8db55f2ccc1efd98413ac8d4b8d856d4cb87b548f91a34494aff3bcba867" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml", + "sha256": "7e433639952bc823c2d5574c7658b28fa3f0c4d987f740b3a7e865ade9d7cfdc" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png", + "sha256": "d960356c02cbc432bedc821ea969730187b87b035a70a1bc12f98b337baa571d" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json", + "sha256": "aef3fc0ec9b8e8541c55b8c4d7b4c97d276023599cd16826ca47ad828799f3a0" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "e1d1ac0d924c19835708fcc59373fb821eeceb3b4b959c1209a8556f516da3cf" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml", + "sha256": "935b2303386f639162d466e6e833958b573ded6c9f0fd3d2dad05a3a0119d8a3" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png", + "sha256": "3ec2e041fcbcd7372825707189d12adc360f17366797482ece2ea3b1fbc7baad" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json", + "sha256": "b00d24a2e6c908048b295351eef8d92d168f839482de4293f222c6a188ccc930" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "935b2303386f639162d466e6e833958b573ded6c9f0fd3d2dad05a3a0119d8a3" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "7739e66d208be7babde43228e02e3d9240d52390b9cbdfee5435926a7b4df161" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "9e959fef3c96a526d457227890ba17d1d596b951179cee8644c24a25dd0f5334" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "13f727c63c112dc2cc07d07a6c1e21f8063fc1949f56337247d0772ffc5f4e35" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "0429abaa0538ab39340a0ce34fed0663348c8758418b133f637c94131e002d84" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "b7048eb8b8a384197c54c64a1742c6d142d29caf99b7e2a59951c658fdbca04f" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "sha256": "5dc780798cce533a20300949bae1f8a4d72da2165f9456a4cf58cdd48f97a092" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "sha256": "7bed18d81c0d8576ac0cfdf7c24c318ceb958c5f27f5a95abcf2a20ccce2a1da" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "sha256": "6465b9de12b18008bed3d7bd65618f23794d0b7fd7989716d80f1cdc34cb00dd" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml", + "sha256": "a6f206fac9aa059a97ac255c38e20820f41cd665a9f2c66bf0858b08959f63b3" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png", + "sha256": "4d1605a43967cd240940c7b23983e8d9d23ab5fa62f6b59040a797be3f817cb8" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json", + "sha256": "750ec5e21a9dc305427797528c12608d4cd2338a6f351c586789dc5c7c1eb3e3" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml", + "sha256": "a6f206fac9aa059a97ac255c38e20820f41cd665a9f2c66bf0858b08959f63b3" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png", + "sha256": "259bbbab8188e8c619925ff6fa7494ff82ecf835bcaa63d0d6c4cd9c5a7d6e2c" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json", + "sha256": "6d219416045ce6a096ef7e2fc870c774c0ec3ba0f9a2cbf5b52f71847318158f" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml", + "sha256": "b44869e41f4d0eef0ccc66567bd7977d0593eabb5a66ab2462faf152dd56e609" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png", + "sha256": "0f60b7b242b4b29f5f032df133480d5903232d507caa931540d9041563aa8218" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json", + "sha256": "93ffc8d68c9990e5fc5fc18bc60c690186c93291fa1783c07d05a6f36b93013b" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml", + "sha256": "a6f206fac9aa059a97ac255c38e20820f41cd665a9f2c66bf0858b08959f63b3" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png", + "sha256": "b26f9dccc6611272918a0ee1a93630c54b78988a3b6723d3bcdd15fc52279dc2" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json", + "sha256": "56e48fc066a801d06df28370c95a89a3a726d73e91d92250d2d8554504740718" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "fbe11d4898b097e66b35a5ed0d2cd27da2bf336695171f47ef3e2c90e3a28e7d" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml", + "sha256": "016561acc46dc396e6f7ae060f5073c7973918b32f081891fdb83757088f60e4" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png", + "sha256": "c58dfd7a437a661445e2b5a3f50be5720d4de1e70153fe1b09599815f95ad070" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json", + "sha256": "bbbd6e95ba6bd26afd08fc4ced1e0b08802aa586de92d4d54388a0e825e01f51" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "840853200809e044dc2850846972d35ad68ebc45b5a6a4dc845fb0977b188d4d" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "d93facf3a0e8c45c4e33d332ce780af1bda0a846d6eda6e12ba9302589b7f2b8" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "8ca421bdc53974151d4dda86d9cdfafaef2563b0d92b8b75411feae0fd25c187" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "f67362d1f1deb9e1993f66bd68e95204daf915aa9ee9464bcddcd03f7777d700" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "f037d7bc46c526b660a2f27acfe6c34d4bd8b2ea22346928f8c577dc40124c83" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "f6b2ce66aef5075c7618d533cfb854c022c0c45a558efd6d22b94f2770c3fd4e" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "sha256": "63e4443501fdac760acbd4261b700dcc403fb90ac84d287b8e70e84062f9e368" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "sha256": "aa054af8f153cc41b228093259455514363a7a642d5207a4e4d472e4036ee42d" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "sha256": "035e9cb9cfc5c057a012271e1ce3ea74b1a716311282d4d0e0896e7ea17d4eba" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml", + "sha256": "94d6316236f42c03289b013f5d5627db0cdd40baebe1fc143de837e53087a35b" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png", + "sha256": "cb0a219c2e72dcf3b446d62d9b2df7b3ed48c9b8b46e12d6fa7d3ad58792a7f8" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json", + "sha256": "8ebbb018e4c28fd4856d5d2c88a039aeab837f4df9bbbc3362d6476ec954a0ab" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml", + "sha256": "94d6316236f42c03289b013f5d5627db0cdd40baebe1fc143de837e53087a35b" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png", + "sha256": "ee8f8362609a57d7d0424b7c4743c812b95779cd3355c5c5034af275bb6d52cb" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json", + "sha256": "747dc834d6524ad4f96b648033bc79e813265c83c36a1d74e3d8578d5087f321" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml", + "sha256": "cca52d167c9b0c7b2f30bdb6ec3b5e4d55f8dd5dd23a11b6a543d1f2cd071653" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png", + "sha256": "c37297cb4275d94a921ab748c84fd0d829f6193f5cd688e8cd6e2cf232761783" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json", + "sha256": "c5a0c83b1dcc2112c2233589226211a1371b449eda6817549c5ed515c1986ddf" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml", + "sha256": "94d6316236f42c03289b013f5d5627db0cdd40baebe1fc143de837e53087a35b" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png", + "sha256": "fbbe3ecd4a5bd6229295939f92aadb99ba156ac827a903b83624e3e9310ba148" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json", + "sha256": "2226004210f207bda126c76ec168dcfaeaeb84635a14cb36cf43ce0f104a4b88" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "bb6e17fc39462fdf7b037825d3a32967fa59f7388c434aa56c79b06a6c84697e" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.xml", + "sha256": "807b98abf28adcb640e3951800daa2e695729d7d7574c9b8e8e876821e3bf82f" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show.png", + "sha256": "49fc928cc3187329b1957b001157742e8dc69bf0abccc529fbf557319c62b11f" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-initial-show-frame.json", + "sha256": "1e511620bdf44f45fc6c5a1a0afb2b45edcf426133a37ee50c139e7191e1313f" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "sha256": "807b98abf28adcb640e3951800daa2e695729d7d7574c9b8e8e876821e3bf82f" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "sha256": "b44bd7a61203585155bd9d8734781d5d37d66abbb9399755b63e769639cf8096" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "sha256": "b57d14345a5f9e17bbeda8209298c79a1fb4217568efe130fe86a60a6f3c4c4c" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "sha256": "fae4f7040529663186ee231891c2951574b9d50f898d9655b2897fc5856e4996" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "sha256": "29a9f25602e62042c318a3c95a56995ae947250646abb0885691316affc1475f" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "sha256": "47945103e56b434cc58564bdc42902531a0fd72b56ab1318382e9b4e9e700894" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "sha256": "aab09add3ef3745dd7e07044f27b347fd0644a227af0fc2fd07d74a1bb3dacf5" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "sha256": "1e8b6ba729c8f8546991176ebcc8df11af51d9f8cee8544391f15e9d9f37a676" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "sha256": "935e6f3e8488c05f00bba7c473c97655bad1107a89213f6ec104cc6ab04f4d35" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.xml", + "sha256": "d17f52ab96c3ab32a0965fd0bdeeaea4ac0d767ff5bae448f7eb9584b8ac1710" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show.png", + "sha256": "069b092395a3b6aa19666b088181443431cbf5b802034363bec50030eb2ead77" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-initial-show-frame.json", + "sha256": "d779f0b1803a029a01c7fbd3c086d69e3759f970747cb49b2cb4fe7ec74ba752" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.xml", + "sha256": "d17f52ab96c3ab32a0965fd0bdeeaea4ac0d767ff5bae448f7eb9584b8ac1710" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide.png", + "sha256": "746c0ee0f2c277ce30d6830d102e0bf9453a34e32a541d7ca99df32a08230c19" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-before-hide-frame.json", + "sha256": "1c26bbeb748b3b5b5844da1dc20d8359cb479cbfc2ad3f92e49f9dc2cef861fe" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml", + "sha256": "d750364830da46fd4a0dc3614adda5ced44ee20cd6f8bdbee1a5754c189a6b34" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png", + "sha256": "4c70aca93738d60fa612b99f1443d3f01a984f4968a220db5f634fdd95907ab8" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json", + "sha256": "c15136d23a4b158700f121d1a2a0633cfaf1008ec2d4cbb4e5fad191c89517e3" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml", + "sha256": "d17f52ab96c3ab32a0965fd0bdeeaea4ac0d767ff5bae448f7eb9584b8ac1710" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png", + "sha256": "3b20b430f66f7cac7752057d778e32cf5f7ab3dd2ba3c22623224ef110727ea7" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json", + "sha256": "26c83629b6e207deecb1484b993d30c0373eb96810d3b857eca9de4bdd0a0975" + }, + { + "original": "artifacts/keyboard-toggle/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-case.json", + "sha256": "ddfa8cc95708e7886fd94d3cc6840342ddbe827a73af14aa7010ae76fba382de" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty.xml", + "sha256": "9b458022a31db01bbc7b13f7ff53e011fe9d7bc822acafdd2efe6238853777bd" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty.png", + "sha256": "575a48f7166499404041fc8e329a773b4adaacf2a38eb258acfe74b7b6d570b9" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty-frame.json", + "sha256": "7b8649e0430770e732fc6a7bda82ef472d04598399301d3a38cf4713348c206f" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer.xml", + "sha256": "9b458022a31db01bbc7b13f7ff53e011fe9d7bc822acafdd2efe6238853777bd" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer.png", + "sha256": "575a48f7166499404041fc8e329a773b4adaacf2a38eb258acfe74b7b6d570b9" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer-frame.json", + "sha256": "2adf20d0c9d920b71597dfae8ff9cc275c68960c2c5445a92e61692726814964" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching.xml", + "sha256": "64fba538f0d377e5bc7036b35bdffdbba7f32d6a5e6837fddc435118c2488bc4" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching.png", + "sha256": "b166f03be7624c4146282247a314991781b6505737853e337078ba50dc640a7f" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching-frame.json", + "sha256": "88cacf61e846e65b025bfaffaf0ee6d17075685a2b95abc42e7b80413ac388e4" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared.xml", + "sha256": "85c6feff9a78665c54d20b457fbe21107631968cc68e724d802ab22bdf5c99ae" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared.png", + "sha256": "a0209925872dc075f87710d770327cba222158679e14bef866887c6f030f20db" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared-frame.json", + "sha256": "125303e0c950c98d6fd4196092734e754c44e835464068f265e26e88d0598dd1" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.xml", + "sha256": "bf33f2d155665d314bf4c1da4be28390fc9e66fbb8a79fe3c2704e6bf4413993" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.png", + "sha256": "ceb5de4815246b946b536ebfcafd38ad07c9aa08b72e7b78e8e973f5d42a8bac" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty-frame.json", + "sha256": "e4434f6e10d7590510c17f9e36f6adbc299efd2f5b9c803e7fd1bc25c5620ff8" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-footer.xml", + "sha256": "c4fe544c77aaf3d657db72dd990dca01c57115ba87d72884f5e89f7efb8ef53c" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-footer.png", + "sha256": "492c3965264859caf47a8d2499d1d0f5e175d8d09cba82b8af465da7d4821e3d" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-footer-frame.json", + "sha256": "8119b67ead2b5ad4de48b15a2b34d9bf08b38972c95377eacd4a1cc86b2c369c" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-matching.xml", + "sha256": "d9d195d1d54d420cddff9c3f137e3e2d9e64fb8fae52333c9e41aded2e143186" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-matching.png", + "sha256": "577c375956af5b313dd7185b02ea207f9e346be406d717fd11653a3461aa924a" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-matching-frame.json", + "sha256": "f36856660cabc2df9b030f2e69e53cec13001c9a9b9bdb18d4fe8ae6e147909b" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-cleared.xml", + "sha256": "499a3f912170d9faab70daf1f1c9f9b7b1b236229d6db5e45270f2a3ca64cb27" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-cleared.png", + "sha256": "f61a6bfbc03a240edf7f4f407ed9632c574277b3abb1c563f106d27d9f973ccb" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-cleared-frame.json", + "sha256": "189e2d0b0af9591883e7bf7a635192948ba906cd0bb02675d5989522051b01f8" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json", + "sha256": "663e414b13cfbb475135e09a09b7551594bff0b1199a6df87aed1b677c84c72f" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty.xml", + "sha256": "475466c53823aa1469e440a28ca736e254aa5c648744663b5c1d2bd1344e98f5" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty.png", + "sha256": "047a75b13dbb69c4b982010de38f22b60c849d19ed529049ff77601ea6a7f938" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty-frame.json", + "sha256": "c40ff24358a7cdbb5509f2684776463f48cb143f9fbbc4a971a37d3751ad97ff" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer.xml", + "sha256": "475466c53823aa1469e440a28ca736e254aa5c648744663b5c1d2bd1344e98f5" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer.png", + "sha256": "047a75b13dbb69c4b982010de38f22b60c849d19ed529049ff77601ea6a7f938" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer-frame.json", + "sha256": "0c023b6e39c2f1de019d994379a016bab80bb80bef30dc9aac2cdc120b82b7b7" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching.xml", + "sha256": "901f712564c8cf65ac6360c8b15cb9f2fb01b4fb597cbdc802d4d1742bfc5ee9" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching.png", + "sha256": "fe7114703450552015b9e6d7a256b02e813a03989244eec2031f05902980ae07" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching-frame.json", + "sha256": "f203ccd6275346d502fe67d9eaeb6a35064b66c9c2a8d6528297bdac12d94f4d" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared.xml", + "sha256": "f600599e88b483296d16be9138d3af49719793739779d4007c7697a2d5fc6d38" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared.png", + "sha256": "2ba9475c601287ea78afbfa96461b2e011f6929c619d0675afe219f8b530146a" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared-frame.json", + "sha256": "485332371897fee2e4d2310e3c32f4f478373750c3169ced6afb77466c6021cf" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.xml", + "sha256": "ac5fac7d6b9724f1756b0a9fe7dd26b4fa6a93c5675154221e988c712ef55240" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.png", + "sha256": "6640cc65a935ba7540a5f6580cb59ac54fda224737371d1bbd3ad25054f342e0" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty-frame.json", + "sha256": "1fe33d9819ba45418cb13ec90578a5ca0c9b9c534969127992c7c53ea61511f6" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-footer.xml", + "sha256": "102408096b7b4376f6abc3ea9d6a27868a657d99616bc33c888f757cbe9be54a" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-footer.png", + "sha256": "14301c268b61be38fd6a76e9f71cf985cd23184746ade45a8ca153504bd096e5" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-footer-frame.json", + "sha256": "8119b67ead2b5ad4de48b15a2b34d9bf08b38972c95377eacd4a1cc86b2c369c" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-matching.xml", + "sha256": "aaa70b97d394057c68960a94bda3426fd09d7d22937802d102b5f6c9916acac4" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-matching.png", + "sha256": "df628765aec5059a4b368e66804f66eefadcdc16d01bacba826669053a9d587c" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-matching-frame.json", + "sha256": "a448b966b8cc09e35cbaf534d8e50581f1dcf956684e97b00cb688699ac4593c" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-cleared.xml", + "sha256": "d72a1d5488b4121190720ca591ebf36984abf2a53982b3d951980523cd35b79e" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-cleared.png", + "sha256": "34810698d01165400193ac86188165685d0587205e235bee60c3358747fcee04" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-cleared-frame.json", + "sha256": "992f771caff5b7cd06003721cfc7f032005e669e1428581bee5bb155017bb70a" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape100/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json", + "sha256": "c7c5b317fc4f20b32f4a6baad474fa8026aa0bd89f47b7bcb3d4a0eeb7633d26" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty.xml", + "sha256": "909846f1b05afd052ee875b00c6a3bc1b78c0cb73a04fefbba340c795a1e75f6" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty.png", + "sha256": "76d0d4d2bb7201c2afbe15914b2576473a75d8281db893d209be8521f4ee2196" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty-frame.json", + "sha256": "2ef7004c9b1f27d17ceafcbb3a6c286873a5e74cb1a8c241276241d7c9cfcfe6" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer.xml", + "sha256": "6d784ecbfa87635875165f97d774bce55092236294c5a0c3a6d370713101ea8f" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer.png", + "sha256": "b6498a39a6d56ae7f7b7bbfd4e713c97b4106087e08c62501e7e69321597e13f" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer-frame.json", + "sha256": "43468e3af816eea6a8ca4f9547c3dee44df2c53d33c9385c5da9dfeb4242aca3" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching.xml", + "sha256": "944dcd14cb167e55554921c506657b6c34571e3a36b6736ff0765ba18c84fe53" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching.png", + "sha256": "c20dee973eb048a7be2e566280d68891447ef043b61da3ba2597699bad99e8c1" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching-frame.json", + "sha256": "1d9a4b05ed6f3c042ad883cf7e2a06bc320aa786f3627e3b7f53db7b337cfa8a" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared.xml", + "sha256": "faf3f46c906605a32c6f3f7e9760a286a9ae25db103eda2c71f36ca730cc5a1d" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared.png", + "sha256": "f7d9fc370f85aba1e11447f49e3f9a00283faecd8e1363652ff6326fe5381d91" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared-frame.json", + "sha256": "4a25fd166bba2e2db26ddded449c60bc2b2df334942782c733cc35c99b49f09c" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.xml", + "sha256": "0c9581854508c803189205540367d751e5abab1c14c1113248ae361d35cfbd33" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.png", + "sha256": "c8ef503675e593ce45bc90b7a45e4bd163c8ddba2ca7ec177af2b94efaf7be10" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty-frame.json", + "sha256": "e64ac758ecd9c2fff77aeb66fe3ff0f7bc73f70b0deec3470ebd30981d3e2bf6" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-footer.xml", + "sha256": "c5b27a489ffc879b0ae5b06fa00d174fc8bbbd6122bf0a993439882c75854a05" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-footer.png", + "sha256": "d39e99bc6cee3cb1599b1dbe5ecc9cd93a1b9c954ae180bce2f919ae1ffee827" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-footer-frame.json", + "sha256": "cbf06d3c0e6defa255715b312ccc4b2e178171fd7cfccd1cad74f9ed21d2e682" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-matching.xml", + "sha256": "1224e4c396f9cd8f0cfdf1c684c2f634323512861e229b1329417d6988b6ab27" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-matching.png", + "sha256": "bd6522338f76e1859a27ba15be155d7ae061783e489264bdba6a43b7db43748d" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-matching-frame.json", + "sha256": "ebd69cc26ea04252574aaca2a31faab49529cd01e7e0930c56908937e9ffb302" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-cleared.xml", + "sha256": "112e7244d2406f093f67723241bf3228269fe625f1b36b188097ffb46a2fef08" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-cleared.png", + "sha256": "0f5ed52795357483c7f9408791a9460abe75d27d9c26e8ca9a6bdf94e5623dd0" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-cleared-frame.json", + "sha256": "8aa763a67de67a63e946d7615a31b39406715f95d9fb9aed99d6021657d45066" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json", + "sha256": "9f81ecc51724a9422137b5cdc7700063944d37bc1733958c2a1af5d18d8fed89" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty.xml", + "sha256": "11a65614bc930430d126317120913cf177bd92f0a9375bd4eec790d57851933d" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty.png", + "sha256": "f07de89085e79f216b4bb56f1096ba99c0c3c28f1a883700fbbc3ff9488372f8" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-empty-frame.json", + "sha256": "9e839b2300b280f1be07fca6d502368e156fd09e9c8ec5b9700aef3f654d4283" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer.xml", + "sha256": "11a65614bc930430d126317120913cf177bd92f0a9375bd4eec790d57851933d" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer.png", + "sha256": "f07de89085e79f216b4bb56f1096ba99c0c3c28f1a883700fbbc3ff9488372f8" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-footer-frame.json", + "sha256": "9d309906b3939cbc97dab4ecdad67fc1c0ac519279220d7165d5ca6907b4be3f" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching.xml", + "sha256": "fbb12c708038eef9189923e4db0ebb0b125876d5baf7c7699bec18f2347222ac" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching.png", + "sha256": "373213031e3a4d13bec8ee3fe9cc0d59b16b5b0527fef6023b1951ea5dd01719" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-matching-frame.json", + "sha256": "7e3bc88eef63d78178176abacb783f16f5aeebd828e0cfa57e6afd7e358a49d2" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared.xml", + "sha256": "b950a09bf56df00edb37b3e1703fc8968dd0c4bbea6e1bd989391f118c0a09f4" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared.png", + "sha256": "cd46ec60fd3c0c3ccfd2ebc9900e4332e96c1f5c27038b86108c3b305344f42c" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-hidden-cleared-frame.json", + "sha256": "a767c60c4399c4cde04b519378480576e4fe0526ddb150c19c1f277a2da249a5" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.xml", + "sha256": "aab4831f979e26b4d9603a5cddb498c28ffffb0e1bd2b9ffc2c997ac07c7679d" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.png", + "sha256": "2b7a29a8011849194d7c84ca2ab18607bf098a202aa0092c17634af4498227a4" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty-frame.json", + "sha256": "c88db1ce87e0f6ef6b587ff4976574c27103bec5eec4c3cec4f94736928d94d7" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-footer.xml", + "sha256": "78f8cfc21fb0cd7d21e51ad2a75e28f2af08aed63a7f6ffef219e63a3318471c" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-footer.png", + "sha256": "d82de878eb2b86b7ddaee7aa6535b0594542a5d8e1a158e3b58e0f0c988e6a7d" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-footer-frame.json", + "sha256": "cbf06d3c0e6defa255715b312ccc4b2e178171fd7cfccd1cad74f9ed21d2e682" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-matching.xml", + "sha256": "a9ded865e45f10689476b9213a52b734d1fe47ec5ca5cf80655a16c4baba6bbd" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-matching.png", + "sha256": "f5f2dcf1a31ca1ab6b6d86b34fd61e070b2089d671469efc8089a6d5a2d0b9a8" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-matching-frame.json", + "sha256": "e07ac9650a018fab45e43850efff46e2e0768e63f412188063af51df576c0268" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-cleared.xml", + "sha256": "c408e2d6b8b5e97e088fd482f99a61d0fc782f4c60d21b42603d44720ce75aa9" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-cleared.png", + "sha256": "cfcb4d89ca7c8f0a78d3daf08f7d093c4a690d30abf1f3573b0b4c69f2c4fb95" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-cleared-frame.json", + "sha256": "2949f4b6017bc3a859e78a2758aa56432812d7cc6afa1e2abc5219bd6182740b" + }, + { + "original": "artifacts/keyboard-toggle/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-case.json", + "sha256": "f3505d3b75cee76ee1ef80a771501d329a777e50667041b80a4d79d1f08c59cf" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-hidden-before.xml", + "sha256": "f47c0f3398da5d4d82dfff04e9393aeb0a0557d55aafa7ff0a0feb29b17fdd76" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-hidden-before.png", + "sha256": "ea7f1fe8995dcea924b7f73e00222b8186900e6f2f9f7da9151ef475775a6cea" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-hidden-before-frame.json", + "sha256": "984b23189d77d75476b0a54ae9d007910572fd9a0a0b4d25e8d875786a33386a" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-hidden-after.xml", + "sha256": "521ede4619dd89703e3a805c86c37e64e7a06a71241a290c1dd764c683e1ac6b" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-hidden-after.png", + "sha256": "54adc959c33e99f843e691e7bc8bb1311375c3eac1293699ed561c04cb8eee4c" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-hidden-after-frame.json", + "sha256": "c69e902101db4262f6351048e718cb3f61ade3b85a7014e55fc99a526e4d7dae" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-before.xml", + "sha256": "f049869e62d8dd9ac0328468e16ac9ae91dd51f34646c0c78262f0048914e942" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-before.png", + "sha256": "31bab622fac5dcf268ed17a4459f18138526cabcbb7bcbd1888d9c0c235eba8e" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-before-frame.json", + "sha256": "0f3293bc144373e5be063b22ae87394b759214afbbe8085dc4cb560f9321c3b4" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-after.xml", + "sha256": "5766af98d8e4c9ebf644b3a7100e1abb64723a74c401be0aa03df13d3117be86" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-after.png", + "sha256": "6543311826623f1a8e13406b78894ae1b6faadd33479f272433c4808dc14ef87" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-after-frame.json", + "sha256": "01b2db217cd988810a1b2a46a1b6a979aadecaba4c574201a0170a3046e4d427" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-caller-return.xml", + "sha256": "169981f3ccc675094f5b3f6f8a244c91e22f3a634e84bcebf766cfc09ac40ea4" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-caller-return.png", + "sha256": "77e4394c952e5b02fe969e9f0af1fc881bb84a3ada9a3ae1c181d271d99115c9" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-caller-return-frame.json", + "sha256": "9c815d4f11b17fa32624d6cfd9f275d89ef84bb64e6806c3562787c8e65e737f" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-case.json", + "sha256": "269e213f01488e27c909db97bc3e37c996158aed07ca9474e87eac461cfe0f6c" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-hidden-before.xml", + "sha256": "d47487c7399276294a6c281a7df3893beb14ae91526295048c1acfa6c770ce43" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-hidden-before.png", + "sha256": "d0fbdcc53d450cf2c691633a5f13f161da4d3e7b3251c18837b3e5c119ef99ba" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-hidden-before-frame.json", + "sha256": "4e13035806d38c08ea352fd13befb5f4c45c323d5527900406301bafcfbaffa0" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-hidden-after.xml", + "sha256": "d1b4d42e78c1986527cd56785e4c2fbeaaa0a7b068f960c82ac59ce8e57be908" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-hidden-after.png", + "sha256": "f8ea8bc294d9579799d4bc2af8baa09282ce0c7be1fefbba99fb88d5648c3014" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-hidden-after-frame.json", + "sha256": "312926bbd33e6988a634e3b50306cd23ab892dd5df4bbc06a6a5d5ad0e23f3be" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-before.xml", + "sha256": "6dd5af19dd07be00491c082d2cbf94f6cc5225fb0f972c442c26eeef053ce22e" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-before.png", + "sha256": "02d5f588f7d00783bc2a53d70bb51b5dffb7aa36758151842a8631ba28e05aab" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-before-frame.json", + "sha256": "5995d6ab8d94ab7c87eb3694173de90cfa07b96b06fd69eb39810767cba71d1a" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-after.xml", + "sha256": "bc31d4558ddabf3d47e96209686ccc46a3f7ab0f731ff6a17b311e2d8131025c" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-after.png", + "sha256": "cd6f76d508903d693748aca984169e78dd0bcca03744223a1c371bf7902a5526" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-after-frame.json", + "sha256": "a52d30001f8e99d5aff4a508561d72540a028c9e5504b9d1ec04a60c803204c2" + }, + { + "original": "artifacts/keyboard-toggle/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-case.json", + "sha256": "24b9ae25fd92407a030020da1dbf619093ca88662363f58df55dd696d2a9c9c3" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-composition.xml", + "sha256": "81e6188282bcc98348f9735423575ea86a219261e3126ea0115605297005b6ad" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-composition.png", + "sha256": "76e892739238852481421c0ad37e89208f601b7fc1cf936313fdcba7c683351c" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-composition-frame.json", + "sha256": "808e5c4701e5e9ccc34d462e7d6b61395bd94eeabfd442d679624e59b6f8a8e5" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-cleared.xml", + "sha256": "ccbe0a25739349d71d7af880ce8e00008232f78160b5b5dcc17e52e16955ab5d" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-cleared.png", + "sha256": "daf008863db6622868302f04ea6ca40e8618123e252da575ca99290709d4679c" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-cleared-frame.json", + "sha256": "06b599673f1ca5a9dfa5c5fc3629ea051f09873b4a24bcea0fd8e99fbbb47c41" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-composition.xml", + "sha256": "d80195ee19f6c1b42a8a440eae66113e5e61f61c0a29ff4810c1e86d433b9670" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-composition.png", + "sha256": "2e9f34b90f42f9b01270138957823bc51abd14745dcf625e37944146dacd4287" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-composition-frame.json", + "sha256": "3c40f84c15e13d33285ecd1f3398f392ee3fc05c3c25397d62aa3f3ce3302f6f" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-cleared.xml", + "sha256": "5778d5c1f5c7f12c65cc4a115c40751b77e5127029b1dce305abf38351ac7d0c" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-cleared.png", + "sha256": "55524d06840dd49241baf0157e9c5ad9a9d4b19d9f68a3309203d710e18dccdc" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-cleared-frame.json", + "sha256": "86dbc28407cf78d55b5eb919da9e93125b4da909503fa866f730470797c2310a" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-case.json", + "sha256": "9ea55a2780a25f6593038d4c25539b377199d0ec5736dfa1599f474fd2515234" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/currentclearuseslivequeryandrecreationrejectsoldcallback-case.json", + "sha256": "1117ca08c1e7c33028d9e680b86a3396458be049a15bb489571954e7b98dcab1" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-covered-by-menu.xml", + "sha256": "9a50321e2f0402265c627a32bd7215c634bf11826fb428ca76485107ac43f8f7" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-covered-by-menu.png", + "sha256": "cef46bb6a3196d5f9ac024aa491869ff6c69c4badd03994bc5ed990d4eea28a5" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-covered-by-menu-frame.json", + "sha256": "2048c3531f99b1b6bf46acd04e58c4e66db38f0c621c6262a0606eeb0f818e35" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-replacement-emoji.xml", + "sha256": "9b6e64fafa693ab8b77ab9e6b0430b717e62de392946855d6c7e94cb412d18e3" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-replacement-emoji.png", + "sha256": "a78a8a40ed27abe11b968d7a4a2846c1c7d9939d639efc44fde18e9afcedbc26" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-replacement-emoji-frame.json", + "sha256": "2a660eb8464caf6d138b70234b18280ddf4c139c7b027660d11b78777eb718ce" + }, + { + "original": "artifacts/keyboard-toggle/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-case.json", + "sha256": "7ed88a37502269347c7d2f198849d4d0f65f61461ae277e0f1f406b8cb3e3c8d" + }, + { + "original": "artifacts/keyboard-toggle/final-input-phone100/captures/committedemojinavigationandcaretareexact-committed-four-way-navigation.xml", + "sha256": "5b7657ce96cd0cca156243b126ec2ae4a8ee62fc989a08bd25d0ee3c43cc3b66" + }, + { + "original": "artifacts/keyboard-toggle/final-input-phone100/captures/committedemojinavigationandcaretareexact-committed-four-way-navigation.png", + "sha256": "5ca303a192be05b9cbda636a101bbfafbc6ec819fa72f07922889bdd9c0fb161" + }, + { + "original": "artifacts/keyboard-toggle/final-input-phone100/captures/committedemojinavigationandcaretareexact-committed-four-way-navigation-frame.json", + "sha256": "c89fda5acb65f03ec6fae122d1ec0270fb5d70fca467d361bdcc039cdaebc11a" + }, + { + "original": "artifacts/keyboard-toggle/final-input-phone100/captures/committedemojinavigationandcaretareexact-committed-query-selected-range.xml", + "sha256": "29c872b29b3690fbe701d7fab94c4a2d2f2b741110d184e10181305c43e39ea7" + }, + { + "original": "artifacts/keyboard-toggle/final-input-phone100/captures/committedemojinavigationandcaretareexact-committed-query-selected-range.png", + "sha256": "ae9f9a2a20d92b168ee0abaee54033f70351985948015afb252964a06d150261" + }, + { + "original": "artifacts/keyboard-toggle/final-input-phone100/captures/committedemojinavigationandcaretareexact-committed-query-selected-range-frame.json", + "sha256": "90fb582ae52bd82daa7dc747e0bd4cf17c64024807d8ef632f303464e1f2fade" + }, + { + "original": "artifacts/keyboard-toggle/final-input-phone100/captures/case-committedemojinavigationandcaretareexact.json", + "sha256": "c3bb13bdacd7c620b036c512befafdd3bdf3e31d677a24aa9d6d3c90896694b4" + }, + { + "original": "artifacts/keyboard-toggle/final-input-phone100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition.xml", + "sha256": "a1373dbb4211f4bb28da2078b350b0e5c5d5621d3caf8f94ce351d1131b7a947" + }, + { + "original": "artifacts/keyboard-toggle/final-input-phone100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition.png", + "sha256": "36f10fc1c21f8b18045336a3c59e21643f2633fde10dfa4b955a2180398670f9" + }, + { + "original": "artifacts/keyboard-toggle/final-input-phone100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition-frame.json", + "sha256": "386677aeb164b77096876bdad86dffc22a44a3cc7fe72b674be113e87e5280b3" + }, + { + "original": "artifacts/keyboard-toggle/final-input-phone100/captures/case-activemultilingualcompositionkeepsresultselection.json", + "sha256": "3ed1fb7f1d92527c4f40c666a1910dacaf2e6b299a6240d4fada6327b8d2640c" + }, + { + "original": "artifacts/keyboard-toggle/final-input-api26100/captures/committedemojinavigationandcaretareexact-committed-four-way-navigation.xml", + "sha256": "b088d531f024799177b42c5529795f4d4fe0f31e8eadcec7ff7640a2ac31684b" + }, + { + "original": "artifacts/keyboard-toggle/final-input-api26100/captures/committedemojinavigationandcaretareexact-committed-four-way-navigation.png", + "sha256": "78c3ae3b9d8596572e74afe17000e46954053e721ac3e46fa993f2cb2fb8ac06" + }, + { + "original": "artifacts/keyboard-toggle/final-input-api26100/captures/committedemojinavigationandcaretareexact-committed-four-way-navigation-frame.json", + "sha256": "c89fda5acb65f03ec6fae122d1ec0270fb5d70fca467d361bdcc039cdaebc11a" + }, + { + "original": "artifacts/keyboard-toggle/final-input-api26100/captures/committedemojinavigationandcaretareexact-committed-query-selected-range.xml", + "sha256": "b088d531f024799177b42c5529795f4d4fe0f31e8eadcec7ff7640a2ac31684b" + }, + { + "original": "artifacts/keyboard-toggle/final-input-api26100/captures/committedemojinavigationandcaretareexact-committed-query-selected-range.png", + "sha256": "61862cb75e011b0370e4b0caf9692440a878fba167bf2c9bc6fc503dddcfc2d1" + }, + { + "original": "artifacts/keyboard-toggle/final-input-api26100/captures/committedemojinavigationandcaretareexact-committed-query-selected-range-frame.json", + "sha256": "90fb582ae52bd82daa7dc747e0bd4cf17c64024807d8ef632f303464e1f2fade" + }, + { + "original": "artifacts/keyboard-toggle/final-input-api26100/captures/case-committedemojinavigationandcaretareexact.json", + "sha256": "e7bf2b217918d84f3c71ad3d8c97664f3d45f5faf7cae2085b3fa1f4a559aa6d" + }, + { + "original": "artifacts/keyboard-toggle/final-input-api26100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition.xml", + "sha256": "dd0eff05b382486b3a99600ca15892ea179f975d7ce13247fe07bd9c60262c6b" + }, + { + "original": "artifacts/keyboard-toggle/final-input-api26100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition.png", + "sha256": "48201726e6c03772eb03571fa12ac9eb76dc5ad4e9f10275a473928c124e99c5" + }, + { + "original": "artifacts/keyboard-toggle/final-input-api26100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition-frame.json", + "sha256": "386677aeb164b77096876bdad86dffc22a44a3cc7fe72b674be113e87e5280b3" + }, + { + "original": "artifacts/keyboard-toggle/final-input-api26100/captures/case-activemultilingualcompositionkeepsresultselection.json", + "sha256": "5a4261a3bad2e3fbf68f14e10e255fd28334d8af95ae080e0c6e4cdd5b79b165" + } +] diff --git a/docs/validation/keyboard-toggle/selected-captures.json b/docs/validation/keyboard-toggle/selected-captures.json new file mode 100644 index 00000000..0f3392aa --- /dev/null +++ b/docs/validation/keyboard-toggle/selected-captures.json @@ -0,0 +1,536 @@ +[ + { + "png": "docs/screenshots/keyboard-toggle/baseline-old-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "cohort": "baseline-old-landscape100" + }, + { + "png": "docs/screenshots/keyboard-toggle/baseline-old-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "cohort": "baseline-old-landscape100" + }, + { + "png": "docs/screenshots/keyboard-toggle/baseline-old-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/baseline-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "cohort": "baseline-old-landscape200" + }, + { + "png": "docs/screenshots/keyboard-toggle/baseline-v3-old-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "cohort": "baseline-v3-old-landscape200" + }, + { + "png": "docs/screenshots/keyboard-toggle/baseline-v3-old-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "cohort": "baseline-v3-old-landscape200" + }, + { + "png": "docs/screenshots/keyboard-toggle/baseline-v3-old-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "cohort": "baseline-v3-old-landscape100" + }, + { + "png": "docs/screenshots/keyboard-toggle/baseline-v3-old-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/baseline-v3-old-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "cohort": "baseline-v3-old-landscape100" + }, + { + "png": "docs/screenshots/keyboard-toggle/candidate-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "cohort": "candidate-landscape200" + }, + { + "png": "docs/screenshots/keyboard-toggle/candidate-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/candidate-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "cohort": "candidate-landscape200" + }, + { + "png": "docs/screenshots/keyboard-toggle/candidate-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "xml": "docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "cohort": "candidate-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/candidate-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "xml": "docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/candidate-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "cohort": "candidate-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/candidate-v2-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "xml": "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "cohort": "candidate-v2-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/candidate-v2-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png", + "xml": "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json", + "cohort": "candidate-v2-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/candidate-v2-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "xml": "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "cohort": "candidate-v2-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/candidate-v2-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png", + "xml": "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/candidate-v2-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json", + "cohort": "candidate-v2-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/candidate-v3-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "xml": "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "cohort": "candidate-v3-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/candidate-v3-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png", + "xml": "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json", + "cohort": "candidate-v3-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/candidate-v3-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "xml": "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "cohort": "candidate-v3-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/candidate-v3-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png", + "xml": "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/candidate-v3-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json", + "cohort": "candidate-v3-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/back-diagnostic-old/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.png", + "xml": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after-frame.json", + "cohort": "back-diagnostic-old" + }, + { + "png": "docs/screenshots/keyboard-toggle/back-diagnostic-old/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.png", + "xml": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu-frame.json", + "cohort": "back-diagnostic-old" + }, + { + "png": "docs/screenshots/keyboard-toggle/back-diagnostic-old/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.png", + "xml": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-old/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu-frame.json", + "cohort": "back-diagnostic-old" + }, + { + "png": "docs/screenshots/keyboard-toggle/back-diagnostic-current/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.png", + "xml": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-after-frame.json", + "cohort": "back-diagnostic-current" + }, + { + "png": "docs/screenshots/keyboard-toggle/back-diagnostic-current/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.png", + "xml": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-before-menu-frame.json", + "cohort": "back-diagnostic-current" + }, + { + "png": "docs/screenshots/keyboard-toggle/back-diagnostic-current/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.png", + "xml": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/back-diagnostic-current/captures/emojimenubackpreservescallerquerywithoutkeyboardtoggle-back-probe-menu-frame.json", + "cohort": "back-diagnostic-current" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-guards-tablet100/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-0.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-0.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-0-frame.json", + "cohort": "final-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-guards-tablet100/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-1.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-1.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-emoji-1-frame.json", + "cohort": "final-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-guards-tablet100/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-0.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-0.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-0-frame.json", + "cohort": "final-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-guards-tablet100/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-1.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-1.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/currentkeyboardaccessibilityactionsapplytheirpublishedvisibility-keyboard-accessibility-launcher-1-frame.json", + "cohort": "final-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show-frame.json", + "cohort": "final-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch-frame.json", + "cohort": "final-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "cohort": "final-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json", + "cohort": "final-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner-frame.json", + "cohort": "final-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-guards-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route-frame.json", + "cohort": "final-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-current-recreated-show-frame.json", + "cohort": "final-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-epoch-frame.json", + "cohort": "final-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "cohort": "final-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-open-menu-frame.json", + "cohort": "final-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-recreated-owner-frame.json", + "cohort": "final-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-guards-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-guards-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-replaced-route-frame.json", + "cohort": "final-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "cohort": "final-landscape200" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "cohort": "final-landscape200" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "cohort": "final-landscape200" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json", + "cohort": "final-landscape200" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json", + "cohort": "final-landscape200" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "cohort": "final-landscape200" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "cohort": "final-landscape200" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "cohort": "final-landscape200" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-hide-frame.json", + "cohort": "final-landscape200" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-1-after-show-frame.json", + "cohort": "final-landscape200" + }, + { + "png": "docs/screenshots/keyboard-toggle/control-proxy-final-tablet100/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "xml": "docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/emojikeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "cohort": "control-proxy-final-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/control-proxy-final-tablet100/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.png", + "xml": "docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/control-proxy-final-tablet100/captures/launcherkeyboardcallbacksrejectobsoletemodesownersandmenus-keyboard-guard-obsolete-mode-frame.json", + "cohort": "control-proxy-final-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/control-old-final-landscape200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "cohort": "control-old-final-landscape200" + }, + { + "png": "docs/screenshots/keyboard-toggle/control-old-final-landscape200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "cohort": "control-old-final-landscape200" + }, + { + "png": "docs/screenshots/keyboard-toggle/control-old-final-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "cohort": "control-old-final-landscape100" + }, + { + "png": "docs/screenshots/keyboard-toggle/control-old-final-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/control-old-final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "cohort": "control-old-final-landscape100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "cohort": "final-landscape100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "cohort": "final-landscape100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-landscape100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "cohort": "final-landscape100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "cohort": "final-landscape100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "cohort": "final-landscape100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-landscape100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-landscape100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "cohort": "final-landscape100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-tablet100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "cohort": "final-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-tablet100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "cohort": "final-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-tablet100/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "cohort": "final-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-tablet100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "cohort": "final-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-tablet100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "cohort": "final-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-tablet100/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-tablet100/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "cohort": "final-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-tablet200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "cohort": "final-tablet200" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-tablet200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "cohort": "final-tablet200" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-tablet200/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/emojikeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "cohort": "final-tablet200" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-tablet200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-hide-frame.json", + "cohort": "final-tablet200" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-tablet200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-after-show-frame.json", + "cohort": "final-tablet200" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-tablet200/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-tablet200/captures/launcherkeyboardtogglerevealsresultsandpreservessearch-keyboard-0-before-hide-frame.json", + "cohort": "final-tablet200" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-feedback-landscape200/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/emojiemptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty-frame.json", + "cohort": "final-feedback-landscape200" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-feedback-landscape200/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-feedback-landscape200/captures/launcheremptyfeedbackisreadableaboveimeandcontrolsremainreachable-feedback-shown-empty-frame.json", + "cohort": "final-feedback-landscape200" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-clear-phone200/emojitouchclearpreservescategorygeometryandkeyboard-shown-after.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-after.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-after-frame.json", + "cohort": "final-clear-phone200" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-clear-phone200/emojitouchclearpreservescategorygeometryandkeyboard-shown-before.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-before.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/emojitouchclearpreservescategorygeometryandkeyboard-shown-before-frame.json", + "cohort": "final-clear-phone200" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-clear-phone200/launchertouchclearpreservesfocuscategoryandkeyboard-shown-after.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-after.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-after-frame.json", + "cohort": "final-clear-phone200" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-clear-phone200/launchertouchclearpreservesfocuscategoryandkeyboard-shown-before.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-before.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-clear-phone200/captures/launchertouchclearpreservesfocuscategoryandkeyboard-shown-before-frame.json", + "cohort": "final-clear-phone200" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-core-guards-tablet100/pointerclearremovescontrolledcompositionandwhitespace-emoji-cleared.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-cleared.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-cleared-frame.json", + "cohort": "final-core-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-core-guards-tablet100/pointerclearremovescontrolledcompositionandwhitespace-emoji-composition.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-composition.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-emoji-composition-frame.json", + "cohort": "final-core-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-core-guards-tablet100/pointerclearremovescontrolledcompositionandwhitespace-launcher-cleared.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-cleared.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-cleared-frame.json", + "cohort": "final-core-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-core-guards-tablet100/pointerclearremovescontrolledcompositionandwhitespace-launcher-composition.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-composition.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/pointerclearremovescontrolledcompositionandwhitespace-launcher-composition-frame.json", + "cohort": "final-core-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-core-guards-tablet100/retainedclearcallbacksrejectreplacedsurfacesandmenus-covered-by-menu.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-covered-by-menu.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-covered-by-menu-frame.json", + "cohort": "final-core-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-core-guards-tablet100/retainedclearcallbacksrejectreplacedsurfacesandmenus-replacement-emoji.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-replacement-emoji.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-core-guards-tablet100/captures/retainedclearcallbacksrejectreplacedsurfacesandmenus-replacement-emoji-frame.json", + "cohort": "final-core-guards-tablet100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-input-phone100/activemultilingualcompositionkeepsresultselection-active-japanese-composition.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-input-phone100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-input-phone100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition-frame.json", + "cohort": "final-input-phone100" + }, + { + "png": "docs/screenshots/keyboard-toggle/final-input-api26100/activemultilingualcompositionkeepsresultselection-active-japanese-composition.png", + "xml": "docs/validation/keyboard-toggle/cohorts/final-input-api26100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition.xml", + "frame": "docs/validation/keyboard-toggle/cohorts/final-input-api26100/captures/activemultilingualcompositionkeepsresultselection-active-japanese-composition-frame.json", + "cohort": "final-input-api26100" + } +] diff --git a/docs/validation/keyboard-toggle/semantics-proxy-inspection.json b/docs/validation/keyboard-toggle/semantics-proxy-inspection.json new file mode 100644 index 00000000..fa8bba6c --- /dev/null +++ b/docs/validation/keyboard-toggle/semantics-proxy-inspection.json @@ -0,0 +1,26 @@ +{ + "dependencies": [ + { + "artifact": "foundation", + "version": "1.7.6", + "source_url": "https://dl.google.com/dl/android/maven2/androidx/compose/foundation/foundation/1.7.6/foundation-1.7.6-sources.jar", + "source_sha256": "0bf091a6b6054ce0ff8b8b01a4d6ee6ba8a8b70edcfac77ff2ee5b91c9f37dec", + "cached_aar_sha256": "5ccb96bab040a70f7fdd577faaad75343261c006d42fcc5723a38f50a82f597c" + }, + { + "artifact": "ui", + "version": "1.7.6", + "source_url": "https://dl.google.com/dl/android/maven2/androidx/compose/ui/ui/1.7.6/ui-1.7.6-sources.jar", + "source_sha256": "743dfcbd19efcda674d1ceab729cecacbb624c72d804878a77c17d089f8cf4b4" + } + ], + "cached_class": "androidx.compose.foundation.AbstractClickableNode$applySemantics$1", + "bytecode_observation": "The lambda holds its clickable node and invokes getOnClick() on that node when called. The node update method replaces onClick. A retained default accessibility action therefore forwards to the latest application callback.", + "source_locations": { + "Clickable.kt": "protected onClick property, update assignment, applySemantics action lambda", + "SemanticsModifier.kt": "clearAndSetSemantics stores the supplied semantics properties" + }, + "candidate_v1_observation": "After pointer Show/Hide/Show, both retained default actions hid the current IME. Those failures do not show invocation of the original application closure.", + "candidate_v2_design": "Publish an owned accessibility action that closes over the same guarded activation function as pointer clicks; preserve Button role and return false on rejection.", + "scope": "Independent primary-source/AAR inspection. The earlier Show-setup timeout remains unexplained. No TalkBack or physical queued-gesture certification." +} diff --git a/docs/validation/keyboard-toggle/summary.json b/docs/validation/keyboard-toggle/summary.json new file mode 100644 index 00000000..032e4cd4 --- /dev/null +++ b/docs/validation/keyboard-toggle/summary.json @@ -0,0 +1,470 @@ +{ + "final_positive_executions": 24, + "final_positive_cohorts": 11, + "final_positive_restoration_checks": 176, + "final_control_failures": 6, + "final_control_passes": 0, + "final_control_cohorts": 3, + "final_control_restoration_checks": 49, + "back_diagnostic_executions": 2, + "back_diagnostic_passes": 0, + "back_diagnostic_failures": 2, + "all_retained_executions": 64, + "all_retained_passes": 37, + "all_retained_failures": 27, + "all_cohort_restoration_checks": 515, + "separate_final_preservation_checks": 14, + "selected_png_xml_frame_sets": 89, + "retained_capture_files": 1150, + "cohorts": [ + { + "name": "baseline-old-landscape100", + "credit": "historical", + "passes": 0, + "failures": 2, + "completed": false, + "cases": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "cleanup_checks": 17, + "app_sha256": "66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c", + "test_apk_sha256": "ba781590ada744782b7ccfa9d055db96bd3810a303e50f6e18bb2672c5305062" + }, + { + "name": "baseline-old-landscape200", + "credit": "historical", + "passes": 0, + "failures": 2, + "completed": false, + "cases": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "cleanup_checks": 17, + "app_sha256": "66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c", + "test_apk_sha256": "ba781590ada744782b7ccfa9d055db96bd3810a303e50f6e18bb2672c5305062" + }, + { + "name": "baseline-v3-old-landscape200", + "credit": "historical", + "passes": 0, + "failures": 2, + "completed": false, + "cases": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "cleanup_checks": 17, + "app_sha256": "66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c", + "test_apk_sha256": "b08f6a53b8b1ba5fe1bbc5309395c6f877aeb6ef1e01e843caabf939cb8aa28c" + }, + { + "name": "baseline-v3-old-landscape100", + "credit": "historical", + "passes": 0, + "failures": 2, + "completed": false, + "cases": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "cleanup_checks": 17, + "app_sha256": "66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c", + "test_apk_sha256": "b08f6a53b8b1ba5fe1bbc5309395c6f877aeb6ef1e01e843caabf939cb8aa28c" + }, + { + "name": "candidate-landscape200", + "credit": "historical", + "passes": 2, + "failures": 0, + "completed": true, + "cases": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "cleanup_checks": 17, + "app_sha256": "32e2726d35d1c01fe488aa0781a3a0d67d99498699f7121ab4ad2f1be95e5286", + "test_apk_sha256": "931201bf4e68fbe15577ab310d4cc829cb8c4c9d1809a67f919cf93b01d2f14c" + }, + { + "name": "candidate-guards-tablet100", + "credit": "historical", + "passes": 0, + "failures": 2, + "completed": false, + "cases": [ + "launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus" + ], + "cleanup_checks": 15, + "app_sha256": "32e2726d35d1c01fe488aa0781a3a0d67d99498699f7121ab4ad2f1be95e5286", + "test_apk_sha256": "931201bf4e68fbe15577ab310d4cc829cb8c4c9d1809a67f919cf93b01d2f14c" + }, + { + "name": "candidate-v2-guards-tablet100", + "credit": "historical", + "passes": 1, + "failures": 1, + "completed": false, + "cases": [ + "launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus" + ], + "cleanup_checks": 15, + "app_sha256": "1291d0619b6f70ae90c4d25f759a444fbf32827ffa3ee36233f91006fdf8b2ac", + "test_apk_sha256": "f4925b8c25e900ed336a48f9bfdabd0358bf158818938fd4cdbd47b57b58e1a9" + }, + { + "name": "candidate-v3-guards-tablet100", + "credit": "historical", + "passes": 2, + "failures": 0, + "completed": true, + "cases": [ + "launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus" + ], + "cleanup_checks": 15, + "app_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "0b855d722fcda7e25b8c873ca1b75a3d44f7ab2069fc0ae032a64d4a3a097eed" + }, + { + "name": "candidate-v3-landscape200", + "credit": "historical", + "passes": 2, + "failures": 0, + "completed": true, + "cases": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "cleanup_checks": 17, + "app_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "0b855d722fcda7e25b8c873ca1b75a3d44f7ab2069fc0ae032a64d4a3a097eed" + }, + { + "name": "control-proxy-v3-tablet100", + "credit": "historical", + "passes": 0, + "failures": 2, + "completed": false, + "cases": [ + "launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus" + ], + "cleanup_checks": 15, + "app_sha256": "32e2726d35d1c01fe488aa0781a3a0d67d99498699f7121ab4ad2f1be95e5286", + "test_apk_sha256": "0b855d722fcda7e25b8c873ca1b75a3d44f7ab2069fc0ae032a64d4a3a097eed" + }, + { + "name": "control-old-v3-landscape200", + "credit": "historical", + "passes": 0, + "failures": 2, + "completed": false, + "cases": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "cleanup_checks": 17, + "app_sha256": "66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c", + "test_apk_sha256": "0b855d722fcda7e25b8c873ca1b75a3d44f7ab2069fc0ae032a64d4a3a097eed" + }, + { + "name": "control-old-v3-landscape100", + "credit": "historical", + "passes": 0, + "failures": 2, + "completed": false, + "cases": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "cleanup_checks": 17, + "app_sha256": "66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c", + "test_apk_sha256": "0b855d722fcda7e25b8c873ca1b75a3d44f7ab2069fc0ae032a64d4a3a097eed" + }, + { + "name": "candidate-v3-landscape100", + "credit": "historical", + "passes": 2, + "failures": 0, + "completed": true, + "cases": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "cleanup_checks": 17, + "app_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "0b855d722fcda7e25b8c873ca1b75a3d44f7ab2069fc0ae032a64d4a3a097eed" + }, + { + "name": "candidate-v3-tablet100", + "credit": "historical", + "passes": 2, + "failures": 0, + "completed": true, + "cases": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "cleanup_checks": 15, + "app_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "0b855d722fcda7e25b8c873ca1b75a3d44f7ab2069fc0ae032a64d4a3a097eed" + }, + { + "name": "candidate-v3-tablet200", + "credit": "historical", + "passes": 2, + "failures": 0, + "completed": true, + "cases": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "cleanup_checks": 15, + "app_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "0b855d722fcda7e25b8c873ca1b75a3d44f7ab2069fc0ae032a64d4a3a097eed" + }, + { + "name": "candidate-v3-feedback-landscape100", + "credit": "historical", + "passes": 0, + "failures": 2, + "completed": false, + "cases": [ + "launcherEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable", + "emojiEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable" + ], + "cleanup_checks": 17, + "app_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "0b855d722fcda7e25b8c873ca1b75a3d44f7ab2069fc0ae032a64d4a3a097eed" + }, + { + "name": "back-diagnostic-old", + "credit": "back-diagnostic", + "passes": 0, + "failures": 1, + "completed": false, + "cases": [ + "emojiMenuBackPreservesCallerQueryWithoutKeyboardToggle" + ], + "cleanup_checks": 15, + "app_sha256": "66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d" + }, + { + "name": "back-diagnostic-current", + "credit": "back-diagnostic", + "passes": 0, + "failures": 1, + "completed": false, + "cases": [ + "emojiMenuBackPreservesCallerQueryWithoutKeyboardToggle" + ], + "cleanup_checks": 15, + "app_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d" + }, + { + "name": "final-guards-tablet100", + "credit": "current-positive", + "passes": 3, + "failures": 0, + "completed": true, + "cases": [ + "launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "currentKeyboardAccessibilityActionsApplyTheirPublishedVisibility" + ], + "cleanup_checks": 15, + "app_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d" + }, + { + "name": "final-landscape200", + "credit": "current-positive", + "passes": 2, + "failures": 0, + "completed": true, + "cases": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "cleanup_checks": 17, + "app_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d" + }, + { + "name": "control-proxy-final-tablet100", + "credit": "current-control", + "passes": 0, + "failures": 2, + "completed": false, + "cases": [ + "launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus", + "emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus" + ], + "cleanup_checks": 15, + "app_sha256": "32e2726d35d1c01fe488aa0781a3a0d67d99498699f7121ab4ad2f1be95e5286", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d" + }, + { + "name": "control-old-final-landscape200", + "credit": "current-control", + "passes": 0, + "failures": 2, + "completed": false, + "cases": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "cleanup_checks": 17, + "app_sha256": "66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d" + }, + { + "name": "control-old-final-landscape100", + "credit": "current-control", + "passes": 0, + "failures": 2, + "completed": false, + "cases": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "cleanup_checks": 17, + "app_sha256": "66a6965e04e37570e17637e5887b03857ceb26810adc5171096619f9e53c524c", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d" + }, + { + "name": "final-landscape100", + "credit": "current-positive", + "passes": 2, + "failures": 0, + "completed": true, + "cases": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "cleanup_checks": 17, + "app_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d" + }, + { + "name": "final-tablet100", + "credit": "current-positive", + "passes": 2, + "failures": 0, + "completed": true, + "cases": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "cleanup_checks": 15, + "app_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d" + }, + { + "name": "final-tablet200", + "credit": "current-positive", + "passes": 2, + "failures": 0, + "completed": true, + "cases": [ + "launcherKeyboardToggleRevealsResultsAndPreservesSearch", + "emojiKeyboardToggleRevealsResultsAndPreservesSearch" + ], + "cleanup_checks": 15, + "app_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d" + }, + { + "name": "final-feedback-landscape100", + "credit": "current-positive", + "passes": 2, + "failures": 0, + "completed": true, + "cases": [ + "launcherEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable", + "emojiEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable" + ], + "cleanup_checks": 17, + "app_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d" + }, + { + "name": "final-feedback-landscape200", + "credit": "current-positive", + "passes": 2, + "failures": 0, + "completed": true, + "cases": [ + "launcherEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable", + "emojiEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable" + ], + "cleanup_checks": 17, + "app_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d" + }, + { + "name": "final-clear-phone200", + "credit": "current-positive", + "passes": 2, + "failures": 0, + "completed": true, + "cases": [ + "launcherTouchClearPreservesFocusCategoryAndKeyboard", + "emojiTouchClearPreservesCategoryGeometryAndKeyboard" + ], + "cleanup_checks": 17, + "app_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d" + }, + { + "name": "final-core-guards-tablet100", + "credit": "current-positive", + "passes": 3, + "failures": 0, + "completed": true, + "cases": [ + "pointerClearRemovesControlledCompositionAndWhitespace", + "retainedClearCallbacksRejectReplacedSurfacesAndMenus", + "currentClearUsesLiveQueryAndRecreationRejectsOldCallback" + ], + "cleanup_checks": 15, + "app_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d" + }, + { + "name": "final-input-phone100", + "credit": "current-positive", + "passes": 2, + "failures": 0, + "completed": true, + "cases": [ + "committedEmojiNavigationAndCaretAreExact", + "activeMultilingualCompositionKeepsResultSelection" + ], + "cleanup_checks": 19, + "app_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d" + }, + { + "name": "final-input-api26100", + "credit": "current-positive", + "passes": 2, + "failures": 0, + "completed": true, + "cases": [ + "committedEmojiNavigationAndCaretAreExact", + "activeMultilingualCompositionKeepsResultSelection" + ], + "cleanup_checks": 12, + "app_sha256": "98da1466e9fe6e3a5e1fbd5b27251e11ebb88e1a6c96599548c20bc4f7aa5de3", + "test_apk_sha256": "dc22049a5a03de863a783228cff53072e01484b1ccc3eed12222e9e832ccdf3d" + } + ], + "scope": "Only the final frozen app/test pair earns current toggle/callback credit. Earlier driver/candidate failures and incomplete pipelines remain separate; Back observations earn no toggle or Back-repair credit. No unrun work or private-original identity is certified." +} diff --git a/scripts/test-webview-engine.py b/scripts/test-webview-engine.py index e846d8f2..58209f20 100644 --- a/scripts/test-webview-engine.py +++ b/scripts/test-webview-engine.py @@ -45,7 +45,13 @@ 'retainedClearCallbacksRejectReplacedSurfacesAndMenus', 'currentClearUsesLiveQueryAndRecreationRejectsOldCallback', 'launcherEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable', - 'emojiEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable'] + 'emojiEmptyFeedbackIsReadableAboveImeAndControlsRemainReachable', + 'launcherKeyboardToggleRevealsResultsAndPreservesSearch', + 'emojiKeyboardToggleRevealsResultsAndPreservesSearch', + 'launcherKeyboardCallbacksRejectObsoleteModesOwnersAndMenus', + 'emojiKeyboardCallbacksRejectObsoleteModesOwnersAndMenus', + 'currentKeyboardAccessibilityActionsApplyTheirPublishedVisibility', + 'emojiMenuBackPreservesCallerQueryWithoutKeyboardToggle'] OWNED_IME = TEST + '/dev.tinycast.android.NativeInputTestIme' IME_SETTING_KEYS = ('default_input_method', 'enabled_input_methods', 'selected_input_method_subtype', 'input_methods_subtype_history')