Merge changes If3f2414d,I8bdd9c79

* changes:
  Update the SpeakEasy component.
  Update text on after call spam notification and dialog.
diff --git a/java/com/android/dialer/simulator/impl/SimulatorMainMenu.java b/java/com/android/dialer/simulator/impl/SimulatorMainMenu.java
index 69da2f4..0bd1c0f 100644
--- a/java/com/android/dialer/simulator/impl/SimulatorMainMenu.java
+++ b/java/com/android/dialer/simulator/impl/SimulatorMainMenu.java
@@ -34,9 +34,6 @@
 import com.android.dialer.preferredsim.PreferredSimFallbackContract;
 import com.android.dialer.simulator.SimulatorComponent;
 import com.android.incallui.rtt.impl.RttChatActivity;
-import com.android.incallui.speakeasy.SpeakEasy;
-import com.android.incallui.speakeasy.SpeakEasyActivity;
-import com.android.incallui.speakeasy.SpeakEasyComponent;
 
 /** Implements the top level simulator menu. */
 final class SimulatorMainMenu {
@@ -79,12 +76,6 @@
                 SimulatorComponent.get(activity.getApplicationContext())
                     .getSimulator()
                     .disableSimulatorMode());
-    SpeakEasy speakEasy = SpeakEasyComponent.get(activity.getApplicationContext()).speakEasy();
-    if (speakEasy.isEnabled()) {
-      simulatorSubMenu.addItem(
-          "SpeakEasy call mock", () -> simulateSpeakEasyCallMock(activity.getApplicationContext()));
-    }
-
     return simulatorSubMenu;
   }
 
@@ -92,10 +83,6 @@
     context.startActivity(new Intent(context, RttChatActivity.class));
   }
 
