Merge "[Status Bar Refactor] Move PhoneStatusBarTransitions to the dagger component and out of an unrelated notification class."

This commit is contained in:
TreeHugger Robot
2021-12-14 18:40:36 +00:00
committed by Android (Google) Code Review
6 changed files with 40 additions and 41 deletions

View File

@@ -18,6 +18,7 @@ package com.android.systemui.statusbar.core
import android.app.Fragment
import com.android.systemui.R
import com.android.systemui.fragments.FragmentHostManager
import com.android.systemui.statusbar.phone.PhoneStatusBarTransitions
import com.android.systemui.statusbar.phone.PhoneStatusBarView
import com.android.systemui.statusbar.phone.PhoneStatusBarViewController
import com.android.systemui.statusbar.phone.dagger.StatusBarComponent
@@ -50,12 +51,11 @@ class StatusBarInitializer @Inject constructor(
override fun onFragmentViewCreated(tag: String, fragment: Fragment) {
val statusBarFragmentComponent = (fragment as CollapsedStatusBarFragment)
.statusBarFragmentComponent ?: throw IllegalStateException()
val statusBarView = statusBarFragmentComponent.phoneStatusBarView
val sbViewController =
statusBarFragmentComponent.phoneStatusBarViewController
statusBarViewUpdatedListener
?.onStatusBarViewUpdated(statusBarView, sbViewController)
statusBarViewUpdatedListener?.onStatusBarViewUpdated(
statusBarFragmentComponent.phoneStatusBarView,
statusBarFragmentComponent.phoneStatusBarViewController,
statusBarFragmentComponent.phoneStatusBarTransitions
)
}
override fun onFragmentViewDestroyed(tag: String?, fragment: Fragment?) {
@@ -72,7 +72,8 @@ class StatusBarInitializer @Inject constructor(
interface OnStatusBarViewUpdatedListener {
fun onStatusBarViewUpdated(
statusBarView: PhoneStatusBarView,
statusBarViewController: PhoneStatusBarViewController
statusBarViewController: PhoneStatusBarViewController,
statusBarTransitions: PhoneStatusBarTransitions
)
}
}

View File

@@ -98,7 +98,6 @@ public class NotificationShadeWindowViewController {
private boolean mExpandAnimationRunning;
private NotificationStackScrollLayout mStackScrollLayout;
private PhoneStatusBarView mStatusBarView;
private PhoneStatusBarTransitions mBarTransitions;
private StatusBar mService;
private NotificationShadeWindowController mNotificationShadeWindowController;
private DragDownHelper mDragDownHelper;
@@ -497,17 +496,8 @@ public class NotificationShadeWindowViewController {
}
}
public PhoneStatusBarTransitions getBarTransitions() {
return mBarTransitions;
}
public void setStatusBarView(PhoneStatusBarView statusBarView) {
mStatusBarView = statusBarView;
if (statusBarView != null) {
mBarTransitions = new PhoneStatusBarTransitions(
statusBarView,
mStatusBarWindowController.getBackgroundView());
}
}
public void setService(StatusBar statusBar, NotificationShadeWindowController controller) {

View File

@@ -458,6 +458,7 @@ public class StatusBar extends CoreStartable implements
protected NotificationShadeWindowView mNotificationShadeWindowView;
protected PhoneStatusBarView mStatusBarView;
private PhoneStatusBarViewController mPhoneStatusBarViewController;
private PhoneStatusBarTransitions mStatusBarTransitions;
private AuthRippleController mAuthRippleController;
private int mStatusBarWindowState = WINDOW_STATE_SHOWING;
protected NotificationShadeWindowController mNotificationShadeWindowController;
@@ -1124,9 +1125,10 @@ public class StatusBar extends CoreStartable implements
// Set up CollapsedStatusBarFragment and PhoneStatusBarView
StatusBarInitializer initializer = mStatusBarComponent.getStatusBarInitializer();
initializer.setStatusBarViewUpdatedListener(
(statusBarView, statusBarViewController) -> {
(statusBarView, statusBarViewController, statusBarTransitions) -> {
mStatusBarView = statusBarView;
mPhoneStatusBarViewController = statusBarViewController;
mStatusBarTransitions = statusBarTransitions;
mNotificationShadeWindowViewController.setStatusBarView(mStatusBarView);
// Ensure we re-propagate panel expansion values to the panel controller and
// any listeners it may have, such as PanelBar. This will also ensure we
@@ -2185,14 +2187,10 @@ public class StatusBar extends CoreStartable implements
}, false, sUiEventLogger).show(animationDelay);
}
protected BarTransitions getStatusBarTransitions() {
return mNotificationShadeWindowViewController.getBarTransitions();
}
public void checkBarModes() {
if (mDemoModeController.isInDemoMode()) return;
if (mNotificationShadeWindowViewController != null && getStatusBarTransitions() != null) {
checkBarMode(mStatusBarMode, mStatusBarWindowState, getStatusBarTransitions());
if (mStatusBarTransitions != null) {
checkBarMode(mStatusBarMode, mStatusBarWindowState, mStatusBarTransitions);
}
mNavigationBarController.checkNavBarModes(mDisplayId);
mNoAnimationOnNextBarModeChange = false;
@@ -2219,9 +2217,8 @@ public class StatusBar extends CoreStartable implements
}
private void finishBarAnimations() {
if (mNotificationShadeWindowController != null
&& mNotificationShadeWindowViewController.getBarTransitions() != null) {
mNotificationShadeWindowViewController.getBarTransitions().finishAnimations();
if (mStatusBarTransitions != null) {
mStatusBarTransitions.finishAnimations();
}
mNavigationBarController.finishBarAnimations(mDisplayId);
}
@@ -2275,8 +2272,7 @@ public class StatusBar extends CoreStartable implements
pw.println(" ShadeWindowView: ");
if (mNotificationShadeWindowViewController != null) {
mNotificationShadeWindowViewController.dump(fd, pw, args);
dumpBarTransitions(pw, "PhoneStatusBarTransitions",
mNotificationShadeWindowViewController.getBarTransitions());
dumpBarTransitions(pw, "PhoneStatusBarTransitions", mStatusBarTransitions);
}
pw.println(" mMediaManager: ");

View File

@@ -32,7 +32,6 @@ import com.android.systemui.demomode.DemoMode;
import com.android.systemui.demomode.DemoModeCommandReceiver;
import com.android.systemui.demomode.DemoModeController;
import com.android.systemui.navigationbar.NavigationBarController;
import com.android.systemui.statusbar.NotificationShadeWindowController;
import com.android.systemui.statusbar.phone.fragment.dagger.StatusBarFragmentScope;
import com.android.systemui.statusbar.policy.Clock;
import com.android.systemui.util.ViewController;
@@ -54,8 +53,7 @@ public class StatusBarDemoMode extends ViewController<View> implements DemoMode
private final Clock mClockView;
private final View mOperatorNameView;
private final DemoModeController mDemoModeController;
private final NotificationShadeWindowController mNotificationShadeWindowController;
private final NotificationShadeWindowViewController mNotificationShadeWindowViewController;
private final PhoneStatusBarTransitions mPhoneStatusBarTransitions;
private final NavigationBarController mNavigationBarController;
private final int mDisplayId;
@@ -64,16 +62,14 @@ public class StatusBarDemoMode extends ViewController<View> implements DemoMode
Clock clockView,
@Named(OPERATOR_NAME_VIEW) View operatorNameView,
DemoModeController demoModeController,
NotificationShadeWindowController notificationShadeWindowController,
NotificationShadeWindowViewController notificationShadeWindowViewController,
PhoneStatusBarTransitions phoneStatusBarTransitions,
NavigationBarController navigationBarController,
@DisplayId int displayId) {
super(clockView);
mClockView = clockView;
mOperatorNameView = operatorNameView;
mDemoModeController = demoModeController;
mNotificationShadeWindowController = notificationShadeWindowController;
mNotificationShadeWindowViewController = notificationShadeWindowViewController;
mPhoneStatusBarTransitions = phoneStatusBarTransitions;
mNavigationBarController = navigationBarController;
mDisplayId = displayId;
}
@@ -128,11 +124,7 @@ public class StatusBarDemoMode extends ViewController<View> implements DemoMode
-1;
if (barMode != -1) {
boolean animate = true;
if (mNotificationShadeWindowController != null
&& mNotificationShadeWindowViewController.getBarTransitions() != null) {
mNotificationShadeWindowViewController.getBarTransitions().transitionTo(
barMode, animate);
}
mPhoneStatusBarTransitions.transitionTo(barMode, animate);
mNavigationBarController.transitionTo(mDisplayId, barMode, animate);
}
}

View File

@@ -20,6 +20,7 @@ import com.android.systemui.battery.BatteryMeterViewController;
import com.android.systemui.dagger.qualifiers.RootView;
import com.android.systemui.statusbar.phone.HeadsUpAppearanceController;
import com.android.systemui.statusbar.phone.LightsOutNotifController;
import com.android.systemui.statusbar.phone.PhoneStatusBarTransitions;
import com.android.systemui.statusbar.phone.PhoneStatusBarView;
import com.android.systemui.statusbar.phone.PhoneStatusBarViewController;
import com.android.systemui.statusbar.phone.StatusBarDemoMode;
@@ -36,6 +37,9 @@ import dagger.Subcomponent;
* controllers need access to that view, so those controllers will be re-created whenever the
* fragment is recreated.
*
* Anything that depends on {@link CollapsedStatusBarFragment} or {@link PhoneStatusBarView}
* should be included here or in {@link StatusBarFragmentModule}.
*
* Note that this is completely separate from
* {@link com.android.systemui.statusbar.phone.dagger.StatusBarComponent}. This component gets
* re-created on each new fragment creation, whereas
@@ -90,4 +94,8 @@ public interface StatusBarFragmentComponent {
/** */
@StatusBarFragmentScope
StatusBarDemoMode getStatusBarDemoMode();
/** */
@StatusBarFragmentScope
PhoneStatusBarTransitions getPhoneStatusBarTransitions();
}

View File

@@ -22,10 +22,12 @@ import com.android.systemui.R;
import com.android.systemui.battery.BatteryMeterView;
import com.android.systemui.dagger.qualifiers.RootView;
import com.android.systemui.statusbar.phone.NotificationPanelViewController;
import com.android.systemui.statusbar.phone.PhoneStatusBarTransitions;
import com.android.systemui.statusbar.phone.PhoneStatusBarView;
import com.android.systemui.statusbar.phone.PhoneStatusBarViewController;
import com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment;
import com.android.systemui.statusbar.policy.Clock;
import com.android.systemui.statusbar.window.StatusBarWindowController;
import javax.inject.Named;
@@ -89,4 +91,14 @@ public interface StatusBarFragmentModule {
phoneStatusBarView,
notificationPanelViewController.getStatusBarTouchEventHandler());
}
/** */
@Provides
@StatusBarFragmentScope
static PhoneStatusBarTransitions providePhoneStatusBarTransitions(
@RootView PhoneStatusBarView view,
StatusBarWindowController statusBarWindowController
) {
return new PhoneStatusBarTransitions(view, statusBarWindowController.getBackgroundView());
}
}