Commit Graph

2162 Commits

Author SHA1 Message Date
Dianne Hackborn
a37bbc6afc am 8a5f7ab6: am 22c298a5: am 7192c6d7: Merge "KLP/KitKat is now API 19." into klp-dev
* commit '8a5f7ab6e18e05a54a3ae7e0acb7e1b728ad613c':
  KLP/KitKat is now API 19.
2013-10-04 09:11:32 -07:00
Dianne Hackborn
6bc3789b39 KLP/KitKat is now API 19.
Bug: 10348975

Change-Id: I19bf1a56064deda2e59085520960aac8ce3a825b
2013-10-03 12:17:31 -07:00
Jeff Sharkey
ba0591c9e3 am 21d8e96d: am ef4c3790: am 27d3c0fe: Merge "Isolate calls to each remote DocumentsProvider." into klp-dev
* commit '21d8e96d840be42fae56483a2e291fc10677b2d9':
  Isolate calls to each remote DocumentsProvider.
2013-10-02 10:15:14 -07:00
Jeff Sharkey
b6ab3b982b am 7f60e70e: am 666b998b: am 364fc14f: Merge "Detect wedged ContentProviders, treat as ANR." into klp-dev
* commit '7f60e70e815d381035b141843395830407c198d9':
  Detect wedged ContentProviders, treat as ANR.
2013-10-02 09:43:21 -07:00
Jeff Sharkey
d01571e6d4 Isolate calls to each remote DocumentsProvider.
All background work is going through AsyncTasks, which uses a shared
thread pool.  Even with the new ContentProviderClient logic to detect
ANRs, the UI can still appear to be unresponsive for 20 seconds, even
if the user attempted to switch to a different backend.  In the worst
case, a backlog of thumbnail requests would end up wedging Loaders
for a long time, since they all share the same THREAD_POOL_EXECUTOR.

This change isolates calls to each provider onto their own thread,
which they're free to wedge and recover from over time.

It also means we no longer need a dedicated thread pool for recents
loading, and can use a simpler Semaphore instead.

Disables thumbnails in recents on svelte devices.

Bug: 10993301, 11014856
Change-Id: I7f8a5bbb5f64437e006cb2c48b7e854136d5c38c
2013-10-02 08:54:02 -07:00
Jeff Sharkey
7aa7601c09 Detect wedged ContentProviders, treat as ANR.
All ContentProvider calls are currently blocking, making it hard for
an app to recover when a remote provider is wedged.  This change adds
hidden support to ContentProviderClient to timeout remote calls,
treating them as ANRs.  This behavior is disabled by default.

Update DocumentsUI to use a 20 second timeout whenever interacting
with a storage provider.

Bug: 10993301, 10819461, 10852518
Change-Id: I10fa3c425c6a7225fff9cb7a0a07659028230cd3
2013-10-01 09:50:41 -07:00
Jeff Sharkey
5023a4df73 resolved conflicts for merge of 687c6221 to master
Change-Id: I9e8a24d9151f31bc3284ad7f8686fa7f3c25c0d9
2013-09-25 16:48:01 -07:00
Jeff Sharkey
e66c1778f8 Require that persistable Uri permissions be taken.
Change our Intent flag to indicate that a Uri permission grant is
persistable, but don't actually persist it until explicitly taken by
the receiving app.  This prevents apps from spamming each other if
persisted permissions aren't really required.

Remember the last time a persisted grant was taken by an app, and
use this to prune away the oldest grants when the number of grants
grows too large.  Allow apps to query persisted grants they are
holding, and allow them to release previously persisted grants. Add
public UriPermission class to return grant details and timestamp.

Track various permission strengths separately, and combine together
after each mutation pass.  Persistable grants are currently treated
like global grants, but they could be moved to have owners in the
future.  Require that grant holders trying to extend a persistable
permission actually hold a persistable permission themselves.

Bug: 10835779
Change-Id: I95b2f797c04ce7fd2612f9a644685dbd44e03759
2013-09-25 15:16:41 -07:00
Dianne Hackborn
23ff9f6128 am 9b7d1484: am 5f86b90b: Merge "Fix issue #10848916: "Always" button is not working." into klp-dev
* commit '9b7d148466b1aedb24187294e0c59718afb104a0':
  Fix issue #10848916: "Always" button is not working.
2013-09-24 14:51:06 -07:00
Dianne Hackborn
6d8dfbd814 Fix issue #10848916: "Always" button is not working.
The problem was that the ResolverActivity filters some activities
out of the list it shows, but it uses that display list as the
list of components the preference is set against when ultimately
setting it on the package manager...  but that filtered list is *not*
the right component set, since it is not the same as the package
manager's view on it.

