Loading telephony/java/com/android/internal/telephony/cdma/CdmaCallTracker.java +7 −11 Original line number Diff line number Diff line Loading @@ -253,11 +253,7 @@ public final class CdmaCallTracker extends CallTracker { // Always unmute when answering a new call setMute(false); cm.acceptCall(obtainCompleteMessage()); } else if ((foregroundCall.connections.size() > 0) && (ringingCall.getState() == CdmaCall.State.WAITING)) { // TODO(Moto): jsh asks, "Is this check necessary? I don't think it should be // possible to have no fg connection and a WAITING call, but if we should hit // this situation, is a CallStateExcetion appropriate?" } else if (ringingCall.getState() == CdmaCall.State.WAITING) { CdmaConnection cwConn = (CdmaConnection)(ringingCall.getLatestConnection()); // Since there is no network response for supplimentary Loading Loading @@ -530,10 +526,6 @@ public final class CdmaCallTracker extends CallTracker { CdmaConnection cn = (CdmaConnection)foregroundCall.connections.get(n); droppedDuringPoll.add(cn); } // TODO(Moto): jsh asks, "Are we sure we don't need to do this for // ringingCall as well? What if there's a WAITING call (ie, UI timer // hasn't expired, moving it to DISCONNECTED)? How/when will it // transition to DISCONNECTED?" } foregroundCall.setGeneric(false); // Dropped connections are removed from the CallTracker Loading Loading @@ -681,8 +673,12 @@ public final class CdmaCallTracker extends CallTracker { // set the ringing call state to IDLE here to avoid a race condition // where a new call waiting could get a hang up from an old call // waiting ringingCall. // TODO(Moto): jsh asks, "Should we call conn.ondisconnect() here or Somewhere?" ringingCall.detach(conn); // // PhoneApp does the call log itself since only PhoneApp knows // the hangup reason is user ignoring or timing out. So conn.onDisconnect() // is not called here. Instead, conn.onLocalDisconnect() is called. conn.onLocalDisconnect(); phone.notifyCallStateChanged(); return; } else { try { Loading telephony/java/com/android/internal/telephony/cdma/CdmaConnection.java +24 −6 Original line number Diff line number Diff line Loading @@ -452,12 +452,7 @@ public class CdmaConnection extends Connection { this.cause = cause; if (!disconnected) { index = -1; disconnectTime = System.currentTimeMillis(); duration = SystemClock.elapsedRealtime() - connectTimeReal; disconnected = true; doDisconnect(); if (Config.LOGD) Log.d(LOG_TAG, "[CDMAConn] onDisconnect: cause=" + cause); Loading @@ -470,6 +465,21 @@ public class CdmaConnection extends Connection { releaseWakeLock(); } /** Called when the call waiting connection has been hung up */ /*package*/ void onLocalDisconnect() { if (!disconnected) { doDisconnect(); if (Config.LOGD) Log.d(LOG_TAG, "[CDMAConn] onLoalDisconnect" ); if (parent != null) { parent.detach(this); } } releaseWakeLock(); } // Returns true if state has changed, false if nothing changed /*package*/ boolean update (DriverCall dc) { Loading Loading @@ -586,6 +596,14 @@ public class CdmaConnection extends Connection { releaseWakeLock(); } private void doDisconnect() { index = -1; disconnectTime = System.currentTimeMillis(); duration = SystemClock.elapsedRealtime() - connectTimeReal; disconnected = true; } private void onStartedHolding() { holdingStartTime = SystemClock.elapsedRealtime(); Loading Loading
telephony/java/com/android/internal/telephony/cdma/CdmaCallTracker.java +7 −11 Original line number Diff line number Diff line Loading @@ -253,11 +253,7 @@ public final class CdmaCallTracker extends CallTracker { // Always unmute when answering a new call setMute(false); cm.acceptCall(obtainCompleteMessage()); } else if ((foregroundCall.connections.size() > 0) && (ringingCall.getState() == CdmaCall.State.WAITING)) { // TODO(Moto): jsh asks, "Is this check necessary? I don't think it should be // possible to have no fg connection and a WAITING call, but if we should hit // this situation, is a CallStateExcetion appropriate?" } else if (ringingCall.getState() == CdmaCall.State.WAITING) { CdmaConnection cwConn = (CdmaConnection)(ringingCall.getLatestConnection()); // Since there is no network response for supplimentary Loading Loading @@ -530,10 +526,6 @@ public final class CdmaCallTracker extends CallTracker { CdmaConnection cn = (CdmaConnection)foregroundCall.connections.get(n); droppedDuringPoll.add(cn); } // TODO(Moto): jsh asks, "Are we sure we don't need to do this for // ringingCall as well? What if there's a WAITING call (ie, UI timer // hasn't expired, moving it to DISCONNECTED)? How/when will it // transition to DISCONNECTED?" } foregroundCall.setGeneric(false); // Dropped connections are removed from the CallTracker Loading Loading @@ -681,8 +673,12 @@ public final class CdmaCallTracker extends CallTracker { // set the ringing call state to IDLE here to avoid a race condition // where a new call waiting could get a hang up from an old call // waiting ringingCall. // TODO(Moto): jsh asks, "Should we call conn.ondisconnect() here or Somewhere?" ringingCall.detach(conn); // // PhoneApp does the call log itself since only PhoneApp knows // the hangup reason is user ignoring or timing out. So conn.onDisconnect() // is not called here. Instead, conn.onLocalDisconnect() is called. conn.onLocalDisconnect(); phone.notifyCallStateChanged(); return; } else { try { Loading
telephony/java/com/android/internal/telephony/cdma/CdmaConnection.java +24 −6 Original line number Diff line number Diff line Loading @@ -452,12 +452,7 @@ public class CdmaConnection extends Connection { this.cause = cause; if (!disconnected) { index = -1; disconnectTime = System.currentTimeMillis(); duration = SystemClock.elapsedRealtime() - connectTimeReal; disconnected = true; doDisconnect(); if (Config.LOGD) Log.d(LOG_TAG, "[CDMAConn] onDisconnect: cause=" + cause); Loading @@ -470,6 +465,21 @@ public class CdmaConnection extends Connection { releaseWakeLock(); } /** Called when the call waiting connection has been hung up */ /*package*/ void onLocalDisconnect() { if (!disconnected) { doDisconnect(); if (Config.LOGD) Log.d(LOG_TAG, "[CDMAConn] onLoalDisconnect" ); if (parent != null) { parent.detach(this); } } releaseWakeLock(); } // Returns true if state has changed, false if nothing changed /*package*/ boolean update (DriverCall dc) { Loading Loading @@ -586,6 +596,14 @@ public class CdmaConnection extends Connection { releaseWakeLock(); } private void doDisconnect() { index = -1; disconnectTime = System.currentTimeMillis(); duration = SystemClock.elapsedRealtime() - connectTimeReal; disconnected = true; } private void onStartedHolding() { holdingStartTime = SystemClock.elapsedRealtime(); Loading