11162 Commits

Author SHA1 Message Date
Dianne Hackborn
aae329ef0f Merge "Don't apply transformation fudge when not rotating." into jb-mr1.1-dev 2012-11-29 17:53:47 -08:00
Dianne Hackborn
4b16969b00 Don't apply transformation fudge when not rotating.
There is this stupid fudge factor applied to window transformations
when doing a screen rotation animation.  We need this when rotating,
but when not rotating it causes very visible artifacts.  Historically
the non-rotation case only happened due to configuration changes, so
wasn't that big a deal.  Now however that we use this when switching
users, it is more annoying.  So get rid of it for such cases.

Change-Id: I6b343866c1bad9b16984b4a629917c2f1bb37b9e
2012-11-29 17:51:24 -08:00
Dianne Hackborn
ebec231535 Merge "Always report user switched after unfreezing screen." into jb-mr1.1-dev 2012-11-29 16:38:23 -08:00
Dianne Hackborn
6c5406acd7 Maybe fix issue #7596986: Frequent runtime restarts; IAE at...
...android.os.Parcel.nativeAppendFrom(Native Method)

The failing stack trace is:

11-20 20:29:04.365 19154 19170 E AndroidRuntime: java.lang.IllegalArgumentException
11-20 20:29:04.365 19154 19170 E AndroidRuntime:        at android.os.Parcel.nativeAppendFrom(Native Method)
11-20 20:29:04.365 19154 19170 E AndroidRuntime:        at android.os.Parcel.appendFrom(Parcel.java:428)
11-20 20:29:04.365 19154 19170 E AndroidRuntime:        at android.os.Bundle.writeToParcel(Bundle.java:1613)
11-20 20:29:04.365 19154 19170 E AndroidRuntime:        at android.os.Parcel.writeBundle(Parcel.java:605)
11-20 20:29:04.365 19154 19170 E AndroidRuntime:        at android.location.Location.writeToParcel(Location.java:903)
11-20 20:29:04.365 19154 19170 E AndroidRuntime:        at android.os.Parcel.writeParcelable(Parcel.java:1254)
11-20 20:29:04.365 19154 19170 E AndroidRuntime:        at android.os.Parcel.writeValue(Parcel.java:1173)
11-20 20:29:04.365 19154 19170 E AndroidRuntime:        at android.os.Parcel.writeMapInternal(Parcel.java:591)
11-20 20:29:04.365 19154 19170 E AndroidRuntime:        at android.os.Bundle.writeToParcel(Bundle.java:1619)
11-20 20:29:04.365 19154 19170 E AndroidRuntime:        at android.os.Parcel.writeBundle(Parcel.java:605)
11-20 20:29:04.365 19154 19170 E AndroidRuntime:        at android.location.Location.writeToParcel(Location.java:903)
11-20 20:29:04.365 19154 19170 E AndroidRuntime:        at android.os.Parcel.writeParcelable(Parcel.java:1254)
11-20 20:29:04.365 19154 19170 E AndroidRuntime:        at android.os.Parcel.writeValue(Parcel.java:1173)
11-20 20:29:04.365 19154 19170 E AndroidRuntime:        at android.os.Parcel.writeMapInternal(Parcel.java:591)
11-20 20:29:04.365 19154 19170 E AndroidRuntime:        at android.os.Bundle.writeToParcel(Bundle.java:1619)
11-20 20:29:04.365 19154 19170 E AndroidRuntime:        at android.os.Parcel.writeBundle(Parcel.java:605)
11-20 20:29:04.365 19154 19170 E AndroidRuntime:        at android.content.Intent.writeToParcel(Intent.java:6660)
11-20 20:29:04.365 19154 19170 E AndroidRuntime:        at android.app.ApplicationThreadProxy.scheduleReceiver(ApplicationThreadNative.java:763)
11-20 20:29:04.365 19154 19170 E AndroidRuntime:        at com.android.server.am.BroadcastQueue.processCurBroadcastLocked(BroadcastQueue.java:230)
11-20 20:29:04.365 19154 19170 E AndroidRuntime:        at com.android.server.am.BroadcastQueue.processNextBroadcast(BroadcastQueue.java:777)

This is odd because where we do Bundle.writeToParcel(), we are just writing the Parcel
we have with its current length.  There is no way this should be able to fail like this...
unless the Bundle is changed while we are running?

Hm.