The fix here is to retain the original set of matching components
and use that when setting the preferred activity.  Note that this
does mean that in very unusual cases where filtering is happeing
(such as one of the activities not being exported but being seen
as a possible completion from another app), then you will be setting
the preference for the complete set.  Ultimately we probably need
to have the package manager apply these filtering rules up-front so
this is all consistent, but this is a very rare case so not that
important.

And then most of the change here is just improving the debug
output for intent resolution.

Change-Id: Ie35ac2c05a45946439951bbf41433c8b7de79c05
2013-09-24 14:16:38 -07:00
Jeff Sharkey
a440a0dd64 am b8a48da2: am 5e1a5e5b: Merge "Create unique files, root ordering, UI bugs." into klp-dev
* commit 'b8a48da2a707720a105584f1b8dc087a6dd9c887':
  Create unique files, root ordering, UI bugs.
2013-09-22 12:59:40 -07:00
Jeff Sharkey
5e1a5e5bad Merge "Create unique files, root ordering, UI bugs." into klp-dev 2013-09-22 19:55:19 +00:00
Jeff Sharkey
5545f56f75 Create unique files, root ordering, UI bugs.
When a file already exists on disk, try adding a counter suffix to
make a unique name.  Move services near top of roots list, just below
recents.  Remove "Documents" root.

Increase number of recents allowed from single provider, and add more
logging to diagnose wedged loaders.

When launching GET_CONTENT apps, wait for successful result before
relaying result; canceled requests now return to DocumentsUI.

Add CloseGuard to ContentProviderClients, since leaked instances can
keep the remote process alive.

Fix UI bug around trailing breadcrumbs.  Fix bug that dropped Recents
from roots list.  Add up action to Settings activity.  Give our
activity a default icon while waiting for async roots to load.

Bug: 10818683, 10819461, 10819461, 10819196, 10860199
Change-Id: I7b9e26b1cf8353dd3175458b23da2b4bda6c5831
2013-09-21 14:07:16 -07:00
Adam Lesinski
5fc67f98b9 am a35ff661: am d473ebb7: Merge "Surfaces ParcelFileDescriptor#parseMode() as API" into klp-dev
* commit 'a35ff66127d07117e93268482d7e9719abfd58c3':
  Surfaces ParcelFileDescriptor#parseMode() as API
2013-09-20 16:05:21 -07:00
Adam Lesinski
d473ebb7c4 Merge "Surfaces ParcelFileDescriptor#parseMode() as API" into klp-dev 2013-09-20 22:59:12 +00:00
Adam Lesinski
eb8c3f93ed Surfaces ParcelFileDescriptor#parseMode() as API
Moves ContentResolver#modeToMode() to ParcelFileDescriptor#parseMode()

bug:10711271
Change-Id: I28a5de4ca70adfbec4caf739863b77f0fd7fd9a4
2013-09-20 14:59:34 -07:00
Adam Lesinski
e6ed04a7ec am 2dc3c739: am ff5cbab5: Merge "Ensures that CompatibilityInfo is always set in Resources" into klp-dev
* commit '2dc3c7398b2d8965f8017bc25f2e9a29c6b83c3d':
  Ensures that CompatibilityInfo is always set in Resources
2013-09-20 11:29:12 -07:00
Adam Lesinski
79a8ffe54f Ensures that CompatibilityInfo is always set in Resources
- Adds null checks when setting mCompatibilityInfo and uses default no-op
  CompatibilityInfo object instead of null
- Removes null checks when calling methods on mCompatibilityInfo since it is never
  null

bug:10204942

Change-Id: I36e88f5cdceb46b8b19fb902270ef74023a81546
2013-09-20 11:04:40 -07:00
Kenny Root
b5a14f0fc9 resolved conflicts for merge of 1995a7de to master
Change-Id: I9915ae06d460696b24cbee935738267911baa580
2013-09-18 14:23:58 -07:00
Dianne Hackborn
b9466db4a5 Merge "Finish issue #10779747: Calendar Storage crash observed..." into klp-dev 2013-09-18 20:34:11 +00:00
Dianne Hackborn
6285a32f74 Finish issue #10779747: Calendar Storage crash observed...
...while setting up a new user from settings.

We can now delay broadcasts when there are enough background services
currently starting (still set to 1 for svelte devices, 3 for normal
devices).

