11036 Commits

Author SHA1 Message Date
Daniel Sandler
aaec726948 Notification vibration improvements: [DO NOT MERGE]
- When notifications vibrate as a fallback (that is,
   because they want to play a sound but the device is in
   vibrate mode), this no longer requires the VIBRATE
   permission.
 - As a bonus, if your notifications use DEFAULT_VIBRATE,
   you don't need the VIBRATE permission either.
 - If you specify a custom vibration pattern, you'll still
   need the VIBRATE permission for that.
 - Notifications vibrating in fallback mode use same
   vibration pattern but can be changed easily in future.
 - The DEFAULT_VIBRATE and fallback vibrate patterns are now
   specified in config.xml.

Bug: 7531442
Change-Id: I7a2d8413d1becc53b9d31f0d1abbc2acc3f650c6
2012-11-19 15:12:24 -08:00
David Agnew
4c0fc03b5e When in vibrate mode, all notifications will vibrate.
(Unless the notification specifies no ringtone AND no
vibration, in which case it will remain silent.)

Bug: 7516358
Change-Id: I926d0fe0165b9622cd117e6c3ef6e3637772b444
2012-11-10 14:35:02 -05:00
Dianne Hackborn
a46a74fcd6 Merge "Remove extraneous logs." into jb-mr1-dev 2012-11-08 13:16:10 -08:00
Dianne Hackborn
7ff30113de Remove extraneous logs.
Change-Id: I4c47d36748de91bd6fddc419afbf59552bf63e9a
2012-11-08 13:13:48 -08:00
Jim Miller
4eeb4f664a Add mechanism to kick keyguard to show the assistant
Fixes bug 7499778

Change-Id: Ic9ea514feb489feeee6716f40bdb9792842f9515
2012-11-08 00:39:04 -08:00
Amith Yamasani
3fe2cb4db6 Merge "Don't cancel any notifications that are meant for all users, if no package is specified." into jb-mr1-dev 2012-11-07 21:12:54 -08:00
Amith Yamasani
5ec00e930f Don't cancel any notifications that are meant for all users, if no package is specified.
Bug: 7490028

Otherwise notifications such as the USB debugging and OTA notifications will be
dismissed when any user is stopped.

Change-Id: I0ae0c1136a999dd3aade99ca9e71c714b359eab4
2012-11-07 16:58:30 -08:00
Victoria Lease
ad84f7f46b Merge "disable geofences for secondary users" into jb-mr1-dev 2012-11-07 13:56:46 -08:00
Victoria Lease
8d803258ca am e6299d5a: Merge "Fires geofence if the device is already in the geofence area." into jb-mr1-dev
* commit 'e6299d5af702dd17eb3585dbe84d29c289bfa8da':
  Fires geofence if the device is already in the geofence area.
2012-11-06 15:09:38 -08:00
Victoria Lease
56e675b3a1 disable geofences for secondary users
Geofences are broken in multiuser, and need to be fixed before
reenabling the feature for secondary users.

Change-Id: Ief3008a294deed47760ee25efcf1cdef5371b038
2012-11-06 10:53:56 -08:00
Victoria Lease
4cd0a50b26 Fires geofence if the device is already in the geofence area.
Process the location of the fence as soon as it is added.

Clarified how the distance to the fence was being used.

Added more debug logs (disabled by default).

Fixed a numerical overflow in the location request if the
distance to the border of the nearest fence was greater
than about 2000Km.

Removed a useless call to request location updates passively
when the geofence manager is initialized.  We have no need
of location updates unless there are active geofences.
The effect of this call was undone the next time the location
request was updated anyhow.

Changed the location request to always request a fastest update
interval of 0 which accomplishes the goal of passively
monitoring all updates.  This does not increase the power
consumption because we are conservative about choosing
a minimum location update interval.  We're simply stating
that the geofence manager is willing to handle a higher
report rate which is very important.

Subject location to a "freshness test" - only use relatively
recent locations for geofence testing.

Run all geofence updates on the handler and avoid making
multiple redundant calls into the location manager when
updating the provider requirements.

Ensure that we update geofences correctly even if we don't
know the initial location of the device at the time the
geofence is created.

Pin update interval value to the range [1m..2hr].

Distance to fence is now distance to fence's border, not
distance to fence's centre.

