summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwangqi <wangqi@google.com>2017-07-11 15:48:57 -0700
committerEric Erfanian <erfanian@google.com>2017-07-12 09:43:41 -0700
commit26c4fbb22fd91bd7ff8aa129e92e665415cc5922 (patch)
tree4ecf4483fa8da31a263268945e153cf8c1040af2
parent4e707bb5d1a9ab1c668e834b2c56e6b75d1f82d7 (diff)
downloadandroid_packages_apps_Dialer-26c4fbb22fd91bd7ff8aa129e92e665415cc5922.tar.gz
android_packages_apps_Dialer-26c4fbb22fd91bd7ff8aa129e92e665415cc5922.tar.bz2
android_packages_apps_Dialer-26c4fbb22fd91bd7ff8aa129e92e665415cc5922.zip
Fix bug that proximity sensor is turned on too early.
This is caused by setting call state to OUTGOING after it's created but before it's connecting, which incorrectly switches state as NO_CALL -> OUTGOING -> PENDING_OUTGOING -> OUTGOING. The fix is giving it PENDING_OUTGOING state if an outgoing call is initialized but still not yet getting update from telecom to CONNECTING (in which case the call will be IDLE state). Bug: 62965119 Test: manual PiperOrigin-RevId: 161594187 Change-Id: I02c8b4dcb0bfd5101bc69f48bb99c66d4831b72e
-rw-r--r--java/com/android/incallui/InCallPresenter.java4
-rw-r--r--java/com/android/incallui/ProximitySensor.java5
2 files changed, 6 insertions, 3 deletions
diff --git a/java/com/android/incallui/InCallPresenter.java b/java/com/android/incallui/InCallPresenter.java
index 64bc4048c..0dd654903 100644
--- a/java/com/android/incallui/InCallPresenter.java
+++ b/java/com/android/incallui/InCallPresenter.java
@@ -852,7 +852,7 @@ public class InCallPresenter implements CallList.Listener {
if (newState == InCallState.NO_CALLS) {
if (mBoundAndWaitingForOutgoingCall) {
- return InCallState.OUTGOING;
+ return InCallState.PENDING_OUTGOING;
}
}
@@ -870,7 +870,7 @@ public class InCallPresenter implements CallList.Listener {
mBoundAndWaitingForOutgoingCall = isBound;
mThemeColorManager.setPendingPhoneAccountHandle(handle);
if (isBound && mInCallState == InCallState.NO_CALLS) {
- mInCallState = InCallState.OUTGOING;
+ mInCallState = InCallState.PENDING_OUTGOING;
}
}
diff --git a/java/com/android/incallui/ProximitySensor.java b/java/com/android/incallui/ProximitySensor.java
index 653d85be9..db538abdc 100644
--- a/java/com/android/incallui/ProximitySensor.java
+++ b/java/com/android/incallui/ProximitySensor.java
@@ -102,7 +102,10 @@ public class ProximitySensor
// sensor during incoming call screen. We check hasLiveCall() because a disconnected call
// can also put the in-call screen in the INCALL state.
boolean hasOngoingCall = InCallState.INCALL == newState && callList.hasLiveCall();
- boolean isOffhook = (InCallState.OUTGOING == newState) || hasOngoingCall;
+ boolean isOffhook =
+ InCallState.PENDING_OUTGOING == newState
+ || InCallState.OUTGOING == newState
+ || hasOngoingCall;
DialerCall activeCall = callList.getActiveCall();
boolean isVideoCall = activeCall != null && activeCall.isVideoCall();