Merge "New scrim values for shade and dialogs" into rvc-dev am: 967c3dc8f9
Change-Id: I8c165a4961fce3db009d5ea46632c8002cefecd9
This commit is contained in:
@@ -99,6 +99,7 @@ import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.plugins.ActivityStarter;
|
||||
import com.android.systemui.plugins.GlobalActions.GlobalActionsManager;
|
||||
import com.android.systemui.plugins.GlobalActionsPanelPlugin;
|
||||
import com.android.systemui.statusbar.BlurUtils;
|
||||
import com.android.systemui.statusbar.NotificationShadeDepthController;
|
||||
import com.android.systemui.statusbar.phone.NotificationShadeWindowController;
|
||||
import com.android.systemui.statusbar.phone.ScrimController;
|
||||
@@ -163,6 +164,7 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
|
||||
private final TelecomManager mTelecomManager;
|
||||
private final MetricsLogger mMetricsLogger;
|
||||
private final NotificationShadeDepthController mDepthController;
|
||||
private final BlurUtils mBlurUtils;
|
||||
|
||||
private ArrayList<Action> mItems;
|
||||
private ActionsDialog mDialog;
|
||||
@@ -208,7 +210,7 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
|
||||
TrustManager trustManager, IActivityManager iActivityManager,
|
||||
@Nullable TelecomManager telecomManager, MetricsLogger metricsLogger,
|
||||
NotificationShadeDepthController depthController, SysuiColorExtractor colorExtractor,
|
||||
IStatusBarService statusBarService,
|
||||
IStatusBarService statusBarService, BlurUtils blurUtils,
|
||||
NotificationShadeWindowController notificationShadeWindowController,
|
||||
ControlsUiController controlsUiController, IWindowManager iWindowManager,
|
||||
@Background Executor backgroundExecutor,
|
||||
@@ -237,6 +239,7 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
|
||||
mIWindowManager = iWindowManager;
|
||||
mBackgroundExecutor = backgroundExecutor;
|
||||
mControlsListingController = controlsListingController;
|
||||
mBlurUtils = blurUtils;
|
||||
|
||||
// receive broadcasts
|
||||
IntentFilter filter = new IntentFilter();
|
||||
@@ -439,7 +442,7 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
|
||||
ActionsDialog dialog = new ActionsDialog(mContext, mAdapter, panelViewController,
|
||||
mDepthController, mSysuiColorExtractor, mStatusBarService,
|
||||
mNotificationShadeWindowController,
|
||||
shouldShowControls() ? mControlsUiController : null);
|
||||
shouldShowControls() ? mControlsUiController : null, mBlurUtils);
|
||||
dialog.setCanceledOnTouchOutside(false); // Handled by the custom class.
|
||||
dialog.setKeyguardShowing(mKeyguardShowing);
|
||||
|
||||
@@ -1571,6 +1574,7 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
|
||||
private boolean mHadTopUi;
|
||||
private final NotificationShadeWindowController mNotificationShadeWindowController;
|
||||
private final NotificationShadeDepthController mDepthController;
|
||||
private final BlurUtils mBlurUtils;
|
||||
|
||||
private ControlsUiController mControlsUiController;
|
||||
private ViewGroup mControlsView;
|
||||
@@ -1580,7 +1584,7 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
|
||||
NotificationShadeDepthController depthController,
|
||||
SysuiColorExtractor sysuiColorExtractor, IStatusBarService statusBarService,
|
||||
NotificationShadeWindowController notificationShadeWindowController,
|
||||
ControlsUiController controlsUiController) {
|
||||
ControlsUiController controlsUiController, BlurUtils blurUtils) {
|
||||
super(context, com.android.systemui.R.style.Theme_SystemUI_Dialog_GlobalActions);
|
||||
mContext = context;
|
||||
mAdapter = adapter;
|
||||
@@ -1589,6 +1593,7 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
|
||||
mStatusBarService = statusBarService;
|
||||
mNotificationShadeWindowController = notificationShadeWindowController;
|
||||
mControlsUiController = controlsUiController;
|
||||
mBlurUtils = blurUtils;
|
||||
|
||||
// Window initialization
|
||||
Window window = getWindow();
|
||||
@@ -1697,7 +1702,8 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
|
||||
}
|
||||
if (mBackgroundDrawable == null) {
|
||||
mBackgroundDrawable = new ScrimDrawable();
|
||||
mScrimAlpha = ScrimController.BUSY_SCRIM_ALPHA;
|
||||
mScrimAlpha = mBlurUtils.supportsBlursOnWindows()
|
||||
? ScrimController.BLUR_SCRIM_ALPHA : ScrimController.BUSY_SCRIM_ALPHA;
|
||||
}
|
||||
getWindow().setBackgroundDrawable(mBackgroundDrawable);
|
||||
}
|
||||
|
||||
@@ -149,7 +149,7 @@ public class GlobalActionsImpl implements GlobalActions, CommandQueue.Callbacks
|
||||
}
|
||||
|
||||
if (mBlurUtils.supportsBlursOnWindows()) {
|
||||
background.setAlpha((int) (ScrimController.BUSY_SCRIM_ALPHA * 255));
|
||||
background.setAlpha((int) (ScrimController.BLUR_SCRIM_ALPHA * 255));
|
||||
mBlurUtils.applyBlur(d.getWindow().getDecorView().getViewRootImpl(),
|
||||
mBlurUtils.blurRadiusOfRatio(1));
|
||||
} else {
|
||||
|
||||
@@ -40,8 +40,10 @@ open class BlurUtils @Inject constructor(
|
||||
) : Dumpable {
|
||||
private val minBlurRadius = resources.getDimensionPixelSize(R.dimen.min_window_blur_radius)
|
||||
private val maxBlurRadius = resources.getDimensionPixelSize(R.dimen.max_window_blur_radius)
|
||||
private val blurSysProp = SystemProperties
|
||||
private val blurSupportedSysProp = SystemProperties
|
||||
.getBoolean("ro.surface_flinger.supports_background_blur", false)
|
||||
private val blurDisabledSysProp = SystemProperties
|
||||
.getBoolean("persist.sys.sf.disable_blurs", false)
|
||||
|
||||
init {
|
||||
dumpManager.registerDumpable(javaClass.name, this)
|
||||
@@ -97,7 +99,7 @@ open class BlurUtils @Inject constructor(
|
||||
* @return {@code true} when supported.
|
||||
*/
|
||||
open fun supportsBlursOnWindows(): Boolean {
|
||||
return blurSysProp && ActivityManager.isHighEndGfx()
|
||||
return blurSupportedSysProp && !blurDisabledSysProp && ActivityManager.isHighEndGfx()
|
||||
}
|
||||
|
||||
override fun dump(fd: FileDescriptor, pw: PrintWriter, args: Array<out String>) {
|
||||
@@ -106,7 +108,8 @@ open class BlurUtils @Inject constructor(
|
||||
it.increaseIndent()
|
||||
it.println("minBlurRadius: $minBlurRadius")
|
||||
it.println("maxBlurRadius: $maxBlurRadius")
|
||||
it.println("blurSysProp: $blurSysProp")
|
||||
it.println("blurSupportedSysProp: $blurSupportedSysProp")
|
||||
it.println("blurDisabledSysProp: $blurDisabledSysProp")
|
||||
it.println("supportsBlursOnWindows: ${supportsBlursOnWindows()}")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,6 +47,7 @@ import com.android.systemui.Dumpable;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.colorextraction.SysuiColorExtractor;
|
||||
import com.android.systemui.dock.DockManager;
|
||||
import com.android.systemui.statusbar.BlurUtils;
|
||||
import com.android.systemui.statusbar.ScrimView;
|
||||
import com.android.systemui.statusbar.notification.stack.ViewState;
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
@@ -107,21 +108,21 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo
|
||||
/**
|
||||
* Default alpha value for most scrims.
|
||||
*/
|
||||
public static final float SCRIM_ALPHA = 0.2f;
|
||||
protected static final float KEYGUARD_SCRIM_ALPHA = 0.2f;
|
||||
/**
|
||||
* Scrim opacity when the phone is about to wake-up.
|
||||
*/
|
||||
public static final float WAKE_SENSOR_SCRIM_ALPHA = 0.6f;
|
||||
/**
|
||||
* A scrim varies its opacity based on a busyness factor, for example
|
||||
* how many notifications are currently visible.
|
||||
* The default scrim under the shade and dialogs.
|
||||
* This should not be lower than 0.54, otherwise we won't pass GAR.
|
||||
*/
|
||||
public static final float BUSY_SCRIM_ALPHA = 0.75f;
|
||||
|
||||
/**
|
||||
* The most common scrim, the one under the keyguard.
|
||||
* Same as above, but when blur is supported.
|
||||
*/
|
||||
protected static final float SCRIM_BEHIND_ALPHA_KEYGUARD = SCRIM_ALPHA;
|
||||
public static final float BLUR_SCRIM_ALPHA = 0.54f;
|
||||
|
||||
static final int TAG_KEY_ANIM = R.id.scrim;
|
||||
private static final int TAG_START_ALPHA = R.id.scrim_alpha_start;
|
||||
@@ -146,7 +147,8 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo
|
||||
private GradientColors mColors;
|
||||
private boolean mNeedsDrawableColorUpdate;
|
||||
|
||||
private float mScrimBehindAlphaKeyguard = SCRIM_BEHIND_ALPHA_KEYGUARD;
|
||||
private float mScrimBehindAlphaKeyguard = KEYGUARD_SCRIM_ALPHA;
|
||||
private final float mDefaultScrimAlpha;
|
||||
|
||||
// Assuming the shade is expanded during initialization
|
||||
private float mExpansionFraction = 1f;
|
||||
@@ -192,9 +194,11 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo
|
||||
AlarmManager alarmManager, KeyguardStateController keyguardStateController,
|
||||
DelayedWakeLock.Builder delayedWakeLockBuilder, Handler handler,
|
||||
KeyguardUpdateMonitor keyguardUpdateMonitor, SysuiColorExtractor sysuiColorExtractor,
|
||||
DockManager dockManager) {
|
||||
DockManager dockManager, BlurUtils blurUtils) {
|
||||
|
||||
mScrimStateListener = lightBarController::setScrimState;
|
||||
mDefaultScrimAlpha = blurUtils.supportsBlursOnWindows()
|
||||
? BLUR_SCRIM_ALPHA : BUSY_SCRIM_ALPHA;
|
||||
|
||||
mKeyguardStateController = keyguardStateController;
|
||||
mDarkenWhileDragging = !mKeyguardStateController.canDismissLockScreen();
|
||||
@@ -236,6 +240,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo
|
||||
states[i].init(mScrimInFront, mScrimBehind, mScrimForBubble, mDozeParameters,
|
||||
mDockManager);
|
||||
states[i].setScrimBehindAlphaKeyguard(mScrimBehindAlphaKeyguard);
|
||||
states[i].setDefaultScrimAlpha(mDefaultScrimAlpha);
|
||||
}
|
||||
|
||||
mScrimBehind.setDefaultFocusHighlightEnabled(false);
|
||||
@@ -483,7 +488,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo
|
||||
// Darken scrim as you pull down the shade when unlocked
|
||||
float behindFraction = getInterpolatedFraction();
|
||||
behindFraction = (float) Math.pow(behindFraction, 0.8f);
|
||||
mBehindAlpha = behindFraction * BUSY_SCRIM_ALPHA;
|
||||
mBehindAlpha = behindFraction * mDefaultScrimAlpha;
|
||||
mInFrontAlpha = 0;
|
||||
} else if (mState == ScrimState.KEYGUARD || mState == ScrimState.PULSING) {
|
||||
// Either darken of make the scrim transparent when you
|
||||
@@ -491,7 +496,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo
|
||||
float interpolatedFract = getInterpolatedFraction();
|
||||
float alphaBehind = mState.getBehindAlpha();
|
||||
if (mDarkenWhileDragging) {
|
||||
mBehindAlpha = MathUtils.lerp(BUSY_SCRIM_ALPHA, alphaBehind,
|
||||
mBehindAlpha = MathUtils.lerp(mDefaultScrimAlpha, alphaBehind,
|
||||
interpolatedFract);
|
||||
mInFrontAlpha = mState.getFrontAlpha();
|
||||
} else {
|
||||
@@ -967,7 +972,8 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo
|
||||
|
||||
pw.print(" mTracking=");
|
||||
pw.println(mTracking);
|
||||
|
||||
pw.print(" mDefaultScrimAlpha=");
|
||||
pw.println(mDefaultScrimAlpha);
|
||||
pw.print(" mExpansionFraction=");
|
||||
pw.println(mExpansionFraction);
|
||||
}
|
||||
|
||||
@@ -92,7 +92,7 @@ public enum ScrimState {
|
||||
BOUNCER {
|
||||
@Override
|
||||
public void prepare(ScrimState previousState) {
|
||||
mBehindAlpha = ScrimController.BUSY_SCRIM_ALPHA;
|
||||
mBehindAlpha = mDefaultScrimAlpha;
|
||||
mFrontAlpha = 0f;
|
||||
mBubbleAlpha = 0f;
|
||||
}
|
||||
@@ -106,7 +106,7 @@ public enum ScrimState {
|
||||
public void prepare(ScrimState previousState) {
|
||||
mBehindAlpha = 0;
|
||||
mBubbleAlpha = 0f;
|
||||
mFrontAlpha = ScrimController.BUSY_SCRIM_ALPHA;
|
||||
mFrontAlpha = mDefaultScrimAlpha;
|
||||
}
|
||||
},
|
||||
|
||||
@@ -233,9 +233,9 @@ public enum ScrimState {
|
||||
mBehindTint = Color.TRANSPARENT;
|
||||
mBubbleTint = Color.TRANSPARENT;
|
||||
|
||||
mFrontAlpha = ScrimController.TRANSPARENT;
|
||||
mBehindAlpha = ScrimController.BUSY_SCRIM_ALPHA;
|
||||
mBubbleAlpha = ScrimController.BUSY_SCRIM_ALPHA;
|
||||
mFrontAlpha = 0f;
|
||||
mBehindAlpha = mDefaultScrimAlpha;
|
||||
mBubbleAlpha = mDefaultScrimAlpha;
|
||||
|
||||
mAnimationDuration = ScrimController.ANIMATION_DURATION;
|
||||
mBlankScreen = false;
|
||||
@@ -255,6 +255,7 @@ public enum ScrimState {
|
||||
float mBubbleAlpha;
|
||||
|
||||
float mScrimBehindAlphaKeyguard;
|
||||
float mDefaultScrimAlpha;
|
||||
ScrimView mScrimInFront;
|
||||
ScrimView mScrimBehind;
|
||||
ScrimView mScrimForBubble;
|
||||
@@ -341,6 +342,10 @@ public enum ScrimState {
|
||||
mScrimBehindAlphaKeyguard = scrimBehindAlphaKeyguard;
|
||||
}
|
||||
|
||||
public void setDefaultScrimAlpha(float defaultScrimAlpha) {
|
||||
mDefaultScrimAlpha = defaultScrimAlpha;
|
||||
}
|
||||
|
||||
public void setWallpaperSupportsAmbientMode(boolean wallpaperSupportsAmbientMode) {
|
||||
mWallpaperSupportsAmbientMode = wallpaperSupportsAmbientMode;
|
||||
}
|
||||
|
||||
@@ -50,6 +50,7 @@ import com.android.systemui.DejankUtils;
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.colorextraction.SysuiColorExtractor;
|
||||
import com.android.systemui.dock.DockManager;
|
||||
import com.android.systemui.statusbar.BlurUtils;
|
||||
import com.android.systemui.statusbar.ScrimView;
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
import com.android.systemui.util.wakelock.DelayedWakeLock;
|
||||
@@ -101,6 +102,8 @@ public class ScrimControllerTest extends SysuiTestCase {
|
||||
private SysuiColorExtractor mSysuiColorExtractor;
|
||||
@Mock
|
||||
private DockManager mDockManager;
|
||||
@Mock
|
||||
private BlurUtils mBlurUtils;
|
||||
|
||||
|
||||
private static class AnimatorListener implements Animator.AnimatorListener {
|
||||
@@ -215,7 +218,7 @@ public class ScrimControllerTest extends SysuiTestCase {
|
||||
mScrimController = new ScrimController(mLightBarController,
|
||||
mDozeParamenters, mAlarmManager, mKeyguardStateController, mDelayedWakeLockBuilder,
|
||||
new FakeHandler(mLooper.getLooper()), mKeyguardUpdateMonitor, mSysuiColorExtractor,
|
||||
mDockManager);
|
||||
mDockManager, mBlurUtils);
|
||||
mScrimController.setScrimVisibleListener(visible -> mScrimVisibility = visible);
|
||||
mScrimController.attachViews(mScrimBehind, mScrimInFront, mScrimForBubble);
|
||||
mScrimController.setAnimatorListener(mAnimatorListener);
|
||||
|
||||
Reference in New Issue
Block a user