diff options
| -rw-r--r-- | services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java | 18 | ||||
| -rw-r--r-- | services/core/java/com/android/server/hdmi/TimerRecordingAction.java | 10 |
2 files changed, 18 insertions, 10 deletions
diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java index 8e64bfa9911d..70d108aeaab8 100644 --- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java @@ -900,6 +900,10 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { mService.invokeTimerRecordingResult(result); } + void announceClearTimerRecordingResult(int result) { + mService.invokeClearTimerRecordingResult(result); + } + private boolean isMessageForSystemAudio(HdmiCecMessage message) { if (message.getSource() != Constants.ADDR_AUDIO_SYSTEM || message.getDestination() != Constants.ADDR_TV @@ -1227,8 +1231,9 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { // LocalDeviceTv.onAddressAllocated() -> launchDeviceDiscovery(). removeAction(DeviceDiscoveryAction.class); removeAction(HotplugDetectionAction.class); - // Remove one touch record action. + // Remove recording actions. removeAction(OneTouchRecordAction.class); + removeAction(TimerRecordingAction.class); disableSystemAudioIfExist(); disableArcIfExist(); @@ -1397,19 +1402,19 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { assertRunOnServiceThread(); if (!mService.isControlEnabled()) { Slog.w(TAG, "Can not start one touch record. CEC control is disabled."); - announceTimerRecordingResult(CLEAR_TIMER_STATUS_CEC_DISABLE); + announceClearTimerRecordingResult(CLEAR_TIMER_STATUS_CEC_DISABLE); return; } if (!checkRecorder(recorderAddress)) { Slog.w(TAG, "Invalid recorder address:" + recorderAddress); - announceTimerRecordingResult(CLEAR_TIMER_STATUS_CHECK_RECORDER_CONNECTION); + announceClearTimerRecordingResult(CLEAR_TIMER_STATUS_CHECK_RECORDER_CONNECTION); return; } if (!checkTimerRecordingSource(sourceType, recordSource)) { Slog.w(TAG, "Invalid record source." + Arrays.toString(recordSource)); - announceTimerRecordingResult(CLEAR_TIMER_STATUS_FAIL_TO_CLEAR_SELECTED_SOURCE); + announceClearTimerRecordingResult(CLEAR_TIMER_STATUS_FAIL_TO_CLEAR_SELECTED_SOURCE); return; } @@ -1433,7 +1438,7 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { break; default: Slog.w(TAG, "Invalid source type:" + recorderAddress); - announceTimerRecordingResult(CLEAR_TIMER_STATUS_FAIL_TO_CLEAR_SELECTED_SOURCE); + announceClearTimerRecordingResult(CLEAR_TIMER_STATUS_FAIL_TO_CLEAR_SELECTED_SOURCE); return; } @@ -1441,7 +1446,8 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { @Override public void onSendCompleted(int error) { if (error != Constants.SEND_RESULT_SUCCESS) { - announceTimerRecordingResult(CLEAR_TIMER_STATUS_FAIL_TO_CLEAR_SELECTED_SOURCE); + announceClearTimerRecordingResult( + CLEAR_TIMER_STATUS_FAIL_TO_CLEAR_SELECTED_SOURCE); } } }); diff --git a/services/core/java/com/android/server/hdmi/TimerRecordingAction.java b/services/core/java/com/android/server/hdmi/TimerRecordingAction.java index 0275853d0098..1a179e67272a 100644 --- a/services/core/java/com/android/server/hdmi/TimerRecordingAction.java +++ b/services/core/java/com/android/server/hdmi/TimerRecordingAction.java @@ -83,11 +83,13 @@ public class TimerRecordingAction extends FeatureAction { @Override public void onSendCompleted(int error) { if (error != Constants.SEND_RESULT_SUCCESS) { - mState = STATE_WAITING_FOR_TIMER_STATUS; - addTimer(mState, TIMER_STATUS_TIMEOUT_MS); + tv().announceTimerRecordingResult( + TIMER_RECORDING_RESULT_EXTRA_CHECK_RECORDER_CONNECTION); finish(); return; } + mState = STATE_WAITING_FOR_TIMER_STATUS; + addTimer(mState, TIMER_STATUS_TIMEOUT_MS); } }); } @@ -128,7 +130,7 @@ public class TimerRecordingAction extends FeatureAction { private boolean handleFeatureAbort(HdmiCecMessage cmd) { byte[] params = cmd.getParams(); - int messageType = params[0]; + int messageType = params[0] & 0xFF; switch (messageType) { case Constants.MESSAGE_SET_DIGITAL_TIMER: // fall through case Constants.MESSAGE_SET_ANALOG_TIMER: // fall through @@ -137,7 +139,7 @@ public class TimerRecordingAction extends FeatureAction { default: return false; } - int reason = params[1]; + int reason = params[1] & 0xFF; Slog.i(TAG, "[Feature Abort] for " + messageType + " reason:" + reason); tv().announceTimerRecordingResult(TIMER_RECORDING_RESULT_EXTRA_CHECK_RECORDER_CONNECTION); finish(); |