Most of the methods in the interface IHdmiCecService should be implemented
based on the device type. This CL makes a change such that the HdmiCecDevice
just has stub methods that should be overriden by subclasses.
Other changes:
- Fixed a bug of <Inactive Source> not sending its physical address
in its message body. Also the command should have been sent to TV
only rather than broadcast.
- Put back sendGiveDevicePowerStatus interface method. It allows the client
to keep track of the other device(like TV) power status more closely.
Devices goes through the status from standby -> transient to on -> on
but the CEC spec doesn't require that they broacast it actively.
The restored method can be used to let the playback device to get
up-to-date power status of TV/display when it is booting up.
This method should work the same across all the device types. So it was
implemented in the service, not delegated to HdmiCecDevice.
- Send <Report Physical Address> when a new logical device is registered,
which is required by CEC spec: "it should report the association between
its logical and physical address by broadcasting <Report Physical
Address>
Change-Id: Iac1d2cf5783d947f2dcd6965a54670fbdb8e6a63
Declare a new method, Display.getState() to retrieve the actual
power state of a display.
Improved documentation for Intent.ACTION_SCREEN_ON and
Intent.ACTION_SCREEN_OFF to clarify what they really mean in
terms of the interactive state of the device.
Deprecated PowerManager.isScreenOn() and replaced it with
PowerManager.isInteractive() with a more suggestive name and
better documentation.
Redirect display power state changes to go through the display
manager first and only then head over to the power manager for
legacy compatibility.
Eliminated the bright here and woke here policy flags since they
were unused. Simplified the input dispatch policy somewhat.
Ensure that screen wake locks are respected up until the point
when dozing really begins.
Fixed a regression in DreamService where onDreamingStarted
might be called before onWindowAttached.
Bug: 13133142
Bug: 13472578
Bug: 13929355
Bug: 13760290
Change-Id: Iabef96921dd554ce3768fb18619cefc3230b5fb0
This patch uses the NativeLibraryHelper class to
match native libraries in an .apk package with
those listed in 'ro.cpu.abilist' property.
The result is stored in packages.xml and the
ApplicationInfo class.
This information will be used by the ActivityManager
to decide which zygote to use to launch the given
app.
Change-Id: I3ec3d050996d8f4621f286ca331b9ad47ea26fa0
We now use a two step approach :
- First we look through the list of shared libraries in an
APK, and choose an ABI based on the (priority) list of ABIs
a given device supports.
- Then we look through the list of shared libraries and copy
all shared libraries that match the ABI we've selected.
This fixes a long-standing bug where we would sometimes copy
a mixture of different ABIs to the device, and also allows us
to clearly pick an ABI to run an app with.
The code in NativeLibraryHelper has been refactored so that all
file name validation & matching logic is done in a single place
(NativeLibrariesIterator). This allows us to avoid a lot of
redundant logic and straightens out a few corner cases (for eg.
where the abi determination & copying logic do not agree on
what files to skip).
bug: https://code.google.com/p/android/issues/detail?id=65053
bug: 13647418
Change-Id: I34d08353f24115b0f6b800a7eda3ac427fa25fef
Co-Authored-By: Zhenghua Wang <zhenghua.wang0923@gmail.com>
Co-Authored-By: Ramin Zaghi <ramin.zaghi@arm.com>
Co-Authored-By: Narayan Kamath <narayan@google.com>
This is a little bit of refactoring in preparation for changing how
the power manager notifies system components about changes in power
state.
Deleted the startRunning method since it is no longer useful.
Bug: 13133142
Change-Id: I7f845c61ecc7ee890154ed0cbd90795de609b7ea
This refactoring is in preparation for enabling the display manager
to have more control over the blanking state of individual displays.
There are no functional changes. Some bits will be cleaned up in
a subsequent patch.
Bug: 13133142
Change-Id: Ib811835e8757449c7899ac61807029baaf998161
Symptom: ANR report on wrong activity.
Root Cause:
KK changed resume behavior that will not update focus when only resume,
if the activity blocked, it may report ANR on previous focus.
By original concept, it will try to correct the ANR target,
but the stack of waiting(waitingVisible=true) activity may
different with current top stack.
If it gets key dispatch timeout, mResumedActivity and mPausingActivity
of its stack will be null becuase it is not top stack.
Then it is unable to change ANR target to the real no response activity.
Solution:
Use focused stack to get the real culprit.
Reproduce steps:
1.Launch an Activity X from launcher, press home key.
2.Launch X from launcher again, X blocks(sleeps 15sec) in onResume, press back key in the beginning of blocking duration.
3.ANR dialog shows launcher is no response.
Change-Id: I99416ad91e349096f995990f2240a97616fbaf28
Previously OSD name was based on device type. This CL makes it
independent of device type. CEC spec says "A device that implements
more than one type of CEC functionality should respond with the same
OSD name for each logical address. It is recommended that the name
refers to the complete physical product rather than the individual
CEC functionality".
Now the default name comes from system build property. I removed
setOsdName() from aidl for now since it won't be in use.
Change-Id: I3c9fb877fad4bc5efef56268d155a3f37a865fc2
The Zygote class is now in com.android.internal.os. It is
responsible for the vast majority of work before and after
the call to fork(). It calls back into the Runtime via
the new dalvik.system.ZygoteHooks class to allow the Runtime
to perform pre fork cleanup and post fork initialization.
The native code in Zygote.cpp is a direct and straightforward
port of the existing code in art. Most differences are
superficial, for example :
- We use C style logging (ALOGE) instead of stream based
logging.
- We call env->FatalError() instead of using LOG(FATAL)
Change-Id: Ia101fb2af12d23894fe57e4134d2bc6d142e5059
With this CL, the power status of TV/display is keep tracked of
by hdmi cec server part, specfically HdmiCecDevicePlayback.
Turned the HdmiCecDevice to abstract class from which classes of
concrete device type(HdmiCecDevicePlayback, HdmiCecDeviceTV) are
inherited. The display power status code is put in HdmiCecDevicePlayback
only. HdmiCecDeviceTv will have its own logic that manages power status of
devices connected to it. For now it only has a bare minimum code.
Will be worked on in follow up CLs.
Other changes:
- Replaced sendGiveDevicePowerStatus() with isTvOn() so that the status
can be queried by clients.
- Defensively check the availability of HdmiCecService so that
HdmiCecManager.getClient() returns null in case the service couldn't
be initialized. This ensures clients of the service gets the nulled-out
HdmiCecClient when called in the state/configuration where the service
is not available, thus proceed accordingly.
Change-Id: Idaf69e73cfbd639c0b40b1bd4b6146f011246180
This isn't a straightforward conflict resolution. This code
has changed significantly. mSafeMode is now a flag on the activity
manager service, and is set when SystemServer calls enterSafeMode.
Change-Id: I1e8ff524566c5e44bb6bf3b138cdebb70004aca3
This field is written and read exclusively by the system server,
and should therefore belong to the SystemServer class.
Change-Id: I2708a9a45c0c9cd1a6f563e8cc5844bd8c424bf7
* commit '155e3133407e590f18e7e16eddc6fc743f35b0fd':
[ActivityManager] Fix a bug: unable to start activity after starting activities during screen off.
* commit 'f10d0399bf5f519dff414a9d195a0eaacb37f9b7':
Made secure-adb's new-public-key activity configurable. Some devices do not have lockscreens themselves, so the plan is to have them do RPCs to companion devices that can have lockscreens, for allowing or rejecting unwhitelisted adb public keys.