Set background drawable on status_bar_container
Put the background drawable on status_bar_container instead of status_bar because we always want the status bar background to fill the entire container. status_bar receives new margins when corner display cutouts are enabled which may prevent status_bar from taking up the entire status_bar_container space. Test: atest SystemUITests Fixes: 148355955 Change-Id: Ic7e0c0a79908d2a58d4595d239062435253edfda
This commit is contained in:
@@ -24,7 +24,6 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/status_bar_height"
|
||||
android:id="@+id/status_bar"
|
||||
android:background="@drawable/system_bar_background"
|
||||
android:orientation="vertical"
|
||||
android:focusable="false"
|
||||
android:descendantFocusability="afterDescendants"
|
||||
|
||||
@@ -28,5 +28,6 @@
|
||||
<FrameLayout
|
||||
android:id="@+id/status_bar_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/system_bar_background" />
|
||||
</com.android.systemui.statusbar.phone.StatusBarWindowView>
|
||||
|
||||
@@ -44,8 +44,9 @@ import com.android.systemui.shared.plugins.PluginManager;
|
||||
import com.android.systemui.statusbar.CommandQueue;
|
||||
import com.android.systemui.statusbar.DragDownHelper;
|
||||
import com.android.systemui.statusbar.NotificationLockscreenUserManager;
|
||||
import com.android.systemui.statusbar.PulseExpansionHandler;
|
||||
import com.android.systemui.statusbar.NotificationShadeWindowBlurController;
|
||||
import com.android.systemui.statusbar.PulseExpansionHandler;
|
||||
import com.android.systemui.statusbar.SuperStatusBarViewFactory;
|
||||
import com.android.systemui.statusbar.SysuiStatusBarStateController;
|
||||
import com.android.systemui.statusbar.notification.DynamicPrivacyController;
|
||||
import com.android.systemui.statusbar.notification.NotificationEntryManager;
|
||||
@@ -91,6 +92,7 @@ public class NotificationShadeWindowViewController {
|
||||
private boolean mExpandAnimationRunning;
|
||||
private NotificationStackScrollLayout mStackScrollLayout;
|
||||
private PhoneStatusBarView mStatusBarView;
|
||||
private PhoneStatusBarTransitions mBarTransitions;
|
||||
private StatusBar mService;
|
||||
private DragDownHelper mDragDownHelper;
|
||||
private boolean mDoubleTapEnabled;
|
||||
@@ -98,6 +100,7 @@ public class NotificationShadeWindowViewController {
|
||||
private boolean mExpandingBelowNotch;
|
||||
private final DockManager mDockManager;
|
||||
private final NotificationPanelViewController mNotificationPanelViewController;
|
||||
private final SuperStatusBarViewFactory mStatusBarViewFactory;
|
||||
|
||||
// Used for determining view / touch intersection
|
||||
private int[] mTempLocation = new int[2];
|
||||
@@ -124,8 +127,9 @@ public class NotificationShadeWindowViewController {
|
||||
ShadeController shadeController,
|
||||
DockManager dockManager,
|
||||
@Nullable NotificationShadeWindowBlurController blurController,
|
||||
NotificationShadeWindowView statusBarWindowView,
|
||||
NotificationPanelViewController notificationPanelViewController) {
|
||||
NotificationShadeWindowView notificationShadeWindowView,
|
||||
NotificationPanelViewController notificationPanelViewController,
|
||||
SuperStatusBarViewFactory statusBarViewFactory) {
|
||||
mInjectionInflationController = injectionInflationController;
|
||||
mCoordinator = coordinator;
|
||||
mPulseExpansionHandler = pulseExpansionHandler;
|
||||
@@ -141,11 +145,12 @@ public class NotificationShadeWindowViewController {
|
||||
mDozeLog = dozeLog;
|
||||
mDozeParameters = dozeParameters;
|
||||
mCommandQueue = commandQueue;
|
||||
mView = statusBarWindowView;
|
||||
mView = notificationShadeWindowView;
|
||||
mShadeController = shadeController;
|
||||
mDockManager = dockManager;
|
||||
mNotificationPanelViewController = notificationPanelViewController;
|
||||
mBlurController = blurController;
|
||||
mStatusBarViewFactory = statusBarViewFactory;
|
||||
|
||||
// This view is not part of the newly inflated expanded status bar.
|
||||
mBrightnessMirror = mView.findViewById(R.id.brightness_mirror);
|
||||
@@ -440,8 +445,18 @@ public class NotificationShadeWindowViewController {
|
||||
}
|
||||
}
|
||||
|
||||
public PhoneStatusBarTransitions getBarTransitions() {
|
||||
return mBarTransitions;
|
||||
}
|
||||
|
||||
public void setStatusBarView(PhoneStatusBarView statusBarView) {
|
||||
mStatusBarView = statusBarView;
|
||||
if (statusBarView != null && mStatusBarViewFactory != null) {
|
||||
mBarTransitions = new PhoneStatusBarTransitions(
|
||||
statusBarView,
|
||||
mStatusBarViewFactory.getStatusBarWindowView()
|
||||
.findViewById(R.id.status_bar_container));
|
||||
}
|
||||
}
|
||||
|
||||
public void setService(StatusBar statusBar) {
|
||||
|
||||
@@ -29,23 +29,21 @@ public final class PhoneStatusBarTransitions extends BarTransitions {
|
||||
private static final float ICON_ALPHA_WHEN_LIGHTS_OUT_BATTERY_CLOCK = 0.5f;
|
||||
private static final float ICON_ALPHA_WHEN_LIGHTS_OUT_NON_BATTERY_CLOCK = 0;
|
||||
|
||||
private final PhoneStatusBarView mView;
|
||||
private final float mIconAlphaWhenOpaque;
|
||||
|
||||
private View mLeftSide, mStatusIcons, mBattery, mClock;
|
||||
private View mLeftSide, mStatusIcons, mBattery;
|
||||
private Animator mCurrentAnimation;
|
||||
|
||||
public PhoneStatusBarTransitions(PhoneStatusBarView view) {
|
||||
super(view, R.drawable.status_background);
|
||||
mView = view;
|
||||
final Resources res = mView.getContext().getResources();
|
||||
/**
|
||||
* @param backgroundView view to apply the background drawable
|
||||
*/
|
||||
public PhoneStatusBarTransitions(PhoneStatusBarView statusBarView, View backgroundView) {
|
||||
super(backgroundView, R.drawable.status_background);
|
||||
final Resources res = statusBarView.getContext().getResources();
|
||||
mIconAlphaWhenOpaque = res.getFraction(R.dimen.status_bar_icon_drawing_alpha, 1, 1);
|
||||
}
|
||||
|
||||
public void init() {
|
||||
mLeftSide = mView.findViewById(R.id.status_bar_left_side);
|
||||
mStatusIcons = mView.findViewById(R.id.statusIcons);
|
||||
mBattery = mView.findViewById(R.id.battery);
|
||||
mLeftSide = statusBarView.findViewById(R.id.status_bar_left_side);
|
||||
mStatusIcons = statusBarView.findViewById(R.id.statusIcons);
|
||||
mBattery = statusBarView.findViewById(R.id.battery);
|
||||
applyModeBackground(-1, getMode(), false /*animate*/);
|
||||
applyMode(getMode(), false /*animate*/);
|
||||
}
|
||||
|
||||
@@ -53,7 +53,6 @@ public class PhoneStatusBarView extends PanelBar {
|
||||
StatusBar mBar;
|
||||
|
||||
boolean mIsFullyOpenedPanel = false;
|
||||
private final PhoneStatusBarTransitions mBarTransitions;
|
||||
private ScrimController mScrimController;
|
||||
private float mMinFraction;
|
||||
private Runnable mHideExpandedRunnable = new Runnable() {
|
||||
@@ -83,15 +82,9 @@ public class PhoneStatusBarView extends PanelBar {
|
||||
|
||||
public PhoneStatusBarView(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
|
||||
mBarTransitions = new PhoneStatusBarTransitions(this);
|
||||
mCommandQueue = Dependency.get(CommandQueue.class);
|
||||
}
|
||||
|
||||
public BarTransitions getBarTransitions() {
|
||||
return mBarTransitions;
|
||||
}
|
||||
|
||||
public void setBar(StatusBar bar) {
|
||||
mBar = bar;
|
||||
}
|
||||
@@ -102,7 +95,6 @@ public class PhoneStatusBarView extends PanelBar {
|
||||
|
||||
@Override
|
||||
public void onFinishInflate() {
|
||||
mBarTransitions.init();
|
||||
mBattery = findViewById(R.id.battery);
|
||||
mCutoutSpace = findViewById(R.id.cutout_space_view);
|
||||
mCenterIconSpace = findViewById(R.id.centered_icon_area);
|
||||
|
||||
@@ -2305,13 +2305,14 @@ public class StatusBar extends SystemUI implements DemoMode,
|
||||
}
|
||||
|
||||
protected BarTransitions getStatusBarTransitions() {
|
||||
return mStatusBarView.getBarTransitions();
|
||||
return mNotificationShadeWindowViewController.getBarTransitions();
|
||||
}
|
||||
|
||||
void checkBarModes() {
|
||||
if (mDemoMode) return;
|
||||
if (mStatusBarView != null) checkBarMode(mStatusBarMode, mStatusBarWindowState,
|
||||
getStatusBarTransitions());
|
||||
if (mNotificationShadeWindowViewController != null) {
|
||||
checkBarMode(mStatusBarMode, mStatusBarWindowState, getStatusBarTransitions());
|
||||
}
|
||||
mNavigationBarController.checkNavBarModes(mDisplayId);
|
||||
mNoAnimationOnNextBarModeChange = false;
|
||||
}
|
||||
@@ -2329,8 +2330,9 @@ public class StatusBar extends SystemUI implements DemoMode,
|
||||
}
|
||||
|
||||
private void finishBarAnimations() {
|
||||
if (mStatusBarView != null) {
|
||||
mStatusBarView.getBarTransitions().finishAnimations();
|
||||
if (mNotificationShadeWindowController != null
|
||||
&& mNotificationShadeWindowViewController.getBarTransitions() != null) {
|
||||
mNotificationShadeWindowViewController.getBarTransitions().finishAnimations();
|
||||
}
|
||||
mNavigationBarController.finishBarAnimations(mDisplayId);
|
||||
}
|
||||
@@ -2396,12 +2398,11 @@ public class StatusBar extends SystemUI implements DemoMode,
|
||||
pw.print(" mDozing="); pw.println(mDozing);
|
||||
pw.print(" mWallpaperSupported= "); pw.println(mWallpaperSupported);
|
||||
|
||||
if (mStatusBarView != null) {
|
||||
dumpBarTransitions(pw, "mStatusBarView", mStatusBarView.getBarTransitions());
|
||||
}
|
||||
pw.println(" StatusBarWindowView: ");
|
||||
if (mNotificationShadeWindowViewController != null) {
|
||||
mNotificationShadeWindowViewController.dump(fd, pw, args);
|
||||
dumpBarTransitions(pw, "PhoneStatusBarTransitions",
|
||||
mNotificationShadeWindowViewController.getBarTransitions());
|
||||
}
|
||||
|
||||
pw.println(" mMediaManager: ");
|
||||
@@ -3004,8 +3005,10 @@ public class StatusBar extends SystemUI implements DemoMode,
|
||||
-1;
|
||||
if (barMode != -1) {
|
||||
boolean animate = true;
|
||||
if (mStatusBarView != null) {
|
||||
mStatusBarView.getBarTransitions().transitionTo(barMode, animate);
|
||||
if (mNotificationShadeWindowController != null
|
||||
&& mNotificationShadeWindowViewController.getBarTransitions() != null) {
|
||||
mNotificationShadeWindowViewController.getBarTransitions().transitionTo(
|
||||
barMode, animate);
|
||||
}
|
||||
mNavigationBarController.transitionTo(mDisplayId, barMode, animate);
|
||||
}
|
||||
|
||||
@@ -37,8 +37,9 @@ import com.android.systemui.shared.plugins.PluginManager;
|
||||
import com.android.systemui.statusbar.CommandQueue;
|
||||
import com.android.systemui.statusbar.DragDownHelper;
|
||||
import com.android.systemui.statusbar.NotificationLockscreenUserManager;
|
||||
import com.android.systemui.statusbar.PulseExpansionHandler;
|
||||
import com.android.systemui.statusbar.NotificationShadeWindowBlurController;
|
||||
import com.android.systemui.statusbar.PulseExpansionHandler;
|
||||
import com.android.systemui.statusbar.SuperStatusBarViewFactory;
|
||||
import com.android.systemui.statusbar.SysuiStatusBarStateController;
|
||||
import com.android.systemui.statusbar.notification.DynamicPrivacyController;
|
||||
import com.android.systemui.statusbar.notification.NotificationEntryManager;
|
||||
@@ -81,6 +82,7 @@ public class NotificationShadeWindowViewTest extends SysuiTestCase {
|
||||
@Mock private NotificationPanelViewController mNotificationPanelViewController;
|
||||
@Mock private NotificationStackScrollLayout mNotificationStackScrollLayout;
|
||||
@Mock private NotificationShadeWindowBlurController mNotificationShadeWindowBlurController;
|
||||
@Mock private SuperStatusBarViewFactory mStatusBarViewFactory;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
@@ -116,7 +118,8 @@ public class NotificationShadeWindowViewTest extends SysuiTestCase {
|
||||
mDockManager,
|
||||
mNotificationShadeWindowBlurController,
|
||||
mView,
|
||||
mNotificationPanelViewController);
|
||||
mNotificationPanelViewController,
|
||||
mStatusBarViewFactory);
|
||||
mController.setupExpandedStatusBar();
|
||||
mController.setService(mStatusBar);
|
||||
mController.setDragDownHelper(mDragDownHelper);
|
||||
|
||||
Reference in New Issue
Block a user