• Home
  • History
  • Annotate
  • only in /external/droiddriver/src/com/
History log of /external/droiddriver/src/com/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
21a0001e2426644dd68e6140b5873ebaeafcc3dc 06-Aug-2013 Kevin Jin <kjin@google.com> clear internal data while refreshing root
wait for AccessibilityEvent after injecting events
via UiAutomation

Change-Id: I3d56e07cf2e7912a21de12d1a7bacd4f33e1bc5a
oogle/android/droiddriver/DroidDriver.java
oogle/android/droiddriver/InputInjector.java
oogle/android/droiddriver/actions/Action.java
oogle/android/droiddriver/actions/BaseAction.java
oogle/android/droiddriver/actions/ClickAction.java
oogle/android/droiddriver/actions/KeyAction.java
oogle/android/droiddriver/actions/PressKeyAction.java
oogle/android/droiddriver/actions/ScrollAction.java
oogle/android/droiddriver/actions/SwipeAction.java
oogle/android/droiddriver/actions/TypeAction.java
oogle/android/droiddriver/base/AbstractContext.java
oogle/android/droiddriver/base/AbstractDroidDriver.java
oogle/android/droiddriver/base/AbstractUiElement.java
oogle/android/droiddriver/instrumentation/InstrumentationContext.java
oogle/android/droiddriver/instrumentation/InstrumentationDriver.java
oogle/android/droiddriver/uiautomation/UiAutomationContext.java
oogle/android/droiddriver/uiautomation/UiAutomationDriver.java
oogle/android/droiddriver/uiautomation/UiAutomationElement.java
f9c6c5063b38b623679e47d7095cccddb0481319 27-Jul-2013 Kevin Jin <kjin@google.com> add scroll API
clean up Events usage
revise some JavaDoc

Change-Id: Ib67fa6ecea5d7a3ef8325bc4e1778645c46d6741
oogle/android/droiddriver/DroidDriver.java
oogle/android/droiddriver/Poller.java
oogle/android/droiddriver/UiElement.java
oogle/android/droiddriver/actions/ClickAction.java
oogle/android/droiddriver/actions/SwipeAction.java
oogle/android/droiddriver/base/AbstractDroidDriver.java
oogle/android/droiddriver/base/AbstractUiElement.java
oogle/android/droiddriver/finders/By.java
oogle/android/droiddriver/finders/ByXPath.java
oogle/android/droiddriver/finders/ChainFinder.java
oogle/android/droiddriver/finders/Finder.java
oogle/android/droiddriver/finders/MatchFinder.java
oogle/android/droiddriver/instrumentation/InstrumentationContext.java
oogle/android/droiddriver/scroll/AbstractSentinelStrategy.java
oogle/android/droiddriver/scroll/Direction.java
oogle/android/droiddriver/scroll/DynamicSentinelStrategy.java
oogle/android/droiddriver/scroll/Scroller.java
oogle/android/droiddriver/scroll/SentinelScroller.java
oogle/android/droiddriver/scroll/SentinelStrategy.java
oogle/android/droiddriver/scroll/StaticSentinelStrategy.java
oogle/android/droiddriver/util/Events.java
df8ca0b5f5b6975d351a424db3bc1e8de88fe0fc 23-Jul-2013 Kevin Jin <kjin@google.com> break circular reference between UiElement and dom Element
add FileUtils.getAbsoluteFile

Change-Id: I278edbd60018ba230e966f5ce48cb582a98db44f
oogle/android/droiddriver/base/AbstractUiElement.java
oogle/android/droiddriver/util/FileUtils.java
0b9344441daed36d371df59ca4735d1e0e008189 18-Jul-2013 Kevin Jin <kjin@google.com> fix memory leak in Contexts UiElement cache
UiElement values need to be WeakReference as well

Change-Id: I31f6e833216154a3d3da7ebabc856d8ce8221631
oogle/android/droiddriver/finders/ByXPath.java
oogle/android/droiddriver/instrumentation/InstrumentationContext.java
oogle/android/droiddriver/uiautomation/UiAutomationContext.java
b18bb64ed9513bedf8222e6915abb5164e9108f9 16-Jul-2013 Kevin Jin <kjin@google.com> add ActivityUtils.setRunningActivitySupplier
This is compatible with other potential runners, such as G3ITR

Change-Id: I02379376c9c4a67452cf67cda5be9bc273fbc3c6
oogle/android/droiddriver/runner/TestRunner.java
oogle/android/droiddriver/util/ActivityUtils.java
cc1da1e03a08227d8180cbe3f79271fbab048fc7 12-Jul-2013 Kevin Jin <kjin@google.com> warn the [ab]use of DroidDriver#has(finder, timeoutMillis)

Change-Id: Ic2239d6cdf2292ea06f11596292e38d7c6755af0
oogle/android/droiddriver/DroidDriver.java
oogle/android/droiddriver/finders/By.java
ce3d103d2784040f32d1a97b848d58a1c9592a15 12-Jul-2013 Kevin Jin <kjin@google.com> remove versions of check* with custom timeouts

Change-Id: Ic4ac93d5f9694747cb0381673cc8004ad150ea80
oogle/android/droiddriver/DroidDriver.java
oogle/android/droiddriver/base/AbstractDroidDriver.java
df778b5b087c324e1078c6ba692d0aff4f940ac9 11-Jul-2013 Kevin Jin <kjin@google.com> add @UseUiAutomation as an explicit version of @MinSdkVersion(18)

Change-Id: Iedc9e44e7636237488136632d8c440bc72d8ff17
oogle/android/droiddriver/runner/MinSdkVersion.java
oogle/android/droiddriver/runner/TestRunner.java
oogle/android/droiddriver/runner/UseUiAutomation.java
ffd0f7a9a89c3c19bc5846b23237d96ed8accbfd 11-Jul-2013 Kevin Jin <kjin@google.com> add test for XPaths.quoteXPathLiteral

Change-Id: I2ac3886656519f3ea5ae2968eb15d35fa76d8688
oogle/android/droiddriver/DroidDriverBuilder.java
oogle/android/droiddriver/finders/MatchFinder.java
oogle/android/droiddriver/finders/XPaths.java
d88d4ab289d47627418aa500d43b9c11168acba7 11-Jul-2013 Kevin Jin <kjin@google.com> add XPaths.quoteXPathLiteral