-  private static void simulateSpeakEasyCallMock(@NonNull Context context) {
-    context.startActivity(new Intent(context, SpeakEasyActivity.class));
-  }
-
   private static void populateDatabase(@NonNull Context context) {
     DialerExecutorComponent.get(context)
         .dialerExecutorFactory()
diff --git a/java/com/android/incallui/InCallServiceImpl.java b/java/com/android/incallui/InCallServiceImpl.java
index 1cb6c47..c4d6d06 100644
--- a/java/com/android/incallui/InCallServiceImpl.java
+++ b/java/com/android/incallui/InCallServiceImpl.java
@@ -29,6 +29,8 @@
 import com.android.incallui.call.CallList;
 import com.android.incallui.call.ExternalCallList;
 import com.android.incallui.call.TelecomAdapter;
+import com.android.incallui.speakeasy.SpeakEasyCallManager;
+import com.android.incallui.speakeasy.SpeakEasyComponent;
 
 /**
  * Used to receive updates about calls from the Telecom component. This service is bound to Telecom
@@ -41,6 +43,11 @@
   private ReturnToCallController returnToCallController;
   private NewReturnToCallController newReturnToCallController;
   private CallList.Listener feedbackListener;
+  // We only expect there to be one speakEasyCallManager to be instantiated at a time.
+  // We did not use a singleton SpeakEasyCallManager to avoid holding on to state beyond the
+  // lifecycle of this service, because the singleton is associated with the state of the
+  // Application, not this service.
+  private SpeakEasyCallManager speakEasyCallManager;
 
   @Override
   public void onCallAudioStateChanged(CallAudioState audioState) {
@@ -66,6 +73,8 @@
   @Override
   public void onCallRemoved(Call call) {
     Trace.beginSection("InCallServiceImpl.onCallRemoved");
+    speakEasyCallManager.onCallRemoved(CallList.getInstance().getDialerCallFromTelecomCall(call));
+
     InCallPresenter.getInstance().onCallRemoved(call);
     Trace.endSection();
   }
@@ -78,6 +87,12 @@
   }
 
   @Override
+  public void onCreate() {
+    super.onCreate();
+    this.speakEasyCallManager = SpeakEasyComponent.get(this).speakEasyCallManager();
+  }
+
+  @Override
   public IBinder onBind(Intent intent) {
     Trace.beginSection("InCallServiceImpl.onBind");
     final Context context = getApplicationContext();
diff --git a/java/com/android/incallui/res/values/styles.xml b/java/com/android/incallui/res/values/styles.xml
index cfa4dd6..269b721 100644
--- a/java/com/android/incallui/res/values/styles.xml
+++ b/java/com/android/incallui/res/values/styles.xml
@@ -67,14 +67,14 @@
     <item name="dialpad_elevation">10dp</item>
   </style>
 
-  <style name="AfterCallNotificationTheme" parent="@style/Theme.AppCompat.Light.Dialog.MinWidth">
+  <style name="AfterCallNotificationTheme" parent="@android:style/Theme.Material.Light.Dialog">
     <!-- This colorAccent is to style checkboxes in the dialogs -->
     <item name="colorAccent">@color/dialer_theme_color</item>
     <!-- This is needed to make any alert dialogs in this activity take up minimum space -->
     <item name="android:alertDialogTheme">@style/AfterCallDialogStyle</item>
   </style>
 
-  <style name="AfterCallDialogStyle" parent="@style/Theme.AppCompat.Light.Dialog.MinWidth">
+  <style name="AfterCallDialogStyle" parent="@android:style/Theme.Material.Light.Dialog">
     <!-- This colorAccent is to style text in the dialogs -->
     <item name="android:colorAccent">@color/dialer_theme_color</item>
   </style>
diff --git a/java/com/android/incallui/spam/SpamCallListListener.java b/java/com/android/incallui/spam/SpamCallListListener.java
index e7603f0..c7fa498 100644
--- a/java/com/android/incallui/spam/SpamCallListListener.java
+++ b/java/com/android/incallui/spam/SpamCallListListener.java
@@ -391,14 +391,11 @@
         createAfterCallNotificationBuilder(call)
             .setLargeIcon(Icon.createWithResource(context, R.drawable.spam_notification_icon))
             .setContentText(context.getString(R.string.spam_notification_spam_call_collapsed_text))
-            .setStyle(
-                new Notification.BigTextStyle()
-                    .bigText(context.getString(R.string.spam_notification_spam_call_expanded_text)))
             // Not spam
             .addAction(
                 new Notification.Action.Builder(
                         R.drawable.quantum_ic_close_vd_theme_24,
-                        context.getString(R.string.spam_notification_not_spam_action_text),
+                        context.getString(R.string.spam_notification_was_not_spam_action_text),
                         createNotSpamPendingIntent(call))
                     .build())
             // Block/report spam
diff --git a/java/com/android/incallui/spam/SpamNotificationActivity.java b/java/com/android/incallui/spam/SpamNotificationActivity.java
index ceb9ebb..f6da2a3 100644
--- a/java/com/android/incallui/spam/SpamNotificationActivity.java
+++ b/java/com/android/incallui/spam/SpamNotificationActivity.java
@@ -18,14 +18,15 @@
 
 import android.app.AlertDialog;
 import android.app.Dialog;
+import android.app.DialogFragment;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.os.Bundle;
 import android.provider.CallLog;
 import android.provider.ContactsContract;
-import android.support.v4.app.DialogFragment;
 import android.support.v4.app.FragmentActivity;
+import android.telephony.PhoneNumberUtils;
 import com.android.contacts.common.compat.PhoneNumberUtilsCompat;
 import com.android.dialer.blocking.BlockReportSpamDialogs;
 import com.android.dialer.blocking.BlockedNumbersMigrator;
@@ -106,8 +107,14 @@
   }
 
   /** Returns the formatted version of the given number. */
-  private static String getFormattedNumber(String number) {
-    return PhoneNumberUtilsCompat.createTtsSpannable(number).toString();
+  private static String getFormattedNumber(String number, Context context) {
+    String formattedNumber =
+        PhoneNumberUtils.formatNumber(number, GeoUtil.getCurrentCountryIso(context));
+    return PhoneNumberUtilsCompat.createTtsSpannable(formattedNumber).toString();
+  }
+
+  private void logCallImpression(DialerImpression.Type impression) {
+    logCallImpression(this, getCallInfo(), impression);
   }
 
   private static void logCallImpression(
@@ -190,7 +197,7 @@
       final String number, final ContactLookupResult.Type contactLookupResultType) {
     if (SpamComponent.get(this).spam().isDialogEnabledForSpamNotification()) {
       BlockReportSpamDialogs.ReportNotSpamDialogFragment.newInstance(
-              getFormattedNumber(number),
+              getFormattedNumber(number, this),
               new BlockReportSpamDialogs.OnConfirmListener() {
                 @Override
                 public void onClick() {
@@ -208,12 +215,13 @@
   private void maybeShowBlockReportSpamDialog(
       final String number, final ContactLookupResult.Type contactLookupResultType) {
     if (SpamComponent.get(this).spam().isDialogEnabledForSpamNotification()) {
+      String displayNumber = getFormattedNumber(number, this);
       maybeShowBlockNumberMigrationDialog(
           new BlockedNumbersMigrator.Listener() {
             @Override
             public void onComplete() {
               BlockReportSpamDialogs.BlockReportSpamDialogFragment.newInstance(
-                      getFormattedNumber(number),
+                      displayNumber,
                       SpamComponent.get(SpamNotificationActivity.this)
                           .spam()
                           .isDialogReportSpamCheckedByDefault(),
@@ -240,7 +248,7 @@
   private void showNonSpamDialog() {
     logCallImpression(DialerImpression.Type.SPAM_AFTER_CALL_NOTIFICATION_SHOW_NON_SPAM_DIALOG);
     FirstTimeNonSpamCallDialogFragment.newInstance(getCallInfo())
-        .show(getSupportFragmentManager(), FirstTimeNonSpamCallDialogFragment.TAG);
+        .show(getFragmentManager(), FirstTimeNonSpamCallDialogFragment.TAG);
   }
 
   /**
@@ -249,7 +257,7 @@
   private void showSpamFullDialog() {
     logCallImpression(DialerImpression.Type.SPAM_AFTER_CALL_NOTIFICATION_SHOW_SPAM_DIALOG);
     FirstTimeSpamCallDialogFragment.newInstance(getCallInfo())
-        .show(getSupportFragmentManager(), FirstTimeSpamCallDialogFragment.TAG);
+        .show(getFragmentManager(), FirstTimeSpamCallDialogFragment.TAG);
   }
 
   /** Checks if the user has migrated to the new blocking and display a dialog if necessary. */
@@ -319,10 +327,6 @@
     return getIntent().getBundleExtra(EXTRA_CALL_INFO);
   }
 
-  private void logCallImpression(DialerImpression.Type impression) {
-    logCallImpression(this, getCallInfo(), impression);
-  }
-
   /** Dialog that displays "Not spam", "Block/report spam" and "Dismiss". */
   public static class FirstTimeSpamCallDialogFragment extends DialogFragment {
 
@@ -374,8 +378,9 @@
 
       return new AlertDialog.Builder(getActivity())
           .setCancelable(false)
-          .setTitle(getString(R.string.spam_notification_title, getFormattedNumber(number)))
-          .setMessage(getString(R.string.spam_notification_spam_call_expanded_text))
+          .setTitle(
+              getString(
+                  R.string.spam_notification_title, getFormattedNumber(number, applicationContext)))
           .setNeutralButton(
               getString(R.string.spam_notification_action_dismiss),
               new DialogInterface.OnClickListener() {
@@ -385,16 +390,6 @@
                 }
               })
           .setPositiveButton(
-              getString(R.string.spam_notification_dialog_was_not_spam_action_text),
-              new DialogInterface.OnClickListener() {
-                @Override
-                public void onClick(DialogInterface dialog, int which) {
-                  dismissed = true;
-                  dismiss();
-                  spamNotificationActivity.maybeShowNotSpamDialog(number, contactLookupResultType);
-                }
-              })
-          .setNegativeButton(
               getString(R.string.spam_notification_block_spam_action_text),
               new DialogInterface.OnClickListener() {
                 @Override
@@ -405,6 +400,16 @@
                       number, contactLookupResultType);
                 }
               })
+          .setNegativeButton(
+              getString(R.string.spam_notification_was_not_spam_action_text),
+              new DialogInterface.OnClickListener() {
+                @Override
+                public void onClick(DialogInterface dialog, int which) {
+                  dismissed = true;
+                  dismiss();
+                  spamNotificationActivity.maybeShowNotSpamDialog(number, contactLookupResultType);
+                }
+              })
           .create();
     }
   }
@@ -459,7 +464,8 @@
           ContactLookupResult.Type.forNumber(
               getArguments().getInt(CALL_INFO_CONTACT_LOOKUP_RESULT_TYPE, 0));
       return new AlertDialog.Builder(getActivity())
-          .setTitle(getString(R.string.non_spam_notification_title, getFormattedNumber(number)))
+          .setTitle(
+              getString(R.string.non_spam_notification_title, getFormattedNumber(number, context)))
           .setCancelable(false)
           .setMessage(getString(R.string.spam_notification_non_spam_call_expanded_text))
           .setNeutralButton(
diff --git a/java/com/android/incallui/spam/res/values/strings.xml b/java/com/android/incallui/spam/res/values/strings.xml
index a07057d..3248c69 100644
--- a/java/com/android/incallui/spam/res/values/strings.xml
+++ b/java/com/android/incallui/spam/res/values/strings.xml
@@ -20,7 +20,7 @@
   <!-- Title for the notification to the user after a call from an unknown number ends. [CHAR LIMIT=100] -->
   <string name="non_spam_notification_title">Know <xliff:g id="number">%1$s</xliff:g>?</string>
   <!-- Title for the notification to the user after a call from an spammer ends. [CHAR LIMIT=100] -->
-  <string name="spam_notification_title">Is <xliff:g id="number">%1$s</xliff:g> spam?</string>
+  <string name="spam_notification_title">Was <xliff:g id="number">%1$s</xliff:g> a spam call?</string>
   <!-- Text for the toast shown after the user presses block/report spam. [CHAR LIMIT=100] -->
   <string name="spam_notification_block_report_toast_text"><xliff:g id="number">%1$s</xliff:g> blocked and call was reported as spam.</string>
   <!-- Text for the toast shown after the user presses not spam. [CHAR LIMIT=100] -->
@@ -30,23 +30,19 @@
   <!-- Text displayed in the expanded notification to the user after a non-spam call ends. [CHAR LIMIT=NONE] -->
   <string name="spam_notification_non_spam_call_expanded_text">This is the first time this number called you. If this call was spam, you can block this number and report it.</string>
   <!-- Text displayed in the collapsed notification to the user after a spam call ends. [CHAR LIMIT=100] -->
-  <string name="spam_notification_spam_call_collapsed_text">Tap to report as NOT SPAM, or block it.</string>
-  <!-- Text displayed in the expanded notification to the user after a spam call ends. [CHAR LIMIT=NONE] -->
-  <string name="spam_notification_spam_call_expanded_text">We suspected this to be a spammer. If this call wasn\'t spam, tap "NOT SPAM" to report our mistake.</string>
+  <string name="spam_notification_spam_call_collapsed_text">Tap to report as not spam or block it</string>
   <!-- Text for the reporting spam action in the after call prompt. [CHAR LIMIT=20] -->
   <string name="spam_notification_report_spam_action_text">Block &amp; report</string>
   <!-- Text for the adding to contacts action in the after call prompt. [CHAR LIMIT=20] -->
   <string name="spam_notification_add_contact_action_text">Add contact</string>
-  <!-- Text for the reporting as not spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <string name="spam_notification_not_spam_action_text">Not spam</string>
-  <!-- Text for the blocking spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <string name="spam_notification_block_spam_action_text">Block number</string>
   <!-- Text for the adding to contacts action in the after call dialog. [CHAR LIMIT=40] -->
   <string name="spam_notification_dialog_add_contact_action_text">Add to contacts</string>
   <!-- Text for the blocking and reporting spam action in the after call dialog. [CHAR LIMIT=40] -->
   <string name="spam_notification_dialog_block_report_spam_action_text">Block &amp; report spam</string>
-  <!-- Text for the marking a call as not spam in the after call dialog. [CHAR LIMIT=40] -->
-  <string name="spam_notification_dialog_was_not_spam_action_text">Not spam</string>
+  <!-- Text for the marking a call as not spam in the after call prompt. [CHAR LIMIT=40] -->
+  <string name="spam_notification_was_not_spam_action_text">No, not spam</string>
+  <!-- Text for the blocking spam action in the after call prompt. [CHAR LIMIT=40] -->
+  <string name="spam_notification_block_spam_action_text">Yes, block number</string>
 
   <!-- Label for "Dismiss" dialog action. [CHAR LIMIT=12] -->
   <string name="spam_notification_action_dismiss">Dismiss</string>
diff --git a/java/com/android/incallui/speakeasy/SpeakEasy.java b/java/com/android/incallui/speakeasy/SpeakEasy.java
deleted file mode 100644
index 5621eed..0000000
--- a/java/com/android/incallui/speakeasy/SpeakEasy.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2018 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
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.incallui.speakeasy;
-
-import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
-
-/** This interface provides a wrapper between callers and the Whisper client. */
-public interface SpeakEasy {
-
-  /** Signals to the user interface that the feature is available for use. */
-  boolean isEnabled();
-
-  /**
-   * Create a new instance of SpeakEasy fragment.
-   *
-   * @param callId call id of the call.
-   * @param nameOrNumber name or number of the caller to be displayed
-   * @param sessionStartTimeMillis start time of the session in terms of {@link
-   *     android.os.SystemClock#elapsedRealtime}.
-   * @return new SpeakEasy fragment. Null if the SpeakEasy feature is not available for use
-   */
-  @Nullable
-  Fragment getSpeakEasyFragment(String callId, String nameOrNumber, long sessionStartTimeMillis);
-}
diff --git a/java/com/android/incallui/speakeasy/SpeakEasyActivity.java b/java/com/android/incallui/speakeasy/SpeakEasyActivity.java
deleted file mode 100644
index 4663526..0000000
--- a/java/com/android/incallui/speakeasy/SpeakEasyActivity.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 2018 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
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.incallui.speakeasy;
-
-import android.os.Bundle;
-import android.os.SystemClock;
-import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentActivity;
-import android.view.View;
-
-/** Activity to for SpeakEasy component. */
-public class SpeakEasyActivity extends FragmentActivity {
-
-  private SpeakEasy speakEasy;
-
-  @Override
-  protected void onCreate(@Nullable Bundle savedInstanceState) {
-    super.onCreate(savedInstanceState);
-    speakEasy = SpeakEasyComponent.get(this).speakEasy();
-    setContentView(R.layout.activity_speakeasy);
-    Fragment speakEasyFragment =
-        speakEasy.getSpeakEasyFragment("", "John Snow", SystemClock.elapsedRealtime());
-    if (speakEasyFragment != null) {
-      getSupportFragmentManager()
-          .beginTransaction()
-          .add(R.id.fragment_speakeasy, speakEasyFragment)
-          .commit();
-    }
-    getWindow().setStatusBarColor(getColor(R.color.speakeasy_status_bar_color));
-    getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
-  }
-}
diff --git a/java/com/android/incallui/speakeasy/SpeakEasyCallManager.java b/java/com/android/incallui/speakeasy/SpeakEasyCallManager.java
new file mode 100644
index 0000000..4fe894a
--- /dev/null
+++ b/java/com/android/incallui/speakeasy/SpeakEasyCallManager.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2018 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
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui.speakeasy;
+
+import android.app.Fragment;
+import android.support.annotation.NonNull;
+import com.android.incallui.call.DialerCall;
+import com.google.common.base.Optional;
+
+/** Provides operations necessary to SpeakEasy. */
+public interface SpeakEasyCallManager {
+
+  /**
+   * Returns the Fragment used to display data.
+   *
+   * <p>An absent optional indicates the feature is unavailable.
+   */
+  Optional<Fragment> getSpeakEasyFragment(@NonNull DialerCall call);
+
+  /**
+   * Indicates a call has been removed.
+   *
+   * @param call The call which has been removed.
+   */
+  void onCallRemoved(@NonNull DialerCall call);
+}
diff --git a/java/com/android/incallui/speakeasy/SpeakEasyStub.java b/java/com/android/incallui/speakeasy/SpeakEasyCallManagerStub.java
similarity index 60%
rename from java/com/android/incallui/speakeasy/SpeakEasyStub.java
rename to java/com/android/incallui/speakeasy/SpeakEasyCallManagerStub.java
index 8b6b562..e84766c 100644
--- a/java/com/android/incallui/speakeasy/SpeakEasyStub.java
+++ b/java/com/android/incallui/speakeasy/SpeakEasyCallManagerStub.java
@@ -16,24 +16,26 @@
 
 package com.android.incallui.speakeasy;
 
+import android.app.Fragment;
 import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
+import com.android.incallui.call.DialerCall;
+import com.google.common.base.Optional;
 import javax.inject.Inject;
 
-/** Default implementation of SpeakEasy. */
-public class SpeakEasyStub implements SpeakEasy {
+/** Default implementation of SpeakEasyCallManager. */
+public class SpeakEasyCallManagerStub implements SpeakEasyCallManager {
 
   @Inject
-  public SpeakEasyStub() {}
+  public SpeakEasyCallManagerStub() {}
 
+  /** Returns an absent optional. */
   @Override
-  public boolean isEnabled() {
-    return false;
+  @Nullable
+  public Optional<Fragment> getSpeakEasyFragment(DialerCall call) {
+    return Optional.absent();
   }
 
+  /** Always inert in the stub. */
   @Override
-  public @Nullable Fragment getSpeakEasyFragment(
-      String callId, String nameOrNumber, long sessionStartTimeMillis) {
-    return null;
-  }
+  public void onCallRemoved(DialerCall call) {}
 }
diff --git a/java/com/android/incallui/speakeasy/SpeakEasyComponent.java b/java/com/android/incallui/speakeasy/SpeakEasyComponent.java
index 13f5e97..2403354 100644
--- a/java/com/android/incallui/speakeasy/SpeakEasyComponent.java
+++ b/java/com/android/incallui/speakeasy/SpeakEasyComponent.java
@@ -20,11 +20,11 @@
 import com.android.dialer.inject.HasRootComponent;
 import dagger.Subcomponent;
 
-/** Dagger component to get SpeakEasy. */
+/** Dagger component to get SpeakEasyCallManager. */
 @Subcomponent
 public abstract class SpeakEasyComponent {
 
-  public abstract SpeakEasy speakEasy();
+  public abstract SpeakEasyCallManager speakEasyCallManager();
 
   public static SpeakEasyComponent get(Context context) {
     return ((SpeakEasyComponent.HasComponent)
diff --git a/java/com/android/incallui/speakeasy/StubSpeakEasyModule.java b/java/com/android/incallui/speakeasy/StubSpeakEasyModule.java
index 9a6f476..713ce2b 100644
--- a/java/com/android/incallui/speakeasy/StubSpeakEasyModule.java
+++ b/java/com/android/incallui/speakeasy/StubSpeakEasyModule.java
@@ -19,10 +19,10 @@
 import dagger.Binds;
 import dagger.Module;
 
-/** Module which binds {@link SpeakEasyStub}. */
+/** Module which binds {@link SpeakEasyCallManagerStub}. */
 @Module
 public abstract class StubSpeakEasyModule {
 
   @Binds
-  abstract SpeakEasy bindsSpeakEasy(SpeakEasyStub stub);
+  abstract SpeakEasyCallManager bindsSpeakEasy(SpeakEasyCallManagerStub stub);
 }