10221 Commits

Author SHA1 Message Date
Victoria Lease
0a19ad089a Adjust update interval when expiring location requests.
This is a more complete solution for this issue that disables
location providers when expiring their last request *and* adjusts
update intervals when expiring any request. This should help
further limit battery drain when a high-frequency-update app
exits, as it allows the system to throttle the update interval
back down to something appropriate for the remaining listeners.

Bug: 7611837
Change-Id: I88b419c92940b7e536d48b26e5fc0f72f3c9e73d
2012-12-05 09:57:40 -08:00
Craig Mautner
83323f427d Merge "Further decouple layout and animation." 2012-12-04 16:15:31 -08:00
Craig Mautner
9339c401cf Further decouple layout and animation.
Load animation parameters dynamically and synchronously rather than
asynchronously. Eliminates storing parameters and cross-barrier method
calls.

Change-Id: Ia9162f0cb3fe60da35fd9fb5f24f31f88891b950
2012-12-04 16:13:45 -08:00
Victoria Lease
8b38b29b52 Notify provider when disposing last UpdateRecord
Location providers were not being notified of the change in status
when the last UpdateRecord was removed due to numUpdates exhaustion
or request expiry. Oops! Enjoy some free battery life!

Bug: 7611837
Change-Id: Id48151eb7de40164258cde7da220a4d6bb34b89a
2012-12-04 15:04:43 -08:00
Victoria Lease
39ec1ec187 Merge "Fix Wrong parameter in HashMap.remove" 2012-12-04 11:56:04 -08:00
Matthew Xie
1ef98fb37e am 5cb09b7d: am 8b283df9: am b6b4f171: Merge "Change getName and getAddress permission to BLUETOOTH" into jb-mr1.1-dev
* commit '5cb09b7dc5b2a3bfa895bca5402af9edc8ec9d9a':
  Change getName and getAddress permission to BLUETOOTH
2012-12-04 11:29:53 -08:00
Matthew Xie
5cb09b7dc5 am 8b283df9: am b6b4f171: Merge "Change getName and getAddress permission to BLUETOOTH" into jb-mr1.1-dev
* commit '8b283df989f9b8b71797f9feaeb15cb012ab3190':
  Change getName and getAddress permission to BLUETOOTH
2012-12-04 11:27:11 -08:00
Matthew Xie
8b283df989 am b6b4f171: Merge "Change getName and getAddress permission to BLUETOOTH" into jb-mr1.1-dev
* commit 'b6b4f171ff38ccac833edb2a1ad7f725ed068d46':
  Change getName and getAddress permission to BLUETOOTH
2012-12-04 11:25:14 -08:00
Matthew Xie
af5ddbfcf5 Change getName and getAddress permission to BLUETOOTH
The permissions were set as BLUETOOTH_ADMIN by mistake. Correct them
bug 7665249

Change-Id: Ic1bdbeb25e8f55d886f9a8d38920cbb769dd38ca
2012-12-04 10:47:43 -08:00
Craig Mautner
bebd1a092e am d3b9dd6c: am 40627de3: Merge "Remove unnecessary references in WindowManagerService"
* commit 'd3b9dd6ca6325abe5cf2049c2894a86b256a3db1':
  Remove unnecessary references in WindowManagerService
2012-12-04 10:39:59 -08:00
Craig Mautner
d3b9dd6ca6 am 40627de3: Merge "Remove unnecessary references in WindowManagerService"
* commit '40627de3044c4a23c20c2229cab20aab21ff2b03':
  Remove unnecessary references in WindowManagerService
2012-12-04 10:38:32 -08:00
You Kim
a6d0b6f851 Fix Wrong parameter in HashMap.remove
Change-Id: Ibf93833697c865904f29821e5778853127e5fb00
Signed-off-by: You Kim <you.kim72@gmail.com>

Conflicts:

	services/java/com/android/server/LocationManagerService.java
2012-12-04 09:57:23 -08:00
You Kim
cb6291c9b1 Remove unnecessary references in WindowManagerService
Clean message routines in WindowManagerService.

