- If a session is closed, and a new session is created immediately
afterwards, but then fails to be configured, the first session sees an
onUnconfigured call which it wasn't expecting, and throws an
exception on an internal thread, leading to app death.
Add a guard against this case.
- If the lower levels skip a frame (illegal per design), be slightly more
robust to that by accepting any successful result as the latest completed
frame, instead of just incrementing the completed frame count. This will
lead to missing results, but should allow shutdown, etc, to complete
cleanly.
- Convert TIMED_OUT error codes to CAMERA_ERROR CameraAccessExceptions.
This is a common error code returned by waitUntilIdle.
Also, improve debug logging to log a session ID with verbose logging,
and add a few verbose logs.
Bug: 16899526
Change-Id: I7a31f0a12effc2611e1f9c2408224ee82c37c912
...are killed over eagerly.
When the current foreground activity is moving to the background,
it was briefly going through the CACHED_ACTIVITY state before the
correct LAST_ACTIVITY state, allowing its bound service processes
to be killed (because they went in to the cached list). To solve
this, as long as a process has stopping activities, it won't go
lower than LAST_ACTIVITY.
Also fixed a problem where we could put a process in CACHED_EMPTY
instead of CACHED_ACTIVITY_CLIENT. There were a number of cases
in the binding flow and also the client process state transitions
where we would not correctly updateing the bound client activity
state.
And add some sanity code so that if a process hosting a
service is killed, and a client process of that service is in the
cached state, we kill the client process. This avoids situations
where we can start thrashing around in the cached list because we
are restarting process for no reason -- since they will just
continue to be cached.
Finally, tune the process LRU list to allow twice as many cached
activity processes (from 8 to 16), so we can make better use of
the RAM we have available these days.
Change-Id: Ib0cdf78c321cbb035259fc9dd6ee27b5ba1f90c5
Found a regression in volume handling. Previously we handled
volume commands as long as the media stream was active but we were only
handling them when there was an active session on L. This adds a check to
make sure we handle volume if anything is playing on the media stream.
bug:17498479
Change-Id: Iddd745c8a762cf7ebedb37f1b26fc934db01fba0
ActionBarContainer was setting the bounds of its background assuming the
visibility of the ActionBarView. But that view becomes GONE when the
ActionBarContextView is visible, causing artifacts such as wrong shadows
when resized (as in custom configuration changes).
Issue #17280341 Quantum: drop shadow on CAB has wrong width after rotation on L, when configuration change is handled by the app
Change-Id: I07e57f00e27b41d5370cb9440b35734a8ec10f3a
- Add an explicit power manager call to set the low power mode state,
instead of trying manage everything around a single setting.
- When low-power mode is triggered by falling below the configured
threshold, it does not update the setting.
- The "is-enabled" api returns setting || below configured trigger.
- Move the snooze management into the new api call.
- Callers (sysui + settings) updated to use the api instead of the
setting.
- Handles the case where the level does an unpowered leap out of the
low battery level. (Possible if powered in-between while the device
is off)
Bug:17460535
Change-Id: Ic030504c9cad9868a7137abbe837b170da37852b
The test is sending too much data to be signed, which should actually
fail, and does on Volantis. Apparently the other keymaster implementors
do something to pass it, because shamu and hammerhead pass, but the test
is wrong.
Change-Id: Ic616a551567d64f5d87d9607ceb08afa7be74f9d
* Add TelecommManager.getCallState (hidden API)
* Make TelephonyManager.getCallState call through to
TelecommManager, to be consistent with
TelephonyManager.ACTION_PHONE_STATE_CHANGED broadcasts for
overall call state. Telephony continues to manage call states for
individual subscriptions.
Bug: 17378767
Change-Id: Ia5e8b21df801ed3af4f6e14c110a72c92f077f88
Sometimes the pipe has been closed when it's thread tries to access
E AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: TransferPipe
E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.FileDescriptor android.os.ParcelFileDescriptor.getFileDescriptor()' on a null object reference
E AndroidRuntime: at com.android.internal.os.TransferPipe.run(TransferPipe.java:184)
E AndroidRuntime: at java.lang.Thread.run(Thread.java:818)
Change-Id: I0fcd4a3334b49972903f2cb0edb51323ba3f49e5
- Delay showing the bouncer and playing the entrance animation for a
couple of frames.
- Do not disable back button on the normal Keyguard. This makes the
entrance animation nicer and fixes some jank due to the need to
draw into both windows.
- Prevent setPadding(...) call when nothing changes. setPadding would
invalidate the padding for the whole view hierarchy, which results
in a slower measure() when setting the window to invisible.
Bug: 17419960
Change-Id: I4a239d4af40ad86875e4a0dd08473f19a5c9b961
To implement the new gel-cap shaped ripple I resurrected the
onDraw and setPressed methods from the KitKat implementation.
The KitKat animation timings were adjusted to match the material
ripple, but the structure of the animators is the same as KitKat.
Since the new ripple is drawn directly to the canvas, the references
to the KitKat background image were removed.
The LogInterpolator is copied from the framework Ripple
to match the material animation curves.
Bug: 17112935
Change-Id: If6a3eb92de794b526338166bf8cb096eb9764cf6