diff options
Diffstat (limited to 'telephony/java/com')
3 files changed, 26 insertions, 10 deletions
diff --git a/telephony/java/com/android/internal/telephony/cdma/CdmaConnection.java b/telephony/java/com/android/internal/telephony/cdma/CdmaConnection.java index 08946d2..188145b 100755 --- a/telephony/java/com/android/internal/telephony/cdma/CdmaConnection.java +++ b/telephony/java/com/android/internal/telephony/cdma/CdmaConnection.java @@ -592,8 +592,11 @@ public class CdmaConnection extends Connection { if (!isIncoming) { // outgoing calls only processNextPostDialChar(); + } else { + // Only release wake lock for incoming calls, for outgoing calls the wake lock + // will be released after any pause-dial is completed + releaseWakeLock(); } - releaseWakeLock(); } private void @@ -688,6 +691,7 @@ public class CdmaConnection extends Connection { Registrant postDialHandler; if (postDialState == PostDialState.CANCELLED) { + releaseWakeLock(); //Log.v("CDMA", "##### processNextPostDialChar: postDialState == CANCELLED, bail"); return; } @@ -696,6 +700,9 @@ public class CdmaConnection extends Connection { postDialString.length() <= nextPostDialChar) { setPostDialState(PostDialState.COMPLETE); + // We were holding a wake lock until pause-dial was complete, so give it up now + releaseWakeLock(); + // notifyMessage.arg1 is 0 on complete c = 0; } else { @@ -770,19 +777,24 @@ public class CdmaConnection extends Connection { } /** - * Set post dial state and acquire wake lock while switching to "started" - * state, the wake lock will be released if state switches out of "started" + * Set post dial state and acquire wake lock while switching to "started" or "wait" + * state, the wake lock will be released if state switches out of "started" or "wait" * state or after WAKE_LOCK_TIMEOUT_MILLIS. * @param s new PostDialState */ private void setPostDialState(PostDialState s) { - if (postDialState != PostDialState.STARTED - && s == PostDialState.STARTED) { - acquireWakeLock(); - Message msg = h.obtainMessage(EVENT_WAKE_LOCK_TIMEOUT); - h.sendMessageDelayed(msg, WAKE_LOCK_TIMEOUT_MILLIS); - } else if (postDialState == PostDialState.STARTED - && s != PostDialState.STARTED) { + if (s == PostDialState.STARTED || + s == PostDialState.PAUSE) { + synchronized (mPartialWakeLock) { + if (mPartialWakeLock.isHeld()) { + h.removeMessages(EVENT_WAKE_LOCK_TIMEOUT); + } else { + acquireWakeLock(); + } + Message msg = h.obtainMessage(EVENT_WAKE_LOCK_TIMEOUT); + h.sendMessageDelayed(msg, WAKE_LOCK_TIMEOUT_MILLIS); + } + } else { h.removeMessages(EVENT_WAKE_LOCK_TIMEOUT); releaseWakeLock(); } diff --git a/telephony/java/com/android/internal/telephony/cdma/EriInfo.java b/telephony/java/com/android/internal/telephony/cdma/EriInfo.java index 5c8e23e..3e5d37e 100644 --- a/telephony/java/com/android/internal/telephony/cdma/EriInfo.java +++ b/telephony/java/com/android/internal/telephony/cdma/EriInfo.java @@ -1,4 +1,6 @@ /* + * Copyright (C) 2009 The Android Open Source Project + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/telephony/java/com/android/internal/telephony/cdma/EriManager.java b/telephony/java/com/android/internal/telephony/cdma/EriManager.java index 37c1d55..1bcc90a 100644 --- a/telephony/java/com/android/internal/telephony/cdma/EriManager.java +++ b/telephony/java/com/android/internal/telephony/cdma/EriManager.java @@ -1,4 +1,6 @@ /* + * Copyright (C) 2009 The Android Open Source Project + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at |