From 10f6e8222a5ee1cc2da1b107c3a344b34c726501 Mon Sep 17 00:00:00 2001 From: yueg Date: Wed, 17 Jan 2018 15:32:18 -0800 Subject: Move onUiShowing() call from onResume/onPause to onStart/onStop. It makes sure bubble doesn't appear on split screen when in-call UI is not showing. Although bubble still shows in recents screen. It also make sure the same onUiShowing() is not called multiple times. Bug: 67605985,71746139 Test: InCallActivityTest PiperOrigin-RevId: 182280886 Change-Id: I2a28d0258c722d530000729a89751c6d6b1ee6fd --- java/com/android/incallui/InCallActivity.java | 18 +++++++++++------- java/com/android/incallui/InCallPresenter.java | 6 ++++-- java/com/android/newbubble/NewBubble.java | 8 +------- 3 files changed, 16 insertions(+), 16 deletions(-) (limited to 'java/com/android') diff --git a/java/com/android/incallui/InCallActivity.java b/java/com/android/incallui/InCallActivity.java index 0a5666690..990560674 100644 --- a/java/com/android/incallui/InCallActivity.java +++ b/java/com/android/incallui/InCallActivity.java @@ -406,6 +406,10 @@ public class InCallActivity extends TransactionSafeFragmentActivity == InCallOrientationEventListener.ACTIVITY_PREFERENCE_ALLOW_ROTATION); InCallPresenter.getInstance().onActivityStarted(); + if (!isRecreating) { + InCallPresenter.getInstance().onUiShowing(true); + } + if (ActivityCompat.isInMultiWindowMode(this) && !getResources().getBoolean(R.bool.incall_dialpad_allowed)) { // Hide the dialpad because there may not be enough room @@ -422,7 +426,7 @@ public class InCallActivity extends TransactionSafeFragmentActivity if (!InCallPresenter.getInstance().isReadyForTearDown()) { updateTaskDescription(); - InCallPresenter.getInstance().onUiShowing(true); + InCallPresenter.getInstance().updateNotification(); } // If there is a pending request to show or hide the dialpad, handle that now. @@ -479,12 +483,7 @@ public class InCallActivity extends TransactionSafeFragmentActivity dialpadFragment.onDialerKeyUp(null); } - if (!isRecreating) { - InCallPresenter.getInstance().onUiShowing(false); - } - if (isFinishing()) { - InCallPresenter.getInstance().unsetActivity(this); - } + InCallPresenter.getInstance().updateNotification(); InCallPresenter.getInstance().getPseudoScreenState().removeListener(this); Trace.endSection(); @@ -513,11 +512,16 @@ public class InCallActivity extends TransactionSafeFragmentActivity InCallPresenter.getInstance().updateIsChangingConfigurations(); InCallPresenter.getInstance().onActivityStopped(); if (!isRecreating) { + InCallPresenter.getInstance().onUiShowing(false); if (errorDialog != null) { errorDialog.dismiss(); } } + if (isFinishing()) { + InCallPresenter.getInstance().unsetActivity(this); + } + Trace.endSection(); } diff --git a/java/com/android/incallui/InCallPresenter.java b/java/com/android/incallui/InCallPresenter.java index f0d3adc7a..558ca33fc 100644 --- a/java/com/android/incallui/InCallPresenter.java +++ b/java/com/android/incallui/InCallPresenter.java @@ -1044,14 +1044,16 @@ public class InCallPresenter implements CallList.Listener, AudioModeProvider.Aud "updateIsChangingConfigurations = " + isChangingConfigurations); } - /** Called when the activity goes in/out of the foreground. */ - public void onUiShowing(boolean showing) { + void updateNotification() { // We need to update the notification bar when we leave the UI because that // could trigger it to show again. if (statusBarNotifier != null) { statusBarNotifier.updateNotification(); } + } + /** Called when the activity goes in/out of the foreground. */ + public void onUiShowing(boolean showing) { if (proximitySensor != null) { proximitySensor.onInCallShowing(showing); } diff --git a/java/com/android/newbubble/NewBubble.java b/java/com/android/newbubble/NewBubble.java index 65f7a0aab..09634b572 100644 --- a/java/com/android/newbubble/NewBubble.java +++ b/java/com/android/newbubble/NewBubble.java @@ -926,13 +926,7 @@ public class NewBubble { root.setOnConfigurationChangedListener( (configuration) -> { if (expanded) { - // Collapse immediately without animation - if (collapseAnimatorSet != null) { - collapseAnimatorSet.removeAllListeners(); - collapseAnimatorSet.cancel(); - } - setDrawerVisibility(View.GONE); - expanded = false; + startCollapse(CollapseEnd.NOTHING, false /* shouldRecoverYPosition */); } // The values in the current MoveHandler may be stale, so replace it. Then ensure the // Window is in bounds -- cgit v1.2.3