Change-Id: I682f2493a49db26f8092ae8bb8c5267f0c58bfc3
oogle/android/droiddriver/finders/XPaths.java
c91cb19438c6ef8ecd794664bf1f879725866bb9 09-Jul-2013 Kevin Jin <kjin@google.com> fix InstrumentationDriver for multiple root views

Change-Id: I50c4c1b10025296b70d8fc5bebcf4bfc12d41417
oogle/android/droiddriver/instrumentation/InstrumentationDriver.java
oogle/android/droiddriver/instrumentation/ViewElement.java
147358b68c8351b10d633bbcba2684dcc08e3302 09-Jul-2013 Anthony Wickham <twickham@google.com> Merge "Fixed ViewElement.getVisibleBounds()"
ad7d747c3cd738e15413040fa15d0c2924753c05 09-Jul-2013 Jiexi Cao <jiexic@google.com> Fixed ViewElement.getVisibleBounds()

Previously, getVisibleBounds was only getting the coordinates of an
element relative to the topmost view, which is not the screen in the
case that there is a pop-up dialog. By using view.getLocationOnScreen,
we can adjust the relative coordinates to apply to the entire screen and
have the driver click on the correct place.

Bug: b/9743953
Change-Id: I51a2f7fc8974fba9d08c660b6e7926eb0e305abb
oogle/android/droiddriver/instrumentation/ViewElement.java
9f554eb6d4d25a0a31be3ab88fb715fc3cee4027 09-Jul-2013 Tony Wickham <twickham@google.com> Added containsAttr() to XPaths.

Change-Id: I8ada6883107d7dbceaf0e9391a683ff498924b36
oogle/android/droiddriver/finders/XPaths.java
b27621ff6e9da190454da80b93bc1a7544904909 04-Jul-2013 Kevin Jin <kjin@google.com> check view.getResources != null in getResourceId

Change-Id: Ib90d4058b6f3b0dca2d3ab922a045e3279eaee19
oogle/android/droiddriver/instrumentation/ViewElement.java
52b875da168081ca17d5532cebfbe78974ecce55 04-Jul-2013 Kevin Jin <kjin@google.com> comment out unsafe check in AbstractUiElement.setText
add toString for Action

Change-Id: Ib97349d1e8bb24853a1ef8856da2fb96152240c0
oogle/android/droiddriver/actions/Action.java
oogle/android/droiddriver/actions/PressKeyAction.java
oogle/android/droiddriver/actions/TypeAction.java
oogle/android/droiddriver/base/AbstractUiElement.java
84761db4f87ea7ec566c3aa0e7ef6f2757643186 03-Jul-2013 Kevin Jin <kjin@google.com> FileUtils: setReadable after file creation

Change-Id: I4e317dbe742093658173a7bd2891331fbe7964de
oogle/android/droiddriver/util/FileUtils.java
b75721c8fc51bd5678f5a8d0df9a1e868d69aa12 28-Jun-2013 Kevin Jin <kjin@google.com> expose DroidDriver.find for pollers

Change-Id: Ie9c4bc52e744ccd949cc46a87b94b02ff1a549c9
oogle/android/droiddriver/DroidDriver.java
oogle/android/droiddriver/Poller.java
oogle/android/droiddriver/base/AbstractDroidDriver.java
5838b1a067427865c3ec8cc33a5dfa64ba05407f 28-Jun-2013 Kevin Jin <kjin@google.com> wait for RunningActivity in InstrumentationDriver

Change-Id: Ic4cb68fc46cec433a7989187ed64f73e2c5aa6e8
oogle/android/droiddriver/instrumentation/InstrumentationDriver.java
oogle/android/droiddriver/instrumentation/ViewElement.java
oogle/android/droiddriver/util/ActivityUtils.java
9f81086b618594cb080adf33548edd0c999e388e 27-Jun-2013 Kevin Jin <kjin@google.com> add ViewElement#overrideClassName
for consistent results no matter which driver is used

Change-Id: I4f73bb194b2c652645622ba19c880fd539b74918
oogle/android/droiddriver/UiElement.java
oogle/android/droiddriver/instrumentation/ViewElement.java
oogle/android/droiddriver/uiautomation/UiAutomationElement.java
eb4e1921c193bb90eb0122ea7b0fd37cef60e8e1 27-Jun-2013 Kevin Jin <kjin@google.com> remove hack in UiAutomationElement.click:
The problem with Music app is in DrawerLayout impl, not DroidDriver.
Also fixed logging.

Change-Id: I870dc92680708e4f9c862faa0a0618d576a9b6d8
oogle/android/droiddriver/base/AbstractUiElement.java
oogle/android/droiddriver/finders/ByXPath.java
oogle/android/droiddriver/uiautomation/UiAutomationElement.java
7dde4b200c490587409e0301e58261210e7a5896 19-Jun-2013 Tony Wickham <twickham@google.com> Fixed issue with clicking on partially visible elements.

Because UiElement.click() was performed on the center of elements, it didn't
work when the element's center was off screen. To fix this, I added a
getVisibleBounds() method to UiElement, which is implemented by ViewElement
and UiAutomationElement. This method is used in ClickAction to make sure that
the click is performed on the visible portion of the element.

DeviceUtils was added with getDisplayBounds().

Lastly, UiAutomationContext now holds Instrumentation instead of UiAutomation,
which also forced other files to change accordingly.
Change-Id: Ic2fd163a9759a0d95bd413b557976ee8a3d044f9
oogle/android/droiddriver/DroidDriverBuilder.java
oogle/android/droiddriver/UiElement.java
oogle/android/droiddriver/actions/ClickAction.java
oogle/android/droiddriver/instrumentation/ViewElement.java
oogle/android/droiddriver/uiautomation/UiAutomationContext.java
oogle/android/droiddriver/uiautomation/UiAutomationDriver.java
oogle/android/droiddriver/uiautomation/UiAutomationElement.java
022f444db92ed15a90b025626d88b3f351695b9f 25-Jun-2013 Tony Wickham <twickham@google.com> getClassName() doesn't work below API 14; handled more gracefully

Change-Id: I0ff6d68be7ecc4e9f5555a32ed09aa4dd633f236
oogle/android/droiddriver/instrumentation/ViewElement.java
6b3044b3bb260efec4b9c4cfe0fd8920841a6e7d 22-Jun-2013 Kevin Jin <kjin@google.com> fix ViewElement.getClassName: runOnMainSync

