Merge "1/N Add an OperatorNameViewController."
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Copyright (C) 2021 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.systemui.statusbar;
|
||||
|
||||
import android.view.View;
|
||||
|
||||
import com.android.systemui.util.ViewController;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
/** Controller for {@link OperatorNameView}. */
|
||||
public class OperatorNameViewController extends ViewController<OperatorNameView> {
|
||||
private OperatorNameViewController(OperatorNameView view) {
|
||||
super(view);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onViewAttached() {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onViewDetached() {
|
||||
}
|
||||
|
||||
/** Factory for constructing an {@link OperatorNameViewController}. */
|
||||
public static class Factory {
|
||||
@Inject
|
||||
public Factory() {
|
||||
}
|
||||
|
||||
/** Create an {@link OperatorNameViewController}. */
|
||||
public OperatorNameViewController create(OperatorNameView view) {
|
||||
return new OperatorNameViewController(view);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Needed because of how {@link CollapsedStatusBarFragment} works.
|
||||
*
|
||||
* Ideally this can be done internally.
|
||||
**/
|
||||
public View getView() {
|
||||
return mView;
|
||||
}
|
||||
}
|
||||
@@ -42,6 +42,8 @@ import com.android.systemui.animation.Interpolators;
|
||||
import com.android.systemui.flags.FeatureFlags;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.CommandQueue;
|
||||
import com.android.systemui.statusbar.OperatorNameView;
|
||||
import com.android.systemui.statusbar.OperatorNameViewController;
|
||||
import com.android.systemui.statusbar.StatusBarState;
|
||||
import com.android.systemui.statusbar.events.SystemStatusAnimationCallback;
|
||||
import com.android.systemui.statusbar.events.SystemStatusAnimationScheduler;
|
||||
@@ -90,8 +92,8 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
||||
private int mDisabled2;
|
||||
private Lazy<Optional<StatusBar>> mStatusBarOptionalLazy;
|
||||
private DarkIconManager mDarkIconManager;
|
||||
private View mOperatorNameFrame;
|
||||
private final CommandQueue mCommandQueue;
|
||||
private final OperatorNameViewController.Factory mOperatorNameViewControllerFactory;
|
||||
private final OngoingCallController mOngoingCallController;
|
||||
private final SystemStatusAnimationScheduler mAnimationScheduler;
|
||||
private final StatusBarLocationPublisher mLocationPublisher;
|
||||
@@ -114,6 +116,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
||||
disable(getContext().getDisplayId(), mDisabled1, mDisabled2, animate);
|
||||
}
|
||||
};
|
||||
private OperatorNameViewController mOperatorNameViewController;
|
||||
|
||||
@Inject
|
||||
public CollapsedStatusBarFragment(
|
||||
@@ -127,7 +130,8 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
||||
NetworkController networkController,
|
||||
StatusBarStateController statusBarStateController,
|
||||
Lazy<Optional<StatusBar>> statusBarOptionalLazy,
|
||||
CommandQueue commandQueue
|
||||
CommandQueue commandQueue,
|
||||
OperatorNameViewController.Factory operatorNameViewControllerFactory
|
||||
) {
|
||||
mOngoingCallController = ongoingCallController;
|
||||
mAnimationScheduler = animationScheduler;
|
||||
@@ -140,6 +144,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
||||
mStatusBarStateController = statusBarStateController;
|
||||
mStatusBarOptionalLazy = statusBarOptionalLazy;
|
||||
mCommandQueue = commandQueue;
|
||||
mOperatorNameViewControllerFactory = operatorNameViewControllerFactory;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -411,14 +416,14 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
||||
}
|
||||
|
||||
public void hideOperatorName(boolean animate) {
|
||||
if (mOperatorNameFrame != null) {
|
||||
animateHide(mOperatorNameFrame, animate);
|
||||
if (mOperatorNameViewController != null) {
|
||||
animateHide(mOperatorNameViewController.getView(), animate);
|
||||
}
|
||||
}
|
||||
|
||||
public void showOperatorName(boolean animate) {
|
||||
if (mOperatorNameFrame != null) {
|
||||
animateShow(mOperatorNameFrame, animate);
|
||||
if (mOperatorNameViewController != null) {
|
||||
animateShow(mOperatorNameViewController.getView(), animate);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -495,7 +500,9 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
||||
private void initOperatorName() {
|
||||
if (getResources().getBoolean(R.bool.config_showOperatorNameInStatusBar)) {
|
||||
ViewStub stub = mStatusBar.findViewById(R.id.operator_name);
|
||||
mOperatorNameFrame = stub.inflate();
|
||||
mOperatorNameViewController =
|
||||
mOperatorNameViewControllerFactory.create((OperatorNameView) stub.inflate());
|
||||
mOperatorNameViewController.init();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -189,6 +189,7 @@ import com.android.systemui.statusbar.NotificationShadeDepthController;
|
||||
import com.android.systemui.statusbar.NotificationShadeWindowController;
|
||||
import com.android.systemui.statusbar.NotificationShelfController;
|
||||
import com.android.systemui.statusbar.NotificationViewHierarchyManager;
|
||||
import com.android.systemui.statusbar.OperatorNameViewController;
|
||||
import com.android.systemui.statusbar.PowerButtonReveal;
|
||||
import com.android.systemui.statusbar.PulseExpansionHandler;
|
||||
import com.android.systemui.statusbar.StatusBarState;
|
||||
@@ -224,8 +225,8 @@ import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
import com.android.systemui.statusbar.policy.NetworkController;
|
||||
import com.android.systemui.statusbar.policy.UserInfoControllerImpl;
|
||||
import com.android.systemui.statusbar.policy.UserSwitcherController;
|
||||
import com.android.systemui.unfold.UnfoldLightRevealOverlayAnimation;
|
||||
import com.android.systemui.tuner.TunerService;
|
||||
import com.android.systemui.unfold.UnfoldLightRevealOverlayAnimation;
|
||||
import com.android.systemui.volume.VolumeComponent;
|
||||
import com.android.systemui.wmshell.BubblesManager;
|
||||
import com.android.unfold.config.UnfoldTransitionConfig;
|
||||
@@ -523,6 +524,7 @@ public class StatusBar extends SystemUI implements
|
||||
// settings
|
||||
private QSPanelController mQSPanelController;
|
||||
|
||||
private final OperatorNameViewController.Factory mOperatorNameViewControllerFactory;
|
||||
KeyguardIndicationController mKeyguardIndicationController;
|
||||
|
||||
private View mReportRejectedTouch;
|
||||
@@ -862,6 +864,7 @@ public class StatusBar extends SystemUI implements
|
||||
KeyguardDismissUtil keyguardDismissUtil,
|
||||
ExtensionController extensionController,
|
||||
UserInfoControllerImpl userInfoControllerImpl,
|
||||
OperatorNameViewController.Factory operatorNameViewControllerFactory,
|
||||
PhoneStatusBarPolicy phoneStatusBarPolicy,
|
||||
KeyguardIndicationController keyguardIndicationController,
|
||||
DemoModeController demoModeController,
|
||||
@@ -892,6 +895,7 @@ public class StatusBar extends SystemUI implements
|
||||
mKeyguardBypassController = keyguardBypassController;
|
||||
mKeyguardStateController = keyguardStateController;
|
||||
mHeadsUpManager = headsUpManagerPhone;
|
||||
mOperatorNameViewControllerFactory = operatorNameViewControllerFactory;
|
||||
mKeyguardIndicationController = keyguardIndicationController;
|
||||
mStatusBarTouchableRegionManager = statusBarTouchableRegionManager;
|
||||
mDynamicPrivacyController = dynamicPrivacyController;
|
||||
@@ -1282,7 +1286,8 @@ public class StatusBar extends SystemUI implements
|
||||
mNetworkController,
|
||||
mStatusBarStateController,
|
||||
() -> Optional.of(this),
|
||||
mCommandQueue
|
||||
mCommandQueue,
|
||||
mOperatorNameViewControllerFactory
|
||||
),
|
||||
CollapsedStatusBarFragment.TAG)
|
||||
.commit();
|
||||
|
||||
@@ -55,6 +55,7 @@ import com.android.systemui.statusbar.NotificationRemoteInputManager;
|
||||
import com.android.systemui.statusbar.NotificationShadeDepthController;
|
||||
import com.android.systemui.statusbar.NotificationShadeWindowController;
|
||||
import com.android.systemui.statusbar.NotificationViewHierarchyManager;
|
||||
import com.android.systemui.statusbar.OperatorNameViewController;
|
||||
import com.android.systemui.statusbar.PulseExpansionHandler;
|
||||
import com.android.systemui.statusbar.SuperStatusBarViewFactory;
|
||||
import com.android.systemui.statusbar.SysuiStatusBarStateController;
|
||||
@@ -100,8 +101,8 @@ import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
import com.android.systemui.statusbar.policy.NetworkController;
|
||||
import com.android.systemui.statusbar.policy.UserInfoControllerImpl;
|
||||
import com.android.systemui.statusbar.policy.UserSwitcherController;
|
||||
import com.android.systemui.unfold.UnfoldLightRevealOverlayAnimation;
|
||||
import com.android.systemui.tuner.TunerService;
|
||||
import com.android.systemui.unfold.UnfoldLightRevealOverlayAnimation;
|
||||
import com.android.systemui.volume.VolumeComponent;
|
||||
import com.android.systemui.wmshell.BubblesManager;
|
||||
import com.android.unfold.config.UnfoldTransitionConfig;
|
||||
@@ -199,6 +200,7 @@ public interface StatusBarPhoneModule {
|
||||
KeyguardDismissUtil keyguardDismissUtil,
|
||||
ExtensionController extensionController,
|
||||
UserInfoControllerImpl userInfoControllerImpl,
|
||||
OperatorNameViewController.Factory operatorNameViewControllerFactory,
|
||||
PhoneStatusBarPolicy phoneStatusBarPolicy,
|
||||
KeyguardIndicationController keyguardIndicationController,
|
||||
DemoModeController demoModeController,
|
||||
@@ -288,6 +290,7 @@ public interface StatusBarPhoneModule {
|
||||
keyguardDismissUtil,
|
||||
extensionController,
|
||||
userInfoControllerImpl,
|
||||
operatorNameViewControllerFactory,
|
||||
phoneStatusBarPolicy,
|
||||
keyguardIndicationController,
|
||||
demoModeController,
|
||||
|
||||
@@ -17,6 +17,7 @@ package com.android.systemui.statusbar.phone;
|
||||
import static android.view.Display.DEFAULT_DISPLAY;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Matchers.eq;
|
||||
import static org.mockito.Mockito.atLeast;
|
||||
import static org.mockito.Mockito.mock;
|
||||
@@ -40,6 +41,7 @@ import com.android.systemui.SysuiBaseFragmentTest;
|
||||
import com.android.systemui.flags.FeatureFlags;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.CommandQueue;
|
||||
import com.android.systemui.statusbar.OperatorNameViewController;
|
||||
import com.android.systemui.statusbar.events.SystemStatusAnimationScheduler;
|
||||
import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallController;
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
@@ -72,6 +74,8 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {
|
||||
|
||||
private final StatusBar mStatusBar = mock(StatusBar.class);
|
||||
private final CommandQueue mCommandQueue = mock(CommandQueue.class);
|
||||
private OperatorNameViewController.Factory mOperatorNameViewControllerFactory;
|
||||
private OperatorNameViewController mOperatorNameViewController;
|
||||
|
||||
|
||||
public CollapsedStatusBarFragmentTest() {
|
||||
@@ -243,6 +247,11 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {
|
||||
mNetworkController = mock(NetworkController.class);
|
||||
mStatusBarStateController = mock(StatusBarStateController.class);
|
||||
mKeyguardStateController = mock(KeyguardStateController.class);
|
||||
mOperatorNameViewController = mock(OperatorNameViewController.class);
|
||||
mOperatorNameViewControllerFactory = mock(OperatorNameViewController.Factory.class);
|
||||
when(mOperatorNameViewControllerFactory.create(any()))
|
||||
.thenReturn(mOperatorNameViewController);
|
||||
|
||||
setUpNotificationIconAreaController();
|
||||
return new CollapsedStatusBarFragment(
|
||||
mOngoingCallController,
|
||||
@@ -255,7 +264,8 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {
|
||||
mNetworkController,
|
||||
mStatusBarStateController,
|
||||
() -> Optional.of(mStatusBar),
|
||||
mCommandQueue);
|
||||
mCommandQueue,
|
||||
mOperatorNameViewControllerFactory);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -38,7 +38,6 @@ class PhoneStatusBarViewControllerTest : SysuiTestCase() {
|
||||
@Before
|
||||
fun setUp() {
|
||||
MockitoAnnotations.initMocks(this)
|
||||
|
||||
view = PhoneStatusBarView(mContext, null)
|
||||
controller = PhoneStatusBarViewController(view, commandQueue)
|
||||
}
|
||||
|
||||
@@ -105,6 +105,7 @@ import com.android.systemui.statusbar.NotificationRemoteInputManager;
|
||||
import com.android.systemui.statusbar.NotificationShadeDepthController;
|
||||
import com.android.systemui.statusbar.NotificationShadeWindowController;
|
||||
import com.android.systemui.statusbar.NotificationViewHierarchyManager;
|
||||
import com.android.systemui.statusbar.OperatorNameViewController;
|
||||
import com.android.systemui.statusbar.PulseExpansionHandler;
|
||||
import com.android.systemui.statusbar.StatusBarState;
|
||||
import com.android.systemui.statusbar.StatusBarStateControllerImpl;
|
||||
@@ -137,8 +138,8 @@ import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
import com.android.systemui.statusbar.policy.NetworkController;
|
||||
import com.android.systemui.statusbar.policy.UserInfoControllerImpl;
|
||||
import com.android.systemui.statusbar.policy.UserSwitcherController;
|
||||
import com.android.systemui.unfold.UnfoldLightRevealOverlayAnimation;
|
||||
import com.android.systemui.tuner.TunerService;
|
||||
import com.android.systemui.unfold.UnfoldLightRevealOverlayAnimation;
|
||||
import com.android.systemui.util.concurrency.FakeExecutor;
|
||||
import com.android.systemui.util.time.FakeSystemClock;
|
||||
import com.android.systemui.volume.VolumeComponent;
|
||||
@@ -267,6 +268,8 @@ public class StatusBarTest extends SysuiTestCase {
|
||||
@Mock private UnlockedScreenOffAnimationController mUnlockedScreenOffAnimationController;
|
||||
@Mock private TunerService mTunerService;
|
||||
@Mock private StartingSurface mStartingSurface;
|
||||
@Mock private OperatorNameViewController mOperatorNameViewController;
|
||||
@Mock private OperatorNameViewController.Factory mOperatorNameViewControllerFactory;
|
||||
private ShadeController mShadeController;
|
||||
private FakeExecutor mUiBgExecutor = new FakeExecutor(new FakeSystemClock());
|
||||
private InitController mInitController = new InitController();
|
||||
@@ -345,6 +348,9 @@ public class StatusBarTest extends SysuiTestCase {
|
||||
mStatusBarKeyguardViewManager, mContext.getSystemService(WindowManager.class),
|
||||
() -> Optional.of(mStatusBar), () -> mAssistManager, Optional.of(mBubbles));
|
||||
|
||||
when(mOperatorNameViewControllerFactory.create(any()))
|
||||
.thenReturn(mOperatorNameViewController);
|
||||
|
||||
mStatusBar = new StatusBar(
|
||||
mContext,
|
||||
mNotificationsController,
|
||||
@@ -413,6 +419,7 @@ public class StatusBarTest extends SysuiTestCase {
|
||||
mKeyguardDismissUtil,
|
||||
mExtensionController,
|
||||
mUserInfoControllerImpl,
|
||||
mOperatorNameViewControllerFactory,
|
||||
mPhoneStatusBarPolicy,
|
||||
mKeyguardIndicationController,
|
||||
mDemoModeController,
|
||||
|
||||
Reference in New Issue
Block a user