Merge "Do not have HdmiControlService report deviceEvent for TV itself"

This commit is contained in:
Jinsuk Kim
2014-06-20 05:22:45 +00:00
committed by Android (Google) Code Review
2 changed files with 7 additions and 3 deletions

View File

@@ -78,7 +78,7 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
*/
void deviceSelect(int targetAddress, IHdmiControlCallback callback) {
assertRunOnServiceThread();
HdmiCecDeviceInfo targetDevice = mService.getDeviceInfo(targetAddress);
HdmiCecDeviceInfo targetDevice = getDeviceInfo(targetAddress);
if (targetDevice == null) {
invokeCallback(callback, HdmiCec.RESULT_TARGET_NOT_AVAILABLE);
return;
@@ -458,8 +458,11 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
final void addCecDevice(HdmiCecDeviceInfo info) {
assertRunOnServiceThread();
addDeviceInfo(info);
if (info.getLogicalAddress() == mAddress) {
// The addition of TV device itself should not be notified.
return;
}
mService.invokeDeviceEventListeners(info, true);
// TODO: announce new device detection.
}
/**

View File

@@ -158,6 +158,7 @@ public final class HdmiControlService extends SystemService {
// A container for [Logical Address, Local device info].
final SparseArray<HdmiCecLocalDevice> devices = new SparseArray<>();
final SparseIntArray finished = new SparseIntArray();
mCecController.clearLogicalAddress();
for (int type : deviceTypes) {
final HdmiCecLocalDevice localDevice = HdmiCecLocalDevice.create(this, type);
localDevice.init();
@@ -189,7 +190,7 @@ public final class HdmiControlService extends SystemService {
for (int i = 0; i < devices.size(); ++i) {
int address = devices.keyAt(i);
HdmiCecLocalDevice device = devices.valueAt(i);
device.onAddressAllocated(address);
device.handleAddressAllocated(address);
}
}