Change-Id: Ie13e6f41fc9a8783ed7ee77809b06951f7c0f8e7
oogle/android/droiddriver/instrumentation/InstrumentationDriver.java
oogle/android/droiddriver/instrumentation/ViewElement.java
394b364bfa602c0bbe813229ad099e8075a20c9d 21-Jun-2013 Kevin Jin <kjin@google.com> getClassName returns the class name as seen by AccessibilityService

Change-Id: I520f249680c72e4fa2b752de4bf4013815ff8970
oogle/android/droiddriver/UiElement.java
oogle/android/droiddriver/instrumentation/ViewElement.java
49eb778a47b1b7630e5f3ec8d02b7e5bed58f7b9 21-Jun-2013 Kevin Jin <kjin@google.com> ViewElement.isVisible checks isShown in addition to Rect

Change-Id: Ie7e508d9a67629bf871d05887d26b9d3db645c32
oogle/android/droiddriver/base/AbstractUiElement.java
oogle/android/droiddriver/exceptions/ElementNotVisibleException.java
oogle/android/droiddriver/instrumentation/ViewElement.java
e2660726a43b1a68729d736f6ffa0332ab152498 20-Jun-2013 Kevin Jin <kjin@google.com> add takeScreenshot to InstrumentationDriver

Change-Id: I347532ed9f4e4aa59ac045a83ee7b4f25735c251
oogle/android/droiddriver/DroidDriver.java
oogle/android/droiddriver/base/AbstractDroidDriver.java
oogle/android/droiddriver/instrumentation/InstrumentationDriver.java
oogle/android/droiddriver/instrumentation/ViewElement.java
oogle/android/droiddriver/uiautomation/UiAutomationDriver.java
oogle/android/droiddriver/util/ActivityUtils.java
886a46681a7d555ba0d847e7020a38e9c0114313 20-Jun-2013 Tony Wickham <twickham@google.com> Merge "Added getRunningActivity; Precautions in InstrumentationDriver.getRootElement"
115eb39036a7a4e500dc94b57975a5693861f654 18-Jun-2013 Tony Wickham <twickham@google.com> Added getRunningActivity; Precautions in InstrumentationDriver.getRootElement

There is now a ActivityUtils class with a getRunningActivity() method, which
depends on the overridden callActivityOnResume() and callActivityOnPause()
methods in TestRunner to maintain a currentActivity.

InstrumentationDriver.getRootElement now throws an exception if the test
activity isn't started and uses runningActivity.getWindow().getDecorView()
as the root element (used for finding elements).

Change-Id: Ib43ed5b2b8f17bc2dc20f21c24d76afe54fa34cd
oogle/android/droiddriver/instrumentation/InstrumentationDriver.java
oogle/android/droiddriver/instrumentation/RootFinder.java
oogle/android/droiddriver/runner/TestRunner.java
oogle/android/droiddriver/util/ActivityUtils.java
707bb4a4567d4691793fdf87de3c6a32046375d9 19-Jun-2013 Jiexi Cao <jiexic@google.com> Added more finding methods to finders/By.java

Added: textContains and contentDescriptionContains (both case-
sensitive) and packageName.

Change-Id: Icd053aa330d6b55a6f9347f579038582db9f41a4
oogle/android/droiddriver/finders/By.java
7576fbbba2bf515908b45293b7156b5bfe088938 06-Jun-2013 Kevin Jin <kjin@google.com> rename Matcher to Finder

Change-Id: Id63cf416b2d548ac676e53f9377e6f7c7dbbbedf
oogle/android/droiddriver/DroidDriver.java
oogle/android/droiddriver/Poller.java
oogle/android/droiddriver/UiElement.java
oogle/android/droiddriver/base/AbstractDroidDriver.java
oogle/android/droiddriver/base/AbstractUiElement.java
oogle/android/droiddriver/exceptions/ElementNotFoundException.java
oogle/android/droiddriver/finders/Attribute.java
oogle/android/droiddriver/finders/By.java
oogle/android/droiddriver/finders/ByAttribute.java
oogle/android/droiddriver/finders/ByXPath.java
oogle/android/droiddriver/finders/ChainFinder.java
oogle/android/droiddriver/finders/Finder.java
oogle/android/droiddriver/finders/MatchFinder.java
oogle/android/droiddriver/finders/MatchStrategy.java
oogle/android/droiddriver/finders/XPaths.java
oogle/android/droiddriver/matchers/Attribute.java
oogle/android/droiddriver/matchers/By.java
oogle/android/droiddriver/matchers/ByAttribute.java
oogle/android/droiddriver/matchers/ByXPath.java
oogle/android/droiddriver/matchers/ChainMatcher.java
oogle/android/droiddriver/matchers/ElementMatcher.java
oogle/android/droiddriver/matchers/MatchStrategy.java
oogle/android/droiddriver/matchers/Matcher.java
oogle/android/droiddriver/matchers/XPaths.java
oogle/android/droiddriver/util/DefaultPoller.java
05cca15c6b38881a5f35ba0d06c0ffc3701b1e29 06-Jun-2013 Kevin Jin <kjin@google.com> add PNG as the default screenshot format

Change-Id: I3c38997fed807af02cbd7ea9baac387d83789211
oogle/android/droiddriver/Screenshotter.java
oogle/android/droiddriver/uiautomation/UiAutomationDriver.java
oogle/android/droiddriver/util/FileUtils.java
6a6c19d612923a0350ab46898df513c66bac2d66 04-Jun-2013 Kevin Jin <kjin@google.com> add helper methods to DroidDriver that simply test code:
checkExists, checkGone and their variations w/ ad-hoc timeout

Change-Id: Ie742dcd04b49d044ea93b949b725736ee4ca4fe1
oogle/android/droiddriver/DroidDriver.java
oogle/android/droiddriver/Poller.java
oogle/android/droiddriver/base/AbstractDroidDriver.java
oogle/android/droiddriver/util/DefaultPoller.java
985b3bff6691575b23da83c3e7cfd8552b6f4c55 01-Jun-2013 Kevin Jin <kjin@google.com> remove findElement in UiElement
remove DD.getRootElement, rename DD.waitForElement to on

Change-Id: I68eef1b39889c8f1f0677fcbb265cfd9dfdca01f
oogle/android/droiddriver/DroidDriver.java
oogle/android/droiddriver/UiElement.java
oogle/android/droiddriver/base/AbstractDroidDriver.java
oogle/android/droiddriver/base/AbstractUiElement.java
oogle/android/droiddriver/matchers/By.java
oogle/android/droiddriver/matchers/ChainMatcher.java
6316362de61fca700d7d5a455ad5c0ac9717c365 31-May-2013 Kevin Jin <kjin@google.com> add Screenshotter
move dumpDom from UiElement to DroidDriver
uniform toString in AbstractUiElement instead of subclasses

