diff --git a/src/org/thoughtcrime/redphone/call/LockManager.java b/src/org/thoughtcrime/redphone/call/LockManager.java index 13c64cd20..8591dfd05 100644 --- a/src/org/thoughtcrime/redphone/call/LockManager.java +++ b/src/org/thoughtcrime/redphone/call/LockManager.java @@ -26,12 +26,14 @@ public class LockManager { private int orientation = AccelerometerListener.ORIENTATION_UNKNOWN; + private boolean proximityDisabled = false; public enum PhoneState { IDLE, PROCESSING, //used when the phone is active but before the user should be alerted. INTERACTIVE, IN_CALL, + IN_VIDEO } private enum LockState { @@ -78,8 +80,7 @@ public class LockManager { } private void updateInCallLockState() { - if (orientation != AccelerometerListener.ORIENTATION_HORIZONTAL - && wifiLockEnforced) { + if (orientation != AccelerometerListener.ORIENTATION_HORIZONTAL && wifiLockEnforced && !proximityDisabled) { setLockState(LockState.PROXIMITY); } else { setLockState(LockState.FULL); @@ -100,7 +101,13 @@ public class LockManager { setLockState(LockState.FULL); accelerometerListener.enable(false); break; + case IN_VIDEO: + proximityDisabled = true; + accelerometerListener.enable(false); + updateInCallLockState(); + break; case IN_CALL: + proximityDisabled = false; accelerometerListener.enable(true); updateInCallLockState(); break; diff --git a/src/org/thoughtcrime/securesms/service/WebRtcCallService.java b/src/org/thoughtcrime/securesms/service/WebRtcCallService.java index 241eb55ba..22efe157f 100644 --- a/src/org/thoughtcrime/securesms/service/WebRtcCallService.java +++ b/src/org/thoughtcrime/securesms/service/WebRtcCallService.java @@ -491,7 +491,9 @@ public class WebRtcCallService extends Service implements InjectableType, PeerCo initializeAudio(); outgoingRinger.playComplete(); - lockManager.updatePhoneState(LockManager.PhoneState.IN_CALL); + + if (localVideoEnabled) lockManager.updatePhoneState(LockManager.PhoneState.IN_VIDEO); + else lockManager.updatePhoneState(LockManager.PhoneState.IN_CALL); sendMessage(WebRtcViewModel.State.CALL_CONNECTED, recipient, localVideoEnabled, remoteVideoEnabled); @@ -664,6 +666,11 @@ public class WebRtcCallService extends Service implements InjectableType, PeerCo .build().toByteArray()), false)); } + if (callState == CallState.STATE_CONNECTED) { + if (localVideoEnabled) this.lockManager.updatePhoneState(LockManager.PhoneState.IN_VIDEO); + else this.lockManager.updatePhoneState(LockManager.PhoneState.IN_CALL); + } + sendMessage(viewModelStateFor(callState), this.recipient, localVideoEnabled, remoteVideoEnabled); }