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

Commit 6fe0ceb5 authored by Justin Weir's avatar Justin Weir Committed by Android (Google) Code Review
Browse files

Merge "Delete ShadeStateEvents" into main

parents 22684dbe d538d28e
Loading
Loading
Loading
Loading
+9 −13
Original line number Diff line number Diff line
@@ -61,7 +61,6 @@ import android.graphics.Rect;
import android.graphics.Region;
import android.os.Bundle;
import android.os.Handler;
import android.os.PowerManager;
import android.os.Trace;
import android.os.UserManager;
import android.os.VibrationEffect;
@@ -165,6 +164,7 @@ import com.android.systemui.power.domain.interactor.PowerInteractor;
import com.android.systemui.power.shared.model.WakefulnessModel;
import com.android.systemui.res.R;
import com.android.systemui.shade.data.repository.ShadeRepository;
import com.android.systemui.shade.domain.interactor.ShadeAnimationInteractor;
import com.android.systemui.shade.transition.ShadeTransitionController;
import com.android.systemui.shared.system.QuickStepContract;
import com.android.systemui.statusbar.CommandQueue;
@@ -353,6 +353,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
    private final NotificationShadeWindowController mNotificationShadeWindowController;
    private final ShadeExpansionStateManager mShadeExpansionStateManager;
    private final ShadeRepository mShadeRepository;
    private final ShadeAnimationInteractor mShadeAnimationInteractor;
    private final FalsingTapListener mFalsingTapListener = this::falsingAdditionalTapRequired;
    private final AccessibilityDelegate mAccessibilityDelegate = new ShadeAccessibilityDelegate();
    private final NotificationGutsManager mGutsManager;
@@ -363,7 +364,6 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump

    private long mDownTime;
    private boolean mTouchSlopExceededBeforeDown;
    private boolean mIsLaunchAnimationRunning;
    private float mOverExpansion;
    private CentralSurfaces mCentralSurfaces;
    private HeadsUpManager mHeadsUpManager;
@@ -707,7 +707,6 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
            CommandQueue commandQueue,
            VibratorHelper vibratorHelper,
            LatencyTracker latencyTracker,
            PowerManager powerManager,
            AccessibilityManager accessibilityManager,
            @DisplayId int displayId,
            KeyguardUpdateMonitor keyguardUpdateMonitor,
@@ -777,6 +776,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
            ActivityStarter activityStarter,
            SharedNotificationContainerInteractor sharedNotificationContainerInteractor,
            ActiveNotificationsInteractor activeNotificationsInteractor,
            ShadeAnimationInteractor shadeAnimationInteractor,
            KeyguardViewConfigurator keyguardViewConfigurator,
            KeyguardFaceAuthInteractor keyguardFaceAuthInteractor,
            SplitShadeStateController splitShadeStateController,
@@ -795,6 +795,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
        mLockscreenGestureLogger = lockscreenGestureLogger;
        mShadeExpansionStateManager = shadeExpansionStateManager;
        mShadeRepository = shadeRepository;
        mShadeAnimationInteractor = shadeAnimationInteractor;
        mShadeLog = shadeLogger;
        mGutsManager = gutsManager;
        mDreamingToLockscreenTransitionViewModel = dreamingToLockscreenTransitionViewModel;