Change-Id: Ic78b812a206e73d23a47c94d9e9fe79a99c23d6c
oogle/android/droiddriver/DroidDriver.java
oogle/android/droiddriver/Poller.java
oogle/android/droiddriver/Screenshotter.java
oogle/android/droiddriver/UiElement.java
oogle/android/droiddriver/base/AbstractDroidDriver.java
oogle/android/droiddriver/base/AbstractUiElement.java
oogle/android/droiddriver/instrumentation/RootFinder.java
oogle/android/droiddriver/instrumentation/ViewElement.java
oogle/android/droiddriver/matchers/ByXPath.java
oogle/android/droiddriver/matchers/ElementMatcher.java
oogle/android/droiddriver/runner/TestRunner.java
oogle/android/droiddriver/uiautomation/UiAutomationDriver.java
oogle/android/droiddriver/uiautomation/UiAutomationElement.java
oogle/android/droiddriver/util/FileUtils.java
oogle/android/droiddriver/util/Logs.java
79884ac460f8d357c28091ec3f42fe369964b809 30-May-2013 Kevin Jin <kjin@google.com> move UiElement tree traversal logic to ElementMatcher
Now both Matchers handle traversal internally

Change-Id: I368f2b60ba9e4157b7ecbef2e8f64231778a53d0
oogle/android/droiddriver/base/AbstractUiElement.java
oogle/android/droiddriver/exceptions/ActionException.java
oogle/android/droiddriver/exceptions/DroidDriverException.java
oogle/android/droiddriver/exceptions/ElementNotFoundException.java
oogle/android/droiddriver/exceptions/ElementNotVisibleException.java
oogle/android/droiddriver/exceptions/TimeoutException.java
oogle/android/droiddriver/matchers/ByAttribute.java
oogle/android/droiddriver/matchers/ByXPath.java
oogle/android/droiddriver/matchers/ElementMatcher.java
oogle/android/droiddriver/matchers/Matcher.java
dc5bb6b7cd5111a5c082ef7bc6e46a95d17de8e5 29-May-2013 Kevin Jin <kjin@google.com> change type of millis int->long

Change-Id: Ibcd6be9ea429f665a653f3aa1b3c6a27d3d84766
oogle/android/droiddriver/Poller.java
oogle/android/droiddriver/base/AbstractUiElement.java
oogle/android/droiddriver/uiautomation/UiAutomationDriver.java
oogle/android/droiddriver/util/DefaultPoller.java
oogle/android/droiddriver/util/Logs.java
0858f7292b7e7f32c25662d853c9d8ed8db1403f 28-May-2013 Kevin Jin <kjin@google.com> rename getRect -> getBounds
This follows uiautomatorviewer convention, making it
easier for DD users to use that tool.
Skip invisible children -- this is critical; e.g. ViewPager
keeps all invisible pages in memory. If users use
uiautomatorviewer to define matchers, the invisible nodes
may match surprisingly.

Change-Id: Idc4298bf18931978e2e9fd3c27e273f0e49c2f1f
oogle/android/droiddriver/UiElement.java
oogle/android/droiddriver/actions/ClickAction.java
oogle/android/droiddriver/actions/SwipeAction.java
oogle/android/droiddriver/base/AbstractUiElement.java
oogle/android/droiddriver/instrumentation/ViewElement.java
oogle/android/droiddriver/matchers/Attribute.java
oogle/android/droiddriver/uiautomation/UiAutomationElement.java
oogle/android/droiddriver/util/Logs.java
c1a957dbec671deb711d2f69cf326dc97f339f66 22-May-2013 Kevin Jin <kjin@google.com> sync with UiAutomation.executeAndWaitForEvent
This solves the clicking DrawerLayout problem, but we need to
find the exact cause to solve the general problem.
Also add logging for Events

Change-Id: I0cba140021b676cb1d13c3fe3d319c2cca535ccd
oogle/android/droiddriver/actions/ClickAction.java
oogle/android/droiddriver/base/AbstractUiElement.java
oogle/android/droiddriver/matchers/By.java
oogle/android/droiddriver/uiautomation/UiAutomationDriver.java
oogle/android/droiddriver/uiautomation/UiAutomationElement.java
oogle/android/droiddriver/util/Events.java
7b1b7d4561b60f8b3bcd7c2d592454dd7bfef619 21-May-2013 Kevin Jin <kjin@google.com> clean up ConditionCheckers
clearer logging for findElement

Change-Id: I53f4d13f6a013b97368d3f7351cffa45c7d0efe6
oogle/android/droiddriver/Poller.java
oogle/android/droiddriver/base/AbstractDroidDriver.java
oogle/android/droiddriver/base/AbstractUiElement.java
oogle/android/droiddriver/exceptions/UnsatisfiedConditionException.java
oogle/android/droiddriver/uiautomation/UiAutomationDriver.java
oogle/android/droiddriver/util/ConditionCheckers.java
oogle/android/droiddriver/util/DefaultPoller.java
c96f83c2e617f9f9c4a270258c10c5b46bd9f04e 20-May-2013 Kevin Jin <kjin@google.com> wait longer for UiAutomation.getRootInActiveWindow

Change-Id: I7bb27b0f38b0bad6532eeb2470cfaeb8e6ede63f
oogle/android/droiddriver/base/AbstractUiElement.java
oogle/android/droiddriver/uiautomation/UiAutomationDriver.java
5c0ca5383d9a90b6d5e9c246f387e6261fed6211 17-May-2013 Kevin Jin <kjin@google.com> add NOP_LISTENER_REMOVER and some Convenience methods

Change-Id: I0b2f8e3876d3a3bf2111f4e44ef647a84a5bbbcd
oogle/android/droiddriver/Poller.java
oogle/android/droiddriver/matchers/By.java
oogle/android/droiddriver/matchers/XPaths.java
0d7b67b43f83536708a6ae0330e739744049a48e 15-May-2013 Kevin Jin <kjin@google.com> expose getChild and getParent
remove Logs.wrap

