5456 Commits

Author SHA1 Message Date
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
Svetoslav
cbf3f2cde5 Merge "Adding an empty state UI for the printer search activity in the spooler." into klp-dev 2013-10-02 02:21:29 +00:00
Svetoslav
4e4874bb71 Sometimes printer selection from all printers activity does not work.
1. Sometimes selecting a printer from the full printer list does not
   work if the selected printer was not in the initial drop down list
   of the print dialog.

   The reason was that there is a race. We use loaders in the print
   dialog activity and the all printers one. When these loaders are
   stopped we stop printer discovery since we do not want to keep this
   potentially expensive process on going if the activity is paused
   because say the user decide to press home and start playing his
   favorite game while the printers dialog is up. As a result the
   loader does not get printer updates until it is started.

   The loader of the print dialog activity is stopped while the user is
   selecting a printer from the all printers activity whose loader is
   getting discovered recent printers. Now when the user selects a printer
   the loader of the print dialog activity is started but may not get
   the latest printers by the time onActivityResult is called with the
   selected printer. Now we cache the selected printer id and if the
   loader reports it we select that printer.

2. In the print dialog we show only a few of the discovered printers.
   If the user selects a printer from the all printers activity that
   is not in the initial list we shuffle the adapter data to make sure
   the selected printer is in the shown subset. Now if the printers
   change, i.e. the printers loader reports new result we were not
   respecting the reshuffling made before so the short list of
   printers changes yet again.

bug:11034216

Change-Id: I54fe3619e3328b65839d9f4b02309699eae7f8eb
2013-10-01 19:12:27 -07:00
Jeff Sharkey
16326f7085 Merge "Fix animations, padding in RTL mode." into klp-dev 2013-10-02 01:43:12 +00:00
Chet Haase
7fc27ea451 Make onClickHandler in KeyguardHostView a weak reference
The strong reference OnClickHandler caused bitmaps in keyguard to be
referenced when keyguard was not visible. This change makes the click
handler a static class with a weak reference to the hostView instance,
allowing those bitmaps to get collected and shaving ~845k off of the
heap size when the keyguard isn't showing.

Issue #10918599 SystemUI should have a round of Svelting

Change-Id: I69de8659ac14c1a4723d082dd3cd394d8b6097f1
2013-10-01 16:37:17 -07:00
Jeff Sharkey
ee3e1603fd Fix animations, padding in RTL mode.
Show directory animations coming in from left-side when in RTL
language.  Also fix NinePatchDrawable to correctly mirror its padding
when auto-mirrored, and fix InsetDrawable to propagate the layout
direction to the wrapped Drawable.

Bug: 10987190, 11030793
Change-Id: I1213802a07d0c4ced93438df1e6ddf5aed3df677
2013-10-01 16:03:00 -07:00
Svetoslav
976b4e6312 Adding an empty state UI for the printer search activity in the spooler.
The user can select all printers from the print dropdown to get to
a search for printers activity where one can filter out the list
of a available printers. We did not have an empty state UI for the
case when the query yields no printers.

bug:11009053

Change-Id: I6b45517b8a7b319992019a1bf65858319a19a0de
2013-10-01 15:32:57 -07:00
John Reck
607463788a Merge "Remove old animation" into klp-dev 2013-10-01 22:29:08 +00:00
John Reck
da7af95d81 Remove old animation
Bug: 10918599
 Shaves ~1.5MB off of Keyguard creation from usage of an
 old-style Alpha animator that would create a draw cache
 The animation is unseen due to screen timings, so simply remove it
 Also adds a bit of de-jank to the non-svelte case by avoiding
 a potential GC_FOR_ALLOC

