Commit Graph

1093 Commits

Author SHA1 Message Date
Dianne Hackborn
885bfcd523 am 9e6575bc: am 854458f4: am 0287ca3c: am e62fa825: Merge from master: fix issue #7966357: Super lights out mode vs. volume dialog
* commit '9e6575bc52f421484fe262aff224db247e70d830':
  Merge from master: fix issue #7966357: Super lights out mode vs. volume dialog
2013-01-11 10:53:19 -08:00
Dianne Hackborn
9e6575bc52 am 854458f4: am 0287ca3c: am e62fa825: Merge from master: fix issue #7966357: Super lights out mode vs. volume dialog
* commit '854458f4d52937f9a1385559d759bd8019eb3294':
  Merge from master: fix issue #7966357: Super lights out mode vs. volume dialog
2013-01-09 19:01:26 -08:00
Dianne Hackborn
854458f4d5 am 0287ca3c: am e62fa825: Merge from master: fix issue #7966357: Super lights out mode vs. volume dialog
* commit '0287ca3ca36ad98004ddabfa189105e6324a820e':
  Merge from master: fix issue #7966357: Super lights out mode vs. volume dialog
2013-01-09 19:00:06 -08:00
Dianne Hackborn
e62fa82579 Merge from master: fix issue #7966357: Super lights out mode vs. volume dialog
The volume panel now forces us out of the UI modes while it
is up.

Change-Id: If39fa33b1c52579bf5d376ce4722408cee3ca951
2013-01-09 18:51:51 -08:00
Dianne Hackborn
a06de0f29b New "app ops" service.
Initial implementation, tracking use of the vibrator, GPS,
and location reports.

Also includes an update to battery stats to also keep track of
vibrator usage (since I had to be in the vibrator code anyway
to instrument it).

The service itself is only half-done.  Currently no API to
retrieve the data (which once there will allow us to show you
which apps are currently causing the GPS to run and who has
recently accessed your location), it doesn't persist its data
like it should, and no way to tell it to reject app requests
for various operations.

But hey, it's a start!

Change-Id: I05b8d76cc4a4f7f37bc758c1701f51f9e0550e15
2013-01-09 12:47:47 -08:00
Craig Mautner
4b71aa1f8a Move app transition constants
Move app transition constants from WindowManagerPolicy to
AppTransition.

Change-Id: I8ae6c4d0da1db826c44eb4ea0c6b85016b50b1a3
2013-01-07 23:38:57 -08:00
Craig Mautner
b12428a128 Save most recent thumbnail Bitmap for reuse.
This keeps Recents from taking two identical screenshots, one for
the Recents thumbnail and one for the pause activity thumbnail.

Fixes bug 7351766.

Change-Id: Ia4d12802151666ec36e4d9b395cf10e1e02dc37f
2012-12-20 16:24:58 -08:00
Craig Mautner
6cf1a66348 Merge "Call adjustWallpaperWindowsLocked once per pass." 2012-12-12 15:35:57 -08:00
Craig Mautner
ae44659f30 Call adjustWallpaperWindowsLocked once per pass.
Also refactor a few methods and improve logging.

Change-Id: Ic54a1ff99f6de732b31cda5c06d36e8de01a269c
2012-12-12 10:09:19 -08:00
Christopher Tate
1423fa30c2 am 1de62393: am 534de491: Merge "Make immersive mode public & imply update locking" into jb-mr1-aah-dev
* commit '1de623939090993d03a7c398d09e2d13950d682b':
  Make immersive mode public & imply update locking
2012-12-11 16:15:38 -08:00
Christopher Tate
1de6239390 am 534de491: Merge "Make immersive mode public & imply update locking" into jb-mr1-aah-dev
* commit '534de491e6522465a7ad12d7cba9b2f80deab364':
  Make immersive mode public & imply update locking
2012-12-11 16:13:51 -08:00
Christopher Tate
73c2aee40a Make immersive mode public & imply update locking
Activity.setImmersive(boolean) / android:immersive="bool" are now public.
In addition, if the foreground activity is immersive then an update lock
will be held on its behalf.  This lets applications such as movie players
suppress the display of intrusive notifications, OTA-availability dialogs,
and the like while they are displaying content that ought not to be
rudely interrupted.

The update lock aspect of this mode is *advisory*, not binding -- the
update mechanism is not actually constrained; it simply uses this information
in deciding whether/when to prompt the user.  It's more a guideline than
a rule.

Bug 7681380

Change-Id: I3c412a84cbf3933e3bf0168f2c71c54a86e4b7e5
2012-12-10 18:40:57 -08:00
Sascha Prueter
961ce2afbf am 2588648b: am 203f69f0: Merge "Call setSize to sync Surface to SurfaceFlinger. DO NOT MERGE" into jb-mr1.1-dev
* commit '2588648b5268526bdc9ed7fb4e9eac36c8c693dc':
  Call setSize to sync Surface to SurfaceFlinger. DO NOT MERGE
