Revert "Extract camera launch code from NPVC into CentralSurfaces"

Revert "Update super call in CentralSurfacesGoogle"

Revert submission 20306269-Extract camera launch code from NPVC into CentralSurfaces

Reason for revert: https://android-build.googleplex.com/builds/quarterdeck?branch=git_tm-qpr-dev&target=bluejay-userdebug&lkgb=9274480&lkbb=9274606&fkbb=9274606, bug b/258514828.
BUG: 258514828
Reverted Changes:
I6e89c209e:Extract camera launch code from NPVC into CentralS...
Icb5124d04:Update super call in CentralSurfacesGoogle

Change-Id: I00e62b7f039e52011567c5f8bc6054931b19effb
This commit is contained in:
Mark Punzalan
2022-11-09 22:47:05 +00:00
committed by Android (Google) Code Review
parent 59d8871d8c
commit 3c3f89e024
7 changed files with 53 additions and 117 deletions

View File

@@ -1,73 +0,0 @@
/*
* 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;
import com.android.systemui.camera.CameraGestureHelper;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.statusbar.phone.KeyguardBypassController;
import javax.inject.Inject;
/** Handles launching camera from Shade. */
@SysUISingleton
public class CameraLauncher {
private final CameraGestureHelper mCameraGestureHelper;
private final KeyguardBypassController mKeyguardBypassController;
private boolean mLaunchingAffordance;
@Inject
public CameraLauncher(
CameraGestureHelper cameraGestureHelper,
KeyguardBypassController keyguardBypassController
) {
mCameraGestureHelper = cameraGestureHelper;
mKeyguardBypassController = keyguardBypassController;
}
/** Launches the camera. */
public void launchCamera(int source, boolean isShadeFullyCollapsed) {
if (!isShadeFullyCollapsed) {
setLaunchingAffordance(true);
}
mCameraGestureHelper.launchCamera(source);
}
/**
* Set whether we are currently launching an affordance. This is currently only set when
* launched via a camera gesture.
*/
public void setLaunchingAffordance(boolean launchingAffordance) {
mLaunchingAffordance = launchingAffordance;
mKeyguardBypassController.setLaunchingAffordance(launchingAffordance);
}
/**
* Return true when a bottom affordance is launching an occluded activity with a splash screen.
*/
public boolean isLaunchingAffordance() {
return mLaunchingAffordance;
}
/**
* Whether the camera application can be launched for the camera launch gesture.
*/
public boolean canCameraGestureBeLaunched(int barState) {
return mCameraGestureHelper.canCameraGestureBeLaunched(barState);
}
}

View File

@@ -128,6 +128,7 @@ import com.android.systemui.animation.ActivityLaunchAnimator;
import com.android.systemui.animation.Interpolators;
import com.android.systemui.animation.LaunchAnimator;
import com.android.systemui.biometrics.AuthController;
import com.android.systemui.camera.CameraGestureHelper;
import com.android.systemui.classifier.Classifier;
import com.android.systemui.classifier.FalsingCollector;
import com.android.systemui.dagger.qualifiers.DisplayId;
@@ -468,6 +469,7 @@ public final class NotificationPanelViewController {
private boolean mCollapsedOnDown;
private boolean mClosingWithAlphaFadeOut;
private boolean mHeadsUpAnimatingAway;
private boolean mLaunchingAffordance;
private final FalsingManager mFalsingManager;
private final FalsingCollector mFalsingCollector;
@@ -618,6 +620,7 @@ public final class NotificationPanelViewController {
private final NotificationListContainer mNotificationListContainer;
private final NotificationStackSizeCalculator mNotificationStackSizeCalculator;
private final NPVCDownEventState.Buffer mLastDownEvents;
private final CameraGestureHelper mCameraGestureHelper;
private final KeyguardBottomAreaViewModel mKeyguardBottomAreaViewModel;
private final KeyguardBottomAreaInteractor mKeyguardBottomAreaInteractor;
private float mMinExpandHeight;
@@ -745,6 +748,7 @@ public final class NotificationPanelViewController {
UnlockedScreenOffAnimationController unlockedScreenOffAnimationController,
ShadeTransitionController shadeTransitionController,
SystemClock systemClock,
CameraGestureHelper cameraGestureHelper,
KeyguardBottomAreaViewModel keyguardBottomAreaViewModel,
KeyguardBottomAreaInteractor keyguardBottomAreaInteractor) {
keyguardStateController.addCallback(new KeyguardStateController.Callback() {
@@ -923,6 +927,7 @@ public final class NotificationPanelViewController {
unlockAnimationStarted(playingCannedAnimation, isWakeAndUnlock, startDelay);
}
});
mCameraGestureHelper = cameraGestureHelper;
mKeyguardBottomAreaInteractor = keyguardBottomAreaInteractor;
}
@@ -3923,10 +3928,6 @@ public final class NotificationPanelViewController {
}
}
public int getBarState() {
return mBarState;
}
private boolean isOnKeyguard() {
return mBarState == KEYGUARD;
}
@@ -3972,6 +3973,35 @@ public final class NotificationPanelViewController {
&& mBarState == StatusBarState.SHADE;
}
/** Launches the camera. */
public void launchCamera(int source) {
if (!isFullyCollapsed()) {
setLaunchingAffordance(true);
}
mCameraGestureHelper.launchCamera(source);
}
public void onAffordanceLaunchEnded() {
setLaunchingAffordance(false);
}
/** Set whether we are currently launching an affordance (i.e. camera gesture). */
private void setLaunchingAffordance(boolean launchingAffordance) {
mLaunchingAffordance = launchingAffordance;
mKeyguardBypassController.setLaunchingAffordance(launchingAffordance);
}
/** Returns whether a bottom affordance is launching an occluded activity with splash screen. */
public boolean isLaunchingAffordanceWithPreview() {
return mLaunchingAffordance;
}
/** Whether the camera application can be launched by the camera launch gesture. */
public boolean canCameraGestureBeLaunched() {
return mCameraGestureHelper.canCameraGestureBeLaunched(mBarState);
}
public boolean hideStatusBarIconsWhenExpanded() {
if (mIsLaunchAnimationRunning) {
return mHideIconsDuringLaunchAnimation;

View File

@@ -55,7 +55,6 @@ import com.android.systemui.dagger.qualifiers.DisplayId;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.keyguard.WakefulnessLifecycle;
import com.android.systemui.qs.QSPanelController;
import com.android.systemui.shade.CameraLauncher;
import com.android.systemui.shade.NotificationPanelViewController;
import com.android.systemui.shade.ShadeController;
import com.android.systemui.statusbar.CommandQueue;
@@ -72,8 +71,6 @@ import java.util.Optional;
import javax.inject.Inject;
import dagger.Lazy;
/** */
@CentralSurfacesComponent.CentralSurfacesScope
public class CentralSurfacesCommandQueueCallbacks implements CommandQueue.Callbacks {
@@ -102,7 +99,6 @@ public class CentralSurfacesCommandQueueCallbacks implements CommandQueue.Callba
private final boolean mVibrateOnOpening;
private final VibrationEffect mCameraLaunchGestureVibrationEffect;
private final SystemBarAttributesListener mSystemBarAttributesListener;
private final Lazy<CameraLauncher> mCameraLauncherLazy;
private static final VibrationAttributes HARDWARE_FEEDBACK_VIBRATION_ATTRIBUTES =
VibrationAttributes.createForUsage(VibrationAttributes.USAGE_HARDWARE_FEEDBACK);
@@ -132,8 +128,8 @@ public class CentralSurfacesCommandQueueCallbacks implements CommandQueue.Callba
Optional<Vibrator> vibratorOptional,
DisableFlagsLogger disableFlagsLogger,
@DisplayId int displayId,
SystemBarAttributesListener systemBarAttributesListener,
Lazy<CameraLauncher> cameraLauncherLazy) {
SystemBarAttributesListener systemBarAttributesListener) {
mCentralSurfaces = centralSurfaces;
mContext = context;
mShadeController = shadeController;
@@ -156,7 +152,6 @@ public class CentralSurfacesCommandQueueCallbacks implements CommandQueue.Callba
mVibratorOptional = vibratorOptional;
mDisableFlagsLogger = disableFlagsLogger;
mDisplayId = displayId;
mCameraLauncherLazy = cameraLauncherLazy;
mVibrateOnOpening = resources.getBoolean(R.bool.config_vibrateOnIconAnimation);
mCameraLaunchGestureVibrationEffect = getCameraGestureVibrationEffect(
@@ -351,8 +346,7 @@ public class CentralSurfacesCommandQueueCallbacks implements CommandQueue.Callba
mCentralSurfaces.setLaunchCameraOnFinishedGoingToSleep(true);
return;
}
if (!mCameraLauncherLazy.get().canCameraGestureBeLaunched(
mNotificationPanelViewController.getBarState())) {
if (!mNotificationPanelViewController.canCameraGestureBeLaunched()) {
if (CentralSurfaces.DEBUG_CAMERA_LIFT) {
Slog.d(CentralSurfaces.TAG, "Can't launch camera right now");
}
@@ -389,8 +383,7 @@ public class CentralSurfacesCommandQueueCallbacks implements CommandQueue.Callba
if (mStatusBarKeyguardViewManager.isBouncerShowing()) {
mStatusBarKeyguardViewManager.reset(true /* hide */);
}
mCameraLauncherLazy.get().launchCamera(source,
mNotificationPanelViewController.isFullyCollapsed());
mNotificationPanelViewController.launchCamera(source);
mCentralSurfaces.updateScrimController();
} else {
// We need to defer the camera launch until the screen comes on, since otherwise

View File

@@ -177,7 +177,6 @@ import com.android.systemui.recents.ScreenPinningRequest;
import com.android.systemui.ripple.RippleShader.RippleShape;
import com.android.systemui.scrim.ScrimView;
import com.android.systemui.settings.brightness.BrightnessSliderController;
import com.android.systemui.shade.CameraLauncher;
import com.android.systemui.shade.NotificationPanelViewController;
import com.android.systemui.shade.NotificationShadeWindowView;
import com.android.systemui.shade.NotificationShadeWindowViewController;
@@ -486,7 +485,6 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
private final PluginManager mPluginManager;
private final ShadeController mShadeController;
private final InitController mInitController;
private final Lazy<CameraLauncher> mCameraLauncherLazy;
private final PluginDependencyProvider mPluginDependencyProvider;
private final KeyguardDismissUtil mKeyguardDismissUtil;
@@ -619,7 +617,6 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
private Runnable mLaunchTransitionEndRunnable;
private Runnable mLaunchTransitionCancelRunnable;
private boolean mLaunchingAffordance;
private boolean mLaunchCameraWhenFinishedWaking;
private boolean mLaunchCameraOnFinishedGoingToSleep;
private boolean mLaunchEmergencyActionWhenFinishedWaking;
@@ -764,8 +761,7 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
InteractionJankMonitor jankMonitor,
DeviceStateManager deviceStateManager,
WiredChargingRippleController wiredChargingRippleController,
IDreamManager dreamManager,
Lazy<CameraLauncher> cameraLauncherLazy) {
IDreamManager dreamManager) {
mContext = context;
mNotificationsController = notificationsController;
mFragmentService = fragmentService;
@@ -842,7 +838,6 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
mMessageRouter = messageRouter;
mWallpaperManager = wallpaperManager;
mJankMonitor = jankMonitor;
mCameraLauncherLazy = cameraLauncherLazy;
mLockscreenShadeTransitionController = lockscreenShadeTransitionController;
mStartingSurfaceOptional = startingSurfaceOptional;
@@ -2983,7 +2978,7 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
private void onLaunchTransitionFadingEnded() {
mNotificationPanelViewController.resetAlpha();
mCameraLauncherLazy.get().setLaunchingAffordance(false);
mNotificationPanelViewController.onAffordanceLaunchEnded();
releaseGestureWakeLock();
runLaunchTransitionEndRunnable();
mKeyguardStateController.setLaunchTransitionFadingAway(false);
@@ -3053,7 +3048,7 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
private void onLaunchTransitionTimeout() {
Log.w(TAG, "Launch transition: Timeout!");
mCameraLauncherLazy.get().setLaunchingAffordance(false);
mNotificationPanelViewController.onAffordanceLaunchEnded();
releaseGestureWakeLock();
mNotificationPanelViewController.resetViews(false /* animate */);
}
@@ -3106,7 +3101,7 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
}
mMessageRouter.cancelMessages(MSG_LAUNCH_TRANSITION_TIMEOUT);
releaseGestureWakeLock();
mCameraLauncherLazy.get().setLaunchingAffordance(false);
mNotificationPanelViewController.onAffordanceLaunchEnded();
mNotificationPanelViewController.resetAlpha();
mNotificationPanelViewController.resetTranslation();
mNotificationPanelViewController.resetViewGroupFade();
@@ -3264,7 +3259,7 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
@Override
public void endAffordanceLaunch() {
releaseGestureWakeLock();
mCameraLauncherLazy.get().setLaunchingAffordance(false);
mNotificationPanelViewController.onAffordanceLaunchEnded();
}
/**
@@ -3536,7 +3531,7 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
final WakefulnessLifecycle.Observer mWakefulnessObserver = new WakefulnessLifecycle.Observer() {
@Override
public void onFinishedGoingToSleep() {
mCameraLauncherLazy.get().setLaunchingAffordance(false);
mNotificationPanelViewController.onAffordanceLaunchEnded();
releaseGestureWakeLock();
mLaunchCameraWhenFinishedWaking = false;
mDeviceInteractive = false;
@@ -3637,8 +3632,7 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
.updateSensitivenessForOccludedWakeup();
}
if (mLaunchCameraWhenFinishedWaking) {
mCameraLauncherLazy.get().launchCamera(mLastCameraLaunchSource,
mNotificationPanelViewController.isFullyCollapsed());
mNotificationPanelViewController.launchCamera(mLastCameraLaunchSource);
mLaunchCameraWhenFinishedWaking = false;
}
if (mLaunchEmergencyActionWhenFinishedWaking) {
@@ -3829,7 +3823,8 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
mScrimController.setExpansionAffectsAlpha(!unlocking);
boolean launchingAffordanceWithPreview = mLaunchingAffordance;
boolean launchingAffordanceWithPreview =
mNotificationPanelViewController.isLaunchingAffordanceWithPreview();
mScrimController.setLaunchingAffordanceWithPreview(launchingAffordanceWithPreview);
if (mStatusBarKeyguardViewManager.isShowingAlternateAuth()) {

View File

@@ -94,6 +94,7 @@ import com.android.systemui.DejankUtils;
import com.android.systemui.R;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.biometrics.AuthController;
import com.android.systemui.camera.CameraGestureHelper;
import com.android.systemui.classifier.FalsingCollectorFake;
import com.android.systemui.classifier.FalsingManagerFake;
import com.android.systemui.doze.DozeLog;
@@ -491,6 +492,7 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase {
mUnlockedScreenOffAnimationController,
mShadeTransitionController,
systemClock,
mock(CameraGestureHelper.class),
mKeyguardBottomAreaViewModel,
mKeyguardBottomAreaInteractor);
mNotificationPanelViewController.initDependencies(

View File

@@ -41,7 +41,6 @@ import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.assist.AssistManager;
import com.android.systemui.keyguard.WakefulnessLifecycle;
import com.android.systemui.shade.CameraLauncher;
import com.android.systemui.shade.NotificationPanelViewController;
import com.android.systemui.shade.ShadeController;
import com.android.systemui.statusbar.CommandQueue;
@@ -61,8 +60,6 @@ import org.mockito.stubbing.Answer;
import java.util.Optional;
import dagger.Lazy;
@SmallTest
@RunWith(AndroidTestingRunner.class)
public class CentralSurfacesCommandQueueCallbacksTest extends SysuiTestCase {
@@ -87,7 +84,6 @@ public class CentralSurfacesCommandQueueCallbacksTest extends SysuiTestCase {
@Mock private Vibrator mVibrator;
@Mock private StatusBarHideIconsForBouncerManager mStatusBarHideIconsForBouncerManager;
@Mock private SystemBarAttributesListener mSystemBarAttributesListener;
@Mock private Lazy<CameraLauncher> mCameraLauncherLazy;
CentralSurfacesCommandQueueCallbacks mSbcqCallbacks;
@@ -119,8 +115,7 @@ public class CentralSurfacesCommandQueueCallbacksTest extends SysuiTestCase {
Optional.of(mVibrator),
new DisableFlagsLogger(),
DEFAULT_DISPLAY,
mSystemBarAttributesListener,
mCameraLauncherLazy);
mSystemBarAttributesListener);
when(mDeviceProvisionedController.isCurrentUserSetup()).thenReturn(true);
when(mRemoteInputQuickSettingsDisabler.adjustDisableFlags(anyInt()))

View File

@@ -112,7 +112,6 @@ import com.android.systemui.plugins.PluginDependencyProvider;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.recents.ScreenPinningRequest;
import com.android.systemui.settings.brightness.BrightnessSliderController;
import com.android.systemui.shade.CameraLauncher;
import com.android.systemui.shade.NotificationPanelView;
import com.android.systemui.shade.NotificationPanelViewController;
import com.android.systemui.shade.NotificationShadeWindowView;
@@ -288,8 +287,6 @@ public class CentralSurfacesImplTest extends SysuiTestCase {
@Mock private InteractionJankMonitor mJankMonitor;
@Mock private DeviceStateManager mDeviceStateManager;
@Mock private WiredChargingRippleController mWiredChargingRippleController;
@Mock private Lazy<CameraLauncher> mCameraLauncherLazy;
@Mock private CameraLauncher mCameraLauncher;
/**
* The process of registering/unregistering a predictive back callback requires a
* ViewRootImpl, which is present IRL, but may be missing during a Mockito unit test.
@@ -381,7 +378,6 @@ public class CentralSurfacesImplTest extends SysuiTestCase {
when(mLockscreenWallpaperLazy.get()).thenReturn(mLockscreenWallpaper);
when(mBiometricUnlockControllerLazy.get()).thenReturn(mBiometricUnlockController);
when(mCameraLauncherLazy.get()).thenReturn(mCameraLauncher);
when(mStatusBarComponentFactory.create()).thenReturn(mCentralSurfacesComponent);
when(mCentralSurfacesComponent.getNotificationShadeWindowViewController()).thenReturn(
@@ -483,9 +479,7 @@ public class CentralSurfacesImplTest extends SysuiTestCase {
mActivityLaunchAnimator,
mJankMonitor,
mDeviceStateManager,
mWiredChargingRippleController,
mDreamManager,
mCameraLauncherLazy) {
mWiredChargingRippleController, mDreamManager) {
@Override
protected ViewRootImpl getViewRootImpl() {
return mViewRootImpl;
@@ -897,7 +891,7 @@ public class CentralSurfacesImplTest extends SysuiTestCase {
mCentralSurfaces.showKeyguardImpl();
// Starting a pulse should change the scrim controller to the pulsing state
when(mCameraLauncher.isLaunchingAffordance()).thenReturn(true);
when(mNotificationPanelViewController.isLaunchingAffordanceWithPreview()).thenReturn(true);
mCentralSurfaces.updateScrimController();
verify(mScrimController).transitionTo(eq(ScrimState.UNLOCKED), any());
}
@@ -933,7 +927,7 @@ public class CentralSurfacesImplTest extends SysuiTestCase {
mCentralSurfaces.showKeyguardImpl();
// Starting a pulse should change the scrim controller to the pulsing state
when(mCameraLauncher.isLaunchingAffordance()).thenReturn(false);
when(mNotificationPanelViewController.isLaunchingAffordanceWithPreview()).thenReturn(false);
mCentralSurfaces.updateScrimController();
verify(mScrimController).transitionTo(eq(ScrimState.KEYGUARD));
}