Change-Id: Id49742d95988f670a44305e4033e7a850d20e675
2013-10-01 14:52:03 -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
Daniel Sandler
7eb5ce03d9 Merge "Update date format in panel on locale change." into klp-dev 2013-10-01 02:57:45 +00:00
Baligh Uddin
48cc1dc470 Merge "Import translations. DO NOT MERGE" into klp-dev 2013-10-01 02:44:01 +00:00
Baligh Uddin
ab70526870 Merge "Import translations. DO NOT MERGE" into klp-dev 2013-10-01 02:43:38 +00:00
Baligh Uddin
8e1a481368 Merge "Import translations. DO NOT MERGE" into klp-dev 2013-10-01 02:40:41 +00:00
Baligh Uddin
71dfe63fce Merge "Import translations. DO NOT MERGE" into klp-dev 2013-10-01 02:40:00 +00:00
Michael Wright
02cefe27f3 Merge "Move slide to unlock circle up" into klp-dev 2013-10-01 01:46:53 +00:00
Michael Wright
f40ec0f00f Move slide to unlock circle up
Because HH is such a tall device, we need to move the circle up in
order to put it in the correct physical location.

Bug: 10900855
Change-Id: Idf90839e19f89784a96d110dd897bdacb58cb616
2013-09-30 18:38:36 -07:00
John Reck
288180c244 Merge "Avoid accidentally using software layers" into klp-dev 2013-09-30 23:10:49 +00:00
John Reck
0a4079ec0c Avoid accidentally using software layers
Bug: 10918599
 Shaves ~1-2MB of transient memory usage from setting a hardware layer
 on a view that's not hardware accelerated, resulting in it falling
 back to a software layer which allocates a bitmap
 Also a bit of dejanking as a result of not hitting GC_FOR_ALLOC

Change-Id: Iff00d383fca710147a48f31c7eee2b728b8412dc
2013-09-30 15:41:49 -07:00
Amith Yamasani
f55cf7fcd9 Merge "Adjust padding for keyguard pin entry keys" into klp-dev 2013-09-30 21:31:54 +00:00
Jim Miller
8b3bc51c8f Merge "Disable keyguard widgets on low memory devices" into klp-dev 2013-09-30 20:38:21 +00:00
Amith Yamasani
e64318bda0 Adjust padding for keyguard pin entry keys
Increase padding on the left to more visually center the text within the touch target

Bug: 10074982
Change-Id: I2c622b0edd427a4b15f2f3b25a0a124853ed2367
2013-09-30 13:38:14 -07:00
Daniel Sandler
b478a71625 Update date format in panel on locale change.
The logic that updated the locale was only running at times
the DateView should have been updating its display, namely,
when the view was visible on-screen.

The new version trades a small amount of efficiency (the
broadcast receiver is now active at all times, and the date
is re-formatted each TIME_TICK) in exchange for simplicity
and correctness.

Bug: 10725912
Change-Id: I2f0988ed478374ed0eb0c76c3d8caed6c86eb8df
2013-09-30 15:33:36 -04:00
Baligh Uddin
37e9fe7202 Import translations. DO NOT MERGE
Change-Id: I5096e6fda19418f0b61829ccc25cc98ba3d09dfe
Auto-generated-cl: translation import
2013-09-30 10:29:59 -07:00
Baligh Uddin
bb1abd1ce5 Import translations. DO NOT MERGE
Change-Id: Ibf90ac2ca945f9a5e803f3bbfbb5caa69b08a4ce
Auto-generated-cl: translation import
2013-09-30 10:20:46 -07:00
Baligh Uddin
d374fc7649 Import translations. DO NOT MERGE
Change-Id: Ib2bedf5a64b306f630e1263fed4a6fa0e8843175
Auto-generated-cl: translation import
2013-09-30 09:32:47 -07:00
Baligh Uddin
dd4ce7119f Import translations. DO NOT MERGE
Change-Id: Ie40b704529f71e71f5c384450a79923c68354bb9
Auto-generated-cl: translation import
2013-09-30 09:28:55 -07:00
Daniel Sandler
777dcdeeb6 Fix configuration changes in status bars.
- Make sure SystemBars calls onConfigurationChanged on the
  status bar
