Commit Graph

2795 Commits

Author SHA1 Message Date
Svetoslav Ganov
d0fd54648c Merge "Adding UI test automation APIs." 2013-01-29 03:16:40 +00:00
Dianne Hackborn
b9781fe08c Merge "App ops: you can now turn off operations." 2013-01-25 19:33:11 +00:00
Dianne Hackborn
5e45ee6752 App ops: you can now turn off operations.
Also add new ops for calendar and wi-fi scans, finish
implementing rejection of content provider calls, fix
issues with rejecting location calls, fix bug in the
new pm call to retrieve apps with permissions.

Change-Id: I29d9f8600bfbbf6561abf6d491907e2bbf6af417
2013-01-25 11:25:48 -08:00
Adam Powell
7195c8f25b am a41f9cfb: am 53d49f17: am 17f05497: am c2469500: Merge "Touch action bar title text: you will go to space today!" into jb-mr1.1-dev
# Via Android Git Automerger (3) and others
* commit 'a41f9cfbbd1d137bf1baab49e0d453a40a0ecd33':
  Touch action bar title text: you will go to space today!
2013-01-23 15:52:28 -08:00
Adam Powell
a41f9cfbbd am 53d49f17: am 17f05497: am c2469500: Merge "Touch action bar title text: you will go to space today!" into jb-mr1.1-dev
# Via Android Git Automerger (2) and others
* commit '53d49f1702df41a4ca342a1df6e720b16e094797':
  Touch action bar title text: you will go to space today!
2013-01-23 15:48:52 -08:00
Adam Powell
53d49f1702 am 17f05497: am c2469500: Merge "Touch action bar title text: you will go to space today!" into jb-mr1.1-dev
# Via Adam Powell (1) and others
* commit '17f05497be90004c0263c6de173af8c19ece07b0':
  Touch action bar title text: you will go to space today!
2013-01-23 15:46:20 -08:00
Adam Powell
27cba38952 Touch action bar title text: you will go to space today!
Title/subtitle text in an action bar is now a full alias for home/up.

Add some prototype ActionBar functionality around titles for future
API consideration.

Bug 7966136

Change-Id: I14377121dcb976d0a5f1e1862f35c3d267eb5458
2013-01-23 15:14:31 -08:00
Dianne Hackborn
f9c5e0fe83 Add new API to propagate contextual data to the assist action
When launching an assist, we have a new API allowing the
current foreground activity/application to provide additional
arbitrary contextual information that is stuffed in the
assist intent before it is launched.

Change-Id: I0b2a6f5a266dc42cc0175327fa76774f814af3b4
2013-01-23 14:39:13 -08:00
Svetoslav Ganov
80943d8daa Adding UI test automation APIs.
This change adds APIs support for implementing UI tests. Such tests do
not rely on internal application structure and can span across application
boundaries. UI automation APIs are encapsulated in the UiAutomation object
that is provided by an Instrumentation object. It is initialized by the
system and can be used for both introspecting the screen and performing
interactions simulating a user. UI test are normal instrumentation tests
and are executed on the device.

UiAutomation uses the accessibility APIs to introspect the screen and
a special delegate object to perform privileged operations such as
injecting input events. Since instrumentation tests are invoked by a shell
command, the shell program launching the tests creates a delegate object and
passes it as an argument to started instrumentation. This delegate
allows the APK that runs the tests to access some privileged operations
protected by a signature level permissions which are explicitly granted
to the shell user.

The UiAutomation object also supports running tests in the legacy way
where the tests are run as a Java shell program. This enables existing
UiAutomator tests to keep working while the new ones should be implemented
using the new APIs. The UiAutomation object exposes lower level APIs which
allow simulation of arbitrary user interactions and writing complete UI test
cases. Clients, such as UiAutomator, are encouraged to implement higher-
level APIs which minimize development effort and can be used as a helper
library by the test developer.

The benefit of this change is decoupling UiAutomator from the system
since the former was calling hidden APIs which required that it is
bundled in the system image. This prevented UiAutomator from being
evolved separately from the system. Also UiAutomator was creating
additional API surface in the system image. Another benefit of the new
design is that now test cases have access to a context and can use
public platform APIs in addition to the UiAutomator ones. Further,
third-parties can develop their own higher level test APIs on top
of the lower level ones exposes by UiAutomation.

bug:8028258

Also this change adds the fully qualified resource name of the view's
id in the emitted AccessibilityNodeInfo if a special flag is set while
configuring the accessibility service. Also added is API for looking
up node infos by this id. The id resource name is relatively more stable
compared to the generaed id number which may change from one build to
another. This API facilitate reuing the already defined ids for UI
automation.

bug:7678973

