blob: 76027e83426527667b4969fe365a2d49f10873f7 [file] [log] [blame]
Quddus Chong489218c2015-02-26 16:38:46 -08001<!DOCTYPE html>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
Quddus Chong900831f2015-04-17 15:01:16 -070098
Quddus Chong489218c2015-02-26 16:38:46 -080099<html>
100<head>
101
102
103<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
104<meta name="viewport" content="width=device-width" />
105
106<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
107<title>UiController | Android Developers</title>
108
109<!-- STYLESHEETS -->
110<link rel="stylesheet"
111href="http://fonts.googleapis.com/css?family=Roboto+Condensed">
112<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Roboto:light,regular,medium,thin,italic,mediumitalic,bold"
113 title="roboto">
Quddus Chong900831f2015-04-17 15:01:16 -0700114<link href="../../../../../assets/css/default.css?v=5" rel="stylesheet" type="text/css">
Quddus Chong489218c2015-02-26 16:38:46 -0800115
116
117<!-- FULLSCREEN STYLESHEET -->
118<link href="../../../../../assets/css/fullscreen.css" rel="stylesheet" class="fullscreen"
119type="text/css">
120
121
122<!-- JAVASCRIPT -->
123<script src="http://www.google.com/jsapi" type="text/javascript"></script>
124<script src="../../../../../assets/js/android_3p-bundle.js" type="text/javascript"></script>
125<script type="text/javascript">
126 var toRoot = "../../../../../";
127 var metaTags = [];
128 var devsite = false;
129</script>
Quddus Chong900831f2015-04-17 15:01:16 -0700130<script src="../../../../../assets/js/docs.js?v=3" type="text/javascript"></script>
131
132
Quddus Chong489218c2015-02-26 16:38:46 -0800133
134<script>
135 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
136 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
137 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
138 })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
139
140 ga('create', 'UA-5831155-1', 'android.com');
141 ga('create', 'UA-49880327-2', 'android.com', {'name': 'universal'}); // New tracker);
142 ga('send', 'pageview');
143 ga('universal.send', 'pageview'); // Send page view for new tracker.
144</script>
145
146</head>
147
148<body class="gc-documentation
149 develop reference" itemscope itemtype="http://schema.org/Article">
150 <div id="doc-api-level" class="" style="display:none"></div>
151 <a name="top"></a>
152
153
154<a name="top"></a>
155
Quddus Chong900831f2015-04-17 15:01:16 -0700156<!-- dialog to prompt lang pref change when loaded from hardcoded URL
157<div id="langMessage" style="display:none">
158 <div>
159 <div class="lang en">
160 <p>You requested a page in English, would you like to proceed with this language setting?</p>
161 </div>
162 <div class="lang es">
163 <p>You requested a page in Spanish (Español), would you like to proceed with this language setting?</p>
164 </div>
165 <div class="lang ja">
166 <p>You requested a page in Japanese (日本語), would you like to proceed with this language setting?</p>
167 </div>
168 <div class="lang ko">
169 <p>You requested a page in Korean (한국어), would you like to proceed with this language setting?</p>
170 </div>
171 <div class="lang ru">
172 <p>You requested a page in Russian (Русский), would you like to proceed with this language setting?</p>
173 </div>
174 <div class="lang zh-cn">
175 <p>You requested a page in Simplified Chinese (简体中文), would you like to proceed with this language setting?</p>
176 </div>
177 <div class="lang zh-tw">
178 <p>You requested a page in Traditional Chinese (繁體中文), would you like to proceed with this language setting?</p>
179 </div>
180 <a href="#" class="button yes" onclick="return false;">
181 <span class="lang en">Yes</span>
182 <span class="lang es">Sí</span>
183 <span class="lang ja">Yes</span>
184 <span class="lang ko">Yes</span>
185 <span class="lang ru">Yes</span>
186 <span class="lang zh-cn">是的</span>
187 <span class="lang zh-tw">没有</span>
188 </a>
189 <a href="#" class="button" onclick="$('#langMessage').hide();return false;">
190 <span class="lang en">No</span>
191 <span class="lang es">No</span>
192 <span class="lang ja">No</span>
193 <span class="lang ko">No</span>
194 <span class="lang ru">No</span>
195 <span class="lang zh-cn">没有</span>
196 <span class="lang zh-tw">没有</span>
197 </a>
198 </div>
199</div> -->
200
201
Quddus Chong489218c2015-02-26 16:38:46 -0800202 <!-- Header -->
203 <div id="header-wrapper">
204 <div id="header">
205
206
207
208
209 <div class="wrap" id="header-wrap">
210 <div class="col-3 logo">
211 <a href="../../../../../index.html">
212 <img src="../../../../../assets/images/dac_logo.png"
213 srcset="../../../../../assets/images/dac_logo@2x.png 2x"
214 width="123" height="25" alt="Android Developers" />
215 </a>
216 <div class="btn-quicknav" id="btn-quicknav">
217 <a href="#" class="arrow-inactive">Quicknav</a>
218 <a href="#" class="arrow-active">Quicknav</a>
219 </div>
220 </div>
221 <ul class="nav-x col-9">
222 <li class="design">
223 <a href="../../../../../design/index.html"
224 zh-tw-lang="設計"
225 zh-cn-lang="设计"
226 ru-lang="Проектирование"
227 ko-lang="디자인"
228 ja-lang="設計"
229 es-lang="Diseñar"
230 >Design</a></li>
231 <li class="develop"><a href="../../../../../develop/index.html"
232 zh-tw-lang="開發"
233 zh-cn-lang="开发"
234 ru-lang="Разработка"
235 ko-lang="개발"
236 ja-lang="開発"
237 es-lang="Desarrollar"
238 >Develop</a></li>
239 <li class="distribute last"><a href="../../../../../distribute/index.html"
240 zh-tw-lang="發佈"
241 zh-cn-lang="分发"
242 ru-lang="Распространение"
243 ko-lang="배포"
244 ja-lang="配布"
245 es-lang="Distribuir"
246 >Distribute</a></li>
247 </ul>
248
249
250
251
252<div class="menu-container">
253 <div class="moremenu">
254 <div id="more-btn"></div>
255 </div>
256 <div class="morehover" id="moremenu">
257 <div class="top"></div>
258 <div class="mid">
259 <div class="header">Links</div>
260 <ul>
261 <li><a href="https://play.google.com/apps/publish/" target="_googleplay">Google Play Developer Console</a></li>
262 <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
263 <li><a href="../../../../../about/index.html">About Android</a></li>
264 </ul>
265 <div class="header">Android Sites</div>
266 <ul>
267 <li><a href="http://www.android.com">Android.com</a></li>
268 <li class="active"><a>Android Developers</a></li>
269 <li><a href="http://source.android.com">Android Open Source Project</a></li>
270 </ul>
271
272
273
274
275 <br class="clearfix" />
276 </div><!-- end 'mid' -->
277 <div class="bottom"></div>
278 </div><!-- end 'moremenu' -->
279
280 <div class="search" id="search-container">
281 <div class="search-inner">
282 <div id="search-btn"></div>
283 <div class="left"></div>
284 <form onsubmit="return submit_search()">
285 <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
286 onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
287 onkeydown="return search_changed(event, true, '../../../../../')"
288 onkeyup="return search_changed(event, false, '../../../../../')" />
289 </form>
290 <div class="right"></div>
291 <a class="close hide">close</a>
292 <div class="left"></div>
293 <div class="right"></div>
294 </div><!-- end search-inner -->
295 </div><!-- end search-container -->
296
297 <div class="search_filtered_wrapper reference">
298 <div class="suggest-card reference no-display">
299 <ul class="search_filtered">
300 </ul>
301 </div>
302 </div>
303
304 <div class="search_filtered_wrapper docs">
305 <div class="suggest-card dummy no-display">&nbsp;</div>
306 <div class="suggest-card develop no-display">
307 <ul class="search_filtered">
308 </ul>
309 <div class="child-card guides no-display">
310 </div>
311 <div class="child-card training no-display">
312 </div>
313 <div class="child-card samples no-display">
314 </div>
315 </div>
316 <div class="suggest-card design no-display">
317 <ul class="search_filtered">
318 </ul>
319 </div>
320 <div class="suggest-card distribute no-display">
321 <ul class="search_filtered">
322 </ul>
323 </div>
324 </div>
325</div><!-- end menu-container (search and menu widget) -->
326
327
328
329 <!-- Expanded quicknav -->
330 <div id="quicknav" class="col-13">
331 <ul>
332 <li class="about">
333 <ul>
334 <li><a href="../../../../../about/index.html">About</a></li>
335 <li><a href="../../../../../wear/index.html">Wear</a></li>
336 <li><a href="../../../../../tv/index.html">TV</a></li>
337 <li><a href="../../../../../auto/index.html">Auto</a></li>
338 </ul>
339 </li>
340 <li class="design">
341 <ul>
342 <li><a href="../../../../../design/index.html">Get Started</a></li>
343 <li><a href="../../../../../design/devices.html">Devices</a></li>
344 <li><a href="../../../../../design/style/index.html">Style</a></li>
345 <li><a href="../../../../../design/patterns/index.html">Patterns</a></li>
346 <li><a href="../../../../../design/building-blocks/index.html">Building Blocks</a></li>
347 <li><a href="../../../../../design/downloads/index.html">Downloads</a></li>
348 <li><a href="../../../../../design/videos/index.html">Videos</a></li>
349 </ul>
350 </li>
351 <li class="develop">
352 <ul>
353 <li><a href="../../../../../training/index.html"
354 zh-tw-lang="訓練課程"
355 zh-cn-lang="培训"
356 ru-lang="Курсы"
357 ko-lang="교육"
358 ja-lang="トレーニング"
359 es-lang="Capacitación"
360 >Training</a></li>
361 <li><a href="../../../../../guide/index.html"
362 zh-tw-lang="API 指南"
363 zh-cn-lang="API 指南"
364 ru-lang="Руководства по API"
365 ko-lang="API 가이드"
366 ja-lang="API ガイド"
367 es-lang="Guías de la API"
368 >API Guides</a></li>
369 <li><a href="../../../../../reference/packages.html"
370 zh-tw-lang="參考資源"
371 zh-cn-lang="参考"
372 ru-lang="Справочник"
373 ko-lang="참조문서"
374 ja-lang="リファレンス"
375 es-lang="Referencia"
376 >Reference</a></li>
377 <li><a href="../../../../../sdk/index.html"
378 zh-tw-lang="相關工具"
379 zh-cn-lang="工具"
380 ru-lang="Инструменты"
381 ko-lang="도구"
382 ja-lang="ツール"
383 es-lang="Herramientas"
384 >Tools</a>
385 </li>
386 <li><a href="../../../../../google/index.html">Google Services</a>
387 </li>
388
389 </ul>
390 </li>
391 <li class="distribute last">
392 <ul>
393 <li><a href="../../../../../distribute/googleplay/index.html">Google Play</a></li>
394 <li><a href="../../../../../distribute/essentials/index.html">Essentials</a></li>
395 <li><a href="../../../../../distribute/users/index.html">Get Users</a></li>
396 <li><a href="../../../../../distribute/engage/index.html">Engage &amp; Retain</a></li>
397 <li><a href="../../../../../distribute/monetize/index.html">Monetize</a></li>
Quddus Chong900831f2015-04-17 15:01:16 -0700398 <li><a href="../../../../../distribute/analyze/index.html">Analyze</a></li>
Quddus Chong489218c2015-02-26 16:38:46 -0800399 <li><a href="../../../../../distribute/tools/index.html">Tools &amp; Reference</a></li>
400 <li><a href="../../../../../distribute/stories/index.html">Developer Stories</a></li>
401 </ul>
402 </li>
403 </ul>
404 </div><!-- /Expanded quicknav -->
405 </div><!-- end header-wrap.wrap -->
406 </div><!-- end header -->
407
408
409 <!-- Secondary x-nav -->
410 <div id="nav-x">
411 <div class="wrap" style="position:relative;z-index:1">
412
413
Quddus Chong489218c2015-02-26 16:38:46 -0800414
Quddus Chong489218c2015-02-26 16:38:46 -0800415
416
417 <ul class="nav-x col-9 develop" style="width:100%">
418 <li class="training"><a href="../../../../../training/index.html"
419 zh-tw-lang="訓練課程"
420 zh-cn-lang="培训"
421 ru-lang="Курсы"
422 ko-lang="교육"
423 ja-lang="トレーニング"
424 es-lang="Capacitación"
425 >Training</a></li>
426 <li class="guide"><a href="../../../../../guide/index.html"
427 zh-tw-lang="API 指南"
428 zh-cn-lang="API 指南"
429 ru-lang="Руководства по API"
430 ko-lang="API 가이드"
431 ja-lang="API ガイド"
432 es-lang="Guías de la API"
433 >API Guides</a></li>
434 <li class="reference"><a href="../../../../../reference/packages.html"
435 zh-tw-lang="參考資源"
436 zh-cn-lang="参考"
437 ru-lang="Справочник"
438 ko-lang="참조문서"
439 ja-lang="リファレンス"
440 es-lang="Referencia"
441 >Reference</a></li>
442 <li class="tools"><a href="../../../../../sdk/index.html"
443 zh-tw-lang="相關工具"
444 zh-cn-lang="工具"
445 ru-lang="Инструменты"
446 ko-lang="도구"
447 ja-lang="ツール"
448 es-lang="Herramientas"
449 >Tools</a></li>
450 <li class="google"><a href="../../../../../google/index.html"
451 >Google Services</a>
452 </li>
453
454 </ul>
455 </div>
456 </div>
457 <!-- /Sendondary x-nav DEVELOP -->
458
459
460
461 <div id="searchResults" class="wrap" style="display:none;">
462 <h2 id="searchTitle">Results</h2>
463 <div id="leftSearchControl" class="search-control">Loading...</div>
464 </div>
465 </div> <!--end header-wrapper -->
466
467 <div id="sticky-header">
468 <div>
469 <a class="logo" href="#top"></a>
470 <a class="top" href="#top"></a>
471 <ul class="breadcrumb">
472
473 <li class="current">UiController</li>
474 </ul>
475 </div>
476 </div>
477
478
479
480
481
482 <div class="wrap clearfix" id="body-content">
483 <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
484 <div id="devdoc-nav">
485 <div id="api-nav-header">
486 <div id="api-level-toggle">
487 <label for="apiLevelCheckbox" class="disabled"
488 title="Select your target API level to dim unavailable APIs">API level: </label>
489 <div class="select-wrapper">
490 <select id="apiLevelSelector">
491 <!-- option elements added by buildApiLevelSelector() -->
492 </select>
493 </div>
494 </div><!-- end toggle -->
495 <div id="api-nav-title">Android APIs</div>
496 </div><!-- end nav header -->
497 <script>
498 var SINCE_DATA = [ ];
499 buildApiLevelSelector();
500 </script>
501
502 <div id="swapper">
503 <div id="nav-panels">
504 <div id="resize-packages-nav">
505 <div id="packages-nav" class="scroll-pane">
506
507 <ul>
508
509 <li class="api apilevel-">
510 <a href="../../../../../reference/android/support/test/package-summary.html">android.support.test</a></li>
Quddus Chong900831f2015-04-17 15:01:16 -0700511 <li class="api apilevel-">
512 <a href="../../../../../reference/android/support/test/annotation/package-summary.html">android.support.test.annotation</a></li>
Quddus Chong489218c2015-02-26 16:38:46 -0800513 <li class="selected api apilevel-">
514 <a href="../../../../../reference/android/support/test/espresso/package-summary.html">android.support.test.espresso</a></li>
515 <li class="api apilevel-">
516 <a href="../../../../../reference/android/support/test/espresso/action/package-summary.html">android.support.test.espresso.action</a></li>
517 <li class="api apilevel-">
518 <a href="../../../../../reference/android/support/test/espresso/assertion/package-summary.html">android.support.test.espresso.assertion</a></li>
519 <li class="api apilevel-">
520 <a href="../../../../../reference/android/support/test/espresso/base/package-summary.html">android.support.test.espresso.base</a></li>
521 <li class="api apilevel-">
522 <a href="../../../../../reference/android/support/test/espresso/contrib/package-summary.html">android.support.test.espresso.contrib</a></li>
523 <li class="api apilevel-">
Quddus Chong900831f2015-04-17 15:01:16 -0700524 <a href="../../../../../reference/android/support/test/espresso/intent/package-summary.html">android.support.test.espresso.intent</a></li>
525 <li class="api apilevel-">
526 <a href="../../../../../reference/android/support/test/espresso/intent/matcher/package-summary.html">android.support.test.espresso.intent.matcher</a></li>
527 <li class="api apilevel-">
528 <a href="../../../../../reference/android/support/test/espresso/intent/rule/package-summary.html">android.support.test.espresso.intent.rule</a></li>
529 <li class="api apilevel-">
Quddus Chong489218c2015-02-26 16:38:46 -0800530 <a href="../../../../../reference/android/support/test/espresso/matcher/package-summary.html">android.support.test.espresso.matcher</a></li>
531 <li class="api apilevel-">
532 <a href="../../../../../reference/android/support/test/espresso/util/package-summary.html">android.support.test.espresso.util</a></li>
533 <li class="api apilevel-">
534 <a href="../../../../../reference/android/support/test/filters/package-summary.html">android.support.test.filters</a></li>
535 <li class="api apilevel-">
Quddus Chong900831f2015-04-17 15:01:16 -0700536 <a href="../../../../../reference/android/support/test/rule/package-summary.html">android.support.test.rule</a></li>
537 <li class="api apilevel-">
Quddus Chong489218c2015-02-26 16:38:46 -0800538 <a href="../../../../../reference/android/support/test/runner/package-summary.html">android.support.test.runner</a></li>
539 <li class="api apilevel-">
Quddus Chong900831f2015-04-17 15:01:16 -0700540 <a href="../../../../../reference/android/support/test/runner/intent/package-summary.html">android.support.test.runner.intent</a></li>
541 <li class="api apilevel-">
Quddus Chong489218c2015-02-26 16:38:46 -0800542 <a href="../../../../../reference/android/support/test/runner/lifecycle/package-summary.html">android.support.test.runner.lifecycle</a></li>
543 <li class="api apilevel-">
544 <a href="../../../../../reference/android/support/test/uiautomator/package-summary.html">android.support.test.uiautomator</a></li>
545 </ul><br/>
546
547 </div> <!-- end packages-nav -->
548 </div> <!-- end resize-packages -->
549 <div id="classes-nav" class="scroll-pane">
550
551
552
553 <ul>
554
555
556 <li><h2>Interfaces</h2>
557 <ul>
558 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/EspressoException.html">EspressoException</a></li>
559 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/FailureHandler.html">FailureHandler</a></li>
560 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/IdlingResource.html">IdlingResource</a></li>
561 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/IdlingResource.ResourceCallback.html">IdlingResource.ResourceCallback</a></li>
562 <li class="selected api apilevel-"><a href="../../../../../reference/android/support/test/espresso/UiController.html">UiController</a></li>
563 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/ViewAction.html">ViewAction</a></li>
564 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/ViewAssertion.html">ViewAssertion</a></li>
565 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/ViewFinder.html">ViewFinder</a></li>
566 </ul>
567 </li>
568
569 <li><h2>Classes</h2>
570 <ul>
571 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/AmbiguousViewMatcherException.Builder.html">AmbiguousViewMatcherException.Builder</a></li>
572 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/DataInteraction.html">DataInteraction</a></li>
573 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/Espresso.html">Espresso</a></li>
574 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/GraphHolder.html">GraphHolder</a></li>
575 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/IdlingPolicies.html">IdlingPolicies</a></li>
576 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/IdlingPolicy.html">IdlingPolicy</a></li>
577 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/NoMatchingViewException.Builder.html">NoMatchingViewException.Builder</a></li>
578 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/PerformException.Builder.html">PerformException.Builder</a></li>
579 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/Root.html">Root</a></li>
580 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/Root.Builder.html">Root.Builder</a></li>
581 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/ViewInteraction.html">ViewInteraction</a></li>
582 </ul>
583 </li>
584
585
586 <li><h2>Exceptions</h2>
587 <ul>
588 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/AmbiguousViewMatcherException.html">AmbiguousViewMatcherException</a></li>
589 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/AppNotIdleException.html">AppNotIdleException</a></li>
590 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/IdlingResourceTimeoutException.html">IdlingResourceTimeoutException</a></li>
591 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/InjectEventSecurityException.html">InjectEventSecurityException</a></li>
592 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/NoActivityResumedException.html">NoActivityResumedException</a></li>
593 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/NoMatchingRootException.html">NoMatchingRootException</a></li>
594 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/NoMatchingViewException.html">NoMatchingViewException</a></li>
595 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/PerformException.html">PerformException</a></li>
596 </ul>
597 </li>
598
599 </ul><br/>
600
601
602 </div><!-- end classes -->
603 </div><!-- end nav-panels -->
604 <div id="nav-tree" style="display:none" class="scroll-pane">
605 <div id="tree-list"></div>
606 </div><!-- end nav-tree -->
607 </div><!-- end swapper -->
608 <div id="nav-swap">
609 <a class="fullscreen">fullscreen</a>
610 <a href='#' onclick='swapNav();return false;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>
611 </div>
612 </div> <!-- end devdoc-nav -->
613 </div> <!-- end side-nav -->
614 <script type="text/javascript">
615 // init fullscreen based on user pref
616 var fullscreen = readCookie("fullscreen");
617 if (fullscreen != 0) {
618 if (fullscreen == "false") {
619 toggleFullscreen(false);
620 } else {
621 toggleFullscreen(true);
622 }
623 }
624 // init nav version for mobile
625 if (isMobile) {
626 swapNav(); // tree view should be used on mobile
627 $('#nav-swap').hide();
628 } else {
629 chooseDefaultNav();
630 if ($("#nav-tree").is(':visible')) {
631 init_default_navtree("../../../../../");
632 }
633 }
634 // scroll the selected page into view
635 $(document).ready(function() {
636 scrollIntoView("packages-nav");
637 scrollIntoView("classes-nav");
638 });
639 </script>
640
641
642
643
644
645<div class="col-12" id="doc-col">
646
647<div id="api-info-block">
648
649
650
651
652<div class="sum-details-links">
653
654</div><!-- end sum-details-links -->
655<div class="api-level">
656
657
658
659
660</div>
661</div><!-- end api-info-block -->
662
663
664<!-- ======== START OF CLASS DATA ======== -->
665
666<div id="jd-header">
667 public
668
669
670
671 interface
672<h1 itemprop="name">UiController</h1>
673
674
675
676
677
678
679
680
681
682
683
684</div><!-- end header -->
685
686<div id="naMessage"></div>
687
688<div id="jd-content" class="api apilevel-">
689<table class="jd-inheritance-table">
690
691
692 <tr>
693
694 <td colspan="1" class="jd-inheritance-class-cell">android.support.test.espresso.UiController</td>
695 </tr>
696
697
698</table>
699
700
701
702
703
704
705
706<div class="jd-descr">
707
708
709<h2>Class Overview</h2>
710<p itemprop="articleBody">Provides base-level UI operations (such as injection of <code><a href="../../../../../reference/android/view/MotionEvent.html">MotionEvent</a></code>s) that can be used to
711 build user actions such as clicks, scrolls, swipes, etc. This replaces parts of the android
712 Instrumentation class that provides similar functionality. However, it provides a more advanced
713 synchronization mechanism for test actions. The key differentiators are:
714 <ul>
715 <li>test actions are assumed to be called on the main thread
716 <li>after a test action is initiated, execution blocks until all messages in the main message
717 queue have been cleared.
718 </ul>
719</p>
720
721
722
723
724
725</div><!-- jd-descr -->
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742<div class="jd-descr">
743
744
745<h2>Summary</h2>
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773<!-- ========== METHOD SUMMARY =========== -->
774<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
775
776
777
778
779 <tr class="alt-color api apilevel-" >
780 <td class="jd-typecol"><nobr>
781 abstract
782
783
784
785
786 boolean</nobr>
787 </td>
788 <td class="jd-linkcol" width="100%"><nobr>
789 <span class="sympad"><a href="../../../../../reference/android/support/test/espresso/UiController.html#injectKeyEvent(android.view.KeyEvent)">injectKeyEvent</a></span>(KeyEvent event)</nobr>
790
791 <div class="jd-descrdiv">
792 Injects a key event into the application.
793
794
795
796 </div>
797
798 </td></tr>
799
800
801
802 <tr class=" api apilevel-" >
803 <td class="jd-typecol"><nobr>
804 abstract
805
806
807
808
809 boolean</nobr>
810 </td>
811 <td class="jd-linkcol" width="100%"><nobr>
812 <span class="sympad"><a href="../../../../../reference/android/support/test/espresso/UiController.html#injectMotionEvent(android.view.MotionEvent)">injectMotionEvent</a></span>(MotionEvent event)</nobr>
813
814 <div class="jd-descrdiv">
815 Injects a motion event into the application.
816
817
818
819 </div>
820
821 </td></tr>
822
823
824
825 <tr class="alt-color api apilevel-" >
826 <td class="jd-typecol"><nobr>
827 abstract
828
829
830
831
832 boolean</nobr>
833 </td>
834 <td class="jd-linkcol" width="100%"><nobr>
835 <span class="sympad"><a href="../../../../../reference/android/support/test/espresso/UiController.html#injectString(java.lang.String)">injectString</a></span>(String str)</nobr>
836
837 <div class="jd-descrdiv">
838 Types a string into the application using series of <code><a href="../../../../../reference/android/view/KeyEvent.html">KeyEvent</a></code>s.
839
840
841
842 </div>
843
844 </td></tr>
845
846
847
848 <tr class=" api apilevel-" >
849 <td class="jd-typecol"><nobr>
850 abstract
851
852
853
854
855 void</nobr>
856 </td>
857 <td class="jd-linkcol" width="100%"><nobr>
858 <span class="sympad"><a href="../../../../../reference/android/support/test/espresso/UiController.html#loopMainThreadForAtLeast(long)">loopMainThreadForAtLeast</a></span>(long millisDelay)</nobr>
859
860 <div class="jd-descrdiv">
861 Loops the main thread for a specified period of time.
862
863
864
865 </div>
866
867 </td></tr>
868
869
870
871 <tr class="alt-color api apilevel-" >
872 <td class="jd-typecol"><nobr>
873 abstract
874
875
876
877
878 void</nobr>
879 </td>
880 <td class="jd-linkcol" width="100%"><nobr>
881 <span class="sympad"><a href="../../../../../reference/android/support/test/espresso/UiController.html#loopMainThreadUntilIdle()">loopMainThreadUntilIdle</a></span>()</nobr>
882
883 <div class="jd-descrdiv">
884 Loops the main thread until the application goes idle.
885
886
887
888 </div>
889
890 </td></tr>
891
892
893
894</table>
895
896
897
898
899
900
901
902</div><!-- jd-descr (summary) -->
903
904<!-- Details -->
905
906
907
908
909
910
911
912
913<!-- XML Attributes -->
914
915
916<!-- Enum Values -->
917
918
919<!-- Constants -->
920
921
922<!-- Fields -->
923
924
925<!-- Public ctors -->
926
927
928
929<!-- ========= CONSTRUCTOR DETAIL ======== -->
930<!-- Protected ctors -->
931
932
933
934<!-- ========= METHOD DETAIL ======== -->
935<!-- Public methdos -->
936
937<h2>Public Methods</h2>
938
939
940
941<A NAME="injectKeyEvent(android.view.KeyEvent)"></A>
942
943<div class="jd-details api apilevel-">
944 <h4 class="jd-details-title">
945 <span class="normal">
946 public
947
948
949 abstract
950
951 boolean
952 </span>
953 <span class="sympad">injectKeyEvent</span>
954 <span class="normal">(KeyEvent event)</span>
955 </h4>
956 <div class="api-level">
957 <div></div>
958
959
960
961 </div>
962 <div class="jd-details-descr">
963
964
965
966
967 <div class="jd-tagdata jd-tagdescr"><p>Injects a key event into the application.</p></div>
968 <div class="jd-tagdata">
969 <h5 class="jd-tagtitle">Parameters</h5>
970 <table class="jd-tagtable">
971 <tr>
972 <th>event</td>
973 <td>the (non-null!) event to inject</td>
974 </tr>
975 </table>
976 </div>
977 <div class="jd-tagdata">
978 <h5 class="jd-tagtitle">Returns</h5>
979 <ul class="nolist"><li>true if the event was injected, false otherwise</li></ul>
980 </div>
981 <div class="jd-tagdata">
982 <h5 class="jd-tagtitle">Throws</h5>
983 <table class="jd-tagtable">
984 <tr>
985 <th><a href="../../../../../reference/android/support/test/espresso/InjectEventSecurityException.html">InjectEventSecurityException</a></td>
986 <td>if the event couldn't be injected because it would
987 interact with another application.
988</td>
989 </tr>
990 </table>
991 </div>
992
993 </div>
994</div>
995
996
997<A NAME="injectMotionEvent(android.view.MotionEvent)"></A>
998
999<div class="jd-details api apilevel-">
1000 <h4 class="jd-details-title">
1001 <span class="normal">
1002 public
1003
1004
1005 abstract
1006
1007 boolean
1008 </span>
1009 <span class="sympad">injectMotionEvent</span>
1010 <span class="normal">(MotionEvent event)</span>
1011 </h4>
1012 <div class="api-level">
1013 <div></div>
1014
1015
1016
1017 </div>
1018 <div class="jd-details-descr">
1019
1020
1021
1022
1023 <div class="jd-tagdata jd-tagdescr"><p>Injects a motion event into the application.</p></div>
1024 <div class="jd-tagdata">
1025 <h5 class="jd-tagtitle">Parameters</h5>
1026 <table class="jd-tagtable">
1027 <tr>
1028 <th>event</td>
1029 <td>the (non-null!) event to inject</td>
1030 </tr>
1031 </table>
1032 </div>
1033 <div class="jd-tagdata">
1034 <h5 class="jd-tagtitle">Returns</h5>
1035 <ul class="nolist"><li>true if the event was injected, false otherwise</li></ul>
1036 </div>
1037 <div class="jd-tagdata">
1038 <h5 class="jd-tagtitle">Throws</h5>
1039 <table class="jd-tagtable">
1040 <tr>
1041 <th><a href="../../../../../reference/android/support/test/espresso/InjectEventSecurityException.html">InjectEventSecurityException</a></td>
1042 <td>if the event couldn't be injected because it would
1043 interact with another application.
1044</td>
1045 </tr>
1046 </table>
1047 </div>
1048
1049 </div>
1050</div>
1051
1052
1053<A NAME="injectString(java.lang.String)"></A>
1054
1055<div class="jd-details api apilevel-">
1056 <h4 class="jd-details-title">
1057 <span class="normal">
1058 public
1059
1060
1061 abstract
1062
1063 boolean
1064 </span>
1065 <span class="sympad">injectString</span>
1066 <span class="normal">(String str)</span>
1067 </h4>
1068 <div class="api-level">
1069 <div></div>
1070
1071
1072
1073 </div>
1074 <div class="jd-details-descr">
1075
1076
1077
1078
1079 <div class="jd-tagdata jd-tagdescr"><p>Types a string into the application using series of <code><a href="../../../../../reference/android/view/KeyEvent.html">KeyEvent</a></code>s. It is up to the
1080 implementor to decide how to map the string to <code><a href="../../../../../reference/android/view/KeyEvent.html">KeyEvent</a></code> objects. if you need specific
1081 control over the key events generated use <code><a href="../../../../../reference/android/support/test/espresso/UiController.html#injectKeyEvent(android.view.KeyEvent)">injectKeyEvent(KeyEvent)</a></code>.</p></div>
1082 <div class="jd-tagdata">
1083 <h5 class="jd-tagtitle">Parameters</h5>
1084 <table class="jd-tagtable">
1085 <tr>
1086 <th>str</td>
1087 <td>the (non-null!) string to type</td>
1088 </tr>
1089 </table>
1090 </div>
1091 <div class="jd-tagdata">
1092 <h5 class="jd-tagtitle">Returns</h5>
1093 <ul class="nolist"><li>true if the string was injected, false otherwise</li></ul>
1094 </div>
1095 <div class="jd-tagdata">
1096 <h5 class="jd-tagtitle">Throws</h5>
1097 <table class="jd-tagtable">
1098 <tr>
1099 <th><a href="../../../../../reference/android/support/test/espresso/InjectEventSecurityException.html">InjectEventSecurityException</a></td>
1100 <td>if the events couldn't be injected because it would
1101 interact with another application.
1102</td>
1103 </tr>
1104 </table>
1105 </div>
1106
1107 </div>
1108</div>
1109
1110
1111<A NAME="loopMainThreadForAtLeast(long)"></A>
1112
1113<div class="jd-details api apilevel-">
1114 <h4 class="jd-details-title">
1115 <span class="normal">
1116 public
1117
1118
1119 abstract
1120
1121 void
1122 </span>
1123 <span class="sympad">loopMainThreadForAtLeast</span>
1124 <span class="normal">(long millisDelay)</span>
1125 </h4>
1126 <div class="api-level">
1127 <div></div>
1128
1129
1130
1131 </div>
1132 <div class="jd-details-descr">
1133
1134
1135
1136
1137 <div class="jd-tagdata jd-tagdescr"><p>Loops the main thread for a specified period of time.
1138
1139 Control may not return immediately, instead it'll return after the time has passed and the
1140 queue is in an idle state again.</p></div>
1141 <div class="jd-tagdata">
1142 <h5 class="jd-tagtitle">Parameters</h5>
1143 <table class="jd-tagtable">
1144 <tr>
1145 <th>millisDelay</td>
1146 <td>time to spend in looping the main thread
1147</td>
1148 </tr>
1149 </table>
1150 </div>
1151
1152 </div>
1153</div>
1154
1155
1156<A NAME="loopMainThreadUntilIdle()"></A>
1157
1158<div class="jd-details api apilevel-">
1159 <h4 class="jd-details-title">
1160 <span class="normal">
1161 public
1162
1163
1164 abstract
1165
1166 void
1167 </span>
1168 <span class="sympad">loopMainThreadUntilIdle</span>
1169 <span class="normal">()</span>
1170 </h4>
1171 <div class="api-level">
1172 <div></div>
1173
1174
1175
1176 </div>
1177 <div class="jd-details-descr">
1178
1179
1180
1181
1182 <div class="jd-tagdata jd-tagdescr"><p>Loops the main thread until the application goes idle.
1183
1184 An empty task is immediately inserted into the task queue to ensure that if we're idle at this
1185 moment we'll return instantly.
1186</p></div>
1187
1188 </div>
1189</div>
1190
1191
1192
1193
1194
1195<!-- ========= METHOD DETAIL ======== -->
1196
1197
1198
1199<!-- ========= END OF CLASS DATA ========= -->
1200<A NAME="navbar_top"></A>
1201
1202<div id="footer" class="wrap" >
1203
1204
1205 <div id="copyright">
1206
1207 Except as noted, this content is licensed under <a
1208 href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
1209 For details and restrictions, see the <a href="../../../../../license.html">
1210 Content License</a>.
1211 </div>
1212 <div id="build_info">
1213
1214 Android &nbsp;r &mdash;
1215<script src="../../../../../timestamp.js" type="text/javascript"></script>
1216<script>document.write(BUILD_TIMESTAMP)</script>
1217
1218 </div>
1219
1220
1221 <div id="footerlinks">
1222
1223 <p>
1224 <a href="../../../../../about/index.html">About Android</a>&nbsp;&nbsp;|&nbsp;
1225 <a href="../../../../../legal.html">Legal</a>&nbsp;&nbsp;|&nbsp;
1226 <a href="../../../../../support.html">Support</a>
1227 </p>
1228 </div>
1229
1230</div> <!-- end footer -->
1231</div> <!-- jd-content -->
1232
1233</div><!-- end doc-content -->
1234
1235</div> <!-- end body-content -->
1236
1237
1238
1239
1240
1241
1242</body>
1243</html>