- Remove redundant ACTION_CONFIGURATION_CHANGED receiver in
  BaseStatusBar & move this code into onConfigurationChanged
- Force locale refresh even if a configuration change
  touches only the layout direction

Bug: 10113357
Change-Id: I92902d25cbae77f2558cfb85482484b11dc7294e
2013-09-30 10:44:12 -04:00
Jim Miller
461b345886 Disable keyguard widgets on low memory devices
Fixes bug 10784493

Change-Id: I6271ea94f6832bb061ba9f64efea460d28ee5695
2013-09-29 14:00:01 -07:00
Svetoslav
c656871967 Merge "Ignore historical printer records for installed services" into klp-dev 2013-09-28 02:18:33 +00:00
Adam Powell
43a372f38a Keyguard transport controls: fullscreen art
When the transport controls are active, set the relevant art as a
fullscreen background for the keyguard.

Change-Id: I1e8a87f242153a2a2c5bf94dbd15f0fd3e07dde3
2013-09-27 18:47:52 -07:00
Svetoslav
d8dbc13b47 Ignore historical printer records for installed services
When loading historical records for previously used printers we
now ignore the ones whose target print service is not installed.

bug:10955652

Change-Id: Ib295e7d88ed3c308ef6d8a11bdc1792ebbb6d526
2013-09-27 18:46:24 -07:00
Jim Miller
1ae85153c8 Merge "Fix missing transport in keyguard" into klp-dev 2013-09-28 01:30:21 +00:00
Jim Miller
fb2e3c8d47 Merge "Fix permissions on WindowManagerService.showAssistant()" into klp-dev 2013-09-28 01:18:17 +00:00
Jim Miller
90873d53fb Fix missing transport in keyguard
Keyguard wasn't re-establishing a connection to the RCD after a
crash.  This results in a missing transport until the session reboots.

Fixes bug 10204949

Change-Id: Ia030eacbcf1e3cfa9ee948c841c95d2040f9c1e0
2013-09-27 18:09:43 -07:00
Svetoslav Ganov
b415525a16 Merge "Print job files and print job records not always cleaned up." into klp-dev 2013-09-28 01:06:51 +00:00
Svetoslav Ganov
c783f6738f Merge "Adding a timeout for waiting to get the selected printer's capabilities." into klp-dev 2013-09-28 00:28:08 +00:00
Jeff Sharkey
cc637d9ae5 Merge "New roots UX, async, performance, docs." into klp-dev 2013-09-28 00:27:29 +00:00
Svetoslav Ganov
dd68da2741 Print job files and print job records not always cleaned up.
1. We want the files for a print job to be removed as early as possible
   typically because the print job was cancelled, completed, the app
   or the spooler crashed during print job construction. We were keeping
   around in the spooler and hence to disc infos for jobs that are in
   final state since the app that created them may hold a reference to
   a local print job objec whose info it can access to get the latest
   print job state potentially after the job reached final state. The
   issue was that we were persisting to disc created print jobs which
   were during construction which requires careful handling for the
   various cases above. This is tricky and error prone.

   We used to tell the spooler to forget the print jobs infos when the
   app that created them died. The implementation to forget a print
   job was not careful and was nuking currently running print jobs in
   addition to the ones in a terminal state. Further, if the app dies
   before a print job is completed we were left with a stale print
   job in the spooler since we missed the signal to forget it (assuming
   we forget only inactive jobs). These issues suggest that the approach
   is problematic.

   Now we have a cache of print job infos for the jobs an app created.
   This cache is updated when the state of a print jobs changes using
   the new print job state observation code. When the app dies we
   remove the cached jobs for that app. Now if the app calls to get
   the print jobs it gets the cached ones, i.e. the print jobs it
   created during its lifetime, plus the print jobs that are still
   active fetched from the spooler. Note that transient state cannot
   be kept in the spooler since we unbind from it if there is no
   work and it may get killed.