@@ -2922,13 +2923,8 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
        }
    }

    @Override
    public void setIsLaunchAnimationRunning(boolean running) {
        boolean wasRunning = mIsLaunchAnimationRunning;
        mIsLaunchAnimationRunning = running;
        if (wasRunning != mIsLaunchAnimationRunning) {
            mShadeExpansionStateManager.notifyLaunchingActivityChanged(running);
        }
    private boolean isLaunchingActivity() {
        return mShadeAnimationInteractor.isLaunchingActivity().getValue();
    }

    @VisibleForTesting
@@ -3116,7 +3112,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump

    @Override
    public boolean shouldHideStatusBarIconsWhenExpanded() {
        if (mIsLaunchAnimationRunning) {
        if (isLaunchingActivity()) {
            return mHideIconsDuringLaunchAnimation;
        }
        if (mHeadsUpAppearanceController != null
@@ -3382,7 +3378,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump

        ipw.print("mDownTime="); ipw.println(mDownTime);
        ipw.print("mTouchSlopExceededBeforeDown="); ipw.println(mTouchSlopExceededBeforeDown);
        ipw.print("mIsLaunchAnimationRunning="); ipw.println(mIsLaunchAnimationRunning);
        ipw.print("mIsLaunchAnimationRunning="); ipw.println(isLaunchingActivity());
        ipw.print("mOverExpansion="); ipw.println(mOverExpansion);
        ipw.print("mExpandedHeight="); ipw.println(mExpandedHeight);
        ipw.print("isTracking()="); ipw.println(isTracking());
@@ -3998,7 +3994,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump

    @Override
    public boolean isCollapsing() {
        return isClosing() || mIsLaunchAnimationRunning;
        return isClosing() || isLaunchingActivity();
    }

    public boolean isTracking() {
+6 −0
Original line number Diff line number Diff line
@@ -17,6 +17,8 @@
package com.android.systemui.shade

import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.shade.data.repository.ShadeRepository
import com.android.systemui.shade.data.repository.ShadeRepositoryImpl
import com.android.systemui.shade.domain.interactor.ShadeAnimationInteractor
import com.android.systemui.shade.domain.interactor.ShadeAnimationInteractorEmptyImpl
import com.android.systemui.shade.domain.interactor.ShadeInteractor
@@ -39,6 +41,10 @@ abstract class ShadeEmptyImplModule {
    @SysUISingleton
    abstract fun bindsShadeInteractor(si: ShadeInteractorEmptyImpl): ShadeInteractor

    @Binds
    @SysUISingleton
    abstract fun bindsShadeRepository(impl: ShadeRepositoryImpl): ShadeRepository

    @Binds
    @SysUISingleton
    abstract fun bindsShadeAnimationInteractor(
+1 −17
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@ import android.os.Trace.TRACE_TAG_APP as TRACE_TAG
import android.util.Log
import androidx.annotation.FloatRange
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.shade.ShadeStateEvents.ShadeStateEventsListener
import com.android.systemui.util.Compile
import java.util.concurrent.CopyOnWriteArrayList
import javax.inject.Inject
@@ -33,11 +32,10 @@ import javax.inject.Inject
 * TODO(b/200063118): Make this class the one source of truth for the state of panel expansion.
 */
@SysUISingleton
class ShadeExpansionStateManager @Inject constructor() : ShadeStateEvents {
class ShadeExpansionStateManager @Inject constructor() {

    private val expansionListeners = CopyOnWriteArrayList<ShadeExpansionListener>()
    private val stateListeners = CopyOnWriteArrayList<ShadeStateListener>()
    private val shadeStateEventsListeners = CopyOnWriteArrayList<ShadeStateEventsListener>()

    @PanelState private var state: Int = STATE_CLOSED
    @FloatRange(from = 0.0, to = 1.0) private var fraction: Float = 0f
@@ -66,14 +64,6 @@ class ShadeExpansionStateManager @Inject constructor() : ShadeStateEvents {
        stateListeners.add(listener)
    }

    override fun addShadeStateEventsListener(listener: ShadeStateEventsListener) {
        shadeStateEventsListeners.addIfAbsent(listener)
    }

    override fun removeShadeStateEventsListener(listener: ShadeStateEventsListener) {
        shadeStateEventsListeners.remove(listener)
    }

    /** Returns true if the panel is currently closed and false otherwise. */
    fun isClosed(): Boolean = state == STATE_CLOSED

@@ -157,12 +147,6 @@ class ShadeExpansionStateManager @Inject constructor() : ShadeStateEvents {
        stateListeners.forEach { it.onPanelStateChanged(state) }
    }

    fun notifyLaunchingActivityChanged(isLaunchingActivity: Boolean) {
        for (cb in shadeStateEventsListeners) {
            cb.onLaunchingActivityChanged(isLaunchingActivity)
        }
    }

    private fun debugLog(msg: String) {
        if (!DEBUG) return
        Log.v(TAG, msg)
+6 −0
Original line number Diff line number Diff line
@@ -18,6 +18,8 @@ package com.android.systemui.shade

import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.scene.shared.flag.SceneContainerFlags
import com.android.systemui.shade.data.repository.ShadeRepository
import com.android.systemui.shade.data.repository.ShadeRepositoryImpl
import com.android.systemui.shade.domain.interactor.BaseShadeInteractor
import com.android.systemui.shade.domain.interactor.ShadeAnimationInteractor
import com.android.systemui.shade.domain.interactor.ShadeAnimationInteractorLegacyImpl
@@ -64,6 +66,10 @@ abstract class ShadeModule {
        }
    }

    @Binds
    @SysUISingleton
    abstract fun bindsShadeRepository(impl: ShadeRepositoryImpl): ShadeRepository

    @Binds
    @SysUISingleton
    abstract fun bindsShadeInteractor(si: ShadeInteractorImpl): ShadeInteractor
+0 −35
Original line number Diff line number Diff line
/*
 * Copyright (C) 2022 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.systemui.shade

/** Provides certain notification panel events. */
interface ShadeStateEvents {

    /** Registers callbacks to be invoked when notification panel events occur. */
    fun addShadeStateEventsListener(listener: ShadeStateEventsListener)

    /** Unregisters callbacks previously registered via [addShadeStateEventsListener] */
    fun removeShadeStateEventsListener(listener: ShadeStateEventsListener)

    /** Callbacks for certain notification panel events. */
    interface ShadeStateEventsListener {
        /**
         * Invoked when the notification panel starts or stops launching an [android.app.Activity].
         */
        fun onLaunchingActivityChanged(isLaunchingActivity: Boolean) {}
    }
}
Loading