Merge "Changed Notification shade's background alpha initial and final values to be configurable." into qt-qpr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
90572cb3c6
@@ -40,4 +40,19 @@
|
||||
slots that may be reused for things like IME control. -->
|
||||
<integer name="config_maxNotificationIcons">0</integer>
|
||||
|
||||
<!--
|
||||
Initial alpha percent value for the background when the notification
|
||||
shade is open. Should be a number between, and inclusive, 0 and 100.
|
||||
If the number is 0, then the background alpha starts off fully
|
||||
transparent. If the number if 100, then the background alpha starts off
|
||||
fully opaque. -->
|
||||
<integer name="config_initialNotificationBackgroundAlpha">0</integer>
|
||||
<!--
|
||||
Final alpha percent value for the background when the notification
|
||||
shade is fully open. Should be a number between, and inclusive, 0 and
|
||||
100. If this value is smaller than
|
||||
config_initialNotificationBackgroundAlpha, the background will default
|
||||
to a constant alpha percent value using the initial alpha. -->
|
||||
<integer name="config_finalNotificationBackgroundAlpha">100</integer>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -101,6 +101,9 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
|
||||
private float mOpeningVelocity = DEFAULT_FLING_VELOCITY;
|
||||
private float mClosingVelocity = DEFAULT_FLING_VELOCITY;
|
||||
|
||||
private float mBackgroundAlphaDiff;
|
||||
private float mInitialBackgroundAlpha;
|
||||
|
||||
private TaskStackListenerImpl mTaskStackListener;
|
||||
|
||||
private FullscreenUserSwitcher mFullscreenUserSwitcher;
|
||||
@@ -214,6 +217,25 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
|
||||
// created.
|
||||
mHvacController = new HvacController(mContext);
|
||||
|
||||
// Notification bar related setup.
|
||||
mInitialBackgroundAlpha = (float) mContext.getResources().getInteger(
|
||||
R.integer.config_initialNotificationBackgroundAlpha) / 100;
|
||||
if (mInitialBackgroundAlpha < 0 || mInitialBackgroundAlpha > 100) {
|
||||
throw new RuntimeException(
|
||||
"Unable to setup notification bar due to incorrect initial background alpha"
|
||||
+ " percentage");
|
||||
}
|
||||
float finalBackgroundAlpha = Math.max(
|
||||
mInitialBackgroundAlpha,
|
||||
(float) mContext.getResources().getInteger(
|
||||
R.integer.config_finalNotificationBackgroundAlpha) / 100);
|
||||
if (finalBackgroundAlpha < 0 || finalBackgroundAlpha > 100) {
|
||||
throw new RuntimeException(
|
||||
"Unable to setup notification bar due to incorrect final background alpha"
|
||||
+ " percentage");
|
||||
}
|
||||
mBackgroundAlphaDiff = finalBackgroundAlpha - mInitialBackgroundAlpha;
|
||||
|
||||
super.start();
|
||||
mTaskStackListener = new TaskStackListenerImpl();
|
||||
mActivityManagerWrapper = ActivityManagerWrapper.getInstance();
|
||||
@@ -1155,17 +1177,22 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
|
||||
mHandleBar.setTranslationY(height - mHandleBar.getHeight() - lp.bottomMargin);
|
||||
}
|
||||
if (mNotificationView.getHeight() > 0) {
|
||||
// Calculates the alpha value for the background based on how much of the notification
|
||||
// shade is visible to the user. When the notification shade is completely open then
|
||||
// alpha value will be 1.
|
||||
float alpha = (float) height / mNotificationView.getHeight();
|
||||
Drawable background = mNotificationView.getBackground().mutate();
|
||||
|
||||
background.setAlpha((int) (alpha * 255));
|
||||
background.setAlpha((int) (getBackgroundAlpha(height) * 255));
|
||||
mNotificationView.setBackground(background);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculates the alpha value for the background based on how much of the notification
|
||||
* shade is visible to the user. When the notification shade is completely open then
|
||||
* alpha value will be 1.
|
||||
*/
|
||||
private float getBackgroundAlpha(int height) {
|
||||
return mInitialBackgroundAlpha +
|
||||
((float) height / mNotificationView.getHeight() * mBackgroundAlphaDiff);
|
||||
}
|
||||
|
||||
private void calculatePercentageFromBottom(float height) {
|
||||
if (mNotificationView.getHeight() > 0) {
|
||||
mPercentageFromBottom = (int) Math.abs(
|
||||
|
||||
Reference in New Issue
Block a user