2. Improved the print sub-system logging code to show the cached
   print job infos for apps and also dump the print job PDF file
   names.

bug:10958357

Change-Id: I6f7c1968b6b7ba5be182a10df044ff7ea1fc3a61
2013-09-27 17:26:44 -07:00
Jeff Sharkey
6efba22ce5 New roots UX, async, performance, docs.
Yet another iteration from UX on how roots should be ordered.  Since
we no longer categorize by type, remove from public API.  Updated
asset drop with new dividers.

Update public API docs to be explicit about required columns.  Hide
flags and columns that aren't required for third-party apps.

Move remainder of potentially blocking work to AsyncTasks, including
creating directories, picked root resolution, and creation of new
documents once picked.

Improve performance of layouts by removing baseline alignment and
reduce hierarchy depth.  Set alpha on ImageViews directly to avoid
offscreen rendering hit.

Limit returned recents to 45 days.  Show load in recents when still
waiting for backends.  Show empty message when no recents stacks to
create from.  Use unique key when saving recent stacks.

Bug: 10941423, 10819454, 10964412, 10960718
Change-Id: I08cf589dcda7e203acf67928f4d30322ae36ee94
2013-09-27 17:13:13 -07:00
Jim Miller
6c9df5054a Fix permissions on WindowManagerService.showAssistant()
Since binder call permissions are not transitive by design,
the proper way to fix this is to have the call talk directly
to keyguard from the navigation bar.

Fixes bug 9409008

Change-Id: Ibd90a79bb638c969b514455a2ad93c6ff668222d
2013-09-27 16:29:36 -07:00
Svetoslav Ganov
6be4c76441 Adding a timeout for waiting to get the selected printer's capabilities.
A print service may choose to provide only the printer info and then when
it is requested to start tracking the state of the printer, the service
should provide the printer capabilities. If the capabilities are not
received within ten seconds we mark the printer as unavailable and stop
tracking it.

bug:10748639

Change-Id: I9171cb5dc116fd321c23a8e4ab55109448e2fc6a
2013-09-27 09:43:32 -07:00
John Spurlock
d01a1b0473 Merge "Remove unused views when we return to keyguard" into klp-dev 2013-09-27 14:32:38 +00:00
John Spurlock
e5b14ee128 Merge "Restore scrim views to former place in view hierarchy." into klp-dev 2013-09-27 14:27:38 +00:00
John Spurlock
256ae67b9a Restore scrim views to former place in view hierarchy.
By enabling KeyguardHostView to extend into the full screen area
and updating custom measure/layout in the Challenge layouts
appropriately.

Bug:10939005
Change-Id: I06fb187c4100cf0f2e48b1206cc4450afa4567dd
2013-09-27 10:19:12 -04:00
Daniel Sandler
a9cf1de470 Merge "Would you like a dessert?" into klp-dev 2013-09-27 03:10:38 +00:00
Jeff Sharkey
10d655927c Merge "Make directories always enabled, for realz." into klp-dev 2013-09-27 02:55:05 +00:00
Jeff Sharkey
3d52dc9c3a Make directories always enabled, for realz.
Bug: 10946731
Change-Id: I3eb132c53e47f31d1d1723ed2262823b54b1fce0
2013-09-26 19:42:52 -07:00
Svetoslav
c335eb4115 Printers in the list of printers change position.
1. The printers in the printers list of settings change position if
   they are updated. The settings app is using hidden platform APIs
   the this change fixes.

2. Enable ProGuard for the PrintSpooler.

3. Added icons on the list of printers so the user knows which
   print service used the printer. Now the user can know when
   he is using cloud print and maybe incurring data costs vs
   local printer discovered by a vendor plug in.

bug:10955751

Change-Id: I292f48b424cb561218fdb424d0388f4d786d8339
2013-09-26 18:49:10 -07:00
Jim Miller
398d7f6186 Merge "Update navbar camera icon and widget background assets in keyguard." into klp-dev 2013-09-26 22:27:15 +00:00