The ActivityView.startActivity method may defer calling
ActivityContainer.startActivity if the ActivityView is not yet
visible. If the activity being started doesn't have allowEmbedded
attribute set to true then the SecurityException will not be
thrown until the ActivityView is visible. In such a case the caller
of ActivityView.startActivity cannot catch the SecurityException.
This fix checks the attribute at the time ActivityView.startActivity
is called.
Fixes bug 14317210.
Change-Id: I7fff23e39b67a9a0aa1b2e555920d02ae38906d9
WallpaperManager should always do a null check on the service object.
SystemServer should always bring up the DevicePolicyManagerService,
and let the service do appropriate default no-ops if the feature
is not supported.
Change-Id: Iaaf12b60ed375fe2e341ec11faa10c9344d7d9da
Throw a SecurityException if it is not true for an activity launched
using ActivityContainer.startActivity().
Change-Id: Id1d70e630195a49a3eccdc64a0beccc420400332
Activities were associating with existing tasks when their
components matched. This was causing them to be launched
into existing stacks rather than into their ActivityView. Adding
these flags forces the launches to be in unique tasks on their
ActivityView.
Fixes bug 14252286.
Change-Id: I9ba65a4a2da198435748c0a17396d3f7f8c75f5e
Don't add the surface to the VirtualDisplay until the activity
has drawn. That will keep the TextureView from turning black.
Fixes bug 12821632.
Change-Id: Ia06e9f91be3e14ad724f735ae4e201ac798863a2
Major changes to maintain the VirtualDisplay across repeated
attach/detach cycles of an ActivityView. This keeps the activities
and VirtualDisplays in the ActivityView from getting into bad states.
Fixes bug 14107002.
Change-Id: Idc2aaf85ac496eab0eeb436736cb10a2020040e8
Logical address logic is independent from hardware, and the algorithm is
standardized in the spec. Moved the logic to service so that all HAL
implementations doesn't have to duplicated logic inside.
Related change in HAL definition is in:
https://googleplex-android-review.git.corp.google.com/#/c/447951/
Change-Id: I9699309719f3214fc2dbdf219faad484c0c1c5bf
Previously, the surface that backs a virtual display had to be set
at the time when the display was created. This change now makes
it possible to set or remove the surface later. The virtual display
is treated as if it were "off" while no surface is attached to it.
Change-Id: Ib4fdbbb8b4ee79f0fb9ceb648f9bda4a8fa6a2ca
The Binder interface for passing a callback was not implemented
properly. Also the callback for ActivityContainer now has a new
API.
Change-Id: I6b719be0cb57542f022a3cc14e8f4efde60b1a50
Previously, the view hierarchy would suppress drawing whenever the
PowerManager.isScreenOn() method returned false. However, this method
really describes the interactive state of the device rather than the
actual display state. This is especially a problem when there are
multiple displays but it also breaks drawing while in doze mode.
This change makes the view hierarchy consider the actual state of the
display instead on an individual basis.
Bug: 13133142
Change-Id: I69870b6b14a3504607a30562aa48c3452f777c1f
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 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
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
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
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.
Change-Id: I6f7504313074e6748c0bd467a29ac3a311036f4d
The android.security.cts.ServicePermissionsTest--testDumpProtected test was
failing on this service because it is looking for the permission name in the
denial message.
Change-Id: I4b4d38cd27b782470d1f21e36104164d2c8962a3
Signed-off-by: Adam Hampson <ahampson@google.com>
When a Display has been removed there is a delay until all of its
windows have been removed. Therefore there is a possibility that
WindowState.getDisplayContent() returns null. Guard against that
possibility.
Fixes bug 13616765.
Change-Id: Ia2074d293b0e1bd4ca2cd14aeb4a2cc09ed9f41e
After being bound to, a NotificationListenerService could
make a call into NotificationManagerService before having been
added to the list of active services.
Bug: 13644375
Change-Id: I4ed920d165f46d009f91e28ca13c3926563cd110
It saves us from having to add numerous native methods to HdmiCecService.
A new native method that reports physical address was added in consequence
to be able to build the message in Java side.
Other changes:
- Substituted more concrete type (cec_device_type_t) to int.
- Fixed the issue about byte endianness in handling physical
address/vendor id. The bytes of variable mPhysicalAddress in native
service were being reversed previously but still worked because they
were reversed again when copied out to outgoing messages. Vendor id
had a bug of bytes being reversed. In order to fix the issue, the way
they are copied to byte array was changed so that it becomes
independent to byte endianness.
- CL's for header/HAL implementation changes are:
https://googleplex-android-review.git.corp.google.com/#/c/437667https://googleplex-android-review.git.corp.google.com/#/c/437668
Change-Id: Id1ac683fe54597a2c707f30492c7f86e5392504d
Do not remove an AppWindowToken or its Task if it is running an
animation. Doing so leaves windows orphaned and bad things happen
when the system tries to retrieve the task assoicated with the
windows during layout.
Fixes the ugly output associated with bug 13440426.
Change-Id: I9d5fc50a7cb6189160d51cee3c82f7813baee715