Loading src/java/com/android/internal/telephony/Call.java +18 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,18 @@ public abstract class Call { } } public enum HoldingRequestState { NONE, STARTED, ENDED; public boolean isStarted() { return this == STARTED; } public boolean isFinished() { return this == ENDED; } } public static State stateFromDCState (DriverCall.State dcState) { switch (dcState) { Loading @@ -70,6 +82,8 @@ public abstract class Call { public ArrayList<Connection> mConnections = new ArrayList<Connection>(); public HoldingRequestState mHoldingRequestState = HoldingRequestState.NONE; /* Instance Methods */ /** Do not modify the List result!!! This list is not yours to keep Loading Loading @@ -277,4 +291,8 @@ public abstract class Call { protected void setState(State newState) { mState = newState; } public void updateHoldingRequestState(HoldingRequestState state) { mHoldingRequestState = state; } } src/java/com/android/internal/telephony/GsmCdmaCall.java +4 −1 Original line number Diff line number Diff line Loading @@ -118,6 +118,9 @@ public class GsmCdmaCall extends Call { newState = stateFromDCState(dc.state); if (newState != mState) { if (mState == State.HOLDING) { updateHoldingRequestState(HoldingRequestState.ENDED); } mState = newState; changed = true; } Loading src/java/com/android/internal/telephony/GsmCdmaCallTracker.java +6 −0 Original line number Diff line number Diff line Loading @@ -1260,6 +1260,12 @@ public class GsmCdmaCallTracker extends CallTracker { // Do not auto-answer ringing on CHUP, instead just end active calls log("hangup all conns in active/background call, without affecting ringing call"); hangupAllConnections(call); } else if (call.mHoldingRequestState.isStarted()) { // Even if the progress of holding is not completed, lower layer expects to hang up // as background call because of being going to holding. log("hangup waiting or background call"); logHangupEvent(call); hangupWaitingOrBackground(); } else { logHangupEvent(call); hangupForegroundResumeBackground(); Loading Loading
src/java/com/android/internal/telephony/Call.java +18 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,18 @@ public abstract class Call { } } public enum HoldingRequestState { NONE, STARTED, ENDED; public boolean isStarted() { return this == STARTED; } public boolean isFinished() { return this == ENDED; } } public static State stateFromDCState (DriverCall.State dcState) { switch (dcState) { Loading @@ -70,6 +82,8 @@ public abstract class Call { public ArrayList<Connection> mConnections = new ArrayList<Connection>(); public HoldingRequestState mHoldingRequestState = HoldingRequestState.NONE; /* Instance Methods */ /** Do not modify the List result!!! This list is not yours to keep Loading Loading @@ -277,4 +291,8 @@ public abstract class Call { protected void setState(State newState) { mState = newState; } public void updateHoldingRequestState(HoldingRequestState state) { mHoldingRequestState = state; } }
src/java/com/android/internal/telephony/GsmCdmaCall.java +4 −1 Original line number Diff line number Diff line Loading @@ -118,6 +118,9 @@ public class GsmCdmaCall extends Call { newState = stateFromDCState(dc.state); if (newState != mState) { if (mState == State.HOLDING) { updateHoldingRequestState(HoldingRequestState.ENDED); } mState = newState; changed = true; } Loading
src/java/com/android/internal/telephony/GsmCdmaCallTracker.java +6 −0 Original line number Diff line number Diff line Loading @@ -1260,6 +1260,12 @@ public class GsmCdmaCallTracker extends CallTracker { // Do not auto-answer ringing on CHUP, instead just end active calls log("hangup all conns in active/background call, without affecting ringing call"); hangupAllConnections(call); } else if (call.mHoldingRequestState.isStarted()) { // Even if the progress of holding is not completed, lower layer expects to hang up // as background call because of being going to holding. log("hangup waiting or background call"); logHangupEvent(call); hangupWaitingOrBackground(); } else { logHangupEvent(call); hangupForegroundResumeBackground(); Loading