11932 Commits

Author SHA1 Message Date
Dianne Hackborn
8eea0fcd3b Add a new process state for "service restarting".
This is a process that is not actually running, but would be
if we had enough RAM.

Also rework how service stats are stored to used the nice
compact structure we are already using for processes.

And fix a bug where when we committed the current state data,
we would mistakenly write it under the name of the *next* state
that is now starting.  Ouch.

Change-Id: I9f2b84b8b3f305301fd48dcd9d4e6c232abe8ef9
2013-08-05 14:19:44 -07:00
Jeff Brown
33041bd903 Add debug message to help diagnose a presentation bug.
Bug: 10154780
Change-Id: I0e711a6316cb231ec48fc31d87b8cbd5d857c2f8
2013-08-02 21:11:14 -07:00
Jeff Brown
7d00affce6 Support public virtual displays.
Refactor the new private virtual display API to also support
creating public virtual displays with various characteristics.
This feature requires special permissions and is only intended
for use by the system.

Change-Id: I44dd19f37cf76ea6d6e313afe42f4a412bd96663
2013-08-02 21:11:07 -07:00
Jeff Brown
040f44d0eb Add support for secure overlay displays for development.
Change-Id: I426115ec5a3fbda52a481097731abc8b3d9013a4
2013-08-02 19:44:19 -07:00
Brian Carlstrom
c5e32ef628 Merge "Teach PackageManager to skip core-libart.jar" 2013-08-02 23:58:42 +00:00
Svetoslav Ganov
bb9b300787 Merge " First cut of the print notifications." 2013-08-02 21:24:38 +00:00
Svetoslav Ganov
4d79d7821d Merge "Revert "ssss"" 2013-08-02 21:22:59 +00:00
Svetoslav Ganov
8c43376ea8 First cut of the print notifications.
1. Added notifications for a queued print job, for a started print job,
       for ongoing canceling a print job, and for a failed print job. The
       notifications for queued and started state have a cancel action. The
       notification for failed print job has a cancel and a restart action.

    2. Propagating failure message from the print service to the notifications.

    3. PrintJobConfigActivity was not setting the initial value for the
       print job copies and was not updating the UI immediately after creation.

    4. Refactored PrintJobConfigActivity to avoid using the hack to avoid
       reaction for item selection change in a spinner for an event that
       happened before the callback was registered.

    5. Removed the label attribute from PrinterInfo and now PrinterId is
       composed of the printer name and the service component name. This
       is nice since for restarting print jobs we do not need to store
       information about the printer except the printer id which is
       already part of the PrintJobInfo's data. Also the printer name
       is not expected to change anyway.

    6. Allowing cancellation of a queued print job. Also no print job is
       cancelled without asking the managing print service to do that.
       Before we were immediately canceling print jobs in queued state
       but it was possible for a buggy print service to not set the
       print job state to started before starting to do expensive work
       that will not be canceled.

    7. PrintServiceInfo was throwing an exception the the meta-data
       XML for the print service was not well-formed which would crash
       the system process. Now we just ignore not well-formed meta-data.

    8. Removed unused permissions from the PrintSpooler's manifest.

Change-Id: Iba2dd14b487f56e137b90d1da17c3033422ab5e6
2013-08-02 14:22:22 -07:00
Svetoslav Ganov
e67b5e314f Revert "ssss"
This reverts commit 650f0ee31bbd2a23dc64b60caba3a52e7665398c.

Change-Id: Iae83ca6ccb7feccb74069bf09cfb3150c03ec710
2013-08-02 21:19:37 +00:00
Svetoslav Ganov
d347168f50 Merge "ssss" 2013-08-02 21:15:36 +00:00
Dave Burke
aa3b0ff3e1 am 0eab98dd: am 019f4385: am 7925e7cc: Merge "Revert "Add version identifier to app ops."" into jb-mr2-dev
* commit '0eab98dd24b3a4272d5e9a41f353071f8508ec2a':
  Revert "Add version identifier to app ops."
2013-08-02 13:44:17 -07:00
Dave Burke
0eab98dd24 am 019f4385: am 7925e7cc: Merge "Revert "Add version identifier to app ops."" into jb-mr2-dev
* commit '019f4385d17234324db23521149e1f1cb6d7d061':
  Revert "Add version identifier to app ops."