Bug: 7466334
Change-Id: I28e571ecfc508d5ceb9bb2afcabaaf05abb26369
2012-11-06 10:01:33 -08:00
Jim Miller
bfec0a8616 Add isSafeModeEnabled() API to WindowManagerService
This adds a means of determining when the device is in safe mode,
as required by keyguard to disabled some features.

Change-Id: I31d357e6738c92e1837f9e0263e5f3f4de66315a
2012-11-05 20:27:38 -08:00
Dianne Hackborn
47eb0c103a am 2ea9bae7: Fix issue #7457380: IME leaves a mark after user switching
* commit '2ea9bae7121f1df5461437d7d08fa550cdf6e0b0':
  Fix issue #7457380: IME leaves a mark after user switching
2012-11-03 23:37:36 -07:00
Dianne Hackborn
2ea9bae712 Fix issue #7457380: IME leaves a mark after user switching
The gnarly stuff where we keep track of the old input method
window as if it was still there was sitting around leaving things
in a stuck state.  Now we clear this out at key points in the
window manager (freezing screen, user change), and the input
method manager service is less aggressive about asking the window
manager to do it.

Also fixed a problem that was causing flickers during some
wallpaper transitions -- when we are animating two things on
top of the wallpaper and one of them disappears, we need to
make sure the wallpaper target points to whatever the current
target should be (if any), not left pointing to the old target
that has gone away.

Change-Id: I2fb9600f569a5bd5e3528aaf24cde9340af56cb0
2012-11-02 18:56:01 -07:00
Baligh Uddin
841ce670b2 Merge commit '81af21e67cd842d16d4b45e8a2d1ec56ff8d764f' into jb-mr1-dev 2012-11-02 16:46:18 -07:00
Svetoslav Ganov
f74d0c39b6 Merge "Polish user selector accessibility." into jb-mr1-lockscreen-dev 2012-11-02 15:55:11 -07:00
Svetoslav Ganov
fc9c4cd51b Polish user selector accessibility.
1. The current user was not announced as such.

2. The event for a user switch was not sent.

Change-Id: Ib3caf1f9e93ea1f0b5450246601bc37f416be6da
2012-11-02 15:32:25 -07:00
Laurent Tu
35e01866d8 am 685cc8c7: Merge "Decrement number of updates in LocationRequest" into jb-mr1-dev
* commit '685cc8c7cba0bef5257bf00e9821e82a2dbbfc91':
  Decrement number of updates in LocationRequest
2012-11-02 15:18:46 -07:00
Laurent Tu
685cc8c7cb Merge "Decrement number of updates in LocationRequest" into jb-mr1-dev 2012-11-02 15:15:28 -07:00
Dianne Hackborn
78bc99001f am 8ae0420e: Merge "Fix issue #7343200: Fails to show wallpaper in the background for..." into jb-mr1-dev
* commit '8ae0420e4b4169855608d404e389a66ce7253a36':
  Fix issue #7343200: Fails to show wallpaper in the background for...
2012-11-02 15:13:36 -07:00
Dianne Hackborn
8ae0420e4b Merge "Fix issue #7343200: Fails to show wallpaper in the background for..." into jb-mr1-dev 2012-11-02 15:10:16 -07:00
Dianne Hackborn
98129739af Fix issue #7343200: Fails to show wallpaper in the background for...
...lockscreen sometimes and remains black / blank

The problem was that we were using the animation-side wallpaper state
in cases where it was not updated yet.

The mWallpaperTarget variable is propagated over to the animation
side when the main window manager state updates.  On the animation
side, this is used by hideWallpapersLocked() to determine if the
current wallpaper should be hidden.

The problem is that various paths to hideWallpapersLocked() can
come from the layout side of the window manager instead of the
animation side.  This causes the problem here because in this case
the wallpaper state may not have yet been propagated to the
animation side, so it could incorrectly decide to hide the wallpaper
because it thinks there is not a target when in fact a target is
set in the layout side.  This won't get fixed until some time way
later that the layout side decides that a new window is being shown
that may need to have the wallpaper shown.

The fix here is pretty gross, but as safe as possible -- the
hideWallpapersLocked() function now uses either the animation or
layout wallpaper state depending on where the call to it is coming
from.

