Merge "Remove redundant @GuardedBy's in HdmiCecLocalDevice."

This commit is contained in:
Yan Han
2022-06-22 16:25:32 +00:00
committed by Android (Google) Code Review
8 changed files with 25 additions and 53 deletions

View File

@@ -71,7 +71,7 @@ abstract class HdmiCecLocalDevice {
protected final int mDeviceType;
protected int mPreferredAddress;
@GuardedBy("mLock")
protected HdmiDeviceInfo mDeviceInfo;
private HdmiDeviceInfo mDeviceInfo;
protected int mLastKeycode = HdmiCecKeycode.UNSUPPORTED_KEYCODE;
protected int mLastKeyRepeatCount = 0;
@@ -666,11 +666,9 @@ abstract class HdmiCecLocalDevice {
* Computes the set of supported device features, and updates local state to match.
*/
private void updateDeviceFeatures() {
synchronized (mLock) {
setDeviceInfo(getDeviceInfo().toBuilder()
.setDeviceFeatures(computeDeviceFeatures())
.build());
}
setDeviceInfo(getDeviceInfo().toBuilder()
.setDeviceFeatures(computeDeviceFeatures())
.build());
}
/**
@@ -678,9 +676,7 @@ abstract class HdmiCecLocalDevice {
*/
protected final DeviceFeatures getDeviceFeatures() {
updateDeviceFeatures();
synchronized (mLock) {
return getDeviceInfo().getDeviceFeatures();
}
return getDeviceInfo().getDeviceFeatures();
}
@Constants.HandleMessageResult
@@ -982,14 +978,12 @@ abstract class HdmiCecLocalDevice {
return mDeviceType;
}
@GuardedBy("mLock")
HdmiDeviceInfo getDeviceInfo() {
synchronized (mLock) {
return mDeviceInfo;
}
}
@GuardedBy("mLock")
void setDeviceInfo(HdmiDeviceInfo info) {
synchronized (mLock) {
mDeviceInfo = info;
@@ -1042,10 +1036,8 @@ abstract class HdmiCecLocalDevice {
// Send <Give Features> if using CEC 2.0 or above.
if (mService.getCecVersion() >= HdmiControlManager.HDMI_CEC_VERSION_2_0) {
synchronized (mLock) {
mService.sendCecCommand(HdmiCecMessageBuilder.buildGiveFeatures(
getDeviceInfo().getLogicalAddress(), targetAddress));
}
mService.sendCecCommand(HdmiCecMessageBuilder.buildGiveFeatures(
getDeviceInfo().getLogicalAddress(), targetAddress));
}
// If we don't already have a {@link SetAudioVolumeLevelDiscoveryAction} for the target

View File

@@ -138,9 +138,7 @@ public class HdmiCecLocalDevicePlayback extends HdmiCecLocalDeviceSource {
// does not poll local devices, we should put device info of local device
// manually here.
for (HdmiCecLocalDevice device : mService.getAllLocalDevices()) {
synchronized (device.mLock) {
mService.getHdmiCecNetwork().addCecDevice(device.getDeviceInfo());
}
mService.getHdmiCecNetwork().addCecDevice(device.getDeviceInfo());
}
List<HotplugDetectionAction> hotplugActions =
@@ -179,11 +177,9 @@ public class HdmiCecLocalDevicePlayback extends HdmiCecLocalDeviceSource {
@ServiceThreadOnly
void deviceSelect(int id, IHdmiControlCallback callback) {
assertRunOnServiceThread();
synchronized (mLock) {
if (id == getDeviceInfo().getId()) {
mService.oneTouchPlay(callback);
return;
}
if (id == getDeviceInfo().getId()) {
mService.oneTouchPlay(callback);
return;
}
HdmiDeviceInfo targetDevice = mService.getHdmiCecNetwork().getDeviceInfo(id);
if (targetDevice == null) {

View File

@@ -1331,13 +1331,11 @@ public class HdmiControlService extends SystemService {
*/
private boolean sourceAddressIsLocal(HdmiCecMessage message) {
for (HdmiCecLocalDevice device : getAllLocalDevices()) {
synchronized (device.mLock) {
if (message.getSource() == device.getDeviceInfo().getLogicalAddress()
&& message.getSource() != Constants.ADDR_UNREGISTERED) {
HdmiLogger.warning(
"Unexpected source: message sent from device itself, " + message);
return true;
}
if (message.getSource() == device.getDeviceInfo().getLogicalAddress()
&& message.getSource() != Constants.ADDR_UNREGISTERED) {
HdmiLogger.warning(
"Unexpected source: message sent from device itself, " + message);
return true;
}
}
return false;
@@ -1560,9 +1558,7 @@ public class HdmiControlService extends SystemService {
if (deviceInfo.getDisplayName().equals(newDisplayName)) {
continue;
}
synchronized (device.mLock) {
device.setDeviceInfo(deviceInfo.toBuilder().setDisplayName(newDisplayName).build());
}
device.setDeviceInfo(deviceInfo.toBuilder().setDisplayName(newDisplayName).build());
sendCecCommand(
HdmiCecMessageBuilder.buildSetOsdNameCommand(
deviceInfo.getLogicalAddress(), Constants.ADDR_TV, newDisplayName));
@@ -4096,10 +4092,7 @@ public class HdmiControlService extends SystemService {
public void onAudioDeviceVolumeChanged(
@NonNull AudioDeviceAttributes audioDevice,
@NonNull VolumeInfo volumeInfo) {
int localDeviceAddress;
synchronized (mLocalDevice.mLock) {
localDeviceAddress = mLocalDevice.getDeviceInfo().getLogicalAddress();
}
int localDeviceAddress = mLocalDevice.getDeviceInfo().getLogicalAddress();
sendCecCommand(SetAudioVolumeLevelMessage.build(
localDeviceAddress,
mSystemAudioDevice.getLogicalAddress(),

View File

@@ -212,9 +212,7 @@ public abstract class BaseAbsoluteVolumeControlTest {
}
protected int getLogicalAddress() {
synchronized (mHdmiCecLocalDevice.mLock) {
return mHdmiCecLocalDevice.getDeviceInfo().getLogicalAddress();
}
return mHdmiCecLocalDevice.getDeviceInfo().getLogicalAddress();
}
/**

View File

@@ -147,10 +147,9 @@ public class DeviceSelectActionFromPlaybackTest {
// The addresses depend on local device's LA.
// This help the tests to pass with every local device LA.
synchronized (mHdmiCecLocalDevicePlayback.mLock) {
mPlaybackLogicalAddress1 =
mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress();
}
mPlaybackLogicalAddress1 =
mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress();
mPlaybackLogicalAddress2 = mPlaybackLogicalAddress1 == ADDR_PLAYBACK_2
? ADDR_PLAYBACK_1 : ADDR_PLAYBACK_2;
mPlaybackLogicalAddress3 = mPlaybackLogicalAddress1 == ADDR_PLAYBACK_3

View File

@@ -132,9 +132,7 @@ public class HdmiCecControllerTest {
mHdmiControlServiceSpy.onBootPhase(SystemService.PHASE_SYSTEM_SERVICES_READY);
mTestLooper.dispatchAll();
synchronized (playbackDevice.mLock) {
mPlaybackLogicalAddress = playbackDevice.getDeviceInfo().getLogicalAddress();
}
mPlaybackLogicalAddress = playbackDevice.getDeviceInfo().getLogicalAddress();
mTestLooper.dispatchAll();
}

View File

@@ -132,9 +132,7 @@ public class RequestSadActionTest {
mHdmiControlService.allocateLogicalAddress(mLocalDevices, INITIATED_BY_ENABLE_CEC);
mNativeWrapper.setPhysicalAddress(0x0000);
mTestLooper.dispatchAll();
synchronized (mHdmiCecLocalDeviceTv.mLock) {
mTvLogicalAddress = mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress();
}
mTvLogicalAddress = mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress();
mNativeWrapper.clearResultMessages();
}

View File

@@ -112,9 +112,7 @@ public class SetAudioVolumeLevelDiscoveryActionTest {
mHdmiControlServiceSpy.onBootPhase(SystemService.PHASE_BOOT_COMPLETED);
mTestLooper.dispatchAll();
synchronized (mPlaybackDevice.mLock) {
mPlaybackLogicalAddress = mPlaybackDevice.getDeviceInfo().getLogicalAddress();
}
mPlaybackLogicalAddress = mPlaybackDevice.getDeviceInfo().getLogicalAddress();
// Setup specific to these tests
mNativeWrapper.onCecMessage(HdmiCecMessageBuilder.buildReportPhysicalAddressCommand(