Change-Id: I4d6d58b58fdb70fee168d1a357767683fae11490
oogle/android/droiddriver/UiElement.java
oogle/android/droiddriver/base/AbstractUiElement.java
oogle/android/droiddriver/instrumentation/InstrumentationDriver.java
oogle/android/droiddriver/instrumentation/ViewElement.java
oogle/android/droiddriver/matchers/By.java
oogle/android/droiddriver/uiautomation/UiAutomationDriver.java
oogle/android/droiddriver/uiautomation/UiAutomationElement.java
oogle/android/droiddriver/util/Logs.java
fc21930b0a5cc598f59c0c893274e4ce33abd235 14-May-2013 Kevin Jin <kjin@google.com> make Matcher a marker interface
distinguish ElementMatcher and ByXPath matchers

Change-Id: I61709ae204a06867c011319a2db1f2a2de61d1e9
oogle/android/droiddriver/base/AbstractUiElement.java
oogle/android/droiddriver/matchers/By.java
oogle/android/droiddriver/matchers/ByAttribute.java
oogle/android/droiddriver/matchers/ByXPath.java
oogle/android/droiddriver/matchers/ElementMatcher.java
oogle/android/droiddriver/matchers/Matcher.java
cd9468bc18d0e8250fc495f1ec656667eb206526 14-May-2013 Kevin Jin <kjin@google.com> add XPaths for convenience methods

Change-Id: If35c26e9d2f28b2f8e61452113b963113e2b7ad4
oogle/android/droiddriver/base/AbstractUiElement.java
oogle/android/droiddriver/matchers/Attribute.java
oogle/android/droiddriver/matchers/ByXPath.java
oogle/android/droiddriver/matchers/XPaths.java
4733c7f8e8b5258f4b09004b7a56204f8f28be4c 13-May-2013 Kevin Jin <kjin@google.com> add By.attribute and OBJECT_EQUALS

Change-Id: Ieb6cec608f8f41e9f3b4a7bb9e077cd9150d63b5
oogle/android/droiddriver/matchers/By.java
oogle/android/droiddriver/matchers/ByAttribute.java
oogle/android/droiddriver/matchers/MatchStrategy.java
oogle/android/droiddriver/matchers/Matcher.java
2acc13e041cb065f90ab7882e095f05cb275dc68 11-May-2013 Kevin Jin <kjin@google.com> abstract UiElement getters into get(Attribute)
consolidate ad-hoc Matchers into generic ByAttribute

Change-Id: I01dd88ac095d7ccc72700bd7f69c5e905c0c063b
oogle/android/droiddriver/UiElement.java
oogle/android/droiddriver/base/AbstractUiElement.java
oogle/android/droiddriver/matchers/Attribute.java
oogle/android/droiddriver/matchers/By.java
oogle/android/droiddriver/matchers/ByAttribute.java
oogle/android/droiddriver/matchers/ByClassName.java
oogle/android/droiddriver/matchers/ByContentDescription.java
oogle/android/droiddriver/matchers/ByResourceId.java
oogle/android/droiddriver/matchers/ByText.java
oogle/android/droiddriver/matchers/ByXPath.java
oogle/android/droiddriver/matchers/MatchStrategy.java
oogle/android/droiddriver/matchers/Matcher.java
f9c2a591497874769b87bf492a0666cf853e0ae5 09-May-2013 Kevin Jin <kjin@google.com> add longClick and doubleClick
add hasElement
add By.allOf and anyOf

Change-Id: I2456c3291d4a4398a413603830f809efe4a429cb
oogle/android/droiddriver/UiElement.java
oogle/android/droiddriver/actions/Action.java
oogle/android/droiddriver/actions/ClickAction.java
oogle/android/droiddriver/base/AbstractUiElement.java
oogle/android/droiddriver/instrumentation/ViewElement.java
oogle/android/droiddriver/matchers/By.java
oogle/android/droiddriver/uiautomation/UiAutomationElement.java
oogle/android/droiddriver/util/Events.java
8e4d4bb6a6c2b2e4a470c0804833de2a92f154d5 07-May-2013 Kevin Jin <kjin@google.com> fix build after moving By

Change-Id: I8dcf002b7f8852a7694ad58e7ca04162466327af
oogle/android/droiddriver/matchers/ByXPath.java
c134b29628280a680fdf2696480166de56074b1e 06-May-2013 Kevin Jin <kjin@google.com> move Matcher to subpackage matchers
split individual matchers into separate files
create Attribute.java for easily building XPath

Change-Id: I370a0904eccd469624e38b6fc754a1f8e338486d
oogle/android/droiddriver/By.java
oogle/android/droiddriver/DroidDriver.java
oogle/android/droiddriver/Matcher.java
oogle/android/droiddriver/Poller.java
oogle/android/droiddriver/UiElement.java
oogle/android/droiddriver/base/AbstractDroidDriver.java
oogle/android/droiddriver/base/AbstractUiElement.java
oogle/android/droiddriver/matchers/Attribute.java
oogle/android/droiddriver/matchers/By.java
oogle/android/droiddriver/matchers/ByClassName.java
oogle/android/droiddriver/matchers/ByContentDescription.java
oogle/android/droiddriver/matchers/ByResourceId.java
oogle/android/droiddriver/matchers/ByText.java
oogle/android/droiddriver/matchers/ByXPath.java
oogle/android/droiddriver/matchers/Matcher.java
oogle/android/droiddriver/util/ConditionCheckers.java
oogle/android/droiddriver/util/DefaultPoller.java
0337ecab63fbdf2775eb8d1d86bb96d59a8f9712 30-Mar-2013 Kevin Jin <kjin@google.com> if an attribute is boolean, add it only if true
log dom xml to file because logcat has limit
cache UiElements
improve Logs

Change-Id: Ib505046f9ddfe474d3ee30ad20fdbafcf5b73c2a
oogle/android/droiddriver/base/AbstractUiElement.java
oogle/android/droiddriver/instrumentation/InstrumentationContext.java
oogle/android/droiddriver/uiautomation/UiAutomationContext.java
oogle/android/droiddriver/util/Logs.java
07704975f91b729d9be3a13d6a2d3dfdbbd7d426 29-Mar-2013 Kevin Jin <kjin@google.com> add all attributes to UiElement

Change-Id: I900747906851dd66c705b7cd0f4a9c65d4788cec
oogle/android/droiddriver/UiElement.java
oogle/android/droiddriver/base/AbstractUiElement.java
oogle/android/droiddriver/instrumentation/ViewElement.java
oogle/android/droiddriver/uiautomation/UiAutomationElement.java
d22a8be99552b1cddfe80afe080f61c5c06d93af 27-Mar-2013 Kevin Jin <kjin@google.com> Merge "add MinSdkVersion to support filtering by build version fix DroidDriverBuilder for dev build -- mr2 build has sdk=17"
0c2c0d1f1d7e1198a4e513f8b8ac2149518844ab 26-Mar-2013 Kevin Jin <kjin@google.com> add MinSdkVersion to support filtering by build version
fix DroidDriverBuilder for dev build -- mr2 build has sdk=17