Change-Id: I9250bfeae6e11c1761760bcc696fdb33fb5c8a5f
2012-11-02 14:19:59 -07:00
Svetoslav Ganov
b8e58bb6ed am 28e8f76c: Merge "Cannot click on partially visible views in touch exploration." into jb-mr1-dev
* commit '28e8f76c50b26efd657bc0740fee25ac18520f9e':
  Cannot click on partially visible views in touch exploration.
2012-11-02 11:54:36 -07:00
Svetoslav Ganov
28e8f76c50 Merge "Cannot click on partially visible views in touch exploration." into jb-mr1-dev 2012-11-02 11:51:36 -07:00
Laurent Tu
75defb6f88 Decrement number of updates in LocationRequest
Decrement the number of updates after a location fix has been sent to a
a listener. This is necessary for respecting calls such as
requestSingleUpdate().

Bug: 7460868
Change-Id: Iea207ab494b93b936ca434d59652bb2cb6404cef
2012-11-02 09:22:48 -07:00
Michael Jurka
9de90c1c57 Merge "Use clock's widget as the default keyguard widget" into jb-mr1-lockscreen-dev 2012-11-01 18:59:54 -07:00
Michael Jurka
67a871d857 Use clock's widget as the default keyguard widget
Also, if we have no widgets in lockscreen,
reinflate the default widget. If that fails,
inflate the built-in clock (KeyguardStatusView)

Change-Id: I2e90ab0893c993a755700e075e4a8ac5a685e0f2
2012-11-01 18:50:21 -07:00
Ed Heyl
39912f7fcd Merge commit '87bb019e57eddcedd4aeca180ac36bdf1d42064a' into jb-mr1-dev 2012-11-01 18:06:35 -07:00
Svetoslav Ganov
a94c3194ff Cannot click on partially visible views in touch exploration.
1. In touch exploration mode the system clicks in the center of the
   accessibility focus rectangle. However, if this rectangle is only
   partially shown on the window or on the screen the system may not
   be able to perform the click, if the accessibility focus center
   is not on the screen, or click on the wrong window, if the access
   focus center is outside of the window.

   This change clips the rectangle to the window bounds which and the
   display bounds. This will ensure no clicks are sent to the wrong
   window and no clicks are sent outside of the screen.

bug:7453839

Change-Id: I79f98971e7ebcbb391c37284467dc76076172c5f
2012-11-01 16:27:05 -07:00
Jeff Brown
d2592635c1 am 62831a7b: Merge "Eliminate potential reentrance from unregisterInputChannel." into jb-mr1-dev
* commit '62831a7bd02868316ad1a16dcf13c98896fdbbdc':
  Eliminate potential reentrance from unregisterInputChannel.
2012-11-01 15:46:10 -07:00
Jeff Brown
62831a7bd0 Merge "Eliminate potential reentrance from unregisterInputChannel." into jb-mr1-dev 2012-11-01 15:42:33 -07:00
Dianne Hackborn
872e3d36ee am b9372de0: Merge "More debugging for issue #7343200 Fails to show wallpaper in the..." into jb-mr1-dev
* commit 'b9372de07d3329928f28104bb997aab57237504c':
  More debugging for issue #7343200 Fails to show wallpaper in the...
2012-11-01 15:16:27 -07:00
Adam Cohen
f19cce180f Merge "Revert "Pushing state persistence to a background thread"" into jb-mr1-lockscreen-dev 2012-11-01 15:12:54 -07:00
Dianne Hackborn
b9372de07d Merge "More debugging for issue #7343200 Fails to show wallpaper in the..." into jb-mr1-dev 2012-11-01 15:12:23 -07:00
Adam Cohen
b6f83374cc Revert "Pushing state persistence to a background thread"
This reverts commit 039206a9b40d2188eb735f56ee51f131555c9dd3

Change-Id: I30fa07bf55a489562831b6334768b28bed638ef8
2012-11-01 15:12:07 -07:00
Dianne Hackborn
529e744d31 More debugging for issue #7343200 Fails to show wallpaper in the...
...background for lockscreen sometimes and remains black / blank

There was a bunch of state not being put into the dumpsys output.
In particular, the current wallpaper target of the WindowAnimator
was not being included.  I think the problem is that these targets
are not being updated from the main window manager state at some
point where they need to be.

