Check if device supports HDMI before getting service

Hdmi control service is created only if device supports
HDMI CEC, so need to check for it before requesting.

Change-Id: I0e2d83514fd3b87e8db0a5e6784fc69377b890cf
Fixes: 33193534
Test: Manual - click home button, check logs for crashes.
This commit is contained in:
Andrii Kulian
2016-12-21 12:18:05 -08:00
parent 7fcd3fe24b
commit eb4a7943b1

View File

@@ -1567,7 +1567,10 @@ public class PhoneWindowManager implements WindowManagerPolicy {
private void handleShortPressOnHome() {
// Turn on the connected TV and switch HDMI input if we're a HDMI playback device.
getHdmiControl().turnOnTv();
final HdmiControl hdmiControl = getHdmiControl();
if (hdmiControl != null) {
hdmiControl.turnOnTv();
}
// If there's a dream running then use home to escape the dream
// but don't actually go home.
@@ -1584,9 +1587,13 @@ public class PhoneWindowManager implements WindowManagerPolicy {
* Creates an accessor to HDMI control service that performs the operation of
* turning on TV (optional) and switching input to us. If HDMI control service
* is not available or we're not a HDMI playback device, the operation is no-op.
* @return {@link HdmiControl} instance if available, null otherwise.
*/
private HdmiControl getHdmiControl() {
if (null == mHdmiControl) {
if (!mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_HDMI_CEC)) {
return null;
}
HdmiControlManager manager = (HdmiControlManager) mContext.getSystemService(
Context.HDMI_CONTROL_SERVICE);
HdmiPlaybackClient client = null;