Merge "[Status Bar Refactor] Move PhoneStatusBarTransitions to the dagger component and out of an unrelated notification class."
This commit is contained in:
committed by
Android (Google) Code Review
commit
7196908e57
@@ -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
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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: ");
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user