Add new intent flag to not allow receivers to abort broadcasts, which
I use to fix an issue with the initial BOOT_COMPLETED broadcast not
actually requesting pss data at the right time -- it can now be sent
as an ordered broadcast without the ability for the receivers to cancel
it.

Change-Id: I51155bbbabe23e187003f3e2abd7b754e55d3c95
2013-09-18 12:09:47 -07:00
Amith Yamasani
dc7e0464b8 am a8b4da87: am 840b3bd6: Merge "Fix provider leak in PFD" into klp-dev
* commit 'a8b4da872a1824408b52fb1730699fde780cad04':
  Fix provider leak in PFD
2013-09-18 11:05:49 -07:00
Amith Yamasani
840b3bd611 Merge "Fix provider leak in PFD" into klp-dev 2013-09-18 18:01:21 +00:00
Amith Yamasani
487c11a310 Fix provider leak in PFD
Code path to release content provider associated with the PFD was
inadvertently bypassed by a previous change. Reinstate that code
when closing the PFD.

Bug: 10767447
Change-Id: I23306cfb3c28c99e587892b17ca85efd3f7a8a07
2013-09-18 09:30:43 -07:00
Jeff Sharkey
c697e6c84a am cf4052f6: am e48569a8: Merge "Guard against null Context in attachInfo()." into klp-dev
* commit 'cf4052f6b519dd5720a08d2e42ccb8b23af018ea':
  Guard against null Context in attachInfo().
2013-09-17 15:44:48 -07:00
Jeff Sharkey
10cb312ecd Guard against null Context in attachInfo().
Some CTS tests were running into this.

Bug: 10805216
Change-Id: I425d2a0064612af70a64f457e159498cb6257a28
2013-09-17 15:18:43 -07:00
Amith Yamasani
000ecdd3f5 am 6484c42e: am 33caca5c: Merge "Add a feature to specify if device admins are supported on the device" into klp-dev
* commit '6484c42eb44bfe8fc8d2972bfc564b96f0f7f16c':
  Add a feature to specify if device admins are supported on the device
2013-09-17 09:02:07 -07:00
Amith Yamasani
33caca5cd5 Merge "Add a feature to specify if device admins are supported on the device" into klp-dev 2013-09-17 15:56:14 +00:00
Christopher Tate
4b8dd603cf am cf611b77: am 60fcce6c: Merge "Introduce maxSdkVersion for <uses-permission>" into klp-dev
* commit 'cf611b776ed5163008fdad87452f3047c966ec08':
  Introduce maxSdkVersion for <uses-permission>
2013-09-16 18:09:04 -07:00
Christopher Tate
60fcce6cb1 Merge "Introduce maxSdkVersion for <uses-permission>" into klp-dev 2013-09-17 01:01:47 +00:00
Amith Yamasani
44a01b742c Add a feature to specify if device admins are supported on the device
Bug: 9520957

DevicePolicyManagerService will play dumb if the feature is not installed.

Continue to keep track of failed password attempts for keyguard's use.

Change-Id: I28d258dc09a8b4976b188da6f453d8daabcc4bdd
2013-09-16 17:24:06 -07:00
Christopher Tate
fb0676a902 Introduce maxSdkVersion for <uses-permission>
This way an application can automatically sunset its permission requests
when running on later versions of the OS where those permissions are no
longer relevant, but may be alarming to the user.  A canonical example
is WRITE_EXTERNAL_STORAGE, which as of KLP becomes unnecessary for an app
to use the external storage volume solely for its own large-data needs,
without the need for actual file-system sharing among multiple apps.

Bug 9761041

Change-Id: I60130af3a108fe4a750c356038a1c8cb897e9c8b
2013-09-16 17:03:02 -07:00
Dianne Hackborn
68ba583b79 am 366894b5: am 0a6a80f4: Fix build.
* commit '366894b544e723b11f591a3071599066d0ada2da':
  Fix build.
2013-09-16 15:29:46 -07:00
Dianne Hackborn
0a6a80f43d Fix build.
Change-Id: I2b2168ff3b2826a60353fd137a2fa255b1ace4bb
2013-09-16 15:20:27 -07:00
Dianne Hackborn
df2dae01b0 am 40489be9: am 61158244: Merge "Implement issue #10691359: Kill long-running processes" into klp-dev
* commit '40489be90b7c145da75034f793932500f0e5d380':
  Implement issue #10691359: Kill long-running processes
2013-09-16 14:37:30 -07:00
Dianne Hackborn
35f72be50b Implement issue #10691359: Kill long-running processes
We now have the activity manager kill long-running processes
during idle maintanence.

