Fix bubble showing after dismiss bug.

Now we also show bubble in onCallListChange(), but we shouldn't show bubble after dismiss in this case.

Test: ReturnToCallControllerTest
PiperOrigin-RevId: 191101307
Change-Id: I13ff6bf4ae7ab574966c43c0e6fee13853899ba0
diff --git a/java/com/android/bubble/Bubble.java b/java/com/android/bubble/Bubble.java
index e192e06..1b853cf 100644
--- a/java/com/android/bubble/Bubble.java
+++ b/java/com/android/bubble/Bubble.java
@@ -39,6 +39,9 @@
   /** Returns whether the bubble is currently visible */
   boolean isVisible();
 
+  /** Returns whether the bubble is currently dismissed */
+  boolean isDismissed();
+
   /**
    * Set the info for this Bubble to display
    *
diff --git a/java/com/android/bubble/stub/BubbleStub.java b/java/com/android/bubble/stub/BubbleStub.java
index 267f33f..2aa55a3 100644
--- a/java/com/android/bubble/stub/BubbleStub.java
+++ b/java/com/android/bubble/stub/BubbleStub.java
@@ -40,6 +40,11 @@
   }
 
   @Override
+  public boolean isDismissed() {
+    return false;
+  }
+
+  @Override
   public void setBubbleInfo(@NonNull BubbleInfo bubbleInfo) {}
 
   @Override
diff --git a/java/com/android/incallui/ReturnToCallController.java b/java/com/android/incallui/ReturnToCallController.java
index d5e6a10..0850e91 100644
--- a/java/com/android/incallui/ReturnToCallController.java
+++ b/java/com/android/incallui/ReturnToCallController.java
@@ -92,10 +92,10 @@
     endCall = createActionIntent(ReturnToCallActionReceiver.ACTION_END_CALL);
     fullScreen = createActionIntent(ReturnToCallActionReceiver.ACTION_RETURN_TO_CALL);
 
-    InCallPresenter.getInstance().addInCallUiListener(this);
-    CallList.getInstance().addListener(this);
     AudioModeProvider.getInstance().addListener(this);
     audioState = AudioModeProvider.getInstance().getAudioState();
+    InCallPresenter.getInstance().addInCallUiListener(this);
+    CallList.getInstance().addListener(this);
   }
 
   public void tearDown() {
@@ -186,7 +186,7 @@
       return;
     }
 
-    if ((bubble == null || !bubble.isVisible())
+    if ((bubble == null || !(bubble.isVisible() || bubble.isDismissed()))
         && getCall() != null
         && !InCallPresenter.getInstance().isShowingInCallUi()) {
       LogUtil.i("ReturnToCallController.onCallListChange", "going to show bubble");