Change-Id: I3e3106b6499c67d1fd7133c987c0452a73141a3f
Signed-off-by: You Kim <you.kim72@gmail.com>
2012-12-05 00:10:03 +09:00
Dianne Hackborn
f9ae5f75af am 23307cbb: am e0a676a3: Merge "Fix issue #7649590: Background windows sometimes not being hidden for secondary users" into jb-mr1.1-dev
* commit '23307cbb6b432b658b0fd7437dacfedd6298af94':
  Fix issue #7649590: Background windows sometimes not being hidden for secondary users
2012-12-03 16:08:35 -08:00
Svetoslav Ganov
2c5f782094 Merge "Refactoring of the screen magnification feature." 2012-12-03 15:59:32 -08:00
Dianne Hackborn
23307cbb6b am e0a676a3: Merge "Fix issue #7649590: Background windows sometimes not being hidden for secondary users" into jb-mr1.1-dev
* commit 'e0a676a3bb0e7b9aced9359a021e4c5d2ffef752':
  Fix issue #7649590: Background windows sometimes not being hidden for secondary users
2012-12-03 15:54:34 -08:00
Dianne Hackborn
e0a676a3bb Merge "Fix issue #7649590: Background windows sometimes not being hidden for secondary users" into jb-mr1.1-dev 2012-12-03 15:51:47 -08:00
Dianne Hackborn
bb4ca5271a Fix issue #7649590: Background windows sometimes not being hidden for secondary users
There are two things going on here:

(1) In secondary users, some times theme information such as whether
the window is full screen opaque was not being retrieved, so the window
manager didn't know that it could hide the windows behind the app.
This would just be a performance problem, except that:

(2) There appear to be a number of applications that declare that they
are full screen opaque, when in fact they are not.  Instead they are
using window surfaces with an alpha channel, and setting some pixels
in their window to a non-opaque alpha level.  This will allow you to
see whatever is behind the app.  If the system happens to completely
remove the windows behind the app, and somebody is filling the frame
buffer with black, then you will see what the app intends -- those
parts of its UI blended with black.  If one of those cases doesn't
hold (and though we have never guaranteed they would, in practice this
is generally what happens), then you will see something else.

At any rate, if nothing else than for performance reasons, we need to
fix issue #1.

It turns out what is happening here is that the AttributeCache used
by the activity manager and window manager to retreive theme and other
information about applications has not yet been updated for multi-user.

One of the things we retrieve from this is the theme information telling
the window manager whether an application's window should be treated
as full screen opaque, allowing it to hide any windows behind it.  In
the current implementation, the AttributeCache always retrieves this
information about the application as the primary user (user 0).

So, if you have an application that is installed on a secondary user but
not installed on the primary user, when the AttributeCache tries to retrieve
the requested information for it, then from the perspective of the primary user
it considers the application not installed, and is not able to retrieve that
info.

The change here makes AttributeCache multi-user aware, keeping all of its
data separately per-user, and requiring that callers now provide the user
they want to retrieve information for.  Activity manager and window manager
are updated to be able to pass in the user when needed.  This required some
fiddling of the window manager to have that information available -- in
particular it needs to be associated with the AppWindowToken.

Change-Id: I4b50b4b3a41bab9d4689e61f3584778e451343c8
2012-12-03 14:09:06 -08:00
Adam Powell
34caf1b919 am ab38b0f0: am 568f923b: Merge "removing ineffective code in WifiService.java"
* commit 'ab38b0f0fcf35c24509eee9a5bad9c0e157c995d':
  removing ineffective code in WifiService.java
2012-12-03 13:53:41 -08:00
Adam Powell
ab38b0f0fc am 568f923b: Merge "removing ineffective code in WifiService.java"
* commit '568f923ba4cf522f699837bee0d8cba318343345':
  removing ineffective code in WifiService.java