2013-08-02 13:42:03 -07:00
Dave Burke
7925e7cc08 Merge "Revert "Add version identifier to app ops."" into jb-mr2-dev 2013-08-02 20:36:28 +00:00
Svetoslav Ganov
650f0ee31b ssss
Change-Id: I001c2ae5bc6caeac7e1a2223e221be69f6e6cb6c
2013-08-02 13:31:20 -07:00
Dave Burke
0997c5bd79 Revert "Add version identifier to app ops."
This reverts commit 483a6bbfc118409b9c46b226cf0aa6afdc4d9159.

Change-Id: I91d6b8b8d1789089bf9764e734f7fe59d03151a2
2013-08-02 20:25:02 +00:00
David Christie
474daa2b78 Merge "Add WorkSource capability to AlarmManager." 2013-08-02 17:17:38 +00:00
Satoshi Kataoka
02260e2141 Add a comment on the spell checker framework
Change-Id: Ibd826d68074d8524cbeaae296ce483f8b10c3d07
2013-08-02 16:22:04 +09:00
Dianne Hackborn
2fc3245537 Merge "Try to improve PSS collection." 2013-08-02 03:34:06 +00:00
Dianne Hackborn
f1cca18ae4 Try to improve PSS collection.
The goal is to collect PSS data from processes when they
are in as stable a state as possible.  We now have tables
for the durations to use for PSS collection based on
process state, and scheduling of collection is all driven
by process state changes.

Change-Id: I95e076f6971b9c093118e53dc8240fb3f5bad3b2
2013-08-01 20:28:36 -07:00
David Christie
40e5782f5c Allow a particular LocationRequest to be excluded from
AppOps monitoring as long as the client as the appropriate
permission (UPDATE_DEVICE_STATS).

Change-Id: I7223a53bc1551e6498302a22eb310c8c5b5684b0
2013-08-01 14:31:48 -07:00
Sascha Prueter
930524ade2 am 95990fe4: am aa268f8f: am d364859c: Merge "Add version identifier to app ops." into jb-mr2-dev
* commit '95990fe4c38641ea574efe9224ae279db61cde0f':
  Add version identifier to app ops.
2013-08-01 13:59:09 -07:00
Sascha Prueter
95990fe4c3 am aa268f8f: am d364859c: Merge "Add version identifier to app ops." into jb-mr2-dev
* commit 'aa268f8fb2855335fc0d4f181cbf91505448e5eb':
  Add version identifier to app ops.
2013-08-01 13:55:43 -07:00
Brian Carlstrom
b33278f876 Teach PackageManager to skip core-libart.jar
A little grossness for now to support dual booting Dalvik and Art.

While I was here, removed isDexOptNeeded calls for boot class path which already return false.

Change-Id: Iaaaf21b7733c1791e7bd8ae27e84c47463f9e9c9
2013-08-01 13:55:07 -07:00
Sascha Prueter
d364859ce6 Merge "Add version identifier to app ops." into jb-mr2-dev 2013-08-01 20:50:02 +00:00
David Christie
ebe51fc0d8 Add WorkSource capability to AlarmManager.
Change-Id: I663ea3078d405f0fa667a04bdaa376ae6652e994
2013-08-01 13:22:40 -07:00
David Christie
e1f886f5e3 Merge "Add new app op to monitor high power location requests." 2013-08-01 19:24:53 +00:00
Dianne Hackborn
483a6bbfc1 Add version identifier to app ops.
All old versions drop their modes except for the notification op
(which is the only one there is currently a user-visible control for).

Change-Id: I9e09cebe63e9ea81f2adc01aef7d1a5a59f57a56
2013-08-01 11:15:04 -07:00
Daniel Sandler
87d01e9e83 am 9e6f26a8: am f3e2f8fe: am 9eb434c3: Allow the user to block notifications for foreground services.
* commit '9e6f26a8e1e69b1c49676d60a5ebe36c0a0f23f9':
  Allow the user to block notifications for foreground services.
2013-08-01 09:35:16 -07:00
Daniel Sandler
9e6f26a8e1 am f3e2f8fe: am 9eb434c3: Allow the user to block notifications for foreground services.
* commit 'f3e2f8feef1a22708cc7ce1a7bc5d914bb53933d':
  Allow the user to block notifications for foreground services.
