diff --git a/packages/SystemUI/src/com/android/systemui/Dependency.java b/packages/SystemUI/src/com/android/systemui/Dependency.java index e51de66dc2b8d..e996e71b6715c 100644 --- a/packages/SystemUI/src/com/android/systemui/Dependency.java +++ b/packages/SystemUI/src/com/android/systemui/Dependency.java @@ -114,7 +114,6 @@ import com.android.systemui.statusbar.policy.FlashlightController; import com.android.systemui.statusbar.policy.HotspotController; import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.statusbar.policy.LocationController; -import com.android.systemui.statusbar.policy.NetworkController; import com.android.systemui.statusbar.policy.NextAlarmController; import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler; import com.android.systemui.statusbar.policy.RotationLockController; @@ -244,7 +243,6 @@ public class Dependency { @Inject Lazy mBluetoothController; @Inject Lazy mLocationController; @Inject Lazy mRotationLockController; - @Inject Lazy mNetworkController; @Inject Lazy mZenModeController; @Inject Lazy mHotspotController; @Inject Lazy mCastController; @@ -389,8 +387,6 @@ public class Dependency { mProviders.put(RotationLockController.class, mRotationLockController::get); - mProviders.put(NetworkController.class, mNetworkController::get); - mProviders.put(ZenModeController.class, mZenModeController::get); mProviders.put(HotspotController.class, mHotspotController::get); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/OperatorNameView.java b/packages/SystemUI/src/com/android/systemui/statusbar/OperatorNameView.java index cc7a4f836c633..4a6d7e184ec24 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/OperatorNameView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/OperatorNameView.java @@ -15,46 +15,18 @@ package com.android.systemui.statusbar; import android.content.Context; -import android.graphics.Rect; -import android.os.Bundle; -import android.telephony.ServiceState; -import android.telephony.SubscriptionInfo; -import android.telephony.TelephonyManager; import android.text.TextUtils; import android.util.AttributeSet; import android.widget.TextView; -import com.android.keyguard.KeyguardUpdateMonitor; -import com.android.keyguard.KeyguardUpdateMonitorCallback; import com.android.settingslib.WirelessUtils; -import com.android.systemui.Dependency; -import com.android.systemui.demomode.DemoModeCommandReceiver; -import com.android.systemui.plugins.DarkIconDispatcher; -import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver; -import com.android.systemui.statusbar.policy.NetworkController; -import com.android.systemui.statusbar.policy.NetworkController.IconState; -import com.android.systemui.statusbar.policy.NetworkController.SignalCallback; -import com.android.systemui.tuner.TunerService; -import com.android.systemui.tuner.TunerService.Tunable; import java.util.List; /** Shows the operator name */ -public class OperatorNameView extends TextView implements DemoModeCommandReceiver, DarkReceiver, - SignalCallback, Tunable { - - private static final String KEY_SHOW_OPERATOR_NAME = "show_operator_name"; - - private KeyguardUpdateMonitor mKeyguardUpdateMonitor; +public class OperatorNameView extends TextView { private boolean mDemoMode; - private final KeyguardUpdateMonitorCallback mCallback = new KeyguardUpdateMonitorCallback() { - @Override - public void onRefreshCarrierInfo() { - updateText(); - } - }; - public OperatorNameView(Context context) { this(context, null); } @@ -67,62 +39,14 @@ public class OperatorNameView extends TextView implements DemoModeCommandReceive super(context, attrs, defStyle); } - @Override - protected void onAttachedToWindow() { - super.onAttachedToWindow(); - mKeyguardUpdateMonitor = Dependency.get(KeyguardUpdateMonitor.class); - mKeyguardUpdateMonitor.registerCallback(mCallback); - Dependency.get(DarkIconDispatcher.class).addDarkReceiver(this); - Dependency.get(NetworkController.class).addCallback(this); - Dependency.get(TunerService.class).addTunable(this, KEY_SHOW_OPERATOR_NAME); + void setDemoMode(boolean demoMode) { + mDemoMode = demoMode; } - @Override - protected void onDetachedFromWindow() { - super.onDetachedFromWindow(); - mKeyguardUpdateMonitor.removeCallback(mCallback); - Dependency.get(DarkIconDispatcher.class).removeDarkReceiver(this); - Dependency.get(NetworkController.class).removeCallback(this); - Dependency.get(TunerService.class).removeTunable(this); - } - - @Override - public void onDarkChanged(Rect area, float darkIntensity, int tint) { - setTextColor(DarkIconDispatcher.getTint(area, this, tint)); - } - - @Override - public void setIsAirplaneMode(IconState icon) { - update(); - } - - @Override - public void onTuningChanged(String key, String newValue) { - update(); - } - - @Override - public void dispatchDemoCommand(String command, Bundle args) { - setText(args.getString("name")); - } - - @Override - public void onDemoModeStarted() { - mDemoMode = true; - } - - @Override - public void onDemoModeFinished() { - mDemoMode = false; - update(); - } - - private void update() { - boolean showOperatorName = Dependency.get(TunerService.class) - .getValue(KEY_SHOW_OPERATOR_NAME, 1) != 0; + void update(boolean showOperatorName, boolean hasMobile, + List subs) { setVisibility(showOperatorName ? VISIBLE : GONE); - boolean hasMobile = mContext.getSystemService(TelephonyManager.class).isDataCapable(); boolean airplaneMode = WirelessUtils.isAirplaneModeOn(mContext); if (!hasMobile || airplaneMode) { setText(null); @@ -131,22 +55,19 @@ public class OperatorNameView extends TextView implements DemoModeCommandReceive } if (!mDemoMode) { - updateText(); + updateText(subs); } } - private void updateText() { + void updateText(List subs) { CharSequence displayText = null; - List subs = mKeyguardUpdateMonitor.getFilteredSubscriptionInfo(false); final int N = subs.size(); for (int i = 0; i < N; i++) { - int subId = subs.get(i).getSubscriptionId(); - int simState = mKeyguardUpdateMonitor.getSimState(subId); + OperatorNameViewController.SubInfo subInfo = subs.get(i); CharSequence carrierName = subs.get(i).getCarrierName(); - if (!TextUtils.isEmpty(carrierName) && simState == TelephonyManager.SIM_STATE_READY) { - ServiceState ss = mKeyguardUpdateMonitor.getServiceState(subId); - if (ss != null && ss.getState() == ServiceState.STATE_IN_SERVICE) { - displayText = carrierName; + if (!TextUtils.isEmpty(carrierName) && subInfo.simReady()) { + if (subInfo.stateInService()) { + displayText = subInfo.getCarrierName(); break; } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/OperatorNameViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/OperatorNameViewController.java new file mode 100644 index 0000000000000..e49f48f2cf498 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/statusbar/OperatorNameViewController.java @@ -0,0 +1,201 @@ +/* + * 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.os.Bundle; +import android.telephony.ServiceState; +import android.telephony.SubscriptionInfo; +import android.telephony.TelephonyManager; +import android.view.View; + +import com.android.keyguard.KeyguardUpdateMonitor; +import com.android.keyguard.KeyguardUpdateMonitorCallback; +import com.android.systemui.demomode.DemoModeCommandReceiver; +import com.android.systemui.plugins.DarkIconDispatcher; +import com.android.systemui.statusbar.policy.NetworkController; +import com.android.systemui.tuner.TunerService; +import com.android.systemui.util.ViewController; + +import java.util.ArrayList; +import java.util.List; + +import javax.inject.Inject; + +/** Controller for {@link OperatorNameView}. */ +public class OperatorNameViewController extends ViewController { + private static final String KEY_SHOW_OPERATOR_NAME = "show_operator_name"; + + private final DarkIconDispatcher mDarkIconDispatcher; + private final NetworkController mNetworkController; + private final TunerService mTunerService; + private final TelephonyManager mTelephonyManager; + private final KeyguardUpdateMonitor mKeyguardUpdateMonitor; + + private OperatorNameViewController(OperatorNameView view, + DarkIconDispatcher darkIconDispatcher, + NetworkController networkController, + TunerService tunerService, + TelephonyManager telephonyManager, + KeyguardUpdateMonitor keyguardUpdateMonitor) { + super(view); + mDarkIconDispatcher = darkIconDispatcher; + mNetworkController = networkController; + mTunerService = tunerService; + mTelephonyManager = telephonyManager; + mKeyguardUpdateMonitor = keyguardUpdateMonitor; + } + + @Override + protected void onViewAttached() { + mDarkIconDispatcher.addDarkReceiver(mDarkReceiver); + mNetworkController.addCallback(mSignalCallback); + mTunerService.addTunable(mTunable, KEY_SHOW_OPERATOR_NAME); + mKeyguardUpdateMonitor.registerCallback(mKeyguardUpdateMonitorCallback); + } + + @Override + protected void onViewDetached() { + mDarkIconDispatcher.removeDarkReceiver(mDarkReceiver); + mNetworkController.removeCallback(mSignalCallback); + mTunerService.removeTunable(mTunable); + mKeyguardUpdateMonitor.removeCallback(mKeyguardUpdateMonitorCallback); + } + + private void update() { + mView.update(mTunerService.getValue(KEY_SHOW_OPERATOR_NAME, 1) != 0, + mTelephonyManager.isDataCapable(), getSubInfos()); + } + + private List getSubInfos() { + List result = new ArrayList<>(); + List subscritionInfos = + mKeyguardUpdateMonitor.getFilteredSubscriptionInfo(false); + + for (SubscriptionInfo subscriptionInfo : subscritionInfos) { + int subId = subscriptionInfo.getSubscriptionId(); + result.add(new SubInfo( + subscriptionInfo.getCarrierName(), + mKeyguardUpdateMonitor.getSimState(subId), + mKeyguardUpdateMonitor.getServiceState(subId))); + } + + return result; + } + + /** Factory for constructing an {@link OperatorNameViewController}. */ + public static class Factory { + private final DarkIconDispatcher mDarkIconDispatcher; + private final NetworkController mNetworkController; + private final TunerService mTunerService; + private final TelephonyManager mTelephonyManager; + private final KeyguardUpdateMonitor mKeyguardUpdateMonitor; + + @Inject + public Factory(DarkIconDispatcher darkIconDispatcher, NetworkController networkController, + TunerService tunerService, TelephonyManager telephonyManager, + KeyguardUpdateMonitor keyguardUpdateMonitor) { + mDarkIconDispatcher = darkIconDispatcher; + mNetworkController = networkController; + mTunerService = tunerService; + mTelephonyManager = telephonyManager; + mKeyguardUpdateMonitor = keyguardUpdateMonitor; + } + + /** Create an {@link OperatorNameViewController}. */ + public OperatorNameViewController create(OperatorNameView view) { + return new OperatorNameViewController(view, mDarkIconDispatcher, mNetworkController, + mTunerService, mTelephonyManager, mKeyguardUpdateMonitor); + } + } + + /** + * Needed because of how {@link CollapsedStatusBarFragment} works. + * + * Ideally this can be done internally. + **/ + public View getView() { + return mView; + } + + private final DarkIconDispatcher.DarkReceiver mDarkReceiver = + (area, darkIntensity, tint) -> + mView.setTextColor(DarkIconDispatcher.getTint(area, mView, tint)); + + private final NetworkController.SignalCallback mSignalCallback = + new NetworkController.SignalCallback() { + @Override + public void setIsAirplaneMode(NetworkController.IconState icon) { + update(); + } + }; + + private final TunerService.Tunable mTunable = (key, newValue) -> update(); + + + private final KeyguardUpdateMonitorCallback mKeyguardUpdateMonitorCallback = + new KeyguardUpdateMonitorCallback() { + @Override + public void onRefreshCarrierInfo() { + mView.updateText(getSubInfos()); + } + }; + + // TODO: do we even register this anywhere? + private final DemoModeCommandReceiver mDemoModeCommandReceiver = new DemoModeCommandReceiver() { + @Override + public void onDemoModeStarted() { + mView.setDemoMode(true); + } + + @Override + public void onDemoModeFinished() { + mView.setDemoMode(false); + update(); + } + + @Override + public void dispatchDemoCommand(String command, Bundle args) { + mView.setText(args.getString("name")); + } + }; + + static class SubInfo { + private final CharSequence mCarrierName; + private final int mSimState; + private final ServiceState mServiceState; + + private SubInfo(CharSequence carrierName, + int simState, ServiceState serviceState) { + mCarrierName = carrierName; + mSimState = simState; + mServiceState = serviceState; + } + + boolean simReady() { + return mSimState == TelephonyManager.SIM_STATE_READY; + } + + CharSequence getCarrierName() { + return mCarrierName; + } + + boolean stateInService() { + return mServiceState != null + && mServiceState.getState() == ServiceState.STATE_IN_SERVICE; + } + } +} diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java index 7610e6138ebbc..96c405866a683 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java @@ -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> 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 KeyguardStateController keyguardStateController, NetworkController networkController, StatusBarStateController statusBarStateController, - CommandQueue commandQueue + CommandQueue commandQueue, + OperatorNameViewController.Factory operatorNameViewControllerFactory ) { mOngoingCallController = ongoingCallController; mAnimationScheduler = animationScheduler; @@ -140,6 +144,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue mNetworkController = networkController; mStatusBarStateController = statusBarStateController; 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(); } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index 184c064afd5cf..5c1e648a0bd7b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -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; @@ -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 mKeyguardStateController, mNetworkController, mStatusBarStateController, - mCommandQueue + mCommandQueue, + mOperatorNameViewControllerFactory ), CollapsedStatusBarFragment.TAG) .commit(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java index 4074caaa2fb44..2a34794c5acfa 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java @@ -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, diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragmentTest.java index b051a5987fbcb..5f4670045ad64 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragmentTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragmentTest.java @@ -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; @@ -71,6 +73,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() { super(CollapsedStatusBarFragment.class); @@ -241,6 +245,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, @@ -253,7 +262,8 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest { mKeyguardStateController, mNetworkController, mStatusBarStateController, - mCommandQueue); + mCommandQueue, + mOperatorNameViewControllerFactory); } private void setUpNotificationIconAreaController() { diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewControllerTest.kt index 50cea073c7015..d63730d596d03 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewControllerTest.kt @@ -38,7 +38,6 @@ class PhoneStatusBarViewControllerTest : SysuiTestCase() { @Before fun setUp() { MockitoAnnotations.initMocks(this) - view = PhoneStatusBarView(mContext, null) controller = PhoneStatusBarViewController(view, commandQueue) } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java index 216be628620a9..079a621546dd7 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java @@ -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,