Once all device discovery action is done if there is audio amplifier
on device list, it should trigger system audio initiation action.
On or off of system audio is decided by Tv's last audio setting
(speaker). If system audio was the last audio setting, it will
try to turn on system audio; otherwise will turn it off.
In other hands, SystemAudioStatusAction is added to update
system audio status (mute or volume) after
SystemAudioAutoInitiationAction. In fact, RequestArcAction has
almost same code as it has and will refactore RequesArcAction
in the following changes.
Change-Id: I3d591242e79549cb73e14546f0d057ba08f878ef
This change fixes a bug where native daemons may try to communicate
with the power manager before it was fully initialized due to a race
between publishing the binder service and completing init().
The solution was to simplify the dependencies related to the power
manager. It turns out that most services that were passed in
init are not actually needed until systemReady. What remained
was a dependency on the activity manager to check permissions for
incoming calls. So now we start activity manager first.
However, the activity manager also depends on power manager for
wakelocks. To break the cycle, we now defer initializing the activity
manager's wakelocks until after the power manager has been started.
Cleaned up a bunch of boot-time service dependencies so that we
can have better confidence that they are correctly maintained.
Bug: 13884219
Change-Id: If08e2d7ccd44e7026a72441bb6bd5afd7bb9fffe
We make sure in Keyguard that we only hide ourselves in
startKeyguardExitAnimation ourselves when we requested a hide.
In addition, this change also fixes a bug in WindowAnimator that
it should only call startKeyguardExitAnimation when Keyguard actually
requested a hide.
Bug: 15676717
Change-Id: I2279cccb9916985b7e9a2f41137878be5782cb9c
Introduces new ApplicationInfo fields to surface zero or more split
APKs for an application. Splice these APKs into both the class
loader and resource system. Cleaner building of these paths.
Run dexopt() on all split APKs found after a parse, and populate
into ApplicationInfo.
Change-Id: I4a376bf4492d84ea95aafa866e106ea43a43e492
When computing which windows to report for accessibility we were not
reporting windows behind non touchable ones. However, if a window is
not-touchable the touch events go to the window behind it. Hence, a
not-touchable window should not affect the reproted windows for
accessibility.
Change-Id: I213a32b33b0986a73d8bbdf0a3e40e6ca6e4261b
Everything that used the IdleMaintenance APIs/broadcasts gets to use the
spiffy new JobScheduler instead. Hooray!
On top of that, the now-obsolete "idle maintenance" APIs are now gone
entirely. Double hooray!
Bug 14993295
Change-Id: I5fb67c296ca8cd0ba8a2c8760a0f0d9d962d813b
Device polling requires both pick policy and pick iteration policy,
however, device discovery action has no iteration policy.
Along with fix, move send result and pick policy constants
to HdmiConstants package
Change-Id: Ibbcfdc482a189bbc3aa2c61143422541da78447d
Partial revert of earlier change that tried doing movedex() during
a package upgrade. Verified that the normal package upgrade path
already wipes old code as part of InstallArgs.cleanUpResourcesLI().
Change-Id: Icc5ae0d2718a0c494bfe7becf72df50c641efe1b
Since HdmiCecKeycode defines all keys used for Hdmi CEC,
simple HdmiCecKeycode sounds better than HdmiCecKeycodeTranslater.
Change-Id: I1a0ea9f128b19dd47bfda3bf2dd8794a9e42c6f8
Here is a list of changes on this. (R: rationale)
1. HdmiCecLocalDeviceTv takes over responsibilty of device info
management.
R: All devices infos are added or removed by only Tv's
device discovery and hot plug detection mecanism
2. Each HdmiCecLocalDevice manages FeatureAction and Cec
message cache.
R: There is no direct connection between actions that
are created in different device action. If there is
an same actions created from different local device,
they should be managed independently.
3. Active path and logical address is managed by
HdmiCecLocalDevice.
R: All device should know active path of current source.
4. All system audio & ARC features are handled by
HdmiCecLocalDeviceTv
R: In terms of ARC, theoretically, any device can be transmiter of
ARC but TV is the de facto device
On other hands, for system audio Tv is the recipeint
of request.
Change-Id: Iac9ff43fb41798ed4f94c61d23345fe5fe777fbb
Added following APIs in HdmiControlService:
- portSelect
- sendKeyEvent
- getPortInfo
- addDeviceEventListener
Some are not fleshed out yet. Will work on it in a follow up CL.
Change-Id: Ia8c635176c0378f6e8db589bf714d82bf21ce85d
It previously kept mPath separate from mScanPath for some very odd
edge cases around moving apps-on-SD. This changes it to always use
a single path, refactors moving to keep separate paths.
Refactors method names in PackageParser to be clearer about their
APK-versus-package relationship.
Beginnings of a split package parser. Instead of requiring that
callers check error codes when null, switch to always throwing on
parse errors, to require that callers deal with the error. Longer
term the entire parser should switch to this style, but its too
pervasive for a simple refactoring.
Change-Id: If071d8e55e46e56cc201fadfb51cb471713ae973
Don't trust mNotificationData being sorted consistently
at all times...which it actually should. But apparently isn't.
Instead of using binary search to find the previous instance of
the notification when it's updated, use a simple linear scan.
Bug: 15589158
Change-Id: I7a09d0c64e35bd1930b8992d19da1393f4e4bb4e
The dummy animation is a place holder. When the task stack is being
removed treating it as a true animation forced us through a path
where we deferred the detachment and made a call to tmpRemoveWindows.
Also replaced call to tmpRemoveWindows with a real remove windows
call. The tmpRemoveWindows call does not clean up the Session
and this leaves a surface on the screen.
Fixes bug 15591610.
Change-Id: I05f7bc276bfed2366bbcd8443c92a4bbbc8a4491
Remove uid before calling into Window Manager. Restore afterwards.
Check for null stack value before dereferencing.
Fixes bug 15591112.
Change-Id: Ida3de556940440162c91b8c1614d0f21e364abd8
- Do not call IActivityContainer.release() from
ActivityView.finalize() if it has already been called from
ActivityView.release(). Eliminates IBinder finalized Exception.
- Call ActivityRecord.makeFinishing() before calling ActivityStack.
destroyActivityLocked(). Forces call to scheduleDestroyActivity()
and eventually removeFromHistory(). Otherwise removeFromHistory()
is never called and window manager AppWindowTokens become orphans.
- Defer call to ActivityContainer.detachLocked() until all
activities have finished or timed out. Fixes problem where Display
is removed while activities are still launching.
- Call ActivityStackSupervisor.deleteActivityContainer() when all
activities have finished or timed out. Fixes orphaned
ActivityContainers.
Fixes bug 15450798.
Fixes bug 15484154.
Fixes bug 15383479.
Fixes bug 15316558.
Fixes bug 15168560.
Fixes bug 15143914.
Change-Id: Id3c641976b6f825458690f9ee063c07818b56f23
* commit '9f637d10959490c3a28e0f40330e97eb67e954d7':
Reduce notification service historical archive size to 1 for watches. To remove the memory footprint
There are many ways to initiate new device action
1. When receives <Report Physcial Address>
2. When receives <Active Source> from unregistered device.
If new device is audio system, it should start
ARC and system audio initiation action.
Along with this consolidate device remove actions.
Change-Id: I189afd8bec7270d6a1734a28632593b71932d9e8
Use HdmiPortInfo list to get the port ID from a given routing path,
and vice versa. This is useful when you need to get the HDMI port
to which a certain device is attached in its hierarchy by its routing
path.
Change-Id: If1e7e8fdd005671d4e1fbb04dc26b24885320a92