Change-Id: I589ad14790320dec8a33095953926c2a2dd0228b
2013-01-22 17:56:53 -08:00
Dianne Hackborn
72e3983d38 New API to get app op information about a single package.
Change-Id: I986453d9bb4161da467fb820b12502464e936483
2013-01-18 18:36:09 -08:00
Dianne Hackborn
8fea4e72e4 Merge "Rework ParceledListSlice to be much easier to use." 2013-01-19 00:18:40 +00:00
Kristian Monsen
0a30328c10 Better detecting if current threasd is main thread
Old approach got broken after:
https://googleplex-android-review.googlesource.com/#/c/266421/2

Change-Id: I12ae23efdbaebd8ba24acb1b7eff75c912d24f1d
2013-01-18 14:50:07 -08:00
Dianne Hackborn
d8e1dbb6bc Rework ParceledListSlice to be much easier to use.
Take advantage of this to return better information about
packages filtered by permissions -- include the permissions
they have in the requested array.

Also fix issue #8026793 (Contact picture shows default pic
while searching for a contact in qsb) by using the base
package name of the Context when reporting the app name
of an operation.  Otherwise you could make a resource-only
context for another application and do calls through that
and get reported as the wrong app.

Change-Id: I5e0488bf773acea5a3d22f245641828e1a106fb8
2013-01-18 13:02:26 -08:00
Jeff Sharkey
66a017b634 Always give ContentResolver a valid Context.
Also add MockContentResolver constructor to provide a Context, and
move to singleton ActivityThread, since there is only one inside
each process.  This makes ActivityThread accessible from threads like
InstrumentationThread.

Change-Id: Ib8b18f1b9bba8820ff412d782a43511066eabf24
2013-01-17 18:25:47 -08:00
Jeff Sharkey
54781207d3 Define failed connections column, and reset.
When retrying a download, always reset the failed connections count.

Bug: 8022478
Change-Id: I0d799d82dc7a04fe788b8c5faee0045d1e1a9c60
2013-01-17 17:27:33 -08:00
Dianne Hackborn
2125dd57cc Merge "AppOps: fix nested op tracking, new API to get apps using permissions." 2013-01-17 02:51:11 +00:00
Dianne Hackborn
e799175b6b AppOps: fix nested op tracking, new API to get apps using
permissions.

Change-Id: I20c7bd58febc01d6911a90440867eaacd133c464
2013-01-16 18:10:40 -08:00
Amith Yamasani
d4fe37bee7 Merge "Rename bindService to bindServiceAsUser to follow convention." 2013-01-16 23:26:30 +00:00
Amith Yamasani
27b89e6658 Rename bindService to bindServiceAsUser to follow convention.
This is for the multi-user version of bindService, not the original.

Change-Id: Ib2de35941196accf387b1a276a77e6f9af805ec0
2013-01-16 12:30:11 -08:00
Dianne Hackborn
35654b61e8 More work on App Ops service.
Implemented reading and writing state to retain information
across boots, API to retrieve state from it, improved location
manager interaction to monitor both coarse and fine access
and only note operations when location data is being delivered
back to app (not when it is just registering to get the data at
some time in the future).

Also implement tracking of read/write ops on contacts and the
call log.  This involved tweaking the content provider protocol
to pass over the name of the calling package, and some
infrastructure in the ContentProvider transport to note incoming
calls with the app ops service.  The contacts provider and call
log provider turn this on for themselves.

This also implements some of the mechanics of being able to ignore
incoming provider calls...  all that is left are some new APIs for
the real content provider implementation to be involved with
providing the correct behavior for query() (return an empty
cursor with the right columns) and insert() (need to figure out
what URI to return).

Change-Id: I36ebbcd63dee58264a480f3d3786891ca7cbdb4c
2013-01-16 12:11:01 -08:00
Sasha Levitskiy
f849124b6b Merge "Removed Throttle Manager as obsolete" 2013-01-15 16:56:30 -08:00
Sasha Levitskiy
ca6486e7f5 Removed Throttle Manager as obsolete
Change-Id: I63e8514f34c880d0badaab33a347f54a80c84da6
2013-01-14 16:59:33 -08:00
Scott Kennedy
57b59e025b am aebeea4c: am 5d6d6aab: am 8e45679a: am 026f9191: am 08342698: Merge "docs: Fix a bunch of issues" into jb-mr1-dev
* commit 'aebeea4cf39acae833b1b7f27a4c08d3b55dee37':
  docs: Fix a bunch of issues
2013-01-14 11:19:13 -08:00
Scott Kennedy
aebeea4cf3 am 5d6d6aab: am 8e45679a: am 026f9191: am 08342698: Merge "docs: Fix a bunch of issues" into jb-mr1-dev
* commit '5d6d6aab255aa17fde979d954c839402837b4243':
  docs: Fix a bunch of issues
