Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3c0ef806 authored by Luca Zuccarini's avatar Luca Zuccarini Committed by Automerger Merge Worker
Browse files

Merge "Hide animated ghost when underlying view is detached from window." into...

Merge "Hide animated ghost when underlying view is detached from window." into udc-dev am: abd3cd92 am: 4b585d74 am: afe1fe30

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23729447



Change-Id: I3912c622cbb0540836edd8c044b36f1bb94c5641
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 33a62d2c afe1fe30
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -34,7 +34,6 @@ import android.view.ViewGroup
import android.view.ViewGroupOverlay
import android.widget.FrameLayout
import com.android.internal.jank.InteractionJankMonitor
import java.lang.IllegalArgumentException
import java.util.LinkedList
import kotlin.math.min
import kotlin.math.roundToInt
@@ -240,7 +239,7 @@ constructor(
        val ghostView = this.ghostView ?: return
        val backgroundView = this.backgroundView!!

        if (!state.visible) {
        if (!state.visible || !ghostedView.isAttachedToWindow) {
            if (ghostView.visibility == View.VISIBLE) {
                // Making the ghost view invisible will make the ghosted view visible, so order is
                // important here.
+7 −2
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.logging.UiEvent;
import com.android.internal.logging.UiEventLogger;
import com.android.systemui.R;
import com.android.systemui.animation.DialogLaunchAnimator;
import com.android.systemui.broadcast.BroadcastSender;
import com.android.systemui.dagger.SysUISingleton;

@@ -36,11 +37,14 @@ import com.android.systemui.dagger.SysUISingleton;
 */
@SysUISingleton
public class MediaOutputDialog extends MediaOutputBaseDialog {
    final UiEventLogger mUiEventLogger;
    private final DialogLaunchAnimator mDialogLaunchAnimator;
    private final UiEventLogger mUiEventLogger;

    MediaOutputDialog(Context context, boolean aboveStatusbar, BroadcastSender broadcastSender,
            MediaOutputController mediaOutputController, UiEventLogger uiEventLogger) {
            MediaOutputController mediaOutputController, DialogLaunchAnimator dialogLaunchAnimator,
            UiEventLogger uiEventLogger) {
        super(context, broadcastSender, mediaOutputController);
        mDialogLaunchAnimator = dialogLaunchAnimator;
        mUiEventLogger = uiEventLogger;
        mAdapter = new MediaOutputAdapter(mMediaOutputController);
        if (!aboveStatusbar) {
@@ -138,6 +142,7 @@ public class MediaOutputDialog extends MediaOutputBaseDialog {
            }
        } else {
            mMediaOutputController.releaseSession();
            mDialogLaunchAnimator.disableAllCurrentDialogsExitAnimations();
            dismiss();
        }
    }
+4 −3
Original line number Diff line number Diff line
@@ -28,11 +28,11 @@ import com.android.settingslib.bluetooth.LocalBluetoothManager
import com.android.systemui.animation.DialogCuj
import com.android.systemui.animation.DialogLaunchAnimator
import com.android.systemui.broadcast.BroadcastSender
import com.android.systemui.flags.FeatureFlags
import com.android.systemui.media.nearby.NearbyMediaDevicesManager
import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection
import com.android.systemui.flags.FeatureFlags
import com.android.systemui.settings.UserTracker
import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection
import java.util.Optional
import javax.inject.Inject

@@ -71,7 +71,8 @@ class MediaOutputDialogFactory @Inject constructor(
            dialogLaunchAnimator, nearbyMediaDevicesManagerOptional, audioManager,
            powerExemptionManager, keyGuardManager, featureFlags, userTracker)
        val dialog =
            MediaOutputDialog(context, aboveStatusBar, broadcastSender, controller, uiEventLogger)
            MediaOutputDialog(context, aboveStatusBar, broadcastSender, controller,
                    dialogLaunchAnimator, uiEventLogger)
        mediaOutputDialog = dialog

        // Show the dialog.
+2 −1
Original line number Diff line number Diff line
@@ -356,6 +356,7 @@ public class MediaOutputDialogTest extends SysuiTestCase {
        });

        verify(mockMediaOutputController).releaseSession();
        verify(mDialogLaunchAnimator).disableAllCurrentDialogsExitAnimations();
    }

    @Test
@@ -371,7 +372,7 @@ public class MediaOutputDialogTest extends SysuiTestCase {
    @NonNull
    private MediaOutputDialog makeTestDialog(MediaOutputController controller) {
        return new MediaOutputDialog(mContext, false, mBroadcastSender,
                controller, mUiEventLogger);
                controller, mDialogLaunchAnimator, mUiEventLogger);
    }

    private void withTestDialog(MediaOutputController controller, Consumer<MediaOutputDialog> c) {