Merge "Use new GX overlay for new AOD/lockscreen transitions." into sc-dev

This commit is contained in:
TreeHugger Robot
2021-02-09 03:09:47 +00:00
committed by Android (Google) Code Review
8 changed files with 35 additions and 15 deletions

View File

@@ -34,6 +34,9 @@
<bool name="flag_brightness_slider">false</bool> <bool name="flag_brightness_slider">false</bool>
<!-- The new animations to/from lockscreen and AOD! -->
<bool name="flag_lockscreen_animations">false</bool>
<!-- People Tile flag --> <!-- People Tile flag -->
<bool name="flag_conversations">false</bool> <bool name="flag_conversations">false</bool>
</resources> </resources>

View File

@@ -67,6 +67,10 @@ public class FeatureFlags {
return mFlagReader.isEnabled(R.bool.flag_brightness_slider); return mFlagReader.isEnabled(R.bool.flag_brightness_slider);
} }
public boolean useNewLockscreenAnimations() {
return mFlagReader.isEnabled(R.bool.flag_lockscreen_animations);
}
public boolean isPeopleTileEnabled() { public boolean isPeopleTileEnabled() {
return mFlagReader.isEnabled(R.bool.flag_conversations); return mFlagReader.isEnabled(R.bool.flag_conversations);
} }

View File