This involved adding some more information to the activity manager
about the current memory state, so that it could know if it really
should bother killing anything.  While doing this, I also improved
how we determine when memory is getting low by better ignoring cases
where processes are going away for other reasons (such as now idle
maintenance).  We now won't raise our memory state if either a process
is going away because we wanted it gone for another reason or the
total number of processes is not decreasing.

The idle maintanence killing also uses new per-process information
about whether the process has ever gone into the cached state since
the last idle maintenance, and the initial pss and current pss size
over its run time.

Change-Id: Iceaa7ffb2ad2015c33a64133a72a272b56dbad53
2013-09-16 14:05:34 -07:00
Matthew Williams
86f4b37d19 Merge "Refactor SyncManager rename authority->target" 2013-09-16 18:29:36 +00:00
Matthew Williams
8ef2204c8f Refactor SyncManager rename authority->target
fix bug that was stopping any sync service sync from
from taking place.
Change-Id: Ib3f46d43be630d4196fbf0ca32da03b6e7a6a5b9
2013-09-13 19:22:50 -07:00
Scott Main
26c5baf41d am 7e876482: am 296fbce8: am bb3b431d: am 8bf0c9ae: am a23fd887: more javadocs for onTrimMemory()
* commit '7e87648232e955629375c6ae047b9c2faceaa67e':
  more javadocs for onTrimMemory()
2013-09-13 18:17:10 -07:00
Scott Main
296fbce89c am bb3b431d: am 8bf0c9ae: am a23fd887: more javadocs for onTrimMemory()
* commit 'bb3b431dc6b5786bed7cc988f44c35df21408a93':
  more javadocs for onTrimMemory()
2013-09-13 18:09:45 -07:00
Scott Main
bb3b431dc6 am 8bf0c9ae: am a23fd887: more javadocs for onTrimMemory()
* commit '8bf0c9ae604e5114260159077bfafbdd9d16a7ea':
  more javadocs for onTrimMemory()
2013-09-13 18:06:28 -07:00
Scott Main
a23fd88729 more javadocs for onTrimMemory()
Change-Id: I52a99bc1b07732e474d1c632f3021c6c4db8c5ab
2013-09-13 17:57:16 -07:00
Christopher Tate
9b6c9a1592 am fcda3283: am 7560c256: Merge "Add hidden API for querying available \'home\' activities" into klp-dev
* commit 'fcda3283d27f8dfaa812fb735af43eea2e077c64':
  Add hidden API for querying available 'home' activities
2013-09-13 17:22:45 -07:00
Christopher Tate
a2a0850de8 Add hidden API for querying available 'home' activities
To support improved home-app selection UX in Settings.

Bug 9958444

Change-Id: I106090784618bf7bea6fce28f4f9b9fb8480d310
2013-09-13 12:16:00 -07:00
Tor Norbye
b6a3ef1834 Merge "Add typedefs and nullness annotations." 2013-09-12 22:22:06 +00:00
Jeff Sharkey
d4aa10d5be am c3414dc4: am 357f9e34: Merge "Handle pipe thumbnails, acquire unstable refs." into klp-dev
* commit 'c3414dc4baf2bb2c3ef5761912fea7f44d804ebc':
  Handle pipe thumbnails, acquire unstable refs.
2013-09-12 09:22:22 -07:00
Jeff Sharkey
357f9e34ca Merge "Handle pipe thumbnails, acquire unstable refs." into klp-dev 2013-09-12 16:00:40 +00:00
Jeff Sharkey
de2b22fbc6 Handle pipe thumbnails, acquire unstable refs.
Support decoding thumbnails delivered over pipes by wrapping in a
buffered stream.  Also switch to using unstable provider references
to avoid crashing DocumentsUI.

Bug: 10516148, 10510851
Change-Id: I85f6eeaca70c97742bf79656d1d0c6da381fdd47
2013-09-11 17:33:52 -07:00
Alexander Ray
4c980cc6ae am b0049151: am 7563d423: Merge "Add consumer IR framework" into klp-dev
* commit 'b0049151f7c1f2ffa7481ac7c6f6baf7a548c5e8':
  Add consumer IR framework
2013-09-11 17:23:01 -07:00
Dianne Hackborn
7c3c23114b am 33f92b6f: am c1cf491d: Merge "More on issue #10130785: Restore silence and vibrate settings..." into klp-dev
* commit '33f92b6fe249db2ae822c6702955c7b987ff87f9':
  More on issue #10130785: Restore silence and vibrate settings...
2013-09-11 17:22:26 -07:00