Merge "Set background drawable on status_bar_container" into rvc-dev

This commit is contained in:
Beverly Tai
2020-02-26 18:45:04 +00:00
committed by Android (Google) Code Review
7 changed files with 49 additions and 38 deletions

View File

@@ -24,7 +24,6 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/status_bar_height" android:layout_height="@dimen/status_bar_height"
android:id="@+id/status_bar" android:id="@+id/status_bar"
android:background="@drawable/system_bar_background"
android:orientation="vertical" android:orientation="vertical"
android:focusable="false" android:focusable="false"
android:descendantFocusability="afterDescendants" android:descendantFocusability="afterDescendants"

View File

@@ -28,5 +28,6 @@
<FrameLayout <FrameLayout
android:id="@+id/status_bar_container" android:id="@+id/status_bar_container"
android:layout_width="match_parent" 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> </com.android.systemui.statusbar.phone.StatusBarWindowView>

View File

@@ -44,8 +44,9 @@ import com.android.systemui.shared.plugins.PluginManager;
import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.DragDownHelper; import com.android.systemui.statusbar.DragDownHelper;
import com.android.systemui.statusbar.NotificationLockscreenUserManager; import com.android.systemui.statusbar.NotificationLockscreenUserManager;
import com.android.systemui.statusbar.PulseExpansionHandler;
import com.android.systemui.statusbar.NotificationShadeWindowBlurController; 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.SysuiStatusBarStateController;
import com.android.systemui.statusbar.notification.DynamicPrivacyController; import com.android.systemui.statusbar.notification.DynamicPrivacyController;
import com.android.systemui.statusbar.notification.NotificationEntryManager; import com.android.systemui.statusbar.notification.NotificationEntryManager;
@@ -91,6 +92,7 @@ public class NotificationShadeWindowViewController {
private boolean mExpandAnimationRunning; private boolean mExpandAnimationRunning;
private NotificationStackScrollLayout mStackScrollLayout; private NotificationStackScrollLayout mStackScrollLayout;
private PhoneStatusBarView mStatusBarView; private PhoneStatusBarView mStatusBarView;
private PhoneStatusBarTransitions mBarTransitions;
private StatusBar mService; private StatusBar mService;
private DragDownHelper mDragDownHelper; private DragDownHelper mDragDownHelper;
private boolean mDoubleTapEnabled; private boolean mDoubleTapEnabled;
@@ -98,6 +100,7 @@ public class NotificationShadeWindowViewController {
private boolean mExpandingBelowNotch; private boolean mExpandingBelowNotch;
private final DockManager mDockManager; private final DockManager mDockManager;
private final NotificationPanelViewController mNotificationPanelViewController; private final NotificationPanelViewController mNotificationPanelViewController;
private final SuperStatusBarViewFactory mStatusBarViewFactory;
// Used for determining view / touch intersection // Used for determining view / touch intersection
private int[] mTempLocation = new int[2]; private int[] mTempLocation = new int[2];
@@ -124,8 +127,9 @@ public class NotificationShadeWindowViewController {
ShadeController shadeController, ShadeController shadeController,
DockManager dockManager, DockManager dockManager,
@Nullable NotificationShadeWindowBlurController blurController, @Nullable NotificationShadeWindowBlurController blurController,
NotificationShadeWindowView statusBarWindowView, NotificationShadeWindowView notificationShadeWindowView,
NotificationPanelViewController notificationPanelViewController) { NotificationPanelViewController notificationPanelViewController,
SuperStatusBarViewFactory statusBarViewFactory) {
mInjectionInflationController = injectionInflationController; mInjectionInflationController = injectionInflationController;
mCoordinator = coordinator; mCoordinator = coordinator;
mPulseExpansionHandler = pulseExpansionHandler; mPulseExpansionHandler = pulseExpansionHandler;
@@ -141,11 +145,12 @@ public class NotificationShadeWindowViewController {
mDozeLog = dozeLog; mDozeLog = dozeLog;
mDozeParameters = dozeParameters; mDozeParameters = dozeParameters;
mCommandQueue = commandQueue; mCommandQueue = commandQueue;
mView = statusBarWindowView; mView = notificationShadeWindowView;
mShadeController = shadeController; mShadeController = shadeController;
mDockManager = dockManager; mDockManager = dockManager;
mNotificationPanelViewController = notificationPanelViewController; mNotificationPanelViewController = notificationPanelViewController;
mBlurController = blurController; mBlurController = blurController;
mStatusBarViewFactory = statusBarViewFactory;
// This view is not part of the newly inflated expanded status bar. // This view is not part of the newly inflated expanded status bar.
mBrightnessMirror = mView.findViewById(R.id.brightness_mirror); mBrightnessMirror = mView.findViewById(R.id.brightness_mirror);
@@ -440,8 +445,18 @@ public class NotificationShadeWindowViewController {
} }
} }
public PhoneStatusBarTransitions getBarTransitions() {
return mBarTransitions;
}
public void setStatusBarView(PhoneStatusBarView statusBarView) { public void setStatusBarView(PhoneStatusBarView statusBarView) {
mStatusBarView = 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) { public void setService(StatusBar statusBar) {

View File

@@ -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_BATTERY_CLOCK = 0.5f;
private static final float ICON_ALPHA_WHEN_LIGHTS_OUT_NON_BATTERY_CLOCK = 0; private static final float ICON_ALPHA_WHEN_LIGHTS_OUT_NON_BATTERY_CLOCK = 0;
private final PhoneStatusBarView mView;
private final float mIconAlphaWhenOpaque; private final float mIconAlphaWhenOpaque;
private View mLeftSide, mStatusIcons, mBattery, mClock; private View mLeftSide, mStatusIcons, mBattery;
private Animator mCurrentAnimation; private Animator mCurrentAnimation;
public PhoneStatusBarTransitions(PhoneStatusBarView view) { /**
super(view, R.drawable.status_background); * @param backgroundView view to apply the background drawable
mView = view; */
final Resources res = mView.getContext().getResources(); 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); mIconAlphaWhenOpaque = res.getFraction(R.dimen.status_bar_icon_drawing_alpha, 1, 1);
} mLeftSide = statusBarView.findViewById(R.id.status_bar_left_side);
mStatusIcons = statusBarView.findViewById(R.id.statusIcons);
public void init() { mBattery = statusBarView.findViewById(R.id.battery);
mLeftSide = mView.findViewById(R.id.status_bar_left_side);
mStatusIcons = mView.findViewById(R.id.statusIcons);
mBattery = mView.findViewById(R.id.battery);
applyModeBackground(-1, getMode(), false /*animate*/); applyModeBackground(-1, getMode(), false /*animate*/);
applyMode(getMode(), false /*animate*/); applyMode(getMode(), false /*animate*/);
} }

View File

@@ -53,7 +53,6 @@ public class PhoneStatusBarView extends PanelBar {
StatusBar mBar; StatusBar mBar;
boolean mIsFullyOpenedPanel = false; boolean mIsFullyOpenedPanel = false;
private final PhoneStatusBarTransitions mBarTransitions;
private ScrimController mScrimController; private ScrimController mScrimController;
private float mMinFraction; private float mMinFraction;
private Runnable mHideExpandedRunnable = new Runnable() { private Runnable mHideExpandedRunnable = new Runnable() {
@@ -83,15 +82,9 @@ public class PhoneStatusBarView extends PanelBar {
public PhoneStatusBarView(Context context, AttributeSet attrs) { public PhoneStatusBarView(Context context, AttributeSet attrs) {
super(context, attrs); super(context, attrs);
mBarTransitions = new PhoneStatusBarTransitions(this);
mCommandQueue = Dependency.get(CommandQueue.class); mCommandQueue = Dependency.get(CommandQueue.class);
} }
public BarTransitions getBarTransitions() {
return mBarTransitions;
}
public void setBar(StatusBar bar) { public void setBar(StatusBar bar) {
mBar = bar; mBar = bar;
} }
@@ -102,7 +95,6 @@ public class PhoneStatusBarView extends PanelBar {
@Override @Override
public void onFinishInflate() { public void onFinishInflate() {
mBarTransitions.init();
mBattery = findViewById(R.id.battery); mBattery = findViewById(R.id.battery);
mCutoutSpace = findViewById(R.id.cutout_space_view); mCutoutSpace = findViewById(R.id.cutout_space_view);
mCenterIconSpace = findViewById(R.id.centered_icon_area); mCenterIconSpace = findViewById(R.id.centered_icon_area);

View File

@@ -2305,13 +2305,14 @@ public class StatusBar extends SystemUI implements DemoMode,
} }
protected BarTransitions getStatusBarTransitions() { protected BarTransitions getStatusBarTransitions() {
return mStatusBarView.getBarTransitions(); return mNotificationShadeWindowViewController.getBarTransitions();
} }
void checkBarModes() { void checkBarModes() {
if (mDemoMode) return; if (mDemoMode) return;
if (mStatusBarView != null) checkBarMode(mStatusBarMode, mStatusBarWindowState, if (mNotificationShadeWindowViewController != null) {
getStatusBarTransitions()); checkBarMode(mStatusBarMode, mStatusBarWindowState, getStatusBarTransitions());
}
mNavigationBarController.checkNavBarModes(mDisplayId); mNavigationBarController.checkNavBarModes(mDisplayId);
mNoAnimationOnNextBarModeChange = false; mNoAnimationOnNextBarModeChange = false;
} }
@@ -2329,8 +2330,9 @@ public class StatusBar extends SystemUI implements DemoMode,
} }
private void finishBarAnimations() { private void finishBarAnimations() {
if (mStatusBarView != null) { if (mNotificationShadeWindowController != null
mStatusBarView.getBarTransitions().finishAnimations(); && mNotificationShadeWindowViewController.getBarTransitions() != null) {
mNotificationShadeWindowViewController.getBarTransitions().finishAnimations();
} }
mNavigationBarController.finishBarAnimations(mDisplayId); mNavigationBarController.finishBarAnimations(mDisplayId);
} }
@@ -2396,12 +2398,11 @@ public class StatusBar extends SystemUI implements DemoMode,
pw.print(" mDozing="); pw.println(mDozing); pw.print(" mDozing="); pw.println(mDozing);
pw.print(" mWallpaperSupported= "); pw.println(mWallpaperSupported); pw.print(" mWallpaperSupported= "); pw.println(mWallpaperSupported);
if (mStatusBarView != null) {
dumpBarTransitions(pw, "mStatusBarView", mStatusBarView.getBarTransitions());
}
pw.println(" StatusBarWindowView: "); pw.println(" StatusBarWindowView: ");
if (mNotificationShadeWindowViewController != null) { if (mNotificationShadeWindowViewController != null) {
mNotificationShadeWindowViewController.dump(fd, pw, args); mNotificationShadeWindowViewController.dump(fd, pw, args);
dumpBarTransitions(pw, "PhoneStatusBarTransitions",
mNotificationShadeWindowViewController.getBarTransitions());
} }
pw.println(" mMediaManager: "); pw.println(" mMediaManager: ");
@@ -3004,8 +3005,10 @@ public class StatusBar extends SystemUI implements DemoMode,
-1; -1;
if (barMode != -1) { if (barMode != -1) {
boolean animate = true; boolean animate = true;
if (mStatusBarView != null) { if (mNotificationShadeWindowController != null
mStatusBarView.getBarTransitions().transitionTo(barMode, animate); && mNotificationShadeWindowViewController.getBarTransitions() != null) {
mNotificationShadeWindowViewController.getBarTransitions().transitionTo(
barMode, animate);
} }
mNavigationBarController.transitionTo(mDisplayId, barMode, animate); mNavigationBarController.transitionTo(mDisplayId, barMode, animate);
} }

View File

@@ -37,8 +37,9 @@ import com.android.systemui.shared.plugins.PluginManager;
import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.DragDownHelper; import com.android.systemui.statusbar.DragDownHelper;
import com.android.systemui.statusbar.NotificationLockscreenUserManager; import com.android.systemui.statusbar.NotificationLockscreenUserManager;
import com.android.systemui.statusbar.PulseExpansionHandler;
import com.android.systemui.statusbar.NotificationShadeWindowBlurController; 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.SysuiStatusBarStateController;
import com.android.systemui.statusbar.notification.DynamicPrivacyController; import com.android.systemui.statusbar.notification.DynamicPrivacyController;
import com.android.systemui.statusbar.notification.NotificationEntryManager; import com.android.systemui.statusbar.notification.NotificationEntryManager;
@@ -81,6 +82,7 @@ public class NotificationShadeWindowViewTest extends SysuiTestCase {
@Mock private NotificationPanelViewController mNotificationPanelViewController; @Mock private NotificationPanelViewController mNotificationPanelViewController;
@Mock private NotificationStackScrollLayout mNotificationStackScrollLayout; @Mock private NotificationStackScrollLayout mNotificationStackScrollLayout;
@Mock private NotificationShadeWindowBlurController mNotificationShadeWindowBlurController; @Mock private NotificationShadeWindowBlurController mNotificationShadeWindowBlurController;
@Mock private SuperStatusBarViewFactory mStatusBarViewFactory;
@Before @Before
public void setUp() { public void setUp() {
@@ -116,7 +118,8 @@ public class NotificationShadeWindowViewTest extends SysuiTestCase {
mDockManager, mDockManager,
mNotificationShadeWindowBlurController, mNotificationShadeWindowBlurController,
mView, mView,
mNotificationPanelViewController); mNotificationPanelViewController,
mStatusBarViewFactory);
mController.setupExpandedStatusBar(); mController.setupExpandedStatusBar();
mController.setService(mStatusBar); mController.setService(mStatusBar);
mController.setDragDownHelper(mDragDownHelper); mController.setDragDownHelper(mDragDownHelper);