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. -->
|
slots that may be reused for things like IME control. -->
|
||||||
<integer name="config_maxNotificationIcons">0</integer>
|
<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>
|
</resources>
|
||||||
|
|||||||
@@ -101,6 +101,9 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
|
|||||||
private float mOpeningVelocity = DEFAULT_FLING_VELOCITY;
|
private float mOpeningVelocity = DEFAULT_FLING_VELOCITY;
|
||||||
private float mClosingVelocity = DEFAULT_FLING_VELOCITY;
|
private float mClosingVelocity = DEFAULT_FLING_VELOCITY;
|
||||||
|
|
||||||
|
private float mBackgroundAlphaDiff;
|
||||||
|
private float mInitialBackgroundAlpha;
|
||||||
|
|
||||||
private TaskStackListenerImpl mTaskStackListener;
|
private TaskStackListenerImpl mTaskStackListener;
|
||||||
|
|
||||||
private FullscreenUserSwitcher mFullscreenUserSwitcher;
|
private FullscreenUserSwitcher mFullscreenUserSwitcher;
|
||||||
@@ -214,6 +217,25 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
|
|||||||
// created.
|
// created.
|
||||||
mHvacController = new HvacController(mContext);
|
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();
|
super.start();
|
||||||
mTaskStackListener = new TaskStackListenerImpl();
|
mTaskStackListener = new TaskStackListenerImpl();
|
||||||
mActivityManagerWrapper = ActivityManagerWrapper.getInstance();
|
mActivityManagerWrapper = ActivityManagerWrapper.getInstance();
|
||||||
@@ -1155,17 +1177,22 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
|
|||||||
mHandleBar.setTranslationY(height - mHandleBar.getHeight() - lp.bottomMargin);
|
mHandleBar.setTranslationY(height - mHandleBar.getHeight() - lp.bottomMargin);
|
||||||
}
|
}
|
||||||
if (mNotificationView.getHeight() > 0) {
|
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();
|
Drawable background = mNotificationView.getBackground().mutate();
|
||||||
|
background.setAlpha((int) (getBackgroundAlpha(height) * 255));
|
||||||
background.setAlpha((int) (alpha * 255));
|
|
||||||
mNotificationView.setBackground(background);
|
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) {
|
private void calculatePercentageFromBottom(float height) {
|
||||||
if (mNotificationView.getHeight() > 0) {
|
if (mNotificationView.getHeight() > 0) {
|
||||||
mPercentageFromBottom = (int) Math.abs(
|
mPercentageFromBottom = (int) Math.abs(
|
||||||
|
|||||||
Reference in New Issue
Block a user