Change-Id: I96546864ef8c34fb4bd9b5a88e650c0513652599
oogle/android/droiddriver/DroidDriverBuilder.java
oogle/android/droiddriver/runner/MinSdkVersion.java
oogle/android/droiddriver/runner/TestRunner.java
cce3dd4492cf04a89154e36fda1909ab4e35213a 26-Mar-2013 Thanh Le <thanhle@google.com> Add a PressKeyAction to press keys on the device.

It's a bit weird since it doesn't require the UiElement context, so maybe we
need to change the API. Also pressing home with the instrumentation
api doesn't work.

Change-Id: Id229aa3118739d7b923364b98ef41f636c5acb85
oogle/android/droiddriver/actions/PressKeyAction.java
oogle/android/droiddriver/util/Events.java
1c6657a62e4023b0098c7a1fc2a039c637dad6cd 25-Mar-2013 Kevin Jin <kjin@google.com> add Builder for auto-piloting DroidDriver creation

Change-Id: Ic525c8d4bfdc039a3b188ca89b0b79121f869e3d
oogle/android/droiddriver/DroidDriverBuilder.java
a6c69788f9ff3360c02b9362bb65c136fe0b9a99 20-Mar-2013 Kevin Jin <kjin@google.com> rename Loggable -> LogDesired, and remove it from interface

Change-Id: I230d46224ad82fba85536bd6f48f785d2e089220
oogle/android/droiddriver/UiElement.java
oogle/android/droiddriver/base/AbstractUiElement.java
oogle/android/droiddriver/util/Logs.java
7add67b949163f981b785a8c23de89d6b17fff93 20-Mar-2013 Kevin Jin <kjin@google.com> add TestRunner which extends InstrumentationTestRunner
This is the minimal hack to clean all created activities

Change-Id: Id9b8a972fa4cde5649de5016ca10c17041a3c5d2
oogle/android/droiddriver/runner/TestRunner.java
7b2b76255593f0ecfbe2d7f996712fefb391dfed 18-Mar-2013 Kevin Jin <kjin@google.com> support xpath
Build a virtual DOM tree that maps UiAutomationElement or
InstrumentationElement tree, respectively. Then use XPath
on the DOM tree.
TODO: filter insignificant nodes to make use of uiautomatorviewer
TODO: add all attrs

Change-Id: I2f9e289b77350f1e920a492ce438ebfd67882058
oogle/android/droiddriver/By.java
oogle/android/droiddriver/base/AbstractUiElement.java
oogle/android/droiddriver/instrumentation/InstrumentationContext.java
oogle/android/droiddriver/instrumentation/InstrumentationDriver.java
oogle/android/droiddriver/instrumentation/ViewElement.java
oogle/android/droiddriver/uiautomation/UiAutomationContext.java
oogle/android/droiddriver/uiautomation/UiAutomationDriver.java
oogle/android/droiddriver/uiautomation/UiAutomationElement.java
oogle/android/droiddriver/util/Logs.java
acde362144222864329ad64d7e746b717103c806 16-Mar-2013 Kevin Jin <kjin@google.com> fix run-time error: newProxy enforce interface

Change-Id: I8d5c6798fc90754553b90c4fab6aa51a75ce8334
oogle/android/droiddriver/base/AbstractUiElement.java
oogle/android/droiddriver/instrumentation/InstrumentationContext.java
oogle/android/droiddriver/instrumentation/ViewElement.java
oogle/android/droiddriver/uiautomation/UiAutomationContext.java
oogle/android/droiddriver/uiautomation/UiAutomationElement.java
oogle/android/droiddriver/util/Logs.java
52107c27b6b0f2b0fdfec995784c73746bb95c4e 15-Mar-2013 Kevin Jin <kjin@google.com> introduce *Context to manage instances and dependency

Change-Id: Ice759c2791a41df1b80dd06b6a339833cb4a7979
oogle/android/droiddriver/base/AbstractUiElement.java
oogle/android/droiddriver/instrumentation/InstrumentationContext.java
oogle/android/droiddriver/instrumentation/InstrumentationDriver.java
oogle/android/droiddriver/instrumentation/InstrumentationInputInjector.java
oogle/android/droiddriver/instrumentation/ViewElement.java
oogle/android/droiddriver/uiautomation/UiAutomationContext.java
oogle/android/droiddriver/uiautomation/UiAutomationDriver.java
oogle/android/droiddriver/uiautomation/UiAutomationDrivers.java
oogle/android/droiddriver/uiautomation/UiAutomationElement.java
oogle/android/droiddriver/uiautomation/UiAutomationInputInjector.java
oogle/android/droiddriver/util/Logs.java
cddda72410c992a12db61cef26713b498e31fea4 14-Mar-2013 Thanh Le <thanhle@google.com> Add an instrumentation driver.

Move common code out of UiautomationDriver to AbstractDriver.

Change-Id: Icf749b76d82a4bc10ea00f4668e251adcc652ba6
oogle/android/droiddriver/base/AbstractDroidDriver.java
oogle/android/droiddriver/base/AbstractUiElement.java
oogle/android/droiddriver/instrumentation/InstrumentationDriver.java
oogle/android/droiddriver/instrumentation/InstrumentationInputInjector.java
oogle/android/droiddriver/instrumentation/RootFinder.java
oogle/android/droiddriver/instrumentation/ViewElement.java
oogle/android/droiddriver/uiautomation/UiAutomationDriver.java
oogle/android/droiddriver/uiautomation/UiAutomationElement.java
oogle/android/droiddriver/util/TextUtils.java
581310c13d5763ef2de991f36a00ce46203235d4 12-Mar-2013 Kevin Jin <kjin@google.com> convert EXISTS_CHECKER and GONE_CHECKER into constants

Change-Id: If647639671f167314d0c1feb029364434d18e58e
oogle/android/droiddriver/uiautomation/UiAutomationDriver.java
oogle/android/droiddriver/util/ConditionCheckers.java
oogle/android/droiddriver/util/DefaultPoller.java
1194ec356a16f3c6dcf408289e36e42c149d6dc8 12-Mar-2013 Kevin Jin <kjin@google.com> rename uidriver to droiddriver