2012-12-03 13:51:32 -08:00
Adam Powell
568f923ba4 Merge "removing ineffective code in WifiService.java" 2012-12-03 13:37:16 -08:00
Zhihai Xu
9a9f306c3a am e398d232: am fb9947ad: am 40973c53: Merge "BT is still on after enable flight mode, and reboot the DUT" into jb-mr1.1-dev
* commit 'e398d2323dfc6baab4a7568a8c2b42fb4886c149':
  BT is still on after enable flight mode, and reboot the DUT
2012-12-03 11:54:57 -08:00
Zhihai Xu
e398d2323d am fb9947ad: am 40973c53: Merge "BT is still on after enable flight mode, and reboot the DUT" into jb-mr1.1-dev
* commit 'fb9947ad77e9d1d2ea259d7fbc170c275810b2b9':
  BT is still on after enable flight mode, and reboot the DUT
2012-12-03 11:52:43 -08:00
Zhihai Xu
fb9947ad77 am 40973c53: Merge "BT is still on after enable flight mode, and reboot the DUT" into jb-mr1.1-dev
* commit '40973c53acc86b576081fb720d7d6b23c55202ad':
  BT is still on after enable flight mode, and reboot the DUT
2012-12-03 11:50:25 -08:00
Zhihai Xu
40973c53ac Merge "BT is still on after enable flight mode, and reboot the DUT" into jb-mr1.1-dev 2012-12-03 11:47:34 -08:00
Jeff Sharkey
341ea53b34 am ae6428d7: am 1f8f2839: am ed3fba65: Merge "Avoid null mobile interfaces." into jb-mr1.1-dev
* commit 'ae6428d7072fcad3545fefe603afbaefb8f6bbec':
  Avoid null mobile interfaces.
2012-12-03 11:42:50 -08:00
Jeff Sharkey
ae6428d707 am 1f8f2839: am ed3fba65: Merge "Avoid null mobile interfaces." into jb-mr1.1-dev
* commit '1f8f283975c7cf51081acd3ea494de2b5f431607':
  Avoid null mobile interfaces.
2012-12-03 11:40:23 -08:00
Jeff Sharkey
1f8f283975 am ed3fba65: Merge "Avoid null mobile interfaces." into jb-mr1.1-dev
* commit 'ed3fba653864101d3dd335941f082104aad8f532':
  Avoid null mobile interfaces.
2012-12-03 11:38:31 -08:00
Zhihai Xu
401202b5fe BT is still on after enable flight mode, and reboot the DUT
bug 7275625
Change-Id: I4f8952a06152eb5f5775c1f616f6383e4f20e352
2012-12-03 11:36:21 -08:00
Jeff Sharkey
ed3fba6538 Merge "Avoid null mobile interfaces." into jb-mr1.1-dev 2012-12-03 11:32:51 -08:00
Svetoslav Ganov
152e9bb81a Refactoring of the screen magnification feature.
1. The screen magnification feature was implemented entirely as a part of the accessibility
   manager. To achieve that the window manager had to implement a bunch of hooks for an
   external client to observe its internal state. This was problematic since it dilutes
   the window manager interface and allows code that is deeply coupled with the window
   manager to reside outside of it. Also the observer callbacks were IPCs which cannot
   be called with the window manager's lock held. To avoid that the window manager had
   to post messages requesting notification of interested parties which makes the code
   consuming the callbacks to run asynchronously of the window manager. This causes timing
   issues and adds unnecessary complexity.

   Now the magnification logic is split in two halves. The first half that is responsible
   to track the magnified portion of the screen and serve as a policy which windows can be
   magnified and it is a part of the window manager. This part exposes higher level APIs
   allowing interested parties with the right permissions to control the magnification
   of a given display. The APIs also allow a client to be registered for callbacks on
   interesting changes such as resize of the magnified region, etc. This part servers
   as a mediator between magnification controllers and the window manager.

   The second half is a controller that is responsible to drive the magnification
   state based on touch interactions. It also presents a highlight when magnified to
   suggest the magnified potion of the screen. The controller is responsible for auto
   zooming out in case the user context changes - rotation, new actitivity. The controller
   also auto pans if a dialog appears and it does not interesect the magnified frame.

bug:7410464

