summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSantos Cordon <santoscordon@google.com>2015-04-15 12:44:08 -0700
committerSantos Cordon <santoscordon@google.com>2015-04-16 10:09:08 -0700
commit870d837b3732a88907df7d78a5f6255f90d1b5b1 (patch)
treeac773902c99fbcbf48e3e90e53283e00d8c5f8fd
parentca1ea57bb11a28efca6155a3755617136e2fdb79 (diff)
Remove usage of Phone.java in InCallService APIs.
Start using the direct methods of InCallService instead of using the Phone object. InCallService methods represent the public API which is what In-Call needs to compile against. Bug: 20160495 Change-Id: I223347e239e5d5954b6118c7ba5befdaea2932a0
-rw-r--r--InCallUI/src/com/android/incallui/AudioModeProvider.java29
-rw-r--r--InCallUI/src/com/android/incallui/CallList.java67
-rw-r--r--InCallUI/src/com/android/incallui/InCallPresenter.java75
-rw-r--r--InCallUI/src/com/android/incallui/InCallServiceImpl.java57
-rw-r--r--InCallUI/src/com/android/incallui/InCallServiceListener.java (renamed from InCallUI/src/com/android/incallui/InCallPhoneListener.java)15
-rw-r--r--InCallUI/src/com/android/incallui/TelecomAdapter.java139
6 files changed, 177 insertions, 205 deletions
diff --git a/InCallUI/src/com/android/incallui/AudioModeProvider.java b/InCallUI/src/com/android/incallui/AudioModeProvider.java
index d4d21172e..dab35d6cf 100644
--- a/InCallUI/src/com/android/incallui/AudioModeProvider.java
+++ b/InCallUI/src/com/android/incallui/AudioModeProvider.java
@@ -16,17 +16,16 @@
package com.android.incallui;
-import com.google.common.collect.Lists;
-
import android.telecom.AudioState;
-import android.telecom.Phone;
+
+import com.google.common.collect.Lists;
import java.util.List;
/**
* Proxy class for getting and setting the audio mode.
*/
-public class AudioModeProvider implements InCallPhoneListener {
+public class AudioModeProvider {
static final int AUDIO_MODE_INVALID = 0;
@@ -36,30 +35,14 @@ public class AudioModeProvider implements InCallPhoneListener {
private int mSupportedModes = AudioState.ROUTE_EARPIECE | AudioState.ROUTE_BLUETOOTH |
AudioState.ROUTE_WIRED_HEADSET | AudioState.ROUTE_SPEAKER;
private final List<AudioModeListener> mListeners = Lists.newArrayList();
- private Phone mPhone;
-
- private Phone.Listener mPhoneListener = new Phone.Listener() {
- @Override
- public void onAudioStateChanged(Phone phone, AudioState audioState) {
- onAudioModeChange(audioState.getRoute(), audioState.isMuted());
- onSupportedAudioModeChange(audioState.getSupportedRouteMask());
- }
- };
public static AudioModeProvider getInstance() {
return sAudioModeProvider;
}
- @Override
- public void setPhone(Phone phone) {
- mPhone = phone;
- mPhone.addListener(mPhoneListener);
- }
-
- @Override
- public void clearPhone() {
- mPhone.removeListener(mPhoneListener);
- mPhone = null;
+ public void onAudioStateChanged(AudioState audioState) {
+ onAudioModeChange(audioState.getRoute(), audioState.isMuted());
+ onSupportedAudioModeChange(audioState.getSupportedRouteMask());
}
public void onAudioModeChange(int newMode, boolean muted) {
diff --git a/InCallUI/src/com/android/incallui/CallList.java b/InCallUI/src/com/android/incallui/CallList.java
index 9868aef50..d3d5b2388 100644
--- a/InCallUI/src/com/android/incallui/CallList.java
+++ b/InCallUI/src/com/android/incallui/CallList.java
@@ -16,15 +16,15 @@
package com.android.incallui;
-import com.android.contacts.common.testing.NeededForTesting;
-import com.google.common.collect.Maps;
-import com.google.common.base.Preconditions;
-
import android.os.Handler;
import android.os.Message;
import android.os.Trace;
import android.telecom.DisconnectCause;
-import android.telecom.Phone;
+import android.telecom.PhoneAccount;
+
+import com.android.contacts.common.testing.NeededForTesting;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Maps;
import java.util.Collections;
import java.util.HashMap;
@@ -38,7 +38,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
* as they are received from the telephony stack. Primary listener of changes to this class is
* InCallPresenter.
*/
-public class CallList implements InCallPhoneListener {
+public class CallList {
private static final int DISCONNECTED_CALL_SHORT_TIMEOUT_MS = 200;
private static final int DISCONNECTED_CALL_MEDIUM_TIMEOUT_MS = 2000;
@@ -61,8 +61,6 @@ public class CallList implements InCallPhoneListener {
private final HashMap<String, List<CallUpdateListener>> mCallUpdateListenerMap = Maps
.newHashMap();
- private Phone mPhone;
-
/**
* Static singleton accessor method.
*/
@@ -70,32 +68,6 @@ public class CallList implements InCallPhoneListener {
return sInstance;
}
- private Phone.Listener mPhoneListener = new Phone.Listener() {
- @Override
- public void onCallAdded(Phone phone, android.telecom.Call telecommCall) {
- Trace.beginSection("onCallAdded");
- Call call = new Call(telecommCall);
- Log.d(this, "onCallAdded: callState=" + call.getState());
- if (call.getState() == Call.State.INCOMING ||
- call.getState() == Call.State.CALL_WAITING) {
- onIncoming(call, call.getCannedSmsResponses());
- } else {
- onUpdate(call);
- }
- Trace.endSection();
- }
- @Override
- public void onCallRemoved(Phone phone, android.telecom.Call telecommCall) {
- if (mCallByTelecommCall.containsKey(telecommCall)) {
- Call call = mCallByTelecommCall.get(telecommCall);
- if (updateCallInMap(call)) {
- Log.w(this, "Removing call not previously disconnected " + call.getId());
- }
- updateCallTextMap(call, null);
- }
- }
- };
-
/**
* USED ONLY FOR TESTING
* Testing-only constructor. Instance should only be acquired through getInstance().
@@ -104,16 +76,27 @@ public class CallList implements InCallPhoneListener {
CallList() {
}
- @Override
- public void setPhone(Phone phone) {
- mPhone = phone;
- mPhone.addListener(mPhoneListener);
+ public void onCallAdded(android.telecom.Call telecommCall) {
+ Trace.beginSection("onCallAdded");
+ Call call = new Call(telecommCall);
+ Log.d(this, "onCallAdded: callState=" + call.getState());
+ if (call.getState() == Call.State.INCOMING ||
+ call.getState() == Call.State.CALL_WAITING) {
+ onIncoming(call, call.getCannedSmsResponses());
+ } else {
+ onUpdate(call);
+ }
+ Trace.endSection();
}
- @Override
- public void clearPhone() {
- mPhone.removeListener(mPhoneListener);
- mPhone = null;
+ public void onCallRemoved(android.telecom.Call telecommCall) {
+ if (mCallByTelecommCall.containsKey(telecommCall)) {
+ Call call = mCallByTelecommCall.get(telecommCall);
+ if (updateCallInMap(call)) {
+ Log.w(this, "Removing call not previously disconnected " + call.getId());
+ }
+ updateCallTextMap(call, null);
+ }
}
/**
diff --git a/InCallUI/src/com/android/incallui/InCallPresenter.java b/InCallUI/src/com/android/incallui/InCallPresenter.java
index d5aa0e500..9c0fca305 100644
--- a/InCallUI/src/com/android/incallui/InCallPresenter.java
+++ b/InCallUI/src/com/android/incallui/InCallPresenter.java
@@ -26,7 +26,6 @@ import android.net.Uri;
import android.os.Bundle;
import android.telecom.DisconnectCause;
import android.telecom.PhoneAccount;
-import android.telecom.Phone;
import android.telecom.PhoneAccountHandle;
import android.telecom.TelecomManager;
import android.telecom.VideoProfile;
@@ -37,12 +36,11 @@ import android.view.View;
import android.view.Window;
import android.view.WindowManager;
-import com.google.common.base.Preconditions;
-
import com.android.contacts.common.interactions.TouchPointManager;
import com.android.contacts.common.testing.NeededForTesting;
import com.android.contacts.common.util.MaterialColorMapUtils.MaterialPalette;
import com.android.incalluibind.ObjectFactory;
+import com.google.common.base.Preconditions;
import java.util.Collections;
import java.util.List;
@@ -60,7 +58,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
* that want to listen in on the in-call state changes.
* TODO: This class has become more of a state machine at this point. Consider renaming.
*/
-public class InCallPresenter implements CallList.Listener, InCallPhoneListener,
+public class InCallPresenter implements CallList.Listener,
CircularRevealFragment.OnCircularRevealCompleteListener {
private static final String EXTRA_FIRST_TIME_SHOWN =
@@ -112,31 +110,6 @@ public class InCallPresenter implements CallList.Listener, InCallPhoneListener,
*/
private PhoneAccountHandle mPendingPhoneAccountHandle;
- private final Phone.Listener mPhoneListener = new Phone.Listener() {
- @Override
- public void onBringToForeground(Phone phone, boolean showDialpad) {
- Log.i(this, "Bringing UI to foreground.");
- bringToForeground(showDialpad);
- }
- @Override
- public void onCallAdded(Phone phone, android.telecom.Call call) {
- // Since a call has been added we are no longer waiting for Telecom to send us a
- // call.
- setBoundAndWaitingForOutgoingCall(false, null);
- call.addListener(mCallListener);
- }
- @Override
- public void onCallRemoved(Phone phone, android.telecom.Call call) {
- call.removeListener(mCallListener);
- }
- @Override
- public void onCanAddCallChanged(Phone phone, boolean canAddCall) {
- for (CanAddCallListener listener : mCanAddCallListeners) {
- listener.onCanAddCallChanged(canAddCall);
- }
- }
- };
-
private final android.telecom.Call.Listener mCallListener =
new android.telecom.Call.Listener() {
@Override
@@ -186,8 +159,6 @@ public class InCallPresenter implements CallList.Listener, InCallPhoneListener,
*/
private boolean mIsChangingConfigurations = false;
- private Phone mPhone;
-
/** Display colors for the UI. Consists of a primary color and secondary (darker) color */
private MaterialPalette mThemeColors;
@@ -205,18 +176,6 @@ public class InCallPresenter implements CallList.Listener, InCallPhoneListener,
sInCallPresenter = inCallPresenter;
}
- @Override
- public void setPhone(Phone phone) {
- mPhone = phone;
- mPhone.addListener(mPhoneListener);
- }
-
- @Override
- public void clearPhone() {
- mPhone.removeListener(mPhoneListener);
- mPhone = null;
- }
-
public InCallState getInCallState() {
return mInCallState;
}
@@ -405,6 +364,36 @@ public class InCallPresenter implements CallList.Listener, InCallPhoneListener,
private boolean mAwaitingCallListUpdate = false;
+ public void onBringToForeground(boolean showDialpad) {
+ Log.i(this, "Bringing UI to foreground.");
+ bringToForeground(showDialpad);
+ }
+
+ /**
+ * TODO: Consider listening to CallList callbacks to do this instead of receiving a direct
+ * method invocation from InCallService.
+ */
+ public void onCallAdded(android.telecom.Call call) {
+ // Since a call has been added we are no longer waiting for Telecom to send us a
+ // call.
+ setBoundAndWaitingForOutgoingCall(false, null);
+ call.addListener(mCallListener);
+ }
+
+ /**
+ * TODO: Consider listening to CallList callbacks to do this instead of receiving a direct
+ * method invocation from InCallService.
+ */
+ public void onCallRemoved(android.telecom.Call call) {
+ call.removeListener(mCallListener);
+ }
+
+ public void onCanAddCallChanged(boolean canAddCall) {
+ for (CanAddCallListener listener : mCanAddCallListeners) {
+ listener.onCanAddCallChanged(canAddCall);
+ }
+ }
+
/**
* Called when there is a change to the call list.
* Sets the In-Call state for the entire in-call app based on the information it gets from
diff --git a/InCallUI/src/com/android/incallui/InCallServiceImpl.java b/InCallUI/src/com/android/incallui/InCallServiceImpl.java
index adb069784..bbd1db0f7 100644
--- a/InCallUI/src/com/android/incallui/InCallServiceImpl.java
+++ b/InCallUI/src/com/android/incallui/InCallServiceImpl.java
@@ -19,8 +19,9 @@ package com.android.incallui;
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;
+import android.telecom.AudioState;
+import android.telecom.Call;
import android.telecom.InCallService;
-import android.telecom.Phone;
/**
* Used to receive updates about calls from the Telecomm component. This service is bound to
@@ -31,25 +32,30 @@ import android.telecom.Phone;
public class InCallServiceImpl extends InCallService {
@Override
- public void onPhoneCreated(Phone phone) {
- Log.v(this, "onPhoneCreated");
- CallList.getInstance().setPhone(phone);
- AudioModeProvider.getInstance().setPhone(phone);
- TelecomAdapter.getInstance().setPhone(phone);
- InCallPresenter.getInstance().setPhone(phone);
- TelecomAdapter.getInstance().setContext(InCallServiceImpl.this);
+ public void onAudioStateChanged(AudioState audioState) {
+ AudioModeProvider.getInstance().onAudioStateChanged(audioState);
}
@Override
- public void onPhoneDestroyed(Phone phone) {
- Log.v(this, "onPhoneDestroyed");
- // Tear down the InCall system
- CallList.getInstance().clearPhone();
- AudioModeProvider.getInstance().clearPhone();
- TelecomAdapter.getInstance().clearPhone();
- TelecomAdapter.getInstance().setContext(null);
- CallList.getInstance().clearOnDisconnect();
- InCallPresenter.getInstance().tearDown();
+ public void onBringToForeground(boolean showDialpad) {
+ InCallPresenter.getInstance().onBringToForeground(showDialpad);
+ }
+
+ @Override
+ public void onCallAdded(Call call) {
+ CallList.getInstance().onCallAdded(call);
+ InCallPresenter.getInstance().onCallAdded(call);
+ }
+
+ @Override
+ public void onCallRemoved(Call call) {
+ CallList.getInstance().onCallRemoved(call);
+ InCallPresenter.getInstance().onCallRemoved(call);
+ }
+
+ @Override
+ public void onCanAddCallChanged(boolean canAddCall) {
+ InCallPresenter.getInstance().onCanAddCallChanged(canAddCall);
}
@Override
@@ -66,12 +72,27 @@ public class InCallServiceImpl extends InCallService {
);
InCallPresenter.getInstance().onServiceBind();
InCallPresenter.getInstance().maybeStartRevealAnimation(intent);
+ TelecomAdapter.getInstance().setInCallService(this);
+
return super.onBind(intent);
}
@Override
public boolean onUnbind(Intent intent) {
+ super.onUnbind(intent);
+
InCallPresenter.getInstance().onServiceUnbind();
- return super.onUnbind(intent);
+ tearDown();
+
+ return false;
+ }
+
+ private void tearDown() {
+ Log.v(this, "tearDown");
+ // Tear down the InCall system
+ TelecomAdapter.getInstance().clearInCallService();
+ CallList.getInstance().clearOnDisconnect();
+ InCallPresenter.getInstance().tearDown();
}
+
}
diff --git a/InCallUI/src/com/android/incallui/InCallPhoneListener.java b/InCallUI/src/com/android/incallui/InCallServiceListener.java
index 2fd6afe22..295385d8e 100644
--- a/InCallUI/src/com/android/incallui/InCallPhoneListener.java
+++ b/InCallUI/src/com/android/incallui/InCallServiceListener.java
@@ -16,25 +16,26 @@
package com.android.incallui;
-import android.telecom.Phone;
+import android.telecom.InCallService;
/**
* Interface implemented by In-Call components that maintain a reference to the Telecomm API
- * {@code Phone} object. Clarifies the expectations associated with the relevant method calls.
+ * {@code InCallService} object. Clarifies the expectations associated with the relevant method
+ * calls.
*/
-public interface InCallPhoneListener {
+public interface InCallServiceListener {
/**
- * Called once at {@code InCallService} startup time with a valid {@code Phone}. At
+ * Called once at {@code InCallService} startup time with a valid instance. At
* that time, there will be no existing {@code Call}s.
*
- * @param phone The {@code Phone} object.
+ * @param inCallService The {@code InCallService} object.
*/
- void setPhone(Phone phone);
+ void setInCallService(InCallService inCallService);
/**
* Called once at {@code InCallService} shutdown time. At that time, any {@code Call}s
* will have transitioned through the disconnected state and will no longer exist.
*/
- void clearPhone();
+ void clearInCallService();
}
diff --git a/InCallUI/src/com/android/incallui/TelecomAdapter.java b/InCallUI/src/com/android/incallui/TelecomAdapter.java
index 10c230713..37efdee59 100644
--- a/InCallUI/src/com/android/incallui/TelecomAdapter.java
+++ b/InCallUI/src/com/android/incallui/TelecomAdapter.java
@@ -17,22 +17,20 @@
package com.android.incallui;
import android.content.ActivityNotFoundException;
-import android.content.Context;
import android.content.Intent;
import android.os.Looper;
-import android.telecom.Phone;
+import android.telecom.InCallService;
import android.telecom.PhoneAccountHandle;
import com.google.common.base.Preconditions;
import java.util.List;
-final class TelecomAdapter implements InCallPhoneListener {
+final class TelecomAdapter implements InCallServiceListener {
private static final String ADD_CALL_MODE_KEY = "add_call_mode";
private static TelecomAdapter sInstance;
- private Context mContext;
- private Phone mPhone;
+ private InCallService mInCallService;
static TelecomAdapter getInstance() {
Preconditions.checkState(Looper.getMainLooper().getThread() == Thread.currentThread());
@@ -45,102 +43,94 @@ final class TelecomAdapter implements InCallPhoneListener {
private TelecomAdapter() {
}
- void setContext(Context context) {
- mContext = context;
- }
-
@Override
- public void setPhone(Phone phone) {
- mPhone = phone;
+ public void setInCallService(InCallService inCallService) {
+ mInCallService = inCallService;
}
@Override
- public void clearPhone() {
- mPhone = null;
+ public void clearInCallService() {
+ mInCallService = null;
}
private android.telecom.Call getTelecommCallById(String callId) {
- final Call call = CallList.getInstance().getCallById(callId);
+ Call call = CallList.getInstance().getCallById(callId);
return call == null ? null : call.getTelecommCall();
}
void answerCall(String callId, int videoState) {
- if (mPhone != null) {
- final android.telecom.Call call = getTelecommCallById(callId);
- if (call != null) {
- call.answer(videoState);
- } else {
- Log.e(this, "error answerCall, call not in call list: " + callId);
- }
+ android.telecom.Call call = getTelecommCallById(callId);
+ if (call != null) {
+ call.answer(videoState);
} else {
- Log.e(this, "error answerCall, mPhone is null");
+ Log.e(this, "error answerCall, call not in call list: " + callId);
}
}
void rejectCall(String callId, boolean rejectWithMessage, String message) {
- if (mPhone != null) {
- final android.telecom.Call call = getTelecommCallById(callId);
- if (call != null) {
- call.reject(rejectWithMessage, message);
- } else {
- Log.e(this, "error rejectCall, call not in call list: " + callId);
- }
+ android.telecom.Call call = getTelecommCallById(callId);
+ if (call != null) {
+ call.reject(rejectWithMessage, message);
} else {
- Log.e(this, "error rejectCall, mPhone is null");
+ Log.e(this, "error rejectCall, call not in call list: " + callId);
}
}
void disconnectCall(String callId) {
- if (mPhone != null) {
- getTelecommCallById(callId).disconnect();
+ android.telecom.Call call = getTelecommCallById(callId);
+ if (call != null) {
+ call.disconnect();
} else {
- Log.e(this, "error disconnectCall, mPhone is null");
+ Log.e(this, "error disconnectCall, call not in call list " + callId);
}
}
void holdCall(String callId) {
- if (mPhone != null) {
- getTelecommCallById(callId).hold();
+ android.telecom.Call call = getTelecommCallById(callId);
+ if (call != null) {
+ call.hold();
} else {
- Log.e(this, "error holdCall, mPhone is null");
+ Log.e(this, "error holdCall, call not in call list " + callId);
}
}
void unholdCall(String callId) {
- if (mPhone != null) {
- getTelecommCallById(callId).unhold();
+ android.telecom.Call call = getTelecommCallById(callId);
+ if (call != null) {
+ call.unhold();
} else {
- Log.e(this, "error unholdCall, mPhone is null");
+ Log.e(this, "error unholdCall, call not in call list " + callId);
}
}
void mute(boolean shouldMute) {
- if (mPhone != null) {
- mPhone.setMuted(shouldMute);
+ if (mInCallService != null) {
+ mInCallService.setMuted(shouldMute);
} else {
- Log.e(this, "error mute, mPhone is null");
+ Log.e(this, "error mute, mInCallService is null");
}
}
void setAudioRoute(int route) {
- if (mPhone != null) {
- mPhone.setAudioRoute(route);
+ if (mInCallService != null) {
+ mInCallService.setAudioRoute(route);
} else {
- Log.e(this, "error setAudioRoute, mPhone is null");
+ Log.e(this, "error setAudioRoute, mInCallService is null");
}
}
void separateCall(String callId) {
- if (mPhone != null) {
- getTelecommCallById(callId).splitFromConference();
+ android.telecom.Call call = getTelecommCallById(callId);
+ if (call != null) {
+ call.splitFromConference();
} else {
- Log.e(this, "error separateCall, mPhone is null.");
+ Log.e(this, "error separateCall, call not in call list " + callId);
}
}
void merge(String callId) {
- if (mPhone != null) {
- android.telecom.Call call = getTelecommCallById(callId);
+ android.telecom.Call call = getTelecommCallById(callId);
+ if (call != null) {
List<android.telecom.Call> conferenceable = call.getConferenceableCalls();
if (!conferenceable.isEmpty()) {
call.conference(conferenceable.get(0));
@@ -151,24 +141,24 @@ final class TelecomAdapter implements InCallPhoneListener {
}
}
} else {
- Log.e(this, "error merge, mPhone is null.");
+ Log.e(this, "error merge, call not in call list " + callId);
}
}
void swap(String callId) {
- if (mPhone != null) {
- android.telecom.Call call = getTelecommCallById(callId);
+ android.telecom.Call call = getTelecommCallById(callId);
+ if (call != null) {
if (call.getDetails().can(
android.telecom.Call.Details.CAPABILITY_SWAP_CONFERENCE)) {
call.swapConference();
}
} else {
- Log.e(this, "Error swap, mPhone is null.");
+ Log.e(this, "error swap, call not in call list " + callId);
}
}
void addCall() {
- if (mContext != null) {
+ if (mInCallService != null) {
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
@@ -178,7 +168,7 @@ final class TelecomAdapter implements InCallPhoneListener {
intent.putExtra(ADD_CALL_MODE_KEY, true);
try {
Log.d(this, "Sending the add Call intent");
- mContext.startActivity(intent);
+ mInCallService.startActivity(intent);
} catch (ActivityNotFoundException e) {
// This is rather rare but possible.
// Note: this method is used even when the phone is encrypted. At that moment
@@ -189,43 +179,48 @@ final class TelecomAdapter implements InCallPhoneListener {
}
void playDtmfTone(String callId, char digit) {
- if (mPhone != null) {
- getTelecommCallById(callId).playDtmfTone(digit);
+ android.telecom.Call call = getTelecommCallById(callId);
+ if (call != null) {
+ call.playDtmfTone(digit);
} else {
- Log.e(this, "error playDtmfTone, mPhone is null");
+ Log.e(this, "error playDtmfTone, call not in call list " + callId);
}
}
void stopDtmfTone(String callId) {
- if (mPhone != null) {
- getTelecommCallById(callId).stopDtmfTone();
+ android.telecom.Call call = getTelecommCallById(callId);
+ if (call != null) {
+ call.stopDtmfTone();
} else {
- Log.e(this, "error stopDtmfTone, mPhone is null");
+ Log.e(this, "error stopDtmfTone, call not in call list " + callId);
}
}
void postDialContinue(String callId, boolean proceed) {
- if (mPhone != null) {
- getTelecommCallById(callId).postDialContinue(proceed);
+ android.telecom.Call call = getTelecommCallById(callId);
+ if (call != null) {
+ call.postDialContinue(proceed);
} else {
- Log.e(this, "error postDialContinue, mPhone is null");
+ Log.e(this, "error postDialContinue, call not in call list " + callId);
}
}
void phoneAccountSelected(String callId, PhoneAccountHandle accountHandle, boolean setDefault) {
- if (mPhone != null) {
- getTelecommCallById(callId).phoneAccountSelected(accountHandle, setDefault);
- } else {
- Log.e(this, "error phoneAccountSelected, mAdapter is null");
- }
-
if (accountHandle == null) {
Log.e(this, "error phoneAccountSelected, accountHandle is null");
+ // TODO: Do we really want to send null accountHandle?
+ }
+
+ android.telecom.Call call = getTelecommCallById(callId);
+ if (call != null) {
+ call.phoneAccountSelected(accountHandle, setDefault);
+ } else {
+ Log.e(this, "error phoneAccountSelected, call not in call list " + callId);
}
}
boolean canAddCall() {
// Default to true if we are not connected to telecom.
- return mPhone == null ? true : mPhone.canAddCall();
+ return mInCallService == null ? true : mInCallService.canAddCall();
}
}