Change-Id: I1768103c3be816f96cce3350051db109dd77978d
oogle/android/droiddriver/By.java
oogle/android/droiddriver/DroidDriver.java
oogle/android/droiddriver/InputInjector.java
oogle/android/droiddriver/Matcher.java
oogle/android/droiddriver/Poller.java
oogle/android/droiddriver/UiElement.java
oogle/android/droiddriver/actions/Action.java
oogle/android/droiddriver/actions/ClickAction.java
oogle/android/droiddriver/actions/ScrollDirection.java
oogle/android/droiddriver/actions/SwipeAction.java
oogle/android/droiddriver/actions/TypeAction.java
oogle/android/droiddriver/exceptions/ActionException.java
oogle/android/droiddriver/exceptions/DroidDriverException.java
oogle/android/droiddriver/exceptions/ElementNotFoundException.java
oogle/android/droiddriver/exceptions/ElementNotVisibleException.java
oogle/android/droiddriver/exceptions/TimeoutException.java
oogle/android/droiddriver/exceptions/UnsatisfiedConditionException.java
oogle/android/droiddriver/uiautomation/UiAutomationDriver.java
oogle/android/droiddriver/uiautomation/UiAutomationDrivers.java
oogle/android/droiddriver/uiautomation/UiAutomationElement.java
oogle/android/droiddriver/uiautomation/UiAutomationInputInjector.java
oogle/android/droiddriver/util/DefaultPoller.java
oogle/android/droiddriver/util/Events.java
oogle/android/droiddriver/util/Logs.java
oogle/android/uidriver/By.java
oogle/android/uidriver/InputInjector.java
oogle/android/uidriver/Matcher.java
oogle/android/uidriver/Poller.java
oogle/android/uidriver/UiDriver.java
oogle/android/uidriver/UiElement.java
oogle/android/uidriver/actions/Action.java
oogle/android/uidriver/actions/ClickAction.java
oogle/android/uidriver/actions/ScrollDirection.java
oogle/android/uidriver/actions/SwipeAction.java
oogle/android/uidriver/actions/TypeAction.java
oogle/android/uidriver/exceptions/ActionException.java
oogle/android/uidriver/exceptions/ElementNotFoundException.java
oogle/android/uidriver/exceptions/ElementNotVisibleException.java
oogle/android/uidriver/exceptions/TimeoutException.java
oogle/android/uidriver/exceptions/UiDriverException.java
oogle/android/uidriver/exceptions/UnsatisfiedConditionException.java
oogle/android/uidriver/uiautomation/UiAutomationDriver.java
oogle/android/uidriver/uiautomation/UiAutomationDrivers.java
oogle/android/uidriver/uiautomation/UiAutomationElement.java
oogle/android/uidriver/uiautomation/UiAutomationInputInjector.java
oogle/android/uidriver/util/DefaultPoller.java
oogle/android/uidriver/util/Events.java
oogle/android/uidriver/util/Logs.java
39f9784bdf3d4663263c344139454736af13e111 12-Mar-2013 Kevin Jin <kjin@google.com> add Poller and waitUntilGone

Change-Id: I9be9a6d14d79065e0e6de93145e2004e367cbaaa
oogle/android/uidriver/Poller.java
oogle/android/uidriver/UiDriver.java
oogle/android/uidriver/exceptions/ElementNotFoundException.java
oogle/android/uidriver/exceptions/UiDriverException.java
oogle/android/uidriver/exceptions/UnsatisfiedConditionException.java
oogle/android/uidriver/uiautomation/UiAutomationDriver.java
oogle/android/uidriver/util/DefaultPoller.java
646e91a139ecd447d23c7d604aed96ee306ce7ed 11-Mar-2013 Kevin Jin <kjin@google.com> Revert "Revert "revise waitForElement Node tree may change during waitForElement, so remove it from UiElement, which now has only findElement. move Events and ScrollDirection into sub packages. add optional tag for testapp""

This reverts commit 5582758679ebd6225d0c799433f49c87304019e0.

Also fix the failure in f849a1f84ddfd1ab94f7de37c3653d5cad968eca

Change-Id: I3c3c5de1fdc26ee03755be81bce3346afcec2b67
oogle/android/uidriver/Events.java
oogle/android/uidriver/ScrollDirection.java
oogle/android/uidriver/SearchContext.java
oogle/android/uidriver/UiDriver.java
oogle/android/uidriver/UiElement.java
oogle/android/uidriver/actions/ClickAction.java
oogle/android/uidriver/actions/ScrollDirection.java
oogle/android/uidriver/actions/SwipeAction.java
oogle/android/uidriver/exceptions/ElementNotFoundException.java
oogle/android/uidriver/uiautomation/UiAutomationDriver.java
oogle/android/uidriver/uiautomation/UiAutomationElement.java
oogle/android/uidriver/util/Events.java
oogle/android/uidriver/util/Logs.java
5582758679ebd6225d0c799433f49c87304019e0 10-Mar-2013 Guang Zhu <guangzhu@google.com> Revert "revise waitForElement Node tree may change during waitForElement, so remove it from UiElement, which now has only findElement. move Events and ScrollDirection into sub packages. add optional tag for testapp"

Fix userdebug build

This reverts commit f849a1f84ddfd1ab94f7de37c3653d5cad968eca

Change-Id: I41219a187987fb73b648eb13d18ac46db52dd2c8
oogle/android/uidriver/Events.java
oogle/android/uidriver/ScrollDirection.java
oogle/android/uidriver/SearchContext.java
oogle/android/uidriver/UiDriver.java
oogle/android/uidriver/UiElement.java
oogle/android/uidriver/actions/ClickAction.java
oogle/android/uidriver/actions/ScrollDirection.java
oogle/android/uidriver/actions/SwipeAction.java
oogle/android/uidriver/uiautomation/UiAutomationDriver.java
oogle/android/uidriver/uiautomation/UiAutomationElement.java
oogle/android/uidriver/util/Events.java
oogle/android/uidriver/util/Logs.java
f849a1f84ddfd1ab94f7de37c3653d5cad968eca 08-Mar-2013 Kevin Jin <kjin@google.com> revise waitForElement
Node tree may change during waitForElement, so remove it
from UiElement, which now has only findElement.
move Events and ScrollDirection into sub packages.
add optional tag for testapp