It looks like the location manager is holding on to Location objects which have a
Bundle of extras.  It is that Bundle of extras that the crash is happening on.
And the bundle extras can be changed as it operates.  And there are places where
the raw Location object is returned from the location manager, which means the
caller can be olding on to a Location object whose extras can be changed at any
time by other threads in the location manager.

So that seem suspicious.

This change should take care of all these places in the location manager, by
making sure to copy the location object before it goes out of the location
manager.

In addition, add some code to the activity manager to not bring down the entire
system if there is a problem trying to send one of these broadcasts.  There is
no need, we can just skip the broadcast as bad.

Change-Id: I3043c1e06f9d2931a367f831b6a970d71b0d0621
2012-11-29 16:33:54 -08:00
Zhihai Xu
e1a867f68d Merge " BluetoothManagerService call should allow SYSTEM_UID" into jb-mr1.1-dev 2012-11-29 16:03:49 -08:00
Zhihai Xu
6eb7652b04 BluetoothManagerService call should allow SYSTEM_UID
bug 7561429

Change-Id: I1483bfe1361f71c7ae3529ea496b33504b95413e
2012-11-29 15:41:04 -08:00
Dianne Hackborn
4d78abfca7 Always report user switched after unfreezing screen.
Change-Id: I58172896892a07e72a3430e56e4d2944d388c7c9
2012-11-29 15:10:18 -08:00
Colin Cross
05db19bc55 Merge "trigger kernel blocked stack trace on system server watchdog" into jb-mr1.1-dev 2012-11-29 12:47:54 -08:00
Colin Cross
5df1d871fe trigger kernel blocked stack trace on system server watchdog
Bug b/7638530 may be caused by a kernel deadlock when killing
processes under low memory conditions.  Write to /proc/sysrq-trigger
to get a kernel log of blocked tasks before killing the system server.

Bug: 7638530
Change-Id: I60df324ad4affdadbf13650099dc4dfb38722420
2012-11-29 12:44:09 -08:00
John Spurlock
143d73dab5 Merge "Fix multiuser bug in StatusBarManagerService." into jb-mr1.1-dev 2012-11-29 11:45:57 -08:00
John Spurlock
8f3e6d5c83 Fix multiuser bug in StatusBarManagerService.
First, do no harm.

Bug:7638210
Change-Id: I113b574a021d601b0c79d65a3b4b72eeb4c667ad
2012-11-29 14:18:35 -05:00
Martijn Coenen
8385c5afbd Allow the NFC process to call Bluetooth APIs.
The NFC process used to be only running as user 0,
and it may be calling into Bluetooth. Most of the
handover code has now moved to a separate process
running as the current user.

Fix the existing checks to take into account the
correct NFC UID, whatever user it is running as.

Bug: 7309141
Change-Id: I953cfb263a28aef7fe1be5880b053425dc359a29
2012-11-29 10:17:47 -08:00
Craig Mautner
24d966a3b6 Merge "Fix math errors causing black screen. DO NOT MERGE" into jb-mr1.1-dev 2012-11-29 09:57:15 -08:00
Craig Mautner
9dd9e0c99d Fix math errors causing black screen. DO NOT MERGE
Turning off animations in the Developer options creates a ValueAnimator
duration scale of 0. This is used as the denominator in RampAnimator
which, if the numerator is also 0, sets mAnimatedValue to NaN. Rounding
NaN to the nearest int produces 0 which is then assigned to
mScreenBrightness in DisplayPowerState.

A copy mistake which assigned mTransitionAnimationScale as the default
value for mAnimatorDurationScale in WindowManagerService is also
fixed here.

Bug 7515609 fixed.

Change-Id: I39f8d0a7abdd5a1fe70d757fe95fbddaf7a0ed51
2012-11-29 00:11:50 -08:00
Dianne Hackborn
2c41c4a276 Fix build.
Change-Id: Icc1f2913b4e889609066b0ff1dddcd9be0230897
2012-11-28 18:46:45 -08:00
Dianne Hackborn
860d0cd452 Merge "Cleaner initial boot." into jb-mr1.1-dev 2012-11-28 18:19:25 -08:00
Dianne Hackborn
13579ed330 Cleaner initial boot.
This does some cleanup of the initial boot, especially when
booting in "no core apps" mode for encryption/decryption.