2012-12-07 12:40:32 -08:00
Craig Mautner
4abf3f987f Call setSize to sync Surface to SurfaceFlinger. DO NOT MERGE
RecentsActivity screenshots are called for very quickly after
WindowStateAnimator prepareSurface(). Without enough delay the
Surface.setLayer call does not propagate to the SurfaceFlinger
and the screenshot is incorrect (black) because it stops sampling
the layers too early.

This fix calls Surface.setSize() for each sampled Surface in
screenshots. setSize forces the SurfaceFlinger to process all
transactions queued before returning from closeTransaction.

Bug 7552304 fixed.

Change-Id: I1911dfa0b09cab713c55f5ba0c612496337a77df

Conflicts:

	services/java/com/android/server/wm/WindowManagerService.java
2012-12-07 11:21:35 -08: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
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
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
675814d488 Merge "Maybe fix issue #7596986: Frequent runtime restarts; IAE at..." into jb-mr1.1-dev 2012-11-30 10:42:15 -08:00
Dianne Hackborn
db69db1510 am b8d8562c: am 40ca751b: am ebec2315: Merge "Always report user switched after unfreezing screen." into jb-mr1.1-dev
* commit 'b8d8562cc36e5ab2f8b8c5adfd8d4839fe0909d3':
  Always report user switched after unfreezing screen.
2012-11-29 16:47:16 -08:00
Dianne Hackborn
b8d8562cc3 am 40ca751b: am ebec2315: Merge "Always report user switched after unfreezing screen." into jb-mr1.1-dev
* commit '40ca751ba0980685ce03bc3b6877b5f8163b30a5':
  Always report user switched after unfreezing screen.
2012-11-29 16:44:14 -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
Dianne Hackborn
4d78abfca7 Always report user switched after unfreezing screen.
Change-Id: I58172896892a07e72a3430e56e4d2944d388c7c9
2012-11-29 15:10:18 -08:00
Dianne Hackborn
36893b16ce am 221d59f7: am afdd978c: am 68e0da7e: Merge "Quiet down a lot of logging." into jb-mr1.1-dev
* commit '221d59f723584d316ea225bdaf1bc75cbfd7a794':
  Quiet down a lot of logging.
2012-11-29 14:32:25 -08:00
Dianne Hackborn
221d59f723 am afdd978c: am 68e0da7e: Merge "Quiet down a lot of logging." into jb-mr1.1-dev
* commit 'afdd978ccd8d45ac789873dd4cf0ab0dd3f46d20':
  Quiet down a lot of logging.
2012-11-29 14:25:40 -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
Dianne Hackborn
816a5d9c27 am 360acd03: am 78551bc7: am ba4ac518: Merge "Improve debugging for issue #7586414: AlarmManager wakelocks held" into jb-mr1.1-dev
* commit '360acd03bfe0d597ee845d2392d715633a89e12b':
  Improve debugging for issue #7586414: AlarmManager wakelocks held
2012-11-27 17:34:11 -08:00
Winson Chung
fb8ca912e8 am d0079891: am 9f6e8ddf: am 2b847c39: Merge "Removing unecessary additional lock metadata from QuickSettings user tile." into jb-mr1.1-dev
* commit 'd0079891e3a8034f560eaf88d5be692b61ca4b9a':
  Removing unecessary additional lock metadata from QuickSettings user tile.
2012-11-27 17:33:46 -08:00
Dianne Hackborn
360acd03bf am 78551bc7: am ba4ac518: Merge "Improve debugging for issue #7586414: AlarmManager wakelocks held" into jb-mr1.1-dev
* commit '78551bc7d5541c86503b32db0e3e2564218bf179':
  Improve debugging for issue #7586414: AlarmManager wakelocks held
2012-11-27 11:36:34 -08:00
Winson Chung
d0079891e3 am 9f6e8ddf: am 2b847c39: Merge "Removing unecessary additional lock metadata from QuickSettings user tile." into jb-mr1.1-dev
* commit '9f6e8ddf5d48a695b26f1d9759696b56952177bd':
  Removing unecessary additional lock metadata from QuickSettings user tile.
2012-11-27 11:36:13 -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
Winson Chung
f7614fc744 Removing unecessary additional lock metadata from QuickSettings user tile.
Change-Id: I89ec94385eb3cdd46ad6942bf8989fb04d5c0370
2012-11-26 14:44:03 -08:00
Jeff Sharkey
0ace4de5c2 am f838eb40: am fa0fb7c5: am f6ba84b4: Merge "Reduce verbosity of service event logging." into jb-mr1.1-dev
* commit 'f838eb40e8f53263c10d251ec4ec72f167f82541':
  Reduce verbosity of service event logging.
