From c6d218612513ca3bcc78aa1201f6e4ec576742bd Mon Sep 17 00:00:00 2001 From: yueg Date: Fri, 30 Mar 2018 12:31:47 -0700 Subject: 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 --- java/com/android/bubble/Bubble.java | 3 +++ java/com/android/bubble/stub/BubbleStub.java | 5 +++++ java/com/android/incallui/ReturnToCallController.java | 6 +++--- 3 files changed, 11 insertions(+), 3 deletions(-) (limited to 'java') diff --git a/java/com/android/bubble/Bubble.java b/java/com/android/bubble/Bubble.java index e192e06f4..1b853cf49 100644 --- a/java/com/android/bubble/Bubble.java +++ b/java/com/android/bubble/Bubble.java @@ -39,6 +39,9 @@ public interface Bubble { /** 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 267f33f31..2aa55a337 100644 --- a/java/com/android/bubble/stub/BubbleStub.java +++ b/java/com/android/bubble/stub/BubbleStub.java @@ -39,6 +39,11 @@ public class BubbleStub implements Bubble { return false; } + @Override + public boolean isDismissed() { + return false; + } + @Override public void setBubbleInfo(@NonNull BubbleInfo bubbleInfo) {} diff --git a/java/com/android/incallui/ReturnToCallController.java b/java/com/android/incallui/ReturnToCallController.java index d5e6a1001..0850e913a 100644 --- a/java/com/android/incallui/ReturnToCallController.java +++ b/java/com/android/incallui/ReturnToCallController.java @@ -92,10 +92,10 @@ public class ReturnToCallController implements InCallUiListener, Listener, Audio 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 @@ public class ReturnToCallController implements InCallUiListener, Listener, Audio 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"); -- cgit v1.2.3