Change-Id: Ifb3949f580e52f54559e603c4b0b104f6bac2f6c
2012-11-28 18:09:01 -08:00
Adam Cohen
035352b4d6 Merge "Making sure keyguard and homescreen only display eligible widgets (issue 7550090)" into jb-mr1.1-dev 2012-11-28 17:47:22 -08:00
Adam Cohen
d9e5af3851 Making sure keyguard and homescreen only display eligible widgets (issue 7550090)
Change-Id: I25acb7bde2e8e5ac3185a009f5c7151b81f0ae19
2012-11-28 16:36:56 -08:00
Irfan Sheriff
b4d5a9e73b Merge "WFD: Fallback to PIN mode if PBC is not supported" into jb-mr1.1-dev 2012-11-28 16:28:41 -08:00
Irfan Sheriff
6681be2787 WFD: Fallback to PIN mode if PBC is not supported
Bug: 7627641
Change-Id: Ibba6114f907c67f1cb60c460d5b65479f2d1b148
2012-11-28 15:54:06 -08:00
Dianne Hackborn
68e0da7e39 Merge "Quiet down a lot of logging." into jb-mr1.1-dev 2012-11-28 15:03:39 -08:00
Zhihai Xu
e3f7c45241 Merge "Settings shows it is connected to A2DP, though the device is not actually connected" into jb-mr1.1-dev 2012-11-28 12:19:42 -08:00
Zhihai Xu
5c0f3e5075 Merge "Cannot enable Bluetooth after using airplane and Bluetooth tethering sequentially" into jb-mr1.1-dev 2012-11-28 11:22:21 -08:00
Dianne Hackborn
40e9f2922c Quiet down a lot of logging.
Also fix a little problem where the USER_STARTED broadcasts
were not being sent as ordered broadcasts(!).

Change-Id: I3aa3e0a9b3900967cdd2d115ee103371b0a50c41
2012-11-27 19:12:23 -08:00
Craig Mautner
9e98927e2d Merge "Retain configuration change info and sync access." into jb-mr1.1-dev 2012-11-27 16:17:45 -08:00
Amith Yamasani
f426ace9da Merge "Only wipe device if primary user (for failed password attempts)" into jb-mr1.1-dev 2012-11-27 15:37:40 -08:00
Craig Mautner
e855214249 Retain configuration change info and sync access.
- If a window was hidden while the configuration changed and then
changed back WindowManagerService would not know that the change
had ever happened and wouldn't notify the window of this. Most
windows wouldn't care but because Keyguard inflates layouts while
it is hidden...

Bug 7094175 fixed?
Bug 7501099 fixed!

Change-Id: If27f5f1d333602dac7719dd39dbdf3fe7954aa06
2012-11-27 12:47:27 -08:00
Dianne Hackborn
ba4ac51823 Merge "Improve debugging for issue #7586414: AlarmManager wakelocks held" into jb-mr1.1-dev 2012-11-27 11:06:35 -08:00
Dianne Hackborn
8103890a59 Improve debugging for issue #7586414: AlarmManager wakelocks held
In alarm manager, print a summary of the top 10 alarms by time
being executed.  Keep track of execution time (and wake count) of
each type of alarm for each application so this can be printed in
the summary (and used to compute the top 10 alarms).  Rework how
the alarm summary stats are tracked so that we don't need to hold
on to the full Intent for each stat and can get the Intent information
at the time the alarm is sent rather than waiting for whatever Intent
comes back in the result.

Also in the battery stats: sort the kernel wake locks by time, add
a new section showing all partial wake locks across all applications
sorted by time.

Finally a new LocalLog class that is used by AlarmManager to log
important warning messages, so these can also be later found in
its dumpsys output.

Change-Id: Icc07810053e60fb623a49937e696819cb8352b06
2012-11-27 11:05:42 -08:00
Satoshi Kataoka
1af0841137 Merge "Hide current soft input when a background user gains window focus." into jb-mr1.1-dev 2012-11-26 19:39:20 -08:00
Amith Yamasani
7be52cbc33 Merge "Logging to help find the cause of widget crash in clock widget." into jb-mr1.1-dev 2012-11-26 16:22:41 -08:00
Amith Yamasani
791f877473 Logging to help find the cause of widget crash in clock widget.
This will continue to crash as before, but will show some useful
information in the exception.

Bug: 7450247

Change-Id: Ib3160a5f64154517791d165973c12294ecd09901
2012-11-26 15:22:31 -08:00
Winson Chung
f7614fc744 Removing unecessary additional lock metadata from QuickSettings user tile.
Change-Id: I89ec94385eb3cdd46ad6942bf8989fb04d5c0370
2012-11-26 14:44:03 -08:00
Craig Mautner
7f2a989675 Merge "Ignore invalid combination of PowerManager flags." into jb-mr1.1-dev 2012-11-26 11:34:40 -08:00
Craig Mautner
6edb6db512 Ignore invalid combination of PowerManager flags.
ACQUIRE_CAUSES_WAKEUP is supposed to be ignored if combined with
PARTIAL_WAKE_LOCK. Instead it was being carried out for any values
of the WakeLock level.