2. By design screen magnification and touch exploration work separately and together. If
   magnification is enabled the user sees a larger version of the widgets and a sub section
   of the screen content. Accessibility services use the introspection APIs to "see" what
   is on the screen so they can speak it, navigate to the next item in response to a
   gesture, etc. Hence, the information returned to accessibility services has to reflect
   what a sighted user would see on the screen. Therefore, if the screen is magnified
   we need to adjust the bounds and position of the infos describing views in a magnified
   window such that the info bounds are equivalent to what the user sees.

   To improve performance we keep accessibility node info caches in the client process.
   However, when magnification state changes we have to clear these caches since the
   bounds of the cached infos no longer reflect the screen content which just got smaller
   or larger.

   This patch propagates not only the window scale as before but also the X/Y pan and the
   bounds of the magnified portion of the screen to the introspected app. This information
   is used to adjust the bounds of the node infos coming from this window such that the
   reported bounds are the same as the user sees not as the app thinks they are. Note that
   if magnification is enabled we zoom the content and pan it along the X and Y axis. Also
   recomputed is the isVisibleToUser property of the reported info since in a magnified
   state the user sees a subset of the window content and the views not in the magnified
   viewport should be reported as not visible to the user.

bug:7344059

Change-Id: I6f7832c7a6a65c5368b390eb1f1518d0c7afd7d2
2012-12-03 10:38:48 -08:00
Amith Yamasani
c72beac860 am 0f469f4f: am 32df98d5: am c566b43d: Fix crosstalk between users for widgets hosted in lockscreen
* commit '0f469f4f7eff8faee4350a0d82af325d4ae10b43':
  Fix crosstalk between users for widgets hosted in lockscreen
2012-11-30 19:10:36 -08:00
Craig Mautner
52a839de9e am 3351ab27: am f967500e: am 46732445: Merge "Include child windows when looking for insertion point." into jb-mr1.1-dev
* commit '3351ab27b9fc9eb2b21044ac68efebd1cfe85dfb':
  Include child windows when looking for insertion point.
2012-11-30 18:46:58 -08:00
Amith Yamasani
0f469f4f7e am 32df98d5: am c566b43d: Fix crosstalk between users for widgets hosted in lockscreen
* commit '32df98d52d482498d998b424684610c15098897a':
  Fix crosstalk between users for widgets hosted in lockscreen
2012-11-30 18:46:45 -08:00
Amith Yamasani
32df98d52d am c566b43d: Fix crosstalk between users for widgets hosted in lockscreen
* commit 'c566b43d02596cba437e9a2723e9f989297cca72':
  Fix crosstalk between users for widgets hosted in lockscreen
2012-11-30 18:44:36 -08:00
Jeff Sharkey
6a328afbab Avoid null mobile interfaces.
Bug: 7634215
Change-Id: I6745f6a78c07ba11d98b4562a6b53386112ef652
2012-11-30 17:49:39 -08:00
Amith Yamasani
c566b43d02 Fix crosstalk between users for widgets hosted in lockscreen
This was initially about the Clock widget crashing repeatedly on some
devices with multiple users. Turned out that there were race conditions
when switching users that could result in remote views of one user calling
back to the RemoteViewsAdapter in keyguard that in turn sent an incorrect widget id
to a different user's widget, resulting in a crash.

Since KeyguardHostView is instantiated in the same process for different users,
it needs to carry a user identity to pass along to AppWidgetService so that
remote views services were bound to the correct user and callbacks were attached and
detached properly.

Added some aidl calls that take the userId to do the binding properly. A more
complete fix might be needed in the future so that all calls from Keyguard carry
the user id.

Also, there was a problem in comparing host uid for secondary users, since Settings
for a secondary user has a different uid than keyguard. Not an issue on single-user
systems. Changed the host.uid comparison to accomodate for the secondary user.

