1. The UI of a printing app was freezing a little when calling the print
method since the print manager service was waiting for it to bind to the
print spooler which generated the print job id (and the initial print
job info really). Now the print manager service is responsible for job
id generation and does not not wait for the print spooler to spin. Hence,
the app UI is not blocked at all. Note that the print manager initiates
the binding to the spooler and as soon as it completes the spooler shows
the print UI which is hosted in its process. It is not possible to show
the print UI before the system is bound to the spooler since during this
binding the system passes a callback to the spooler so the latter can
talk to the system.
2. Changed the print job id to be an opaque class allowing us to vary the
way we generate print job ids in the future.
3. The queued print job state was hidden but the print job returned by the
print method of the print manager is in that state. Now now hidden.
4. We were incorrecly removing print job infos if they are completed or
cancelled. Doing that is problematic since the print job returned by
the print method allows the app to query for the job info after the
job has been say completed. Hence, an app can initiate printing and
get a print job whose state is "created" and hold onto it until after
the job is completed, now if the app asks for the print job info it
will get an info in "created" state even though the job is "completed"
since the spooler was not retaining the completed jobs. Now the spooler
removes the PDF files for the completed and cancelled print jobs but
keeps around the infos (also persisting them to disc) so it can answer
questions about them. On first boot or switch to a user we purge the
persisted print jobs in completed/cancelled state since they
are obsolete - no app can have a handle to them.
5. Removed the print method that takes a file since we have a public
PrintDocumentAdapter implementation for printing files. Once can
instantiate a PrintFileDocumentAdapter and pass it to the print
method. This class also allows overriding of the finish method to
know when the data is spooled and deleted the file if desired, etc.
6. Replaced the wrong code to slice a large list of parcelables to
use ParceledListSlice class.
bug:10748093
Change-Id: I1ebeeb47576e88fce550851cdd3e401fcede6e2b
Bug: 9520957
DevicePolicyManagerService will play dumb if the feature is not installed.
Continue to keep track of failed password attempts for keyguard's use.
Change-Id: I28d258dc09a8b4976b188da6f453d8daabcc4bdd
This way an application can automatically sunset its permission requests
when running on later versions of the OS where those permissions are no
longer relevant, but may be alarming to the user. A canonical example
is WRITE_EXTERNAL_STORAGE, which as of KLP becomes unnecessary for an app
to use the external storage volume solely for its own large-data needs,
without the need for actual file-system sharing among multiple apps.
Bug 9761041
Change-Id: I60130af3a108fe4a750c356038a1c8cb897e9c8b
1. Decrease transient navigation confirmation annoyance.
- Only use the power-key as a signal if we detect a screen-off
screen-on within a short threshold value.
- Auto-confirm if user performs the indicated gesture.
- Remember confirmation across reboots.
2. Update wording to new final wording. Remove now obsolete
short + long versions. Decrease message font temporarily
until the new platform toast redesign is finalized.
3. Remove pre-ship ImmersiveModeTesting debug helper.
Bug:10602929
Change-Id: I0bff826391058c7b282eeb61817b93b79de84893
We now have the activity manager kill long-running processes
during idle maintanence.
This involved adding some more information to the activity manager
about the current memory state, so that it could know if it really
should bother killing anything. While doing this, I also improved
how we determine when memory is getting low by better ignoring cases
where processes are going away for other reasons (such as now idle
maintenance). We now won't raise our memory state if either a process
is going away because we wanted it gone for another reason or the
total number of processes is not decreasing.
The idle maintanence killing also uses new per-process information
about whether the process has ever gone into the cached state since
the last idle maintenance, and the initial pss and current pss size
over its run time.
Change-Id: Iceaa7ffb2ad2015c33a64133a72a272b56dbad53
The Fade transition sets an initial alpha value of 0 when items are
appearing. This makes items invisible to start with, and then they
eventually fade in as part of the transition when the transition's
animation runs.
But if that animation/transition gets interrupted, or not started, then
the alpha value would not be restored, and the value would stay 0,
making the items invisible indefinitely. This is what was happening in
the action bar of the People app when performing a search.
The fix is to handle Transition and animation events to restore the alpha
to its true value when the transition completes, whether that
transition is canceled or not.
Issue #10726905 ActionBar weirdness in People app
Change-Id: Idb65fd8d471d2ac0a1ddc243fee00ae99f7e72d8
Transitions were leaking views due to TransitionsValues holding references
to views/parents. The references were fine, but the retention of the transition
objects themselves were not. There were a few different places that needed to
be plugged:
- clones were not making new copies of some fields, leading to caching references
in the original object (which was then cloned later to other clones)
- Visibility was using a persistent field to cache temporary values. This transition,
when cloned, would retain these instances, keeping references to views
- ViewTreeObserver had a bug that would leak listeners
Issue #10749071 Activity instance leak between TransitionManager and InputMethodManager
Change-Id: I1d5d457dc5e020c7b9e8392a95e3b2c488461119
1. If a print service does not export its activities for settings and
adding printers the print spooler ignores them instead of crashing.
Also if the service is not enabled its activities are now ignored.
2. Added a dedicated permission for a print service to optionally
protect its settings and add printer activities such that only the
system can bind to them.
3. Fixed a crash in the print dialog if its content is detached
from the window and animators are running.
bug:10680224
Change-Id: I20b57d6622a15f9b2352ba78d04c44e67b316a15
A recent change to ViewPropertyAnimator.withLayer() builds the layer
immediately after creating it. This works in general, but if the view
is not attached, buildLayer() throws an exception.
The fix is to ensure that the view is attached before calling buildLayer().
Issue #10750925 Dialer crashed and phone dropped while on call
Change-Id: I801c835a0f5cb81e159fe90c157c122cf2d0da01
* Add a way to enumerate all currently set keys in CameraMetadata
* Add a way to enumerate all available keys for CaptureRequest
* Add a way to enumerate all available keys for CaptureResult
* No way to enumerate all keys for CameraProperties, since it would be
identical to all the currently set keys.
Bug: 10360518
Change-Id: I3a90f8cc385db14a675e4ff876ae93d906ff06bf
A problem with transitions is causing various ActionBar icons to go
missing occasionally. This CL disables these transitions for now
to allow ActionBar to work as expected.
Issue #10726905 ActionBar weirdness in People app
Change-Id: I0cb774840ae84cbb733d65865f8c1b4c6d7490fa
- Move Face to be outer class. Enables Parcelable-izing it later.
- Add static public constants for field values.
- Add @hide constructors.
- Rename methods returning Point to have Position suffix.
- Add new key android.statistics.faces (CaptureResult#STATISTICS_FACES)
Bug: 10360518
Bug: 10549293
Change-Id: I067f06f0426114b2c3a3266ca7e00e6cb1d89046
When picking images or videos, hide the titles in recents, since the
thumbnails should speak for themselves. Also respect new flag that
allows a directory to request their titles be hidden.
Show directory icon hint in grid mode when showing a thumbnail, to
remind user it's a directory.
Filter directories out of recents. Hide most action bar icons on
phones, even when room. Only show drawer on first launch. Hide most
drawer headers to match spec.
Bug: 10710331
Change-Id: I0ef1973ddd62750f57345336388366eda1449720
This significantly reworks the logging we do when
all cached processes are killed:
- We now collect the list of processes in-place so we
have a snapshot of exactly when the low memory situation
happened.
- In that snapshot we include the key process state: oom
adj, proc state, adj reasons.
- The report then asynchronously collects pss information
for those processes.
- The ultimate data printed to the log looks like a mix
between the "dumpsys meminfo" and "dumpsys activity"
output. This code no longer uses "dumpsys meminfo"
itself, so some of that data is no longer included,
in particular pss organized by allocation type.
In doing this, I realized that the existing code that is
supposed to run "procstats" is not currently working. And
at that point I realized, really, when we are collecting
this pss data we'd really like to include all those native
processes using ghod-only-knows how much RAM. And guess
what, we have a list of processes available in
ProcessCpuTracker.
So we now also collect and print information for native
processes, and we also do this for "dumpsys meminfo" which
really seems like a good thing when we are printing summaries
of all pss and such.
I also improved the code for reading /proc/meminfo to be
able to load all the interesting fields from there, and
am now printing that as well.
Change-Id: I9e7d13e9c07a8249c7a7e12e5433973b2c0fdc11