Change-Id: Ic4d703d30a75613d7ad608f64328840ffc0563d6
oogle/android/uidriver/Events.java
oogle/android/uidriver/ScrollDirection.java
oogle/android/uidriver/SearchContext.java
oogle/android/uidriver/UiDriver.java
oogle/android/uidriver/UiElement.java
oogle/android/uidriver/actions/ClickAction.java
oogle/android/uidriver/actions/ScrollDirection.java
oogle/android/uidriver/actions/SwipeAction.java
oogle/android/uidriver/uiautomation/UiAutomationDriver.java
oogle/android/uidriver/uiautomation/UiAutomationElement.java
oogle/android/uidriver/util/Events.java
oogle/android/uidriver/util/Logs.java
8e610ed585685c55e2cfd010b4233eafc7d568c2 06-Mar-2013 Thanh Le <thanhle@google.com> Add a new Action interface and concrete implementations.

Implemented existing actions such as click, setText, and scroll as Action.
This allows users to execute any Action they want to define including
complex gestures. UiElement now expose a perform(Action) method to do this.

Also got rid of Interactions class, and created an InputInjector class.
It's role is too just inject the events into the system.

Change-Id: I6602bc333e19ccdaee3d7a5f2af3f8a0c94f518c
oogle/android/uidriver/InputInjector.java
oogle/android/uidriver/UiElement.java
oogle/android/uidriver/actions/Action.java
oogle/android/uidriver/actions/ClickAction.java
oogle/android/uidriver/actions/SwipeAction.java
oogle/android/uidriver/actions/TypeAction.java
oogle/android/uidriver/exceptions/ActionException.java
oogle/android/uidriver/uiautomation/Interactions.java
oogle/android/uidriver/uiautomation/UiAutomationElement.java
oogle/android/uidriver/uiautomation/UiAutomationInputInjector.java
56d44e4192de3cfbd1a84a57377a3ae4c716c15b 05-Mar-2013 Kevin Jin <kjin@google.com> add Logs utility
add UiAutomationDrivers helper: first to remove "new"

Change-Id: I0b6bcc243750cc0a01e9d5c6e1fafcfb47e2057e
oogle/android/uidriver/Matcher.java
oogle/android/uidriver/UiElement.java
oogle/android/uidriver/uiautomation/UiAutomationDriver.java
oogle/android/uidriver/uiautomation/UiAutomationDrivers.java
oogle/android/uidriver/uiautomation/UiAutomationElement.java
oogle/android/uidriver/util/Logs.java
f8c31d4e42704ec9f10e05cea86cbcbe56f1041e 01-Mar-2013 Thanh Le <thanhle@google.com> Change scroll to return a boolean.

The boolean will indicate if the scrollable element can be scrolled
further. Change Interactions to listen to accessibility events to
be able to check the scroll indices.

Change-Id: I23d514e060323e30f980641b1f39831e745f4dca
oogle/android/uidriver/UiElement.java
oogle/android/uidriver/uiautomation/Interactions.java
oogle/android/uidriver/uiautomation/UiAutomationElement.java
544e68a6af3ef73316b9994bb7a63790c19415b9 01-Mar-2013 Thanh Le <thanhle@google.com> Add new scroll method, and new matcher for by classname.

The scroll method will take an enum dictating the direction the user wants to
scroll. I think it will read more intuitive in cases where you are
dismissing cards by swiping left or right instead of saying scrollForward()
or scrollBackwards().

Change-Id: Ia9365c33269b56e92aa98a41a93f15745f20363f
oogle/android/uidriver/By.java
oogle/android/uidriver/Events.java
oogle/android/uidriver/ScrollDirection.java
oogle/android/uidriver/UiElement.java
oogle/android/uidriver/uiautomation/Interactions.java
oogle/android/uidriver/uiautomation/UiAutomationElement.java
a139d6e587c8b380be518f20779833541bb8fa5f 28-Feb-2013 Thanh Le <thanhle@google.com> Add ElementNotVisibleException.

This exception is thrown when the element is found, but not visible to the
user, so cannot be interacted with such as clicking.

Change-Id: I7a93056a0455a59ae6990e4f0ee8b26696b821e8
oogle/android/uidriver/By.java
oogle/android/uidriver/UiElement.java
oogle/android/uidriver/exceptions/ElementNotVisibleException.java
oogle/android/uidriver/uiautomation/UiAutomationElement.java
31692a4134ef82a4144d25980c0c5f14bbf1bfad 28-Feb-2013 Thanh Le <thanhle@google.com> Add new method waitForElement in SearchContext.

This method will poll and wait for an element to exist before returning.
If element is not found, a TimeoutException will be thrown.

Change-Id: I5a31bf12cc1881c6a905d127362de8e4183fdb48
oogle/android/uidriver/By.java
oogle/android/uidriver/Events.java
oogle/android/uidriver/SearchContext.java
oogle/android/uidriver/UiElement.java
oogle/android/uidriver/exceptions/TimeoutException.java
oogle/android/uidriver/uiautomation/UiAutomationDriver.java
oogle/android/uidriver/uiautomation/UiAutomationElement.java
a793befd4eb754943dd93aa7178606f1c6170824 26-Feb-2013 Thanh Le <thanhle@google.com> Add find by content description and setText to uidriver

UiElement now supports two new operations getContentDesc and setText
setText does not currently clear any existing text. This might change
in the future.

Change-Id: I0f2cf3a7be206e3d3334c9256f5fe0e841d38522
oogle/android/uidriver/By.java
oogle/android/uidriver/UiElement.java
oogle/android/uidriver/uiautomation/Interactions.java
oogle/android/uidriver/uiautomation/UiAutomationElement.java
57e46577852ffa1dde4662f6018f7fbcfacb6148 22-Feb-2013 Thanh Le <thanhle@google.com> First iteration of UiDriver.

This is a API 18 UiAutomation based UiDriver. It implements very
rudimentary node finding by text and clicking.

Change-Id: Ia5fb58f69ba29b3975976b79c789178abd8aa6ab
oogle/android/uidriver/By.java
oogle/android/uidriver/Events.java
oogle/android/uidriver/Matcher.java
oogle/android/uidriver/SearchContext.java
oogle/android/uidriver/UiDriver.java
oogle/android/uidriver/UiElement.java
oogle/android/uidriver/exceptions/ElementNotFoundException.java
oogle/android/uidriver/exceptions/UiDriverException.java
oogle/android/uidriver/uiautomation/Interactions.java
oogle/android/uidriver/uiautomation/UiAutomationDriver.java
oogle/android/uidriver/uiautomation/UiAutomationElement.java