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

Commit 62c0b66e authored by Beverly Tai's avatar Beverly Tai Committed by Android (Google) Code Review
Browse files

Merge "Don't inject the context into KeyguardUnlockAnimationController" into main

parents 116bc80c 2cab7c5b
Loading
Loading
Loading
Loading
+7 −2
Original line number Original line Diff line number Diff line
@@ -22,6 +22,7 @@ import static android.app.StatusBarManager.NAVIGATION_HINT_IME_SWITCHER_SHOWN;


import android.annotation.TargetApi;
import android.annotation.TargetApi;
import android.content.Context;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Color;
import android.graphics.Color;
import android.graphics.Rect;
import android.graphics.Rect;
import android.inputmethodservice.InputMethodService;
import android.inputmethodservice.InputMethodService;
@@ -138,11 +139,15 @@ public class Utilities {
    /** @return whether or not {@param context} represents that of a large screen device or not */
    /** @return whether or not {@param context} represents that of a large screen device or not */
    @TargetApi(Build.VERSION_CODES.R)
    @TargetApi(Build.VERSION_CODES.R)
    public static boolean isLargeScreen(Context context) {
    public static boolean isLargeScreen(Context context) {
        final WindowManager windowManager = context.getSystemService(WindowManager.class);
        return isLargeScreen(context.getSystemService(WindowManager.class), context.getResources());
    }

    /** @return whether or not {@param context} represents that of a large screen device or not */
    public static boolean isLargeScreen(WindowManager windowManager, Resources resources) {
        final Rect bounds = windowManager.getCurrentWindowMetrics().getBounds();
        final Rect bounds = windowManager.getCurrentWindowMetrics().getBounds();


        float smallestWidth = dpiFromPx(Math.min(bounds.width(), bounds.height()),
        float smallestWidth = dpiFromPx(Math.min(bounds.width(), bounds.height()),
                context.getResources().getConfiguration().densityDpi);
                resources.getConfiguration().densityDpi);
        return smallestWidth >= TABLET_MIN_DPS;
        return smallestWidth >= TABLET_MIN_DPS;
    }
    }


+20 −17
Original line number Original line Diff line number Diff line
@@ -20,7 +20,7 @@ import android.animation.Animator
import android.animation.AnimatorListenerAdapter
import android.animation.AnimatorListenerAdapter
import android.animation.ValueAnimator
import android.animation.ValueAnimator
import android.app.WallpaperManager
import android.app.WallpaperManager
import android.content.Context
import android.content.res.Resources
import android.graphics.Matrix
import android.graphics.Matrix
import android.graphics.Rect
import android.graphics.Rect
import android.os.DeadObjectException
import android.os.DeadObjectException
@@ -32,16 +32,18 @@ import android.view.RemoteAnimationTarget
import android.view.SurfaceControl
import android.view.SurfaceControl
import android.view.SyncRtSurfaceTransactionApplier
import android.view.SyncRtSurfaceTransactionApplier
import android.view.View
import android.view.View
import android.view.WindowManager
import androidx.annotation.VisibleForTesting
import androidx.annotation.VisibleForTesting
import androidx.core.math.MathUtils
import androidx.core.math.MathUtils
import com.android.app.animation.Interpolators
import com.android.app.animation.Interpolators
import com.android.internal.R
import com.android.internal.R
import com.android.keyguard.KeyguardClockSwitchController
import com.android.keyguard.KeyguardClockSwitchController
import com.android.keyguard.KeyguardViewController
import com.android.keyguard.KeyguardViewController
import com.android.systemui.Flags.fastUnlockTransition
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.flags.FeatureFlags
import com.android.systemui.flags.FeatureFlags
import com.android.systemui.flags.Flags
import com.android.systemui.flags.Flags
import com.android.systemui.Flags.fastUnlockTransition
import com.android.systemui.plugins.BcSmartspaceDataPlugin
import com.android.systemui.plugins.BcSmartspaceDataPlugin
import com.android.systemui.shared.recents.utilities.Utilities
import com.android.systemui.shared.recents.utilities.Utilities
import com.android.systemui.shared.system.ActivityManagerWrapper
import com.android.systemui.shared.system.ActivityManagerWrapper
@@ -145,7 +147,8 @@ const val SURFACE_BEHIND_FADE_OUT_START_DELAY_MS = 0L
 */
 */
@SysUISingleton
@SysUISingleton
class KeyguardUnlockAnimationController @Inject constructor(
class KeyguardUnlockAnimationController @Inject constructor(
    private val context: Context,
        private val windowManager: WindowManager,
        @Main private val resources: Resources,
        private val keyguardStateController: KeyguardStateController,
        private val keyguardStateController: KeyguardStateController,
        private val
        private val
    keyguardViewMediator: Lazy<KeyguardViewMediator>,
    keyguardViewMediator: Lazy<KeyguardViewMediator>,
@@ -399,7 +402,7 @@ class KeyguardUnlockAnimationController @Inject constructor(
        keyguardStateController.addCallback(this)
        keyguardStateController.addCallback(this)


        roundedCornerRadius =
        roundedCornerRadius =
            context.resources.getDimensionPixelSize(R.dimen.rounded_corner_radius).toFloat()
            resources.getDimensionPixelSize(R.dimen.rounded_corner_radius).toFloat()
    }
    }


    /**
    /**
@@ -438,7 +441,7 @@ class KeyguardUnlockAnimationController @Inject constructor(
        Log.wtf(TAG, "  !notificationShadeWindowController.isLaunchingActivity: " +
        Log.wtf(TAG, "  !notificationShadeWindowController.isLaunchingActivity: " +
                "${!notificationShadeWindowController.isLaunchingActivity}")
                "${!notificationShadeWindowController.isLaunchingActivity}")
        Log.wtf(TAG, "  launcherUnlockController != null: ${launcherUnlockController != null}")
        Log.wtf(TAG, "  launcherUnlockController != null: ${launcherUnlockController != null}")
        Log.wtf(TAG, "  !isFoldable(context): ${!isFoldable(context)}")
        Log.wtf(TAG, "  !isFoldable(context): ${!isFoldable(resources)}")
    }
    }


    /**
    /**
@@ -1100,7 +1103,7 @@ class KeyguardUnlockAnimationController @Inject constructor(


        // We don't do the shared element on large screens because the smartspace has to fly across
        // We don't do the shared element on large screens because the smartspace has to fly across
        // large distances, which is distracting.
        // large distances, which is distracting.
        if (Utilities.isLargeScreen(context)) {
        if (Utilities.isLargeScreen(windowManager, resources)) {
            return false
            return false
        }
        }


@@ -1180,8 +1183,8 @@ class KeyguardUnlockAnimationController @Inject constructor(


    companion object {
    companion object {


        fun isFoldable(context: Context): Boolean {
        fun isFoldable(resources: Resources): Boolean {
            return context.resources.getIntArray(R.array.config_foldedDeviceStates).isNotEmpty()
            return resources.getIntArray(R.array.config_foldedDeviceStates).isNotEmpty()
        }
        }
    }
    }
}
}
+5 −1
Original line number Original line Diff line number Diff line
@@ -14,6 +14,7 @@ import android.view.SurfaceControl
import android.view.SyncRtSurfaceTransactionApplier
import android.view.SyncRtSurfaceTransactionApplier
import android.view.View
import android.view.View
import android.view.ViewRootImpl
import android.view.ViewRootImpl
import android.view.WindowManager
import androidx.test.filters.SmallTest
import androidx.test.filters.SmallTest
import com.android.keyguard.KeyguardViewController
import com.android.keyguard.KeyguardViewController
import com.android.systemui.Flags
import com.android.systemui.Flags
@@ -51,6 +52,8 @@ import java.util.function.Predicate
class KeyguardUnlockAnimationControllerTest : SysuiTestCase() {
class KeyguardUnlockAnimationControllerTest : SysuiTestCase() {
    private lateinit var keyguardUnlockAnimationController: KeyguardUnlockAnimationController
    private lateinit var keyguardUnlockAnimationController: KeyguardUnlockAnimationController


    @Mock
    private lateinit var windowManager: WindowManager
    @Mock
    @Mock
    private lateinit var keyguardViewMediator: KeyguardViewMediator
    private lateinit var keyguardViewMediator: KeyguardViewMediator
    @Mock
    @Mock
@@ -99,7 +102,8 @@ class KeyguardUnlockAnimationControllerTest : SysuiTestCase() {
    fun setUp() {
    fun setUp() {
        MockitoAnnotations.initMocks(this)
        MockitoAnnotations.initMocks(this)
        keyguardUnlockAnimationController = KeyguardUnlockAnimationController(
        keyguardUnlockAnimationController = KeyguardUnlockAnimationController(
            context, keyguardStateController, { keyguardViewMediator }, keyguardViewController,
            windowManager, context.resources,
            keyguardStateController, { keyguardViewMediator }, keyguardViewController,
            featureFlags, { biometricUnlockController }, statusBarStateController,
            featureFlags, { biometricUnlockController }, statusBarStateController,
            notificationShadeWindowController, powerManager, wallpaperManager
            notificationShadeWindowController, powerManager, wallpaperManager
        )
        )