diff options
Diffstat (limited to 'java/com/android/incallui/call/DialerCall.java')
-rw-r--r-- | java/com/android/incallui/call/DialerCall.java | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/java/com/android/incallui/call/DialerCall.java b/java/com/android/incallui/call/DialerCall.java index 2e15264a5..6ba0c8121 100644 --- a/java/com/android/incallui/call/DialerCall.java +++ b/java/com/android/incallui/call/DialerCall.java @@ -430,7 +430,7 @@ public class DialerCall implements VideoTechListener, StateChangedListener, Capa } private void update() { - Trace.beginSection("Update"); + Trace.beginSection("DialerCall.update"); int oldState = getState(); // Clear any cache here that could potentially change on update. videoTech = null; @@ -455,6 +455,7 @@ public class DialerCall implements VideoTechListener, StateChangedListener, Capa } private void updateFromTelecomCall() { + Trace.beginSection("DialerCall.updateFromTelecomCall"); LogUtil.v("DialerCall.updateFromTelecomCall", mTelecomCall.toString()); mVideoTechManager.dispatchCallStateChanged(mTelecomCall.getState()); @@ -503,6 +504,7 @@ public class DialerCall implements VideoTechListener, StateChangedListener, Capa } } } + Trace.endSection(); } /** @@ -680,13 +682,23 @@ public class DialerCall implements VideoTechListener, StateChangedListener, Capa } public void setState(int state) { - mState = state; - if (mState == State.INCOMING) { + if (state == State.INCOMING) { mLogState.isIncoming = true; - } else if (mState == State.DISCONNECTED) { - mLogState.duration = + } else if (state == State.DISCONNECTED) { + long newDuration = getConnectTimeMillis() == 0 ? 0 : System.currentTimeMillis() - getConnectTimeMillis(); + if (mState != state) { + mLogState.duration = newDuration; + } else { + LogUtil.i( + "DialerCall.setState", + "ignoring state transition from DISCONNECTED to DISCONNECTED." + + " Duration would have changed from %s to %s", + mLogState.duration, + newDuration); + } } + mState = state; } public int getNumberPresentation() { |