2013-01-14 11:15:55 -08:00
Scott Kennedy
5d6d6aab25 am 8e45679a: am 026f9191: am 08342698: Merge "docs: Fix a bunch of issues" into jb-mr1-dev
* commit '8e45679adfe03271dd1cc627d6c4542649a0446a':
  docs: Fix a bunch of issues
2013-01-14 11:13:25 -08:00
Scott Kennedy
026f91915f am 08342698: Merge "docs: Fix a bunch of issues" into jb-mr1-dev
* commit '083426980dbe6607a0cfc8b4ec5944d5b414ecbe':
  docs: Fix a bunch of issues
2013-01-14 11:09:27 -08:00
Scott Kennedy
7ed189e457 docs: Fix a bunch of issues
External tracker 42609
External tracker 42607
External tracker 42604
External tracker 42600
External tracker 42574
External tracker 42450
External tracker 41050
External tracker 40995
External tracker 40970
External tracker 40935
External tracker 40507
External tracker 40481
External tracker 40435
External tracker 40406
External tracker 40297
External tracker 40281
External tracker 39978
External tracker 39929
External tracker 39803
External tracker 39715
External tracker 39441

Change-Id: If4215cef850ba8e4e8df356a68192566806e7914
2013-01-11 23:44:11 -08:00
Scott Main
96f4f52652 am b484f8e1: am 782b0f71: am 4459827f: am 25505f95: am cdf5106a: docs: a few doc bugs
* commit 'b484f8e1a4f07e35a194ee43676da8eb4e9d50ef':
  docs: a few doc bugs
2013-01-10 15:38:27 -08:00
Dianne Hackborn
a06de0f29b New "app ops" service.
Initial implementation, tracking use of the vibrator, GPS,
and location reports.

Also includes an update to battery stats to also keep track of
vibrator usage (since I had to be in the vibrator code anyway
to instrument it).

The service itself is only half-done.  Currently no API to
retrieve the data (which once there will allow us to show you
which apps are currently causing the GPS to run and who has
recently accessed your location), it doesn't persist its data
like it should, and no way to tell it to reject app requests
for various operations.

But hey, it's a start!

Change-Id: I05b8d76cc4a4f7f37bc758c1701f51f9e0550e15
2013-01-09 12:47:47 -08:00
Scott Main
b484f8e1a4 am 782b0f71: am 4459827f: am 25505f95: am cdf5106a: docs: a few doc bugs
* commit '782b0f7141972e0535f1e905d650073f4e7f55dd':
  docs: a few doc bugs
2013-01-08 20:21:17 -08:00
Scott Main
782b0f7141 am 4459827f: am 25505f95: am cdf5106a: docs: a few doc bugs
* commit '4459827f7db379031e658b2153aac1f7c882adc6':
  docs: a few doc bugs
2013-01-08 20:18:35 -08:00
Scott Main
25505f959c am cdf5106a: docs: a few doc bugs
* commit 'cdf5106aafb77d17584d5401b207cbcc7a20f5f3':
  docs: a few doc bugs
2013-01-08 20:13:40 -08:00
Scott Main
cdf5106aaf docs: a few doc bugs
Change-Id: I20d2ff2f3abfe674ca20f713c7213ee031c9bb1d
2013-01-08 20:07:31 -08:00
Dianne Hackborn
7c208410d7 am 609d79a0: am c02bbfb3: am 9fae2ecc: Merge "Handle nested folder case"
* commit '609d79a0ddf7efadf62d6836f6b03dbfbfa7b41d':
  Handle nested folder case
2013-01-08 10:27:27 -08:00
Dianne Hackborn
c02bbfb3ea am 9fae2ecc: Merge "Handle nested folder case"
* commit '9fae2ecc5fb777230bde74e4a099fb4e98bf34b4':
  Handle nested folder case
2013-01-07 15:56:20 -08:00
Dianne Hackborn
9fae2ecc5f Merge "Handle nested folder case" 2013-01-07 15:20:45 -08:00
Dianne Hackborn
dff561f42b am 9b59509c: am 138a3d3f: am d5d6f04f: Merge "Hopefully fix PendingIntent.getActivities() documentation wtf."
* commit '9b59509c6a94f1943ce64d3b5e9b4de2aa846d4d':
  Hopefully fix PendingIntent.getActivities() documentation wtf.
2013-01-07 12:23:59 -08:00
Dianne Hackborn
138a3d3f1a am d5d6f04f: Merge "Hopefully fix PendingIntent.getActivities() documentation wtf."
* commit 'd5d6f04f2ab0db0aea03e3ab1cdd378fcc952bad':
  Hopefully fix PendingIntent.getActivities() documentation wtf.