2012-11-16 10:37:42 -08:00
Jeff Sharkey
f838eb40e8 am fa0fb7c5: am f6ba84b4: Merge "Reduce verbosity of service event logging." into jb-mr1.1-dev
* commit 'fa0fb7c508dfa4275389a52b7c7907d2032f4aaa':
  Reduce verbosity of service event logging.
2012-11-15 11:51:45 -08:00
Jeff Sharkey
f6ba84b424 Merge "Reduce verbosity of service event logging." into jb-mr1.1-dev 2012-11-15 11:44:13 -08:00
Jeff Sharkey
ec14d78cfa am 1aa4f6fe: am 5691474c: am ad08e6dc: Merge "Emit event log message when switching users." into jb-mr1.1-dev
* commit '1aa4f6fe7e150fb60c5f28a9c4dd8ad6fb06984a':
  Emit event log message when switching users.
2012-11-09 22:49:38 -08:00
Jeff Sharkey
1aa4f6fe7e am 5691474c: am ad08e6dc: Merge "Emit event log message when switching users." into jb-mr1.1-dev
* commit '5691474c9cbaeb37eeb659a3adbc05d31d668611':
  Emit event log message when switching users.
2012-11-09 22:45:33 -08:00
Jeff Sharkey
9d6d890e0d Reduce verbosity of service event logging.
Omits service name from destroyed events, since it can be derived by
looking back to the created event with the same ServiceRecord.

Change-Id: Ib7ab1031c0859437735e1fc985d58f47629b7ac4
2012-11-09 17:32:43 -08:00
Jeff Sharkey
86597df79f Emit event log message when switching users.
Change-Id: I8e521e177b0e17e2ab9e033e0ff8bc421cd5f784
2012-11-09 15:09:13 -08:00
Kenny Root
7b172a49a9 am 58ed5d74: am 768d9e1a: Merge "Correct executable bit for source files"
* commit '58ed5d748c0b9b64845975ef5844ad313de7c3f6':
  Correct executable bit for source files
2012-11-07 13:08:25 -08:00
Kenny Root
58ed5d748c am 768d9e1a: Merge "Correct executable bit for source files"
* commit '768d9e1a72ceee7d4a5f608776b87b62d6ce4a04':
  Correct executable bit for source files
2012-11-07 11:52:12 -08:00
Kenny Root
3a084af2e9 Correct executable bit for source files
Many media files and source code files were marked as executable in Git.
Remove those.

Also a shell script and python script were not marked as executable.

Change-Id: Ieb51bafb46c895a21d2e83696f5a901ba752b2c5
2012-11-07 10:27:31 -08:00
Amith Yamasani
7644dbc051 am d02f2313: am 47ece2e5: am 03f7ebfe: Merge "Relax permission requirements for posting notifications across users" into jb-mr1-dev
* commit 'd02f231318014925bead88ce9408c3c37f9a0e8b':
  Relax permission requirements for posting notifications across users
2012-10-31 13:14:30 -07:00
Amith Yamasani
2c7ebeae9f Relax permission requirements for posting notifications across users
Bug: 7430689
Change-Id: I2430b20137705ed2d6dc0f870690acda0662392b
2012-10-30 16:12:54 -07:00
Dianne Hackborn
9221792e0b am e9c9a4ce: am 619eea60: am ecf4725e: Merge "Fix issue #7401818: Wrong transition animation when clearing task" into jb-mr1-dev
* commit 'e9c9a4ce9e9766b8950f34adeedeb7705cadf71e':
  Fix issue #7401818: Wrong transition animation when clearing task
2012-10-24 10:36:30 -07:00
Dianne Hackborn
9622ca4f88 Fix issue #7401818: Wrong transition animation when clearing task
When we are clearing activities off the top of a task, propagate
any activity options down from the top-most one to whatever top
activity we are keeping.  This ensures that if we set the activity
options on the top activity of the task previously to give it the
correct animation, we still keep that animation for the activity
that really ends up being the top.

Change-Id: I6919b644a530ac283fe4d320496edc2bf72aa04e
2012-10-23 18:56:33 -07:00
Jeff Sharkey
b36d3e7614 am f1ad6d5b: am 93b17876: am 5831159b: Merge "More migration to Global settings." into jb-mr1-dev
* commit 'f1ad6d5b79edc4d171700233edcb9b5cdf3937e1':
  More migration to Global settings.
2012-10-18 23:31:20 -07:00
Jeff Sharkey
8d9a1f66d9 More migration to Global settings.
Bug: 7375796
Change-Id: I3954ce141ad30073896090a28eee743ba15fd736
2012-10-18 15:38:14 -07:00
Christopher Tate
597ea5b3cd am d9466f94: am 2f296598: am 1ea75b88: Merge "Sanity-check erroneous backup agent instantiations" into jb-mr1-dev
* commit 'd9466f940ae3f04f8efede13b876d5968ff0e820':
  Sanity-check erroneous backup agent instantiations
2012-10-18 12:25:19 -07:00