Bug: 7450247
Change-Id: Idbc36e3c60023cac74174f6cb7f2b2130dd3052c
2012-11-30 17:28:08 -08:00
Craig Mautner
3351ab27b9 am f967500e: am 46732445: Merge "Include child windows when looking for insertion point." into jb-mr1.1-dev
* commit 'f967500ebaefb95d7a1c14acd05574a0f17ec078':
  Include child windows when looking for insertion point.
2012-11-30 16:46:03 -08:00
Craig Mautner
f967500eba am 46732445: Merge "Include child windows when looking for insertion point." into jb-mr1.1-dev
* commit '46732445b4c02c225544851cb6cf848ec0583494':
  Include child windows when looking for insertion point.
2012-11-30 16:42:56 -08:00
Craig Mautner
7b1aa77a9b Include child windows when looking for insertion point.
After finding a window in the window list we turn around and look in
the AppWindowToken.windows list for it. If it is a child of a window
in that list we should use the parent windows index as the search
result. Instead we gave up and ended up inserting the window at the
beginning of the windows list.

Bug 7357465 fixed.

Change-Id: If77f343b8597bfbb0b7fa41dedf7972d78d03020
2012-11-30 16:14:45 -08:00
Irfan Sheriff
8575c6637f Merge "Cleanup logging" 2012-11-30 15:59:34 -08:00
Irfan Sheriff
f0afe4144d Cleanup logging
Change-Id: Ieea19853c069266b55cad80cce3743b5ba91218a
2012-11-30 15:58:46 -08:00
Martijn Coenen
d5dcb6d4e9 am 1b3a4362: am f77445cd: am b1a01ab0: Merge "Allow the NFC process to call Bluetooth APIs." into jb-mr1.1-dev
* commit '1b3a4362a08d816d78fdbb04ef115b31c8674420':
  Allow the NFC process to call Bluetooth APIs.
2012-11-30 11:14:05 -08:00
Martijn Coenen
1b3a4362a0 am f77445cd: am b1a01ab0: Merge "Allow the NFC process to call Bluetooth APIs." into jb-mr1.1-dev
* commit 'f77445cd48f9174647c4c7ff539036b5aa08ce6e':
  Allow the NFC process to call Bluetooth APIs.
2012-11-30 11:11:44 -08:00
Martijn Coenen
f77445cd48 am b1a01ab0: Merge "Allow the NFC process to call Bluetooth APIs." into jb-mr1.1-dev
* commit 'b1a01ab01c2aa5136f7781c3a6ec682590e38ac4':
  Allow the NFC process to call Bluetooth APIs.
2012-11-30 11:09:43 -08:00
Martijn Coenen
b1a01ab01c Merge "Allow the NFC process to call Bluetooth APIs." into jb-mr1.1-dev 2012-11-30 11:08:07 -08:00
Dianne Hackborn
0f6f210264 am 7b1af760: am 1bd7d5e4: am 675814d4: Merge "Maybe fix issue #7596986: Frequent runtime restarts; IAE at..." into jb-mr1.1-dev
* commit '7b1af76074423837d26ccb4e3b4c1b5d25baa25e':
  Maybe fix issue #7596986: Frequent runtime restarts; IAE at...
2012-11-30 10:49:08 -08:00
Dianne Hackborn
7b1af76074 am 1bd7d5e4: am 675814d4: Merge "Maybe fix issue #7596986: Frequent runtime restarts; IAE at..." into jb-mr1.1-dev
* commit '1bd7d5e47ed7e73c244b79c5a92d6af1e3e89266':
  Maybe fix issue #7596986: Frequent runtime restarts; IAE at...
2012-11-30 10:47:01 -08:00
Dianne Hackborn
1bd7d5e47e am 675814d4: Merge "Maybe fix issue #7596986: Frequent runtime restarts; IAE at..." into jb-mr1.1-dev
* commit '675814d488579582e0214cc720d9ccc310173f25':
  Maybe fix issue #7596986: Frequent runtime restarts; IAE at...
2012-11-30 10:45:02 -08:00
Dianne Hackborn
675814d488 Merge "Maybe fix issue #7596986: Frequent runtime restarts; IAE at..." into jb-mr1.1-dev 2012-11-30 10:42:15 -08:00