From 054559b6c279a0149ac6473d1897f6db817c5a57 Mon Sep 17 00:00:00 2001 From: Brandon Maxwell Date: Fri, 12 Feb 2016 10:37:35 -0800 Subject: Integrating DialerRingtoneManager and InCallTonePlayer This change makes the Call Waiting tone actually play during the Call Waiting use case. + Plugging InCallTonePlayer into the DialerRingtoneManager in the StatusBarNotifier + Test fixes + Added tests for when Dialer ringing is disabled + Added tests for DialerRingtoneManager#playCallWaitingTone - Removed unneeded @NeededForTesting annotations from InCallTonePlayer since they won't be stipped out by proguard. Change-Id: I49a83d2a7fe6edf5f9ec88db973a5f37e307f23a --- .../src/com/android/incallui/StatusBarNotifier.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'InCallUI/src/com/android/incallui/StatusBarNotifier.java') diff --git a/InCallUI/src/com/android/incallui/StatusBarNotifier.java b/InCallUI/src/com/android/incallui/StatusBarNotifier.java index 623cbb667..6c00164b9 100644 --- a/InCallUI/src/com/android/incallui/StatusBarNotifier.java +++ b/InCallUI/src/com/android/incallui/StatusBarNotifier.java @@ -50,10 +50,14 @@ import com.android.contacts.common.preference.ContactsPreferences; import com.android.contacts.common.testing.NeededForTesting; import com.android.contacts.common.util.BitmapUtil; import com.android.contacts.common.util.ContactDisplayUtils; +import com.android.incallui.Call.State; import com.android.incallui.ContactInfoCache.ContactCacheEntry; import com.android.incallui.ContactInfoCache.ContactInfoCacheCallback; import com.android.incallui.InCallPresenter.InCallState; +import com.android.incallui.async.PausableExecutorImpl; import com.android.incallui.ringtone.DialerRingtoneManager; +import com.android.incallui.ringtone.InCallTonePlayer; +import com.android.incallui.ringtone.ToneGeneratorFactory; import java.util.Objects; @@ -95,7 +99,12 @@ public class StatusBarNotifier implements InCallPresenter.InCallStateListener, mContactInfoCache = contactInfoCache; mNotificationManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE); - mDialerRingtoneManager = new DialerRingtoneManager(); + mDialerRingtoneManager = new DialerRingtoneManager( + new InCallTonePlayer( + AudioModeProvider.getInstance(), + new ToneGeneratorFactory(), + new PausableExecutorImpl()), + CallList.getInstance()); mCurrentNotification = NOTIFICATION_NONE; } @@ -308,7 +317,8 @@ public class StatusBarNotifier implements InCallPresenter.InCallStateListener, notification.vibrate = VIBRATE_PATTERN; } if (mDialerRingtoneManager.shouldPlayCallWaitingTone(callState)) { - // TODO (maxwelb) play call waiting + Log.v(this, "Playing call waiting tone"); + mDialerRingtoneManager.playCallWaitingTone(); } if (mCurrentNotification != notificationType && mCurrentNotification != NOTIFICATION_NONE) { Log.i(this, "Previous notification already showing - cancelling " @@ -699,7 +709,9 @@ public class StatusBarNotifier implements InCallPresenter.InCallStateListener, @Override public void onCallChanged(Call call) { - // no-op + if (CallList.getInstance().getIncomingCall() == null) { + mDialerRingtoneManager.stopCallWaitingTone(); + } } /** -- cgit v1.2.3