2013-01-07 12:16:23 -08:00
Dianne Hackborn
d5d6f04f2a Merge "Hopefully fix PendingIntent.getActivities() documentation wtf." 2013-01-07 11:19:11 -08:00
Roger Chen
1740ada533 Handle nested folder case
Change-Id: Id6d6a5899e8255d18192adbc766d8d9a0e6825d0
Signed-off-by: Roger Chen <cxr514033970@gmail.com>
2013-01-03 18:39:34 -08:00
Adam Powell
4b816cc269 am 262b311c: am b7de79d0: am 41bb82be: Merge "Fix NullpointException problem in onMenuItemSelected"
* commit '262b311c3c7d68204a72d3ba87bd76883aec00e2':
  Fix NullpointException problem in onMenuItemSelected
2013-01-03 17:43:43 -08:00
Adam Powell
b7de79d027 am 41bb82be: Merge "Fix NullpointException problem in onMenuItemSelected"
* commit '41bb82becea5dd1f995dbca5bf5a719f559102de':
  Fix NullpointException problem in onMenuItemSelected
2013-01-03 17:37:49 -08:00
Siva Velusamy
0c1761bd37 DdmServer: add controls for OpenGL tracing
Add a new JDWP packet to allow control of OpenGL tracing.

Change-Id: Ic89e2f6299238a612df2f914581049f2cbba088c
2012-12-19 16:31:56 -08:00
zobject
686a805ef9 Fix NullpointException problem in onMenuItemSelected
If both title and condensed title is null,
item.getTitleCondensed() could be return null value
in onMenuItemSelected. therefore need to check
whether retun value is null or not.

Change-Id: Ib08f52b949a794aa7bd6cc25414041e820f62969
2012-12-15 08:23:26 +09:00
Christopher Tate
1de6239390 am 534de491: Merge "Make immersive mode public & imply update locking" into jb-mr1-aah-dev
* commit '534de491e6522465a7ad12d7cba9b2f80deab364':
  Make immersive mode public & imply update locking
2012-12-11 16:13:51 -08:00
Christopher Tate
73c2aee40a Make immersive mode public & imply update locking
Activity.setImmersive(boolean) / android:immersive="bool" are now public.
In addition, if the foreground activity is immersive then an update lock
will be held on its behalf.  This lets applications such as movie players
suppress the display of intrusive notifications, OTA-availability dialogs,
and the like while they are displaying content that ought not to be
rudely interrupted.

The update lock aspect of this mode is *advisory*, not binding -- the
update mechanism is not actually constrained; it simply uses this information
in deciding whether/when to prompt the user.  It's more a guideline than
a rule.

Bug 7681380

Change-Id: I3c412a84cbf3933e3bf0168f2c71c54a86e4b7e5
2012-12-10 18:40:57 -08:00
Adam Powell
a52b4792d1 am d692c2c6: Merge "Fix EventLog string class problem in onOptionMenuSelected"
* commit 'd692c2c6856072a3ec8bec4550466d15a9fef8d7':
  Fix EventLog string class problem in onOptionMenuSelected
2012-12-10 11:41:29 -08:00
zobject
332944f8a0 Fix EventLog string class problem in onOptionMenuSelected
EventLog function can handle string,integer class and long class. (in android_util_EventLog.cpp)
If menu title string are used bold tag(like <b>test</b>), it'll be android.text.SpannedString.
In onOptionMenuSelected, it is using item.getTitleCondensed() function for writing event log.
therefore any android activity using tag menu string(like <b></b>) can be crashed by IllegalArgumentException.

I found this crash on GMS Application.
change locale chinese -> launch Google+ -> hangout -> menu key -> Invite(expressed chinese) click -> Google+ crash

Change-Id: I0437be81699925e29bf4510eb615ef2424432763
2012-12-10 23:19:45 +09:00
Tim Hutt
5313c9f027 Hopefully fix PendingIntent.getActivities() documentation wtf.
The first intent is the key. No wait, last! Or was it first?

I haven't actually read the code, didn't write it, and haven't tested
its behaviour, but surely it can't be both, and last is the only one
that makes sense.

Change-Id: Ie8435981f09be618c93680fb6056afd015090161
2012-12-10 12:34:19 +00:00
Daniel Sandler
b38ecce234 am 40ddc2bf: am bc305e55: Merge "Fix longstanding nonsense in javadocs." into jb-mr1.1-dev
* commit '40ddc2bf4062caf5ce64cff69b697a874802ad9a':
  Fix longstanding nonsense in javadocs.
2012-12-06 19:00:22 -08:00