Summary:
Display the summarised state of the sonar agent alongside the "log" view of it.
The log view contains every event, while the summarised view has just one entry for the latest attempt at each step.
Reviewed By: danielbuechele
Differential Revision: D9315502
fbshipit-source-id: 8767c3cce7d2765ef6ab09db5945248ddd6dcbce
Summary:
Adds a more structured representation of state updates than a multiline string.
Also changes the string form to omit [started] records.
Reviewed By: danielbuechele
Differential Revision: D9315503
fbshipit-source-id: 55b8f9572091fd42fe852c8d26a8f2a53f76c82a
Summary: AX tree will now stay in sync with the main tree when searching. Also allows user to completely erase search (previously had left one letter highlighted in the tree even if entire query was erased).
Reviewed By: danielbuechele
Differential Revision: D9276721
fbshipit-source-id: 5272bb9cf3400ad3eb9d16bf438b0e5d4b551c6a
Summary: Adds a link on MainActivitiy that opens the diagnostic screen
Reviewed By: danielbuechele
Differential Revision: D9267065
fbshipit-source-id: 1b44134de0e57f8021b19d76644dac6389c88b65
Summary: Components and Sections has two different but equal interfaces for StateContainer. This diff create one unique StateContainer interface they can both use.
Reviewed By: muraziz
Differential Revision: D9278661
fbshipit-source-id: fac09e914a17d82b5f1053c5d38787a69efdc1b3
Summary: Added logging for accessibility functionality (both usage and performance). Fix to prevent trackTimeSince calls from not matching up to the correct marks. Fix to prevent recursive onElementExpanded calls from mismatching also.
Reviewed By: danielbuechele
Differential Revision: D9229790
fbshipit-source-id: d20f08719d2c4f9a35c9c71a492619ce5538d204
Summary:
I'm "mirroring" the tarball so we can download this from
Java. Even JDK 8 doesn't like LetsEncrypt yet.
Reviewed By: danielbuechele
Differential Revision: D9264373
fbshipit-source-id: abb91fb72d74dccde4775cc852a93d75dd5a48e5
Summary: Adds expanding functionality to ax tree when click-to-inspect is used. Highlight/selection priority is given to the ax tree if in ax mode and the main tree otherwise.
Reviewed By: danielbuechele
Differential Revision: D9206028
fbshipit-source-id: 364b3cfc2e68dbce6006c36002353295aa7cdd07
Summary:
Open the screen by running adb shell
am start -n com.facebook.samples.litho/com.facebook.sonar.android.diagnostics.SonarDiagnosticActivity
Reviewed By: danielbuechele
Differential Revision: D9150556
fbshipit-source-id: 534583cfa5e90af6fd0d2a50572e3763b8888da2
Summary:
The plan is to get SonarState to take update events and aggregate them into an object, that can be displayed in the UI so you can see what sonar is currently trying to do, and what if anything is failing.
This is pretty rubbish right now, as it just uses a single string to represent state, this is just the initial version I'll iterate on.
I also need to pass the SonarState into the SonarWebSocketImpl, since that's where a lot of the heavy lifting is done, but as long as something is logging state updates here, it proves the concept.
SonarStateUpdateListener is the interface that will be implemented by android and iOS implementations. These implementations will notify an activity or screen that the state has changed and they should reflect that.
Reviewed By: danielbuechele
Differential Revision: D9150551
fbshipit-source-id: 8dd585ca503d32e684ff843d66a59a50a420b4c0
Summary: Puts an accessibility icon next to any elements in the ax tree that may be focused on when talkback is running to show that they are "accessibility-focusable". When any sidebar values are changed, the icon will show up/disappear accordingly.
Reviewed By: danielbuechele
Differential Revision: D9171781
fbshipit-source-id: f3b42624988aaef22040ac3325d745a12f0622db
Summary: Allow user to open the context menu on an element in the ax tree and request accessibility focus to that element. If the element is focusable (and talkback or another accessibility service is running), accessibility focus will change to that element, if not, it will not change anything.
Differential Revision: D9162382
fbshipit-source-id: 5dda9b87a2cc6eba4130e3feee978b5fa38ac9f1
Summary:
Sometimes you want to get the sonar client without necessarily wanting to initialize it, for example if you don't have a context object, but still want to get hold of a particular plugin object.
Adds a getInstance method that returns null if not initialized.
Reviewed By: passy
Differential Revision: D9154423
fbshipit-source-id: 65cb46684bc35d9a953dbd958c7cf72aba0015e2
Summary: Allow click to inspect to work when Talkback is running (normal tree expands as usual although ax tree doesn't expand yet). Override onHover of Touchoverlay and onRequestSendAccessibilityEvent in viewRoot to prevent talkback focus when in Click to Inspect mode. Also update layout inspector to persist isSearchActive to prevent build up of TouchOverlayViews when navigating between plugins (which happened if leaving the layout inspector while in Click to Inspect mode).
Reviewed By: danielbuechele
Differential Revision: D9153446
fbshipit-source-id: f76982e8f8cea1e7b7e4c6b9bf73632d101222ef
Summary:
Rename artifacts and release on Bintray. Public release
will be delayed by the manual review by JFrog.
Reviewed By: danielbuechele
Differential Revision: D9179646
fbshipit-source-id: 84c11d545940d1d52b9de9f87b4eb26901290108
Summary:
Add a Button to toggle alignment lines on Sonar interface.
Call sonar plugin in java, sending isAlignmentMode flag.
Changed API for setHighlighted to include alignment mode flag.
Button design to be added in future diffs by @[100003260904633:maximg]
Reviewed By: danielbuechele
Differential Revision: D9123749
fbshipit-source-id: 01c299f299be30dbb695bfb1d8007d63c27643d5
Summary:
Part of a hackathon project. (https://fb.facebook.com/groups/230455004101832/permalink/454928784987785/)
We're adding an alignment mode for Sonar that shows the pixel level alignment.
Reviewed By: danielbuechele
Differential Revision: D9121197
fbshipit-source-id: 21af36fd7eeea631d580ccebff8e648fa276bf35
Summary:
Made sure it builds with both buck and Gradle.
Follow-up to D8865149.
Reviewed By: danielbuechele
Differential Revision: D9178885
fbshipit-source-id: 46efaa532efdc1d59ce76e04be6680e233084881
Summary:
Open the screen by running adb shell
am start -n com.facebook.wakizashi/com.facebook.sonar.android.diagnostics.SonarDiagnosticActivity
Reviewed By: passy
Differential Revision: D8954095
fbshipit-source-id: b4a638bc0ba2f69a69c121c7c1c00fbe47476ee3
Summary:
The plan is to get SonarState to take update events and aggregate them into an object, that can be displayed in the UI so you can see what sonar is currently trying to do, and what if anything is failing.
This is pretty rubbish right now, as it just uses a single string to represent state, this is just the initial version I'll iterate on.
I also need to pass the SonarState into the SonarWebSocketImpl, since that's where a lot of the heavy lifting is done, but as long as something is logging state updates here, it proves the concept.
SonarStateUpdateListener is the interface that will be implemented by android and iOS implementations. These implementations will notify an activity or screen that the state has changed and they should reflect that.
Reviewed By: passy
Differential Revision: D8932114
fbshipit-source-id: fb03babfe92be53771eb4d8f10de7ecdc7f1a6d8
Summary: Ax mode now works with multiple view roots/windows, accessibility focus is also updated when new windows are opened.
Reviewed By: danielbuechele
Differential Revision: D9121844
fbshipit-source-id: 1da9327f5d6a784793db8076c2ad2d84e860ac1c
Summary:
Sonar won't work without the INTERNET permission, so it can talk TCP to the desktop, on localhost.
Also, for genymotion, we use the IP address, so we need ACCESS_WIFI_STATE.
Reviewed By: passy
Differential Revision: D8855239
fbshipit-source-id: 35d0b0bba91daeba35a5de90e5ef87e89ac6bb51
Summary: Highlights the element corresponding to the view talkback is focused on in green in the ax tree (and updates live as talkback moves).
Reviewed By: blavalla
Differential Revision: D9021542
fbshipit-source-id: c3bf6f5625aacb0cd054032b33a50541b88b2eaf
Summary: Shows basic relationship between the AX and nonAX tree litho nodes. When a litho component is selected from the nonAX tree, it's corresponding hostView or lithoView (root of the component tree) is highlighted in the AX tree giving priority to the hostView if it exists. If a hostView is selected in the AX tree, it's corresponding component is selected in the non-AX tree. If a lithoView is selected from the AX tree, it's corresponding lithoView is highlighted in the non-AX tree. This means that each hostView has a one-to-one highlighting between the two trees but lithoViews will have many nodes in the main tree that map to one node in the AX tree (which is accurate to litho components rendering but we may need to change in the future if it is not clear).
Reviewed By: jknoxville
Differential Revision: D8972205
fbshipit-source-id: d136f5b594d0ac1b66a82b35dc7b085186829fc4
Summary: When expanding one tree, the other tree also expands. This expanding jumps over fragments (which are not in the accessibility tree) so that the trees can stay in sync even when there are extra wrappers in the main tree. Need to figure out functionality for litho components (these simply don't expand together right now since the relationship between the trees at these nodes are less obvious).
Differential Revision: D8943229
fbshipit-source-id: 289c3511a6495508b45a62da13ae4c50209e6118
Summary:
This is a big one. Moves all oss plugins to a new place and leaves
stub targets in place. No logic changes. Everything apart from
BUCK files should be unchanged.
Reviewed By: jknoxville
Differential Revision: D8951045
fbshipit-source-id: 8054fb4028181d5cc4a240b1908dab6471cf0a27
Summary:
Those hadn't been updated as part of the move and cause runtime
failures.
Reviewed By: priteshrnandgaonkar
Differential Revision: D8931211
fbshipit-source-id: bc874eeea39134d6da9e16f6771bf0d3d3c02473
Summary:
:third-party doesn't actually export anything. So we don't need to
explicitly depend on it as it messes with the POM generation otherwise.
Reviewed By: jknoxville
Differential Revision: D8913636
fbshipit-source-id: d0da6ed4c47e8d6b7986ec9f12960c9323ad1640
Summary: Switches the tree to use the view hierarchy for Litho nodes rather than Litho component hierarchy since Accessibility services interact with the views rendered. Includes a few more properties in the accessibility sidebar and updates to the segmented sidebar based on derived/non-derived properties for all views. Also adds functions to the AccessibilityUtil to be able to work on the accessibility sidebar while still leaving the non-accessibility sidebar unchanged. Eventually the accessibility panel will be removed from 'normal' mode and the original functions will no longer be necessary.
Reviewed By: blavalla
Differential Revision: D8881739
fbshipit-source-id: 9ce37e8f18025538cba2c86c0895ee38d13d024b
Summary: That's the android package and all references to it.
Reviewed By: jknoxville
Differential Revision: D8875423
fbshipit-source-id: 478bb380012bc1327199d51527a7fe376824fce2
Summary:
This should work with our existing shipit config. Moves the build
files to xplat and sets up a standard gradle directory structure
that we will continue to move more files into.
Reviewed By: jknoxville
Differential Revision: D8859483
fbshipit-source-id: 5df5882a3bcaee36280af68aeaa740290288e0d3
Summary:
Fixed issue with DebugComponentDescriptors being left out of accessibility tree so the AX tree now includes all Litho view nodes (not Litho accessibility nodes yet). Litho drawables have no accessibility properties so these are not included. Also changed default for getAXChildAt to do whatever the original view tree does for that node and added a getAXChildCount function to better customize the accessibility tree.
Segmented the ax sidebar into properties directly form the view and properties derived from the AccessibilityNodeInfo.
Differential Revision: D8861129
fbshipit-source-id: 987683ef45188aa9cb587cc0e5ffba8fbf40136d