Change-Id: Ic795047f6aea9b6f72d5550bccc9f8d76c6ecb67
2012-11-01 15:09:10 -07:00
Adam Cohen
6917cec8de Merge "Pushing state persistence to a background thread" into jb-mr1-lockscreen-dev 2012-11-01 15:08:03 -07:00
Adam Cohen
039206a9b4 Pushing state persistence to a background thread
Change-Id: If776bc22c48525ba91dc7e4dd0e27de92612f2f5
2012-11-01 15:06:44 -07:00
Zhihai Xu
09452829e6 am 0de49148: Merge "Fix for BluetoothAdapter.getAddress() when BT is off on some devices" into jb-mr1-dev
* commit '0de49148f07c7f0b3b45cec0ef502db4b9163711':
  Fix for BluetoothAdapter.getAddress() when BT is off on some devices
2012-11-01 12:45:31 -07:00
Zhihai Xu
0de49148f0 Merge "Fix for BluetoothAdapter.getAddress() when BT is off on some devices" into jb-mr1-dev 2012-11-01 12:43:28 -07:00
Adam Cohen
9767597a74 Merge "Stripping dead API related to keyguard widgets" into jb-mr1-lockscreen-dev 2012-11-01 11:31:35 -07:00
Zhihai Xu
d31c32217c Fix for BluetoothAdapter.getAddress() when BT is off on some devices
There are two problem, 1.If we have wrong bluetooth address in
global settings db, we never will update it 2. We need enable bluetooth
to get the bluetooth address for some devices. For 1, we fix it by add
a valid flag in global setting db, this flag will be set when we stored
correct address and name to db. We only load the name and address from
global setting db when this valid flag is set during power up.
For2. we will read BT address after bluetooth is at ON state.
bug 7440409

Change-Id: Ic4740b3f0b2fcd214c7ca8393f7331c140eec66d
2012-11-01 02:19:08 -07:00
Jeff Brown
074b8b7cf1 Eliminate potential reentrance from unregisterInputChannel.
Ensure that all callbacks into the window manager policy occur
on the input dispatcher thread in the right place.  This fixes
a potential deadlock that may occur if the window manager
unregisters an input channel while holding its own lock.

The change is simply to defer running asynchronous commands
(usually callbacks into the policy) until the next iteration
of the dispatch looper thread.

Bug: 7382388
Change-Id: I90095580d717fcddb2209ef332df56400f837a34
2012-10-31 19:01:31 -07:00
Svetoslav Ganov
c4842c1193 Accessibility support for the lockscreen - phone.
Change-Id: Idc99f1322a1d635dd07e1f5efa1665a4676267c2
2012-10-31 17:49:10 -07:00
Adam Cohen
8f697d8580 Stripping dead API related to keyguard widgets
Change-Id: Ieb6c57ef736712b3266de08027f9626104cdf1bb
2012-10-31 17:42:26 -07:00
Chet Haase
fe28ff0d06 Merge "Fix for regression in WindowManager orientation changes" into jb-mr1-dev 2012-10-31 16:49:12 -07:00
Chet Haase
d5d11af3d3 Fix for regression in WindowManager orientation changes
A fix yesterday for #7428221 caused a regression where new orientations would
sometimes cause a flash through black on the way to seeing the real static wallpaper.
There is a fundamental problem in WindowManagerService where we show a window before
it has all of the layout/sizing information it needs, which is the cause of the black
flash. The regression yesterday was that we are now less aggressive about layout out
hidden windows, so we won't layout the window until after the window is shown with the
incorrect sizing info.

The fix/workaround is to back off the layout logic specifically for the wallpaper,
ensuring that we will lay it out on orientation changes, even when hidden. This means that
when we finally do show it, it will already have been drawn in the correct orientation/size.

Issue #7444971 Home jank regression

Change-Id: Ib20fdabc43ece9720b261bf04b272c5511e2d902
2012-10-31 15:40:54 -07:00
Amith Yamasani
03f7ebfeaa Merge "Relax permission requirements for posting notifications across users" into jb-mr1-dev 2012-10-31 13:06:56 -07:00
Chet Haase
27f752eb1d Merge "WindowManager shouldn't layout non-visible windows" into jb-mr1-dev 2012-10-30 17:42:43 -07:00
Amith Yamasani
a07d047f34 Merge "Don't clean up wallpaper map entry when stopping a user." into jb-mr1-dev 2012-10-30 17:40:13 -07:00