This change reverts behavior to closely match
previous releases of the framework by only honoring
ACQUIRE_CAUSES_WAKEUP for screen wake lock levels. The only
difference being that in previous releases ACQUIRE_ could have been
combined with PROXIMITY_SCREEN_OFF_WAKE_LOCK (it never was) and
now such a combination will ignore the ACQUIRE_ flag.

Bug 7532258 fixed.

Change-Id: I46e848d8fd1b57e54c63141bf3d4f353986b5bdf
2012-11-21 13:19:39 -08:00
John Spurlock
3f64edec6c Merge "Fix IME down caret in keyguard nav bar bug." into jb-mr1.1-dev 2012-11-21 06:44:00 -08:00
John Spurlock
bc7b6fc2a4 Fix IME down caret in keyguard nav bar bug.
The input method manager service now keeps track of whether or not
the ime was shown on the keyguard.  This prevents activities behind
the keyguard from incorrectly showing the down-caret in the keyguard.

Bug:7498792
Change-Id: I0de01ec29cb544e902305b0f9d9fb94a73835e7b
2012-11-20 14:06:56 -05:00
Daniel Sandler
4a7a9b963b DEFAULT_VIBRATE must always use the default vibe pattern
The logic here was backwards, causing the (softer) fallback vibe
pattern to be applied if the notification specified a sound
(or DEFAULT_SOUND) and also DEFAULT_VIBRATE. The fallback
vibe should only play if you have *no* vibration set.

Bug: 7588655
Change-Id: Iecdd362729bccedf779b51cc9b90a12014328aff
2012-11-20 12:59:41 -05:00
Satoshi Kataoka
8d03305b57 Hide current soft input when a background user gains window focus.
Bug: 7507226
Change-Id: If58f68469e21eaaba8536c4b54b3aa8cf8c08eb5
2012-11-20 11:12:07 +09:00
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
Satoshi Kataoka
2656abe098 Merge "Fix an inconsistent state with IMMS and Settings when the hard keyboard is connected" into jb-mr1.1-dev 2012-11-17 21:53:10 -08:00
Michael Jurka
7b0c877959 Merge "Delete appWidgetId when removing lockscreen widgets" into jb-mr1.1-dev 2012-11-16 15:29:17 -08:00
Michael Jurka
75b5cfb4a4 Delete appWidgetId when removing lockscreen widgets
Bug: 7550012

Change-Id: Ia9f5266256016eb91bfd6a2d5a7f910c42948f1e
2012-11-16 15:22:06 -08:00
Amith Yamasani
32f0742e52 Only wipe device if primary user (for failed password attempts)
When a DeviceAdmin requests a device wipe due to a number of incorrect
password attempts, only primary user can wipe the device. Secondary users
can only remove themselves from the device.

Bug: 7554445
Change-Id: I24331cb4eff37571fcd792abb2efc794f7b3f2d2
2012-11-16 15:09:13 -08:00
Amith Yamasani
acddb72c58 Merge "Make sure that the owner user is marked initialized." into jb-mr1.1-dev 2012-11-16 10:43:48 -08:00
Satoshi Kataoka
15451bd7af Fix an inconsistent state with IMMS and Settings when the hard keyboard is connected
Bug: 7540140
Change-Id: Iaac951ff457c35751b442e84ac07f1f86be93494
2012-11-16 13:30:56 +09:00
Adam Cohen
6189888a25 Merge "Making sure launcher doesn't show keyguard-only widgets (issue 7550090)" into jb-mr1.1-dev 2012-11-15 14:56:19 -08:00
Adam Cohen
3fcc6b26c3 Making sure launcher doesn't show keyguard-only widgets (issue 7550090)
Change-Id: I5d0675f0c03677e06371a6730209c3466c6b0f15
2012-11-15 14:53:31 -08:00
Amith Yamasani
bc9625059b Make sure that the owner user is marked initialized.
This is required for upgrades from previous versions of JB.

Bug: 7547639
Change-Id: I21de14a70d6ba2ab21437b5f0721321df45226d2
2012-11-15 14:43:13 -08:00