Merge "Migrate CEC enabled value to CEC configuration"
This commit is contained in:
committed by
Android (Google) Code Review
commit
4bf1ccaad2
@@ -1110,7 +1110,8 @@ public final class HdmiControlManager {
|
||||
*
|
||||
* Note: Value of isCecAvailable is only valid when isCecEnabled is true.
|
||||
**/
|
||||
void onStatusChange(boolean isCecEnabled, boolean isCecAvailable);
|
||||
void onStatusChange(@HdmiControlManager.HdmiCecControl int isCecEnabled,
|
||||
boolean isCecAvailable);
|
||||
}
|
||||
|
||||
private final ArrayMap<HdmiControlStatusChangeListener, IHdmiControlStatusChangeListener>
|
||||
@@ -1351,7 +1352,7 @@ public final class HdmiControlManager {
|
||||
Executor executor, final HdmiControlStatusChangeListener listener) {
|
||||
return new IHdmiControlStatusChangeListener.Stub() {
|
||||
@Override
|
||||
public void onStatusChange(boolean isCecEnabled, boolean isCecAvailable) {
|
||||
public void onStatusChange(@HdmiCecControl int isCecEnabled, boolean isCecAvailable) {
|
||||
final long token = Binder.clearCallingIdentity();
|
||||
try {
|
||||
executor.execute(() -> listener.onStatusChange(isCecEnabled, isCecAvailable));
|
||||
|
||||
@@ -28,11 +28,11 @@ oneway interface IHdmiControlStatusChangeListener {
|
||||
* Called when HDMI Control (CEC) is enabled/disabled.
|
||||
*
|
||||
* @param isCecEnabled status of HDMI Control
|
||||
* {@link android.provider.Settings.Global#HDMI_CONTROL_ENABLED}: {@code true} if enabled.
|
||||
* {@link android.hardware.hdmi.HdmiControlManager#CEC_SETTING_NAME_HDMI_CEC_ENABLED}: {@link android.hardware.hdmi.HdmiControlManager#HDMI_CEC_CONTROL_ENABLED} if enabled.
|
||||
* @param isCecAvailable status of CEC support of the connected display (the TV).
|
||||
* {@code true} if supported.
|
||||
*
|
||||
* Note: Value of isCecAvailable is only valid when isCecEnabled is true.
|
||||
* Note: Value of isCecAvailable is only valid when isCecEnabled is {@link android.hardware.hdmi.HdmiControlManager#HDMI_CEC_CONTROL_ENABLED}.
|
||||
**/
|
||||
void onStatusChange(boolean isCecEnabled, boolean isCecAvailable);
|
||||
void onStatusChange(int isCecEnabled, boolean isCecAvailable);
|
||||
}
|
||||
|
||||
@@ -7724,10 +7724,12 @@ public class AudioService extends IAudioService.Stub
|
||||
|
||||
private class MyHdmiControlStatusChangeListenerCallback
|
||||
implements HdmiControlManager.HdmiControlStatusChangeListener {
|
||||
public void onStatusChange(boolean isCecEnabled, boolean isCecAvailable) {
|
||||
public void onStatusChange(@HdmiControlManager.HdmiCecControl int isCecEnabled,
|
||||
boolean isCecAvailable) {
|
||||
synchronized (mHdmiClientLock) {
|
||||
if (mHdmiManager == null) return;
|
||||
updateHdmiCecSinkLocked(isCecEnabled ? isCecAvailable : false);
|
||||
boolean cecEnabled = isCecEnabled == HdmiControlManager.HDMI_CEC_CONTROL_ENABLED;
|
||||
updateHdmiCecSinkLocked(cecEnabled ? isCecAvailable : false);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.android.server.hdmi;
|
||||
|
||||
import static android.hardware.hdmi.HdmiControlManager.DEVICE_EVENT_ADD_DEVICE;
|
||||
import static android.hardware.hdmi.HdmiControlManager.DEVICE_EVENT_REMOVE_DEVICE;
|
||||
import static android.hardware.hdmi.HdmiControlManager.HDMI_CEC_CONTROL_ENABLED;
|
||||
|
||||
import static com.android.server.hdmi.Constants.ADDR_UNREGISTERED;
|
||||
import static com.android.server.hdmi.Constants.DISABLED;
|
||||
@@ -325,7 +326,8 @@ public class HdmiControlService extends SystemService {
|
||||
// Set to true while HDMI control is enabled. If set to false, HDMI-CEC/MHL protocol
|
||||
// handling will be disabled and no request will be handled.
|
||||
@GuardedBy("mLock")
|
||||
private boolean mHdmiControlEnabled;
|
||||
@HdmiControlManager.HdmiCecControl
|
||||
private int mHdmiControlEnabled;
|
||||
|
||||
// Set to true while the service is in normal mode. While set to false, no input change is
|
||||
// allowed. Used for situations where input change can confuse users such as channel auto-scan,
|
||||
@@ -477,8 +479,7 @@ public class HdmiControlService extends SystemService {
|
||||
mPowerStatusController.setPowerStatus(getInitialPowerStatus());
|
||||
mProhibitMode = false;
|
||||
mHdmiControlEnabled = mHdmiCecConfig.getIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_ENABLED)
|
||||
== HdmiControlManager.HDMI_CEC_CONTROL_ENABLED;
|
||||
HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_ENABLED);
|
||||
setHdmiCecVolumeControlEnabledInternal(getHdmiCecConfig().getIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_VOLUME_CONTROL_MODE));
|
||||
mMhlInputChangeEnabled = readBooleanSetting(Global.MHL_INPUT_SWITCHING_ENABLED, true);
|
||||
@@ -497,7 +498,7 @@ public class HdmiControlService extends SystemService {
|
||||
Slog.i(TAG, "Device does not support MHL-control.");
|
||||
}
|
||||
mHdmiCecNetwork = new HdmiCecNetwork(this, mCecController, mMhlController);
|
||||
if (mHdmiControlEnabled) {
|
||||
if (mHdmiControlEnabled == HdmiControlManager.HDMI_CEC_CONTROL_ENABLED) {
|
||||
initializeCec(INITIATED_BY_BOOT_UP);
|
||||
} else {
|
||||
mCecController.setOption(OptionKey.ENABLE_CEC, false);
|
||||
@@ -513,9 +514,8 @@ public class HdmiControlService extends SystemService {
|
||||
new HdmiCecConfig.SettingChangeListener() {
|
||||
@Override
|
||||
public void onChange(String setting) {
|
||||
boolean enabled = mHdmiCecConfig.getIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_ENABLED)
|
||||
== HdmiControlManager.HDMI_CEC_CONTROL_ENABLED;
|
||||
@HdmiControlManager.HdmiCecControl int enabled = mHdmiCecConfig.getIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_ENABLED);
|
||||
setControlEnabled(enabled);
|
||||
}
|
||||
});
|
||||
@@ -630,7 +630,7 @@ public class HdmiControlService extends SystemService {
|
||||
}
|
||||
if (reason != -1) {
|
||||
invokeVendorCommandListenersOnControlStateChanged(true, reason);
|
||||
announceHdmiControlStatusChange(true);
|
||||
announceHdmiControlStatusChange(HDMI_CEC_CONTROL_ENABLED);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2193,7 +2193,6 @@ public class HdmiControlService extends SystemService {
|
||||
// System settings
|
||||
pw.println("System_settings:");
|
||||
pw.increaseIndent();
|
||||
pw.println("mHdmiControlEnabled: " + mHdmiControlEnabled);
|
||||
pw.println("mMhlInputChangeEnabled: " + mMhlInputChangeEnabled);
|
||||
pw.println("mSystemAudioActivated: " + isSystemAudioActivated());
|
||||
pw.println("mHdmiCecVolumeControlEnabled: " + mHdmiCecVolumeControl);
|
||||
@@ -2773,7 +2772,7 @@ public class HdmiControlService extends SystemService {
|
||||
}
|
||||
}
|
||||
|
||||
private void announceHdmiControlStatusChange(boolean isEnabled) {
|
||||
private void announceHdmiControlStatusChange(@HdmiControlManager.HdmiCecControl int isEnabled) {
|
||||
assertRunOnServiceThread();
|
||||
synchronized (mLock) {
|
||||
List<IHdmiControlStatusChangeListener> listeners = new ArrayList<>(
|
||||
@@ -2787,16 +2786,18 @@ public class HdmiControlService extends SystemService {
|
||||
}
|
||||
|
||||
private void invokeHdmiControlStatusChangeListenerLocked(
|
||||
IHdmiControlStatusChangeListener listener, boolean isEnabled) {
|
||||
IHdmiControlStatusChangeListener listener,
|
||||
@HdmiControlManager.HdmiCecControl int isEnabled) {
|
||||
invokeHdmiControlStatusChangeListenerLocked(Collections.singletonList(listener), isEnabled);
|
||||
}
|
||||
|
||||
private void invokeHdmiControlStatusChangeListenerLocked(
|
||||
Collection<IHdmiControlStatusChangeListener> listeners, boolean isEnabled) {
|
||||
Collection<IHdmiControlStatusChangeListener> listeners,
|
||||
@HdmiControlManager.HdmiCecControl int isEnabled) {
|
||||
if (listeners.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
if (isEnabled) {
|
||||
if (isEnabled == HdmiControlManager.HDMI_CEC_CONTROL_ENABLED) {
|
||||
queryDisplayStatus(new IHdmiControlCallback.Stub() {
|
||||
public void onComplete(int status) {
|
||||
boolean isAvailable = true;
|
||||
@@ -2814,7 +2815,8 @@ public class HdmiControlService extends SystemService {
|
||||
}
|
||||
|
||||
private void invokeHdmiControlStatusChangeListenerLocked(
|
||||
Collection<IHdmiControlStatusChangeListener> listeners, boolean isEnabled,
|
||||
Collection<IHdmiControlStatusChangeListener> listeners,
|
||||
@HdmiControlManager.HdmiCecControl int isEnabled,
|
||||
boolean isCecAvailable) {
|
||||
for (IHdmiControlStatusChangeListener listener : listeners) {
|
||||
try {
|
||||
@@ -2881,7 +2883,7 @@ public class HdmiControlService extends SystemService {
|
||||
|
||||
boolean isControlEnabled() {
|
||||
synchronized (mLock) {
|
||||
return mHdmiControlEnabled;
|
||||
return mHdmiControlEnabled == HdmiControlManager.HDMI_CEC_CONTROL_ENABLED;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2955,7 +2957,7 @@ public class HdmiControlService extends SystemService {
|
||||
mPowerStatusController.setPowerStatus(HdmiControlManager.POWER_STATUS_TRANSIENT_TO_ON,
|
||||
false);
|
||||
if (mCecController != null) {
|
||||
if (mHdmiControlEnabled) {
|
||||
if (mHdmiControlEnabled == HDMI_CEC_CONTROL_ENABLED) {
|
||||
int startReason = -1;
|
||||
switch (wakeUpAction) {
|
||||
case WAKE_UP_SCREEN_ON:
|
||||
@@ -3224,14 +3226,14 @@ public class HdmiControlService extends SystemService {
|
||||
}
|
||||
|
||||
@ServiceThreadOnly
|
||||
void setControlEnabled(boolean enabled) {
|
||||
void setControlEnabled(@HdmiControlManager.HdmiCecControl int enabled) {
|
||||
assertRunOnServiceThread();
|
||||
|
||||
synchronized (mLock) {
|
||||
mHdmiControlEnabled = enabled;
|
||||
}
|
||||
|
||||
if (enabled) {
|
||||
if (enabled == HDMI_CEC_CONTROL_ENABLED) {
|
||||
enableHdmiControlService();
|
||||
setHdmiCecVolumeControlEnabledInternal(getHdmiCecConfig().getIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_VOLUME_CONTROL_MODE));
|
||||
|
||||
@@ -104,6 +104,10 @@ public class ArcInitiationActionFromAvrTest {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void writeStringSystemProperty(String key, String value) {
|
||||
}
|
||||
|
||||
@Override
|
||||
Looper getServiceLooper() {
|
||||
return mTestLooper.getLooper();
|
||||
|
||||
@@ -105,6 +105,10 @@ public class ArcTerminationActionFromAvrTest {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void writeStringSystemProperty(String key, String value) {
|
||||
}
|
||||
|
||||
@Override
|
||||
Looper getServiceLooper() {
|
||||
return mTestLooper.getLooper();
|
||||
|
||||
@@ -153,6 +153,10 @@ public class HdmiControlServiceTest {
|
||||
return mStandbyMessageReceived;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void writeStringSystemProperty(String key, String value) {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected HdmiCecConfig getHdmiCecConfig() {
|
||||
return hdmiCecConfig;
|
||||
@@ -251,7 +255,7 @@ public class HdmiControlServiceTest {
|
||||
HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_VERSION,
|
||||
HdmiControlManager.HDMI_CEC_VERSION_1_4_B);
|
||||
|
||||
mHdmiControlService.setControlEnabled(true);
|
||||
mHdmiControlService.setControlEnabled(HdmiControlManager.HDMI_CEC_CONTROL_ENABLED);
|
||||
mNativeWrapper.clearResultMessages();
|
||||
|
||||
assertThat(mHdmiControlService.getInitialPowerStatus()).isEqualTo(
|
||||
@@ -271,7 +275,7 @@ public class HdmiControlServiceTest {
|
||||
HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_VERSION,
|
||||
HdmiControlManager.HDMI_CEC_VERSION_2_0);
|
||||
|
||||
mHdmiControlService.setControlEnabled(true);
|
||||
mHdmiControlService.setControlEnabled(HdmiControlManager.HDMI_CEC_CONTROL_ENABLED);
|
||||
mNativeWrapper.clearResultMessages();
|
||||
|
||||
mHdmiControlService.allocateLogicalAddress(mLocalDevices, INITIATED_BY_ENABLE_CEC);
|
||||
@@ -347,11 +351,11 @@ public class HdmiControlServiceTest {
|
||||
int volumeControlEnabled = HdmiControlManager.VOLUME_CONTROL_ENABLED;
|
||||
mHdmiControlService.setHdmiCecVolumeControlEnabledInternal(volumeControlEnabled);
|
||||
|
||||
mHdmiControlService.setControlEnabled(false);
|
||||
mHdmiControlService.setControlEnabled(HdmiControlManager.HDMI_CEC_CONTROL_DISABLED);
|
||||
assertThat(mHdmiControlService.getHdmiCecVolumeControl()).isEqualTo(
|
||||
HdmiControlManager.VOLUME_CONTROL_DISABLED);
|
||||
|
||||
mHdmiControlService.setControlEnabled(true);
|
||||
mHdmiControlService.setControlEnabled(HdmiControlManager.HDMI_CEC_CONTROL_ENABLED);
|
||||
assertThat(mHdmiControlService.getHdmiCecVolumeControl()).isEqualTo(volumeControlEnabled);
|
||||
}
|
||||
|
||||
@@ -361,12 +365,12 @@ public class HdmiControlServiceTest {
|
||||
mHdmiControlService.getHdmiCecConfig().setIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_VOLUME_CONTROL_MODE, volumeControlEnabled);
|
||||
|
||||
mHdmiControlService.setControlEnabled(false);
|
||||
mHdmiControlService.setControlEnabled(HdmiControlManager.HDMI_CEC_CONTROL_DISABLED);
|
||||
assertThat(mHdmiControlService.getHdmiCecConfig().getIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_VOLUME_CONTROL_MODE)).isEqualTo(
|
||||
volumeControlEnabled);
|
||||
|
||||
mHdmiControlService.setControlEnabled(true);
|
||||
mHdmiControlService.setControlEnabled(HdmiControlManager.HDMI_CEC_CONTROL_ENABLED);
|
||||
assertThat(mHdmiControlService.getHdmiCecConfig().getIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_VOLUME_CONTROL_MODE)).isEqualTo(
|
||||
volumeControlEnabled);
|
||||
@@ -381,13 +385,13 @@ public class HdmiControlServiceTest {
|
||||
VolumeControlFeatureCallback callback = new VolumeControlFeatureCallback();
|
||||
mHdmiControlService.addHdmiCecVolumeControlFeatureListener(callback);
|
||||
|
||||
mHdmiControlService.setControlEnabled(false);
|
||||
mHdmiControlService.setControlEnabled(HdmiControlManager.HDMI_CEC_CONTROL_DISABLED);
|
||||
assertThat(callback.mCallbackReceived).isTrue();
|
||||
assertThat(callback.mVolumeControlEnabled).isEqualTo(
|
||||
HdmiControlManager.VOLUME_CONTROL_DISABLED);
|
||||
|
||||
|
||||
mHdmiControlService.setControlEnabled(true);
|
||||
mHdmiControlService.setControlEnabled(HdmiControlManager.HDMI_CEC_CONTROL_ENABLED);
|
||||
assertThat(callback.mVolumeControlEnabled).isEqualTo(
|
||||
HdmiControlManager.VOLUME_CONTROL_ENABLED);
|
||||
}
|
||||
@@ -485,7 +489,7 @@ public class HdmiControlServiceTest {
|
||||
Settings.Global.putString(mContextSpy.getContentResolver(),
|
||||
Settings.Global.HDMI_CEC_VERSION,
|
||||
null);
|
||||
mHdmiControlService.setControlEnabled(true);
|
||||
mHdmiControlService.setControlEnabled(HdmiControlManager.HDMI_CEC_CONTROL_ENABLED);
|
||||
assertThat(mHdmiControlService.getCecVersion()).isEqualTo(
|
||||
HdmiControlManager.HDMI_CEC_VERSION_1_4_B);
|
||||
}
|
||||
@@ -495,7 +499,7 @@ public class HdmiControlServiceTest {
|
||||
mHdmiControlService.getHdmiCecConfig().setIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_VERSION,
|
||||
HdmiControlManager.HDMI_CEC_VERSION_1_4_B);
|
||||
mHdmiControlService.setControlEnabled(true);
|
||||
mHdmiControlService.setControlEnabled(HdmiControlManager.HDMI_CEC_CONTROL_ENABLED);
|
||||
assertThat(mHdmiControlService.getCecVersion()).isEqualTo(
|
||||
HdmiControlManager.HDMI_CEC_VERSION_1_4_B);
|
||||
}
|
||||
@@ -505,7 +509,7 @@ public class HdmiControlServiceTest {
|
||||
mHdmiControlService.getHdmiCecConfig().setIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_VERSION,
|
||||
HdmiControlManager.HDMI_CEC_VERSION_2_0);
|
||||
mHdmiControlService.setControlEnabled(true);
|
||||
mHdmiControlService.setControlEnabled(HdmiControlManager.HDMI_CEC_CONTROL_ENABLED);
|
||||
assertThat(mHdmiControlService.getCecVersion()).isEqualTo(
|
||||
HdmiControlManager.HDMI_CEC_VERSION_2_0);
|
||||
}
|
||||
@@ -515,14 +519,14 @@ public class HdmiControlServiceTest {
|
||||
mHdmiControlService.getHdmiCecConfig().setIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_VERSION,
|
||||
HdmiControlManager.HDMI_CEC_VERSION_1_4_B);
|
||||
mHdmiControlService.setControlEnabled(true);
|
||||
mHdmiControlService.setControlEnabled(HdmiControlManager.HDMI_CEC_CONTROL_ENABLED);
|
||||
assertThat(mHdmiControlService.getCecVersion()).isEqualTo(
|
||||
HdmiControlManager.HDMI_CEC_VERSION_1_4_B);
|
||||
|
||||
mHdmiControlService.getHdmiCecConfig().setIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_VERSION,
|
||||
HdmiControlManager.HDMI_CEC_VERSION_2_0);
|
||||
mHdmiControlService.setControlEnabled(true);
|
||||
mHdmiControlService.setControlEnabled(HdmiControlManager.HDMI_CEC_CONTROL_ENABLED);
|
||||
assertThat(mHdmiControlService.getCecVersion()).isEqualTo(
|
||||
HdmiControlManager.HDMI_CEC_VERSION_2_0);
|
||||
}
|
||||
@@ -532,7 +536,7 @@ public class HdmiControlServiceTest {
|
||||
mHdmiControlService.getHdmiCecConfig().setIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_VERSION,
|
||||
HdmiControlManager.HDMI_CEC_VERSION_1_4_B);
|
||||
mHdmiControlService.setControlEnabled(true);
|
||||
mHdmiControlService.setControlEnabled(HdmiControlManager.HDMI_CEC_CONTROL_ENABLED);
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
mNativeWrapper.onCecMessage(HdmiCecMessageBuilder.buildGiveFeatures(Constants.ADDR_TV,
|
||||
@@ -550,7 +554,7 @@ public class HdmiControlServiceTest {
|
||||
mHdmiControlService.getHdmiCecConfig().setIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_VERSION,
|
||||
HdmiControlManager.HDMI_CEC_VERSION_2_0);
|
||||
mHdmiControlService.setControlEnabled(true);
|
||||
mHdmiControlService.setControlEnabled(HdmiControlManager.HDMI_CEC_CONTROL_ENABLED);
|
||||
mHdmiControlService.allocateLogicalAddress(mLocalDevices, INITIATED_BY_ENABLE_CEC);
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
@@ -572,7 +576,7 @@ public class HdmiControlServiceTest {
|
||||
mHdmiControlService.getHdmiCecConfig().setIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_VERSION,
|
||||
HdmiControlManager.HDMI_CEC_VERSION_1_4_B);
|
||||
mHdmiControlService.setControlEnabled(true);
|
||||
mHdmiControlService.setControlEnabled(HdmiControlManager.HDMI_CEC_CONTROL_ENABLED);
|
||||
mHdmiControlService.allocateLogicalAddress(mLocalDevices, INITIATED_BY_ENABLE_CEC);
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
@@ -589,7 +593,7 @@ public class HdmiControlServiceTest {
|
||||
mHdmiControlService.getHdmiCecConfig().setIntValue(
|
||||
HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_VERSION,
|
||||
HdmiControlManager.HDMI_CEC_VERSION_2_0);
|
||||
mHdmiControlService.setControlEnabled(true);
|
||||
mHdmiControlService.setControlEnabled(HdmiControlManager.HDMI_CEC_CONTROL_ENABLED);
|
||||
mHdmiControlService.allocateLogicalAddress(mLocalDevices, INITIATED_BY_ENABLE_CEC);
|
||||
mTestLooper.dispatchAll();
|
||||
|
||||
|
||||
@@ -137,6 +137,10 @@ public class SystemAudioInitiationActionFromAvrTest {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void writeStringSystemProperty(String key, String value) {
|
||||
}
|
||||
|
||||
@Override
|
||||
void wakeUp() {}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user