Merge "Remove transition from lock icon" into qt-dev

This commit is contained in:
Lucas Dupin
2019-04-30 17:25:30 +00:00
committed by Android (Google) Code Review
2 changed files with 18 additions and 44 deletions

View File

@@ -25,8 +25,6 @@ import android.content.Context;
import android.content.res.ColorStateList;
import android.os.Bundle;
import android.os.SystemClock;
import android.transition.Fade;
import android.transition.TransitionManager;
import android.util.StatsLog;
import android.view.KeyEvent;
import android.view.View;
@@ -40,10 +38,8 @@ import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.keyguard.KeyguardUpdateMonitorCallback;
import com.android.keyguard.ViewMediatorCallback;
import com.android.settingslib.animation.AppearAnimationUtils;
import com.android.settingslib.animation.DisappearAnimationUtils;
import com.android.systemui.DejankUtils;
import com.android.systemui.Dependency;
import com.android.systemui.Interpolators;
import com.android.systemui.SysUiServiceProvider;
import com.android.systemui.SystemUIFactory;
import com.android.systemui.dock.DockManager;
@@ -51,6 +47,7 @@ import com.android.systemui.keyguard.DismissCallbackRegistry;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.shared.system.QuickStepContract;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.CrossFadeHelper;
import com.android.systemui.statusbar.NotificationMediaManager;
import com.android.systemui.statusbar.RemoteInputController;
import com.android.systemui.statusbar.StatusBarState;
@@ -158,7 +155,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
private boolean mLastPulsing;
private int mLastBiometricMode;
private boolean mGoingToSleepVisibleNotOccluded;
private int mLastLockVisibility = -1;
private boolean mLastLockVisible;
private OnDismissAction mAfterKeyguardGoneAction;
private final ArrayList<Runnable> mAfterKeyguardGoneRunnables = new ArrayList<>();
@@ -213,6 +210,9 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
mStatusBar = statusBar;
mContainer = container;
mLockIconContainer = lockIconContainer;
if (mLockIconContainer != null) {
mLastLockVisible = mLockIconContainer.getVisibility() == View.VISIBLE;
}
mBiometricUnlockController = biometricUnlockController;
mBouncer = SystemUIFactory.getInstance().createKeyguardBouncer(mContext,
mViewMediatorCallback, mLockPatternUtils, container, dismissCallbackRegistry,
@@ -261,21 +261,20 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
}
boolean keyguardWithoutQs = mStatusBarStateController.getState() == StatusBarState.KEYGUARD
&& !mNotificationPanelView.isQsExpanded();
int lockVisibility = (mBouncer.isShowing() || keyguardWithoutQs)
&& !mBouncer.isAnimatingAway() ? View.VISIBLE : View.INVISIBLE;
boolean lockVisible = (mBouncer.isShowing() || keyguardWithoutQs)
&& !mBouncer.isAnimatingAway();
if (mLastLockVisibility != lockVisibility) {
mLastLockVisibility = lockVisibility;
Fade transition = new Fade();
boolean appearing = lockVisibility == View.VISIBLE;
transition.setDuration(appearing ? AppearAnimationUtils.DEFAULT_APPEAR_DURATION
: DisappearAnimationUtils.DEFAULT_APPEAR_DURATION / 2);
transition.setInterpolator(appearing ? Interpolators.ALPHA_IN
: Interpolators.ALPHA_OUT);
TransitionManager.beginDelayedTransition((ViewGroup) mLockIconContainer.getParent(),
transition);
mLockIconContainer.setVisibility(lockVisibility);
if (mLastLockVisible != lockVisible) {
mLastLockVisible = lockVisible;
if (lockVisible) {
CrossFadeHelper.fadeIn(mLockIconContainer,
AppearAnimationUtils.DEFAULT_APPEAR_DURATION /* duration */,
0 /* delay */);
} else {
CrossFadeHelper.fadeOut(mLockIconContainer,
AppearAnimationUtils.DEFAULT_APPEAR_DURATION / 2 /* duration */,
0 /* delay */, null /* runnable */);
}
}
}

View File

@@ -28,7 +28,6 @@ import static org.mockito.Mockito.when;
import android.content.Context;
import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper;
import android.view.View;
import android.view.ViewGroup;
import androidx.test.filters.SmallTest;
@@ -39,7 +38,6 @@ import com.android.systemui.SysuiTestCase;
import com.android.systemui.keyguard.DismissCallbackRegistry;
import com.android.systemui.plugins.ActivityStarter.OnDismissAction;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.StatusBarState;
import org.junit.Before;
import org.junit.Test;
@@ -198,29 +196,6 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
verify(mBouncer, never()).setExpansion(anyFloat());
}
@Test
public void onQsExpansionChanged_lockVisibleOnlyWhenCollapsed() {
when(mStatusBarStateController.getState()).thenReturn(StatusBarState.KEYGUARD);
mStatusBarKeyguardViewManager.onQsExpansionChanged(0);
verify(mLockIconContainer).setVisibility(eq(View.VISIBLE));
reset(mNotificationPanelView);
when(mNotificationPanelView.isQsExpanded()).thenReturn(true);
mStatusBarKeyguardViewManager.onQsExpansionChanged(1f);
verify(mLockIconContainer).setVisibility(eq(View.INVISIBLE));
}
@Test
public void onQsExpansionChanged_lockInvisibleWhenAnimatingAway() {
when(mBouncer.isShowing()).thenReturn(true);
mStatusBarKeyguardViewManager.onQsExpansionChanged(0);
verify(mLockIconContainer).setVisibility(eq(View.VISIBLE));
when(mBouncer.isAnimatingAway()).thenReturn(true);
mStatusBarKeyguardViewManager.onQsExpansionChanged(0f);
verify(mLockIconContainer).setVisibility(eq(View.INVISIBLE));
}
private class TestableStatusBarKeyguardViewManager extends StatusBarKeyguardViewManager {
public TestableStatusBarKeyguardViewManager(Context context,