@@ -11,14 +11,10 @@ import android.graphics.PorterDuffColorFilter
import android.graphics.PorterDuffXfermode import android.graphics.PorterDuffXfermode
import android.graphics.RadialGradient import android.graphics.RadialGradient
import android.graphics.Shader import android.graphics.Shader
import android.os.SystemProperties
import android.util.AttributeSet import android.util.AttributeSet
import android.view.View import android.view.View
import com.android.systemui.Interpolators import com.android.systemui.Interpolators
val enableLightReveal =
SystemProperties.getBoolean("persist.sysui.show_new_screen_on_transitions", false)
/** /**
* Provides methods to modify the various properties of a [LightRevealScrim] to reveal between 0% to * Provides methods to modify the various properties of a [LightRevealScrim] to reveal between 0% to
* 100% of the view(s) underneath the scrim. * 100% of the view(s) underneath the scrim.

View File

@@ -29,6 +29,7 @@ import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.doze.AlwaysOnDisplayPolicy; import com.android.systemui.doze.AlwaysOnDisplayPolicy;
import com.android.systemui.doze.DozeScreenState; import com.android.systemui.doze.DozeScreenState;
import com.android.systemui.statusbar.FeatureFlags;
import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.statusbar.policy.BatteryController;
import com.android.systemui.tuner.TunerService; import com.android.systemui.tuner.TunerService;
@@ -54,6 +55,7 @@ public class DozeParameters implements TunerService.Tunable,
private final AlwaysOnDisplayPolicy mAlwaysOnPolicy; private final AlwaysOnDisplayPolicy mAlwaysOnPolicy;
private final Resources mResources; private final Resources mResources;
private final BatteryController mBatteryController; private final BatteryController mBatteryController;
private final FeatureFlags mFeatureFlags;
private boolean mDozeAlwaysOn; private boolean mDozeAlwaysOn;
private boolean mControlScreenOffAnimation; private boolean mControlScreenOffAnimation;
@@ -65,7 +67,8 @@ public class DozeParameters implements TunerService.Tunable,
AlwaysOnDisplayPolicy alwaysOnDisplayPolicy, AlwaysOnDisplayPolicy alwaysOnDisplayPolicy,
PowerManager powerManager, PowerManager powerManager,
BatteryController batteryController, BatteryController batteryController,
TunerService tunerService) { TunerService tunerService,
FeatureFlags featureFlags) {
mResources = resources; mResources = resources;
mAmbientDisplayConfiguration = ambientDisplayConfiguration; mAmbientDisplayConfiguration = ambientDisplayConfiguration;
mAlwaysOnPolicy = alwaysOnDisplayPolicy; mAlwaysOnPolicy = alwaysOnDisplayPolicy;
@@ -74,6 +77,7 @@ public class DozeParameters implements TunerService.Tunable,
mControlScreenOffAnimation = !getDisplayNeedsBlanking(); mControlScreenOffAnimation = !getDisplayNeedsBlanking();
mPowerManager = powerManager; mPowerManager = powerManager;
mPowerManager.setDozeAfterScreenOff(!mControlScreenOffAnimation); mPowerManager.setDozeAfterScreenOff(!mControlScreenOffAnimation);
mFeatureFlags = featureFlags;
tunerService.addTunable( tunerService.addTunable(
this, this,
@@ -200,8 +204,7 @@ public class DozeParameters implements TunerService.Tunable,
* then abruptly showing AOD. * then abruptly showing AOD.
*/ */
public boolean shouldControlUnlockedScreenOff() { public boolean shouldControlUnlockedScreenOff() {
return getAlwaysOn() && SystemProperties.getBoolean( return getAlwaysOn() && mFeatureFlags.useNewLockscreenAnimations();
"persist.sysui.show_new_screen_on_transitions", false);
} }
private boolean getBoolean(String propName, int resId) { private boolean getBoolean(String propName, int resId) {

View File

@@ -35,7 +35,6 @@ import static com.android.systemui.charging.WirelessChargingLayout.UNKNOWN_BATTE
import static com.android.systemui.keyguard.WakefulnessLifecycle.WAKEFULNESS_ASLEEP; import static com.android.systemui.keyguard.WakefulnessLifecycle.WAKEFULNESS_ASLEEP;
import static com.android.systemui.keyguard.WakefulnessLifecycle.WAKEFULNESS_AWAKE; import static com.android.systemui.keyguard.WakefulnessLifecycle.WAKEFULNESS_AWAKE;
import static com.android.systemui.keyguard.WakefulnessLifecycle.WAKEFULNESS_WAKING; import static com.android.systemui.keyguard.WakefulnessLifecycle.WAKEFULNESS_WAKING;
import static com.android.systemui.statusbar.LightRevealScrimKt.getEnableLightReveal;
import static com.android.systemui.statusbar.NotificationLockscreenUserManager.PERMISSION_SELF; import static com.android.systemui.statusbar.NotificationLockscreenUserManager.PERMISSION_SELF;
import static com.android.systemui.statusbar.phone.BarTransitions.MODE_LIGHTS_OUT; import static com.android.systemui.statusbar.phone.BarTransitions.MODE_LIGHTS_OUT;
import static com.android.systemui.statusbar.phone.BarTransitions.MODE_LIGHTS_OUT_TRANSPARENT; import static com.android.systemui.statusbar.phone.BarTransitions.MODE_LIGHTS_OUT_TRANSPARENT;
@@ -181,6 +180,7 @@ import com.android.systemui.statusbar.AutoHideUiElement;
import com.android.systemui.statusbar.BackDropView; import com.android.systemui.statusbar.BackDropView;
import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.CrossFadeHelper; import com.android.systemui.statusbar.CrossFadeHelper;
import com.android.systemui.statusbar.FeatureFlags;
import com.android.systemui.statusbar.GestureRecorder; import com.android.systemui.statusbar.GestureRecorder;
import com.android.systemui.statusbar.KeyboardShortcuts; import com.android.systemui.statusbar.KeyboardShortcuts;
import com.android.systemui.statusbar.KeyguardIndicationController; import com.android.systemui.statusbar.KeyguardIndicationController;
@@ -442,6 +442,7 @@ public class StatusBar extends SystemUI implements DemoMode,
private final KeyguardViewMediator mKeyguardViewMediator; private final KeyguardViewMediator mKeyguardViewMediator;
protected final NotificationInterruptStateProvider mNotificationInterruptStateProvider; protected final NotificationInterruptStateProvider mNotificationInterruptStateProvider;
private final BrightnessSlider.Factory mBrightnessSliderFactory; private final BrightnessSlider.Factory mBrightnessSliderFactory;
private final FeatureFlags mFeatureFlags;
private final List<ExpansionChangedListener> mExpansionChangedListeners; private final List<ExpansionChangedListener> mExpansionChangedListeners;
@@ -765,7 +766,8 @@ public class StatusBar extends SystemUI implements DemoMode,
Lazy<NotificationShadeDepthController> notificationShadeDepthControllerLazy, Lazy<NotificationShadeDepthController> notificationShadeDepthControllerLazy,
StatusBarTouchableRegionManager statusBarTouchableRegionManager, StatusBarTouchableRegionManager statusBarTouchableRegionManager,
NotificationIconAreaController notificationIconAreaController, NotificationIconAreaController notificationIconAreaController,
BrightnessSlider.Factory brightnessSliderFactory) { BrightnessSlider.Factory brightnessSliderFactory,
FeatureFlags featureFlags) {
super(context); super(context);
mNotificationsController = notificationsController; mNotificationsController = notificationsController;
mLightBarController = lightBarController; mLightBarController = lightBarController;
@@ -843,6 +845,7 @@ public class StatusBar extends SystemUI implements DemoMode,
mDemoModeController = demoModeController; mDemoModeController = demoModeController;
mNotificationIconAreaController = notificationIconAreaController; mNotificationIconAreaController = notificationIconAreaController;
mBrightnessSliderFactory = brightnessSliderFactory; mBrightnessSliderFactory = brightnessSliderFactory;
mFeatureFlags = featureFlags;
mExpansionChangedListeners = new ArrayList<>(); mExpansionChangedListeners = new ArrayList<>();
@@ -1186,9 +1189,11 @@ public class StatusBar extends SystemUI implements DemoMode,
mLightRevealScrim = mNotificationShadeWindowView.findViewById(R.id.light_reveal_scrim); mLightRevealScrim = mNotificationShadeWindowView.findViewById(R.id.light_reveal_scrim);
if (getEnableLightReveal()) { if (mFeatureFlags.useNewLockscreenAnimations() && mDozeParameters.getAlwaysOn()) {
mLightRevealScrim.setVisibility(View.VISIBLE); mLightRevealScrim.setVisibility(View.VISIBLE);
mLightRevealScrim.setRevealEffect(LiftReveal.INSTANCE); mLightRevealScrim.setRevealEffect(LiftReveal.INSTANCE);
} else {
mLightRevealScrim.setVisibility(View.GONE);
} }
mNotificationPanelViewController.initDependencies( mNotificationPanelViewController.initDependencies(
@@ -3651,7 +3656,7 @@ public class StatusBar extends SystemUI implements DemoMode,
@Override @Override
public void onDozeAmountChanged(float linear, float eased) { public void onDozeAmountChanged(float linear, float eased) {
if (getEnableLightReveal()) { if (mFeatureFlags.useNewLockscreenAnimations()) {
mLightRevealScrim.setRevealAmount(1f - linear); mLightRevealScrim.setRevealAmount(1f - linear);
} }
} }

View File

@@ -47,6 +47,7 @@ import com.android.systemui.recents.ScreenPinningRequest;
import com.android.systemui.settings.brightness.BrightnessSlider; import com.android.systemui.settings.brightness.BrightnessSlider;
import com.android.systemui.shared.plugins.PluginManager; import com.android.systemui.shared.plugins.PluginManager;
import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.FeatureFlags;
import com.android.systemui.statusbar.KeyguardIndicationController; import com.android.systemui.statusbar.KeyguardIndicationController;
import com.android.systemui.statusbar.NotificationLockscreenUserManager; import com.android.systemui.statusbar.NotificationLockscreenUserManager;
import com.android.systemui.statusbar.NotificationMediaManager; import com.android.systemui.statusbar.NotificationMediaManager;
@@ -200,7 +201,8 @@ public interface StatusBarPhoneModule {
DismissCallbackRegistry dismissCallbackRegistry, DismissCallbackRegistry dismissCallbackRegistry,
StatusBarTouchableRegionManager statusBarTouchableRegionManager, StatusBarTouchableRegionManager statusBarTouchableRegionManager,
NotificationIconAreaController notificationIconAreaController, NotificationIconAreaController notificationIconAreaController,
BrightnessSlider.Factory brightnessSliderFactory) { BrightnessSlider.Factory brightnessSliderFactory,
FeatureFlags featureFlags) {
return new StatusBar( return new StatusBar(
context, context,
notificationsController, notificationsController,
@@ -279,6 +281,7 @@ public interface StatusBarPhoneModule {
notificationShadeDepthController, notificationShadeDepthController,
statusBarTouchableRegionManager, statusBarTouchableRegionManager,
notificationIconAreaController, notificationIconAreaController,
brightnessSliderFactory); brightnessSliderFactory,
featureFlags);
} }
} }

View File

@@ -35,6 +35,7 @@ import androidx.test.runner.AndroidJUnit4;
import com.android.systemui.SysuiTestCase; import com.android.systemui.SysuiTestCase;
import com.android.systemui.doze.AlwaysOnDisplayPolicy; import com.android.systemui.doze.AlwaysOnDisplayPolicy;
import com.android.systemui.doze.DozeScreenState; import com.android.systemui.doze.DozeScreenState;
import com.android.systemui.statusbar.FeatureFlags;
import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.statusbar.policy.BatteryController;
import com.android.systemui.tuner.TunerService; import com.android.systemui.tuner.TunerService;
@@ -57,6 +58,7 @@ public class DozeParametersTest extends SysuiTestCase {
@Mock private PowerManager mPowerManager; @Mock private PowerManager mPowerManager;
@Mock private TunerService mTunerService; @Mock private TunerService mTunerService;
@Mock private BatteryController mBatteryController; @Mock private BatteryController mBatteryController;
@Mock private FeatureFlags mFeatureFlags;
@Before @Before
public void setup() { public void setup() {
@@ -67,7 +69,8 @@ public class DozeParametersTest extends SysuiTestCase {
mAlwaysOnDisplayPolicy, mAlwaysOnDisplayPolicy,
mPowerManager, mPowerManager,
mBatteryController, mBatteryController,
mTunerService mTunerService,
mFeatureFlags
); );
} }
@Test @Test

View File

@@ -97,6 +97,7 @@ import com.android.systemui.recents.ScreenPinningRequest;
import com.android.systemui.settings.brightness.BrightnessSlider; import com.android.systemui.settings.brightness.BrightnessSlider;
import com.android.systemui.shared.plugins.PluginManager; import com.android.systemui.shared.plugins.PluginManager;
import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.FeatureFlags;
import com.android.systemui.statusbar.KeyguardIndicationController; import com.android.systemui.statusbar.KeyguardIndicationController;
import com.android.systemui.statusbar.NotificationListener; import com.android.systemui.statusbar.NotificationListener;
import com.android.systemui.statusbar.NotificationLockscreenUserManager; import com.android.systemui.statusbar.NotificationLockscreenUserManager;
@@ -258,6 +259,7 @@ public class StatusBarTest extends SysuiTestCase {
@Mock private DemoModeController mDemoModeController; @Mock private DemoModeController mDemoModeController;
@Mock private Lazy<NotificationShadeDepthController> mNotificationShadeDepthControllerLazy; @Mock private Lazy<NotificationShadeDepthController> mNotificationShadeDepthControllerLazy;
@Mock private BrightnessSlider.Factory mBrightnessSliderFactory; @Mock private BrightnessSlider.Factory mBrightnessSliderFactory;
@Mock private FeatureFlags mFeatureFlags;
private ShadeController mShadeController; private ShadeController mShadeController;
private FakeExecutor mUiBgExecutor = new FakeExecutor(new FakeSystemClock()); private FakeExecutor mUiBgExecutor = new FakeExecutor(new FakeSystemClock());
private InitController mInitController = new InitController(); private InitController mInitController = new InitController();
@@ -418,7 +420,8 @@ public class StatusBarTest extends SysuiTestCase {
mNotificationShadeDepthControllerLazy, mNotificationShadeDepthControllerLazy,
mStatusBarTouchableRegionManager, mStatusBarTouchableRegionManager,
mNotificationIconAreaController, mNotificationIconAreaController,
mBrightnessSliderFactory); mBrightnessSliderFactory,
mFeatureFlags);
when(mNotificationShadeWindowView.findViewById(R.id.lock_icon_container)).thenReturn( when(mNotificationShadeWindowView.findViewById(R.id.lock_icon_container)).thenReturn(
mLockIconContainer); mLockIconContainer);