2013-08-01 09:32:40 -07:00
Jean-Michel Trivi
5813f240ec Merge "Notification muting conditional to exclusive audio focus request" 2013-08-01 16:07:08 +00:00
Lorenzo Colitti
e1cd293151 Merge "Add accessors for all addresses and clarify compare* methods" 2013-08-01 06:44:29 +00:00
Daniel Sandler
9eb434c389 Allow the user to block notifications for foreground services.
Stepping carefully around the fix in change Idc788527, we
perform security (and AppOps, and therefore user block)
checks against the uid passed to enqueueNotificationInternal
rather than the Binder caller.

Bug: 9502541
Change-Id: I91745db92823381df75721c1b8f11013a7fa4ecc
2013-08-01 00:44:57 -04:00
Satoshi Kataoka
fd5d153af8 Merge "Add a debug utility for InputMethodUtils" 2013-08-01 03:12:35 +00:00
Satoshi Kataoka
87c2914215 Add a debug utility for InputMethodUtils
Change-Id: I59f6001bf20640e36e19b09cf117b8579120ba7d
2013-08-01 11:57:27 +09:00
Svetoslav Ganov
53672be110 Merge "Iteration of the print sub-system." 2013-08-01 02:16:20 +00:00
Svetoslav Ganov
55b409a97c Iteration of the print sub-system.
1. Added APIs for adding partially initialized PrintInfo objects
   enabling light-weight lookps for print serivces that want to
   populate the list of available printers without querying each
   of them for its capabilities. This includes APIs for the system
   to request from a print service to update certain printers.

2. Fixed a bug in PrinterId#equals().

3. Added equals and hasCode implementaion to PrinterInfo. Also
   the defaul in PrinterInfo are now an array instead of a
   SparseArray - cheaper.

4. Now PrintJobConfigActivity works with partially specified
   printers. Specifically, if such a printer is selected the
   activity is requesting from the print service to update
   the printer. We are currently not handling the timeout case.
   It also handles udpated pritners.

Change-Id: I5e83e924ef597c9e22cbd06a971d4f4d3bd3a9c1
2013-07-31 18:59:53 -07:00
Svetoslav Ganov
9f1ef00265 Merge "Iteration on the print sub-system." 2013-08-01 00:13:44 +00:00
Wink Saville
552436d17b Merge "Fix excessive log spew." 2013-07-31 23:27:34 +00:00
Wink Saville
1aef7fc81a Fix excessive log spew.
Bug: 10115060
Change-Id: I61fd83071da1224f38757b8d90f58c8d6c41d36b
2013-07-31 15:49:04 -07:00
Jean-Michel Trivi
2380566deb Notification muting conditional to exclusive audio focus request
Summary of feature:
Do not mute notifications when speech recognition recording is
  active, but when an app has requested audio focus with
  AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE.

Implementation:
Move definition of AUDIOFOCUS_NONE to AudioManager where other
  audio focus codes are defined.
Add support for querying the current audio focus type.
When audio focus is requested as GAIN_TRANSIENT_EXCLUSIVE, make
  the corresponding loss by LOSS_TRANSIENT.
Before playing a notification, check whether GAIN_TRANSIENT_EXCLUSIVE
  has been requested.

Bug 8251963

Change-Id: I41edc77326b70639d2fdcb4642c53109995b72a8
2013-07-31 14:37:19 -07:00
Dianne Hackborn
5b45f2366e am bd61ba5b: am a99cb5bc: (DO NOT MERGE) Fix pub issue #58043: Copy crash in Android 4.3...
* commit 'bd61ba5b22f55a70615e128310d365c6175a0a4e':
  (DO NOT MERGE) Fix pub issue #58043: Copy crash in Android 4.3...
2013-07-31 14:18:06 -07:00
Dianne Hackborn
a99cb5bc41 (DO NOT MERGE) Fix pub issue #58043: Copy crash in Android 4.3...
...when clipboard listener attached

We need to clear the calling identity before dispatching change
notifications.  Also make this more robust, so that in the face
of any failure we will clean up the broadcast state.

Integrated from master.

Change-Id: I05e1f76ffd486439535631fe4062dabe94bd2ccf
2013-07-31 13:48:39 -07:00
Christopher Tate
20f170d6af Don't try to do the work if there isn't any data.
Bug 10056484

Change-Id: I527f592b0bb91bfbfff1d52c3327fe9e2ac53471
2013-07-31 13:01:02 -07:00
Lorenzo Colitti
d1e0fae2bc Add accessors for all addresses and clarify compare* methods
1. Add a method to return all addresses and all LinkAddresses on
   all links (both base links and stacked links). We already had
   one for routes, but did not yet have any for addresses.
2. Rename compareRoutes to compareAllRoutes, because unlike the
   other compare* methods, it looks at all interfaces. Update
   what appears to be its only caller.
3. Update the documentation of the compare* methods to match
   reality (they don't return lists) and clarify whether they
   look at all links or only the base link.

Change-Id: Ie22e6c7f163d5de8e407248b45171dc28382d2d3
2013-08-01 00:21:24 +09:00
Satoshi Kataoka
0766eb045c Small refactor on InputMethodUtils
Change-Id: Ie4f797508c02abb13c7fe1be162ec4dc18829925
2013-07-31 18:33:48 +09:00
Dianne Hackborn
2841e0afac Merge "If you set an alarm before the epoch, you're gonna have a bad time" 2013-07-31 02:07:26 +00:00
Christopher Tate
5f221e8f93 If you set an alarm before the epoch, you're gonna have a bad time
For apps build against the KLP+ SDK, this will now throw an illegal argument
exception.  Legacy apps will simply see the alarm delivered immediately.

Bug 9965704

Change-Id: Ia103d9529d32640098be324820fe228efa95431d
2013-07-30 18:55:01 -07:00
Svetoslav Ganov
85b1f88305 Iteration on the print sub-system.
1.  API changes: Moved copies API from PrintAttributes to PrintJobInfo;
    Changed the PageRange list to an array in PrintDocumentAdapter#onWrite;
    Added onCancelled method to the layout and write callbacks.

2.  Refactored the serialization of remote layout and write commands. Now
    the commands are serialized by the code in the client instead in the spooler.
    The benefit is simple code since the client has to do a serialization to delegate
    to the main thread anyway. The increased IPC found is fine since these calls
    are quite unfrequent.

3.  Removed an unused file: IPrintSpoolerObserver.aidl

4.  Added equals and hasCode implementation to PageRange, PrintAttributes,
    MediaSize, Resolution, Margins, Tray, PrintDocumentInfo.

5.  Added shortcut path for query APIs on PrintJob that return cached values
    if the print job is in a uncuttable state, i.e. completed or cancelled. Failed
    print jobs can be restarted.

6.  PrintJobInfo was not properly serialized.

7.  Updated the look of the print dialog to be stable if there is and there isn't
    currently selected printer.

8.  PrintJobCOnfigActivity now calls onLayout on every print attributes change
    but requests a write only on print preview or print button press. Also if the
    layout did not change the content and it is already written no subsequent
    call is made. Also if the selected pages change and we already have them
    no subsequent call to write is made. Also the app is called with print preview
    attribute set when performing layout and with it cleared after the print button
    is pressed. A lot of changes making sure that only valid actions are enabled
    in the activity (looks like a dialog) at a given time frame. The print job config
    activity is also hidden after we got all the data, i.e. layout and write are done.

9.  The callback from the print spooler to the system are scheduled via messages
    to avoid lock being held during the call. It was hard to guarantee that since a
    method holding a lock may be calling one that would like to release the lock
    at some point to make the callbacks.

10. Print spooler state is persisted only if something changes in a completed
    print job, i.e. not one that is being constructed due the print job config dialog.

11. Fixed a potential race in the RemotePrintSpooler where it was possible that
    a client that got a handle to the remote spooler calls into an unbound spooler.
    E.g: the client gets the remote interface with a lock held, now the client releases
    the lock to avoid IPC with a lock, during the IPC scheduling the spooler has
    notified the system that it is done and the system unbinds from it, now the
    client's IPC is made to a spooler that is disconnected.

Change-Id: Ie9c42255940a27ecaed21a4d326a663a4788ac9d
2013-07-30 17:15:11 -07:00
David Christie
0b83745019 Add new app op to monitor high power location requests.
This is a new op parallel to the existing OP_MONITOR_LOCATION
but only tracks those requests deemed to be above a
power threshold.

Change-Id: I76fe4d9d2e550293b9da6d5cf902a5b4dd499f0f
2013-07-30 14:59:33 -07:00
Dianne Hackborn
805f52d4cf Report more memory tuning info.
Change-Id: I243d67189e325eba5ea22e79937f5a858dfceeed
2013-07-30 12:48:12 -07:00