Merge "Add cleanspec to Telecomm." into lmp-dev
diff --git a/src/com/android/server/telecom/CallsManager.java b/src/com/android/server/telecom/CallsManager.java
index d0aa49f..8a5647c 100644
--- a/src/com/android/server/telecom/CallsManager.java
+++ b/src/com/android/server/telecom/CallsManager.java
@@ -89,6 +89,7 @@
private final WiredHeadsetManager mWiredHeadsetManager;
private final TtyManager mTtyManager;
private final ProximitySensorManager mProximitySensorManager;
+ private final PhoneStateBroadcaster mPhoneStateBroadcaster;
/**
* The call the user is currently interacting with. This is the call that should have audio
@@ -115,10 +116,11 @@
mHeadsetMediaButton = new HeadsetMediaButton(app, this);
mTtyManager = new TtyManager(app, mWiredHeadsetManager);
mProximitySensorManager = new ProximitySensorManager(app);
+ mPhoneStateBroadcaster = new PhoneStateBroadcaster();
mListeners.add(statusBarNotifier);
mListeners.add(new CallLogManager(app));
- mListeners.add(new PhoneStateBroadcaster());
+ mListeners.add(mPhoneStateBroadcaster);
mListeners.add(mInCallController);
mListeners.add(mRinger);
mListeners.add(new RingbackPlayer(this, playerFactory));
@@ -755,6 +757,12 @@
return call;
}
+ /**
+ * @return the call state currently tracked by {@link PhoneStateBroadcaster}
+ */
+ int getCallState() {
+ return mPhoneStateBroadcaster.getCallState();
+ }
/**
* Adds the specified call to the main list of live calls.
diff --git a/src/com/android/server/telecom/PhoneStateBroadcaster.java b/src/com/android/server/telecom/PhoneStateBroadcaster.java
index d0d0b68..0c16689 100644
--- a/src/com/android/server/telecom/PhoneStateBroadcaster.java
+++ b/src/com/android/server/telecom/PhoneStateBroadcaster.java
@@ -66,6 +66,10 @@
}
}
+ int getCallState() {
+ return mCurrentState;
+ }
+
private void sendPhoneStateChangedBroadcast(Call call, int phoneState) {
if (phoneState == mCurrentState) {
return;
diff --git a/src/com/android/server/telecom/TelecomServiceImpl.java b/src/com/android/server/telecom/TelecomServiceImpl.java
index 5bce513..566b0c6 100644
--- a/src/com/android/server/telecom/TelecomServiceImpl.java
+++ b/src/com/android/server/telecom/TelecomServiceImpl.java
@@ -382,7 +382,9 @@
enforceReadPermission();
// Do not use sendRequest() with this method since it could cause a deadlock with
// audio service, which we call into from the main thread: AudioManager.setMode().
- return mCallsManager.hasAnyCalls();
+ final int callState = mCallsManager.getCallState();
+ return callState == TelephonyManager.CALL_STATE_OFFHOOK
+ || callState == TelephonyManager.CALL_STATE_RINGING;
}
/**
@@ -391,7 +393,16 @@
@Override
public boolean isRinging() {
enforceReadPermission();
- return mCallsManager.hasRingingCall();
+ return mCallsManager.getCallState() == TelephonyManager.CALL_STATE_RINGING;
+ }
+
+ /**
+ * @see TelecomManager#getCallState
+ */
+ @Override
+ public int getCallState() {
+ enforceReadPermission();
+ return mCallsManager.getCallState();
}
/**