Merge "Improve transition between AOD and lockscreen when media is playing for split shade" into udc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
e132b30b3e
@@ -127,6 +127,16 @@ public interface BcSmartspaceDataPlugin extends Plugin {
|
|||||||
*/
|
*/
|
||||||
void setDozeAmount(float amount);
|
void setDozeAmount(float amount);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set if dozing is true or false
|
||||||
|
*/
|
||||||
|
default void setDozing(boolean dozing) {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set if split shade enabled
|
||||||
|
*/
|
||||||
|
default void setSplitShadeEnabled(boolean enabled) {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the current keyguard bypass enabled status.
|
* Set the current keyguard bypass enabled status.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -351,6 +351,13 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS
|
|||||||
mView.setSplitShadeCentered(splitShadeCentered);
|
mView.setSplitShadeCentered(splitShadeCentered);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set if the split shade is enabled
|
||||||
|
*/
|
||||||
|
public void setSplitShadeEnabled(boolean splitShadeEnabled) {
|
||||||
|
mSmartspaceController.setSplitShadeEnabled(splitShadeEnabled);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set which clock should be displayed on the keyguard. The other one will be automatically
|
* Set which clock should be displayed on the keyguard. The other one will be automatically
|
||||||
* hidden.
|
* hidden.
|
||||||
|
|||||||
@@ -322,6 +322,13 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV
|
|||||||
return clock != null && clock.getLargeClock().getConfig().getHasCustomWeatherDataDisplay();
|
return clock != null && clock.getLargeClock().getConfig().getHasCustomWeatherDataDisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set if the split shade is enabled
|
||||||
|
*/
|
||||||
|
public void setSplitShadeEnabled(boolean enabled) {
|
||||||
|
mKeyguardClockSwitchController.setSplitShadeEnabled(enabled);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Updates the alignment of the KeyguardStatusView and animates the transition if requested.
|
* Updates the alignment of the KeyguardStatusView and animates the transition if requested.
|
||||||
*/
|
*/
|
||||||
@@ -350,6 +357,9 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV
|
|||||||
}
|
}
|
||||||
|
|
||||||
mInteractionJankMonitor.begin(mView, CUJ_LOCKSCREEN_CLOCK_MOVE_ANIMATION);
|
mInteractionJankMonitor.begin(mView, CUJ_LOCKSCREEN_CLOCK_MOVE_ANIMATION);
|
||||||
|
/* This transition blocks any layout changes while running. For that reason
|
||||||
|
* special logic with setting visibility was added to {@link BcSmartspaceView#setDozing}
|
||||||
|
* for split shade to avoid jump of the media object. */
|
||||||
ChangeBounds transition = new ChangeBounds();
|
ChangeBounds transition = new ChangeBounds();
|
||||||
if (splitShadeEnabled) {
|
if (splitShadeEnabled) {
|
||||||
// Excluding media from the transition on split-shade, as it doesn't transition
|
// Excluding media from the transition on split-shade, as it doesn't transition
|
||||||
|
|||||||
@@ -1172,6 +1172,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
|
|||||||
mKeyguardStatusViewComponentFactory.build(keyguardStatusView);
|
mKeyguardStatusViewComponentFactory.build(keyguardStatusView);
|
||||||
mKeyguardStatusViewController = statusViewComponent.getKeyguardStatusViewController();
|
mKeyguardStatusViewController = statusViewComponent.getKeyguardStatusViewController();
|
||||||
mKeyguardStatusViewController.init();
|
mKeyguardStatusViewController.init();
|
||||||
|
mKeyguardStatusViewController.setSplitShadeEnabled(mSplitShadeEnabled);
|
||||||
updateClockAppearance();
|
updateClockAppearance();
|
||||||
|
|
||||||
if (mKeyguardUserSwitcherController != null) {
|
if (mKeyguardUserSwitcherController != null) {
|
||||||
@@ -1224,6 +1225,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
|
|||||||
|
|
||||||
private void onSplitShadeEnabledChanged() {
|
private void onSplitShadeEnabledChanged() {
|
||||||
mShadeLog.logSplitShadeChanged(mSplitShadeEnabled);
|
mShadeLog.logSplitShadeChanged(mSplitShadeEnabled);
|
||||||
|
mKeyguardStatusViewController.setSplitShadeEnabled(mSplitShadeEnabled);
|
||||||
// Reset any left over overscroll state. It is a rare corner case but can happen.
|
// Reset any left over overscroll state. It is a rare corner case but can happen.
|
||||||
mQsController.setOverScrollAmount(0);
|
mQsController.setOverScrollAmount(0);
|
||||||
mScrimController.setNotificationsOverScrollAmount(0);
|
mScrimController.setNotificationsOverScrollAmount(0);
|
||||||
|
|||||||
@@ -124,6 +124,7 @@ constructor(
|
|||||||
private var showSensitiveContentForCurrentUser = false
|
private var showSensitiveContentForCurrentUser = false
|
||||||
private var showSensitiveContentForManagedUser = false
|
private var showSensitiveContentForManagedUser = false
|
||||||
private var managedUserHandle: UserHandle? = null
|
private var managedUserHandle: UserHandle? = null
|
||||||
|
private var mSplitShadeEnabled = false
|
||||||
|
|
||||||
// TODO(b/202758428): refactor so that we can test color updates via region samping, similar to
|
// TODO(b/202758428): refactor so that we can test color updates via region samping, similar to
|
||||||
// how we test color updates when theme changes (See testThemeChangeUpdatesTextColor).
|
// how we test color updates when theme changes (See testThemeChangeUpdatesTextColor).
|
||||||
@@ -131,6 +132,7 @@ constructor(
|
|||||||
// TODO: Move logic into SmartspaceView
|
// TODO: Move logic into SmartspaceView
|
||||||
var stateChangeListener = object : View.OnAttachStateChangeListener {
|
var stateChangeListener = object : View.OnAttachStateChangeListener {
|
||||||
override fun onViewAttachedToWindow(v: View) {
|
override fun onViewAttachedToWindow(v: View) {
|
||||||
|
(v as SmartspaceView).setSplitShadeEnabled(mSplitShadeEnabled)
|
||||||
smartspaceViews.add(v as SmartspaceView)
|
smartspaceViews.add(v as SmartspaceView)
|
||||||
|
|
||||||
connectSession()
|
connectSession()
|
||||||
@@ -216,6 +218,11 @@ constructor(
|
|||||||
execution.assertIsMainThread()
|
execution.assertIsMainThread()
|
||||||
smartspaceViews.forEach { it.setDozeAmount(eased) }
|
smartspaceViews.forEach { it.setDozeAmount(eased) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onDozingChanged(isDozing: Boolean) {
|
||||||
|
execution.assertIsMainThread()
|
||||||
|
smartspaceViews.forEach { it.setDozing(isDozing) }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private val deviceProvisionedListener =
|
private val deviceProvisionedListener =
|
||||||
@@ -421,6 +428,11 @@ constructor(
|
|||||||
reloadSmartspace()
|
reloadSmartspace()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun setSplitShadeEnabled(enabled: Boolean) {
|
||||||
|
mSplitShadeEnabled = enabled
|
||||||
|
smartspaceViews.forEach { it.setSplitShadeEnabled(enabled) }
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Requests the smartspace session for an update.
|
* Requests the smartspace session for an update.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -408,4 +408,18 @@ public class KeyguardClockSwitchControllerTest extends SysuiTestCase {
|
|||||||
any(ClockRegistry.ClockChangeListener.class));
|
any(ClockRegistry.ClockChangeListener.class));
|
||||||
verify(mClockEventController, times).registerListeners(mView);
|
verify(mClockEventController, times).registerListeners(mView);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSplitShadeEnabledSetToSmartspaceController() {
|
||||||
|
mController.setSplitShadeEnabled(true);
|
||||||
|
verify(mSmartspaceController, times(1)).setSplitShadeEnabled(true);
|
||||||
|
verify(mSmartspaceController, times(0)).setSplitShadeEnabled(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSplitShadeDisabledSetToSmartspaceController() {
|
||||||
|
mController.setSplitShadeEnabled(false);
|
||||||
|
verify(mSmartspaceController, times(1)).setSplitShadeEnabled(false);
|
||||||
|
verify(mSmartspaceController, times(0)).setSplitShadeEnabled(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
package com.android.keyguard;
|
package com.android.keyguard;
|
||||||
|
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
|
import static org.mockito.Mockito.times;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
@@ -155,4 +156,18 @@ public class KeyguardStatusViewControllerTest extends SysuiTestCase {
|
|||||||
verify(mControllerMock).setProperty(AnimatableProperty.SCALE_X, 20f, true);
|
verify(mControllerMock).setProperty(AnimatableProperty.SCALE_X, 20f, true);
|
||||||
verify(mControllerMock).setProperty(AnimatableProperty.SCALE_Y, 20f, true);
|
verify(mControllerMock).setProperty(AnimatableProperty.SCALE_Y, 20f, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void splitShadeEnabledPassedToClockSwitchController() {
|
||||||
|
mController.setSplitShadeEnabled(true);
|
||||||
|
verify(mKeyguardClockSwitchController, times(1)).setSplitShadeEnabled(true);
|
||||||
|
verify(mKeyguardClockSwitchController, times(0)).setSplitShadeEnabled(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void splitShadeDisabledPassedToClockSwitchController() {
|
||||||
|
mController.setSplitShadeEnabled(false);
|
||||||
|
verify(mKeyguardClockSwitchController, times(1)).setSplitShadeEnabled(false);
|
||||||
|
verify(mKeyguardClockSwitchController, times(0)).setSplitShadeEnabled(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user