Loading packages/CarSystemUI/res/values/config.xml +15 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,21 @@ 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> <!-- SystemUI Services: The classes of the stuff to start. --> <string-array name="config_systemUIServiceComponents" translatable="false"> <item>com.android.systemui.util.NotificationChannels</item> Loading packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java +33 −6 Original line number Diff line number Diff line Loading @@ -158,6 +158,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 FullscreenUserSwitcher mFullscreenUserSwitcher; private CarBatteryController mCarBatteryController; Loading Loading @@ -386,6 +389,25 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt mScreenLifecycle = Dependency.get(ScreenLifecycle.class); mScreenLifecycle.addObserver(mScreenObserver); // 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(); mNotificationPanel.setScrollingEnabled(true); Loading Loading @@ -1105,17 +1127,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); } @Override public void onConfigChanged(Configuration newConfig) { super.onConfigChanged(newConfig); Loading Loading
packages/CarSystemUI/res/values/config.xml +15 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,21 @@ 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> <!-- SystemUI Services: The classes of the stuff to start. --> <string-array name="config_systemUIServiceComponents" translatable="false"> <item>com.android.systemui.util.NotificationChannels</item> Loading
packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java +33 −6 Original line number Diff line number Diff line Loading @@ -158,6 +158,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 FullscreenUserSwitcher mFullscreenUserSwitcher; private CarBatteryController mCarBatteryController; Loading Loading @@ -386,6 +389,25 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt mScreenLifecycle = Dependency.get(ScreenLifecycle.class); mScreenLifecycle.addObserver(mScreenObserver); // 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(); mNotificationPanel.setScrollingEnabled(true); Loading Loading @@ -1105,17 +1127,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); } @Override public void onConfigChanged(Configuration newConfig) { super.onConfigChanged(newConfig); Loading