Improve code further with some conditionals & audio handling

Signed-off-by: Mario Danic <mario@lovelyhq.com>
This commit is contained in:
Mario Danic 2019-02-27 18:47:28 +01:00
parent 2fb58e8cab
commit 52d522ed37
2 changed files with 41 additions and 8 deletions

View File

@ -496,8 +496,19 @@ public class CallController extends BaseController {
final MagicAudioManager.AudioDevice device, final Set<MagicAudioManager.AudioDevice> availableDevices) { final MagicAudioManager.AudioDevice device, final Set<MagicAudioManager.AudioDevice> availableDevices) {
Log.d(TAG, "onAudioManagerDevicesChanged: " + availableDevices + ", " Log.d(TAG, "onAudioManagerDevicesChanged: " + availableDevices + ", "
+ "selected: " + device); + "selected: " + device);
final boolean shouldDisableProximityLock = (device.equals(MagicAudioManager.AudioDevice.WIRED_HEADSET)
|| device.equals(MagicAudioManager.AudioDevice.SPEAKER_PHONE)
|| device.equals(MagicAudioManager.AudioDevice.BLUETOOTH));
if (shouldDisableProximityLock) {
powerManagerUtils.updatePhoneState(PowerManagerUtils.PhoneState.WITHOUT_PROXIMITY_SENSOR_LOCK);
} else {
powerManagerUtils.updatePhoneState(PowerManagerUtils.PhoneState.WITH_PROXIMITY_SENSOR_LOCK);
}
} }
private void cameraInitialization() { private void cameraInitialization() {
videoCapturer = createCameraCapturer(cameraEnumerator); videoCapturer = createCameraCapturer(cameraEnumerator);

View File

@ -134,16 +134,31 @@ public class PowerManagerUtils {
private synchronized void setWakeLockState(WakeLockState newState) { private synchronized void setWakeLockState(WakeLockState newState) {
switch(newState) { switch(newState) {
case FULL: case FULL:
fullLock.acquire(); if (!fullLock.isHeld()) {
partialLock.acquire(); fullLock.acquire();
wifiLock.acquire(); }
if (!partialLock.isHeld()) {
partialLock.acquire();
}
if (!wifiLock.isHeld()) {
wifiLock.acquire();
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
proximityLock.release(); proximityLock.release();
} }
break; break;
case PARTIAL: case PARTIAL:
partialLock.acquire(); if (!partialLock.isHeld()) {
wifiLock.acquire(); partialLock.acquire();
}
if (!wifiLock.isHeld()) {
wifiLock.acquire();
}
fullLock.release(); fullLock.release();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
proximityLock.release(); proximityLock.release();
@ -158,9 +173,16 @@ public class PowerManagerUtils {
} }
break; break;
case PROXIMITY: case PROXIMITY:
partialLock.acquire(); if (!partialLock.isHeld()) {
wifiLock.acquire(); partialLock.acquire();
fullLock.release(); }
if (!wifiLock.isHeld()) {
wifiLock.acquire();
}
fullLock.release(
);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
proximityLock.acquire(); proximityLock.acquire();
} }