Merge "Use KeyguardVisibilityHelper for CommunalHostView."
This commit is contained in:
@@ -80,7 +80,7 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV
|
||||
mKeyguardStateController = keyguardStateController;
|
||||
mKeyguardVisibilityHelper = new KeyguardVisibilityHelper(mView, communalStateController,
|
||||
keyguardStateController, dozeParameters, unlockedScreenOffAnimationController,
|
||||
/* animateYPos= */ true);
|
||||
/* animateYPos= */ true, /* visibleOnCommunal= */ false);
|
||||
mKeyguardUnlockAnimationController = keyguardUnlockAnimationController;
|
||||
mSmartspaceTransitionController = smartspaceTransitionController;
|
||||
}
|
||||
|
||||
@@ -43,6 +43,7 @@ public class KeyguardVisibilityHelper {
|
||||
private final KeyguardStateController mKeyguardStateController;
|
||||
private final DozeParameters mDozeParameters;
|
||||
private final UnlockedScreenOffAnimationController mUnlockedScreenOffAnimationController;
|
||||
private final boolean mVisibleOnCommunal;
|
||||
private boolean mAnimateYPos;
|
||||
private boolean mKeyguardViewVisibilityAnimating;
|
||||
private boolean mLastOccludedState = false;
|
||||
@@ -53,13 +54,15 @@ public class KeyguardVisibilityHelper {
|
||||
KeyguardStateController keyguardStateController,
|
||||
DozeParameters dozeParameters,
|
||||
UnlockedScreenOffAnimationController unlockedScreenOffAnimationController,
|
||||
boolean animateYPos) {
|
||||
boolean animateYPos,
|
||||
boolean visibleOnCommunal) {
|
||||
mView = view;
|
||||
mCommunalStateController = communalStateController;
|
||||
mKeyguardStateController = keyguardStateController;
|
||||
mDozeParameters = dozeParameters;
|
||||
mUnlockedScreenOffAnimationController = unlockedScreenOffAnimationController;
|
||||
mAnimateYPos = animateYPos;
|
||||
mVisibleOnCommunal = visibleOnCommunal;
|
||||
}
|
||||
|
||||
public boolean isVisibilityAnimating() {
|
||||
@@ -79,7 +82,7 @@ public class KeyguardVisibilityHelper {
|
||||
mKeyguardViewVisibilityAnimating = false;
|
||||
|
||||
// If the communal view is showing, hide immediately
|
||||
if (mCommunalStateController.getCommunalViewShowing()) {
|
||||
if (!mVisibleOnCommunal && mCommunalStateController.getCommunalViewShowing()) {
|
||||
mView.setVisibility(View.GONE);
|
||||
mView.setAlpha(1f);
|
||||
return;
|
||||
|
||||
@@ -24,8 +24,11 @@ import android.view.ViewGroup;
|
||||
|
||||
import com.android.keyguard.KeyguardUpdateMonitor;
|
||||
import com.android.keyguard.KeyguardUpdateMonitorCallback;
|
||||
import com.android.keyguard.KeyguardVisibilityHelper;
|
||||
import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.phone.DozeParameters;
|
||||
import com.android.systemui.statusbar.phone.UnlockedScreenOffAnimationController;
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
import com.android.systemui.util.ViewController;
|
||||
|
||||
@@ -70,6 +73,8 @@ public class CommunalHostViewController extends ViewController<CommunalHostView>
|
||||
private static final int SHOW_COMMUNAL_VIEW_INVALID_STATES =
|
||||
STATE_DOZING | STATE_BOUNCER_SHOWING | STATE_KEYGUARD_OCCLUDED;
|
||||
|
||||
private final KeyguardVisibilityHelper mKeyguardVisibilityHelper;
|
||||
|
||||
private ViewController<? extends View> mCommunalViewController;
|
||||
|
||||
private KeyguardUpdateMonitorCallback mKeyguardUpdateCallback =
|
||||
@@ -123,6 +128,8 @@ public class CommunalHostViewController extends ViewController<CommunalHostView>
|
||||
CommunalStateController communalStateController,
|
||||
KeyguardUpdateMonitor keyguardUpdateMonitor,
|
||||
KeyguardStateController keyguardStateController,
|
||||
DozeParameters dozeParameters,
|
||||
UnlockedScreenOffAnimationController unlockedScreenOffAnimationController,
|
||||
StatusBarStateController statusBarStateController, CommunalHostView view) {
|
||||
super(view);
|
||||
mCommunalStateController = communalStateController;
|
||||
@@ -130,6 +137,21 @@ public class CommunalHostViewController extends ViewController<CommunalHostView>
|
||||
mMainExecutor = mainExecutor;
|
||||
mKeyguardStateController = keyguardStateController;
|
||||
mStatusBarStateController = statusBarStateController;
|
||||
mKeyguardVisibilityHelper = new KeyguardVisibilityHelper(mView, communalStateController,
|
||||
keyguardStateController, dozeParameters, unlockedScreenOffAnimationController,
|
||||
/* animateYPos= */ false, /* visibleOnCommunal= */ true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the visibility of the keyguard status view based on some new state.
|
||||
*/
|
||||
public void setKeyguardStatusViewVisibility(
|
||||
int statusBarState,
|
||||
boolean keyguardFadingAway,
|
||||
boolean goingToFullShade,
|
||||
int oldStatusBarState) {
|
||||
mKeyguardVisibilityHelper.setViewVisibility(
|
||||
statusBarState, keyguardFadingAway, goingToFullShade, oldStatusBarState);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -4567,6 +4567,15 @@ public class NotificationPanelViewController extends PanelViewController {
|
||||
keyguardFadingAway,
|
||||
goingToFullShade,
|
||||
mBarState);
|
||||
|
||||
if (mCommunalViewController != null) {
|
||||
mCommunalViewController.setKeyguardStatusViewVisibility(
|
||||
statusBarState,
|
||||
keyguardFadingAway,
|
||||
goingToFullShade,
|
||||
mBarState);
|
||||
}
|
||||
|
||||
setKeyguardBottomAreaVisibility(statusBarState, goingToFullShade);
|
||||
|
||||
mBarState = statusBarState;
|
||||
|
||||
@@ -137,7 +137,8 @@ public class KeyguardQsUserSwitchController extends ViewController<UserAvatarVie
|
||||
mStatusBarStateController = statusBarStateController;
|
||||
mKeyguardVisibilityHelper = new KeyguardVisibilityHelper(mView, communalStateController,
|
||||
keyguardStateController, dozeParameters,
|
||||
unlockedScreenOffAnimationController, /* animateYPos= */ false);
|
||||
unlockedScreenOffAnimationController, /* animateYPos= */ false,
|
||||
/* visibleOnCommunal= */ false);
|
||||
mUserDetailAdapter = new KeyguardUserDetailAdapter(context, userDetailViewAdapterProvider);
|
||||
}
|
||||
|
||||
|
||||
@@ -176,7 +176,8 @@ public class KeyguardUserSwitcherController extends ViewController<KeyguardUserS
|
||||
mUserSwitcherController, this);
|
||||
mKeyguardVisibilityHelper = new KeyguardVisibilityHelper(mView, communalStateController,
|
||||
keyguardStateController, dozeParameters,
|
||||
unlockedScreenOffAnimationController, /* animateYPos= */ false);
|
||||
unlockedScreenOffAnimationController, /* animateYPos= */ false,
|
||||
/* visibleOnCommunal= */ false);
|
||||
mBackground = new KeyguardUserSwitcherScrim(context);
|
||||
}
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ public class KeyguardVisibilityHelperTest extends SysuiTestCase {
|
||||
when(mTargetView.animate()).thenReturn(mViewPropertyAnimator);
|
||||
mKeyguardVisibilityHelper = new KeyguardVisibilityHelper(mTargetView,
|
||||
mCommunalStateController, mKeyguardStateController, mDozeParameters,
|
||||
mUnlockedScreenOffAnimationController, false);
|
||||
mUnlockedScreenOffAnimationController, false, false);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -74,4 +74,19 @@ public class KeyguardVisibilityHelperTest extends SysuiTestCase {
|
||||
false, StatusBarState.KEYGUARD);
|
||||
verify(mTargetView).setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testVisibleOnCommunal() {
|
||||
when(mCommunalStateController.getCommunalViewShowing()).thenReturn(true);
|
||||
when(mKeyguardStateController.isOccluded()).thenReturn(false);
|
||||
|
||||
// Verify that helpers constructed with visibility on communal are not hidden when communal
|
||||
// is present.
|
||||
mKeyguardVisibilityHelper = new KeyguardVisibilityHelper(mTargetView,
|
||||
mCommunalStateController, mKeyguardStateController, mDozeParameters,
|
||||
mUnlockedScreenOffAnimationController, false, true);
|
||||
mKeyguardVisibilityHelper.setViewVisibility(StatusBarState.KEYGUARD, false,
|
||||
false, StatusBarState.KEYGUARD);
|
||||
verify(mTargetView).setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,6 +29,8 @@ import com.android.keyguard.KeyguardUpdateMonitor;
|
||||
import com.android.keyguard.KeyguardUpdateMonitorCallback;
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.phone.DozeParameters;
|
||||
import com.android.systemui.statusbar.phone.UnlockedScreenOffAnimationController;
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
import com.android.systemui.util.concurrency.FakeExecutor;
|
||||
import com.android.systemui.util.time.FakeSystemClock;
|
||||
@@ -61,6 +63,12 @@ public class CommunalHostViewControllerTest extends SysuiTestCase {
|
||||
@Mock
|
||||
private CommunalHostView mCommunalView;
|
||||
|
||||
@Mock
|
||||
private DozeParameters mDozeParameters;
|
||||
|
||||
@Mock
|
||||
private UnlockedScreenOffAnimationController mUnlockedScreenOffAnimationController;
|
||||
|
||||
private FakeExecutor mFakeExecutor = new FakeExecutor(new FakeSystemClock());
|
||||
|
||||
private CommunalHostViewController mController;
|
||||
@@ -76,8 +84,8 @@ public class CommunalHostViewControllerTest extends SysuiTestCase {
|
||||
when(mCommunalView.isAttachedToWindow()).thenReturn(true);
|
||||
|
||||
mController = new CommunalHostViewController(mFakeExecutor, mCommunalStateController,
|
||||
mKeyguardUpdateMonitor, mKeyguardStateController, mStatusBarStateController,
|
||||
mCommunalView);
|
||||
mKeyguardUpdateMonitor, mKeyguardStateController, mDozeParameters,
|
||||
mUnlockedScreenOffAnimationController, mStatusBarStateController, mCommunalView);
|
||||
mController.init();
|
||||
mFakeExecutor.runAllReady();
|
||||
Mockito.clearInvocations(mCommunalView);
|
||||
|
||||
Reference in New Issue
Block a user