Merge changes from topic "b196625757-operator-name-view" into sc-v2-dev

* changes:
  6/6 Remove NetworkController from Dependency.
  5/N Move KeyguardUpdateMonitor to OperatorNameViewController.
  4/N Move Tunable to OperatorNameViewController
  3/N Move SignalCallback to OperatorNameViewController.
  2/N Move DarkModeReceiver to OperatorNameViewController.
  1/N Add an OperatorNameViewController.
This commit is contained in:
Dave Mankoff
2021-08-18 02:34:53 +00:00
committed by Android (Google) Code Review
9 changed files with 255 additions and 106 deletions

View File

@@ -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<BluetoothController> mBluetoothController;
@Inject Lazy<LocationController> mLocationController;
@Inject Lazy<RotationLockController> mRotationLockController;
@Inject Lazy<NetworkController> mNetworkController;
@Inject Lazy<ZenModeController> mZenModeController;
@Inject Lazy<HotspotController> mHotspotController;
@Inject Lazy<CastController> 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);

View File

@@ -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<OperatorNameViewController.SubInfo> 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<OperatorNameViewController.SubInfo> subs) {
CharSequence displayText = null;
List<SubscriptionInfo> 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;
}
}

View File

@@ -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<OperatorNameView> {
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<SubInfo> getSubInfos() {
List<SubInfo> result = new ArrayList<>();
List<SubscriptionInfo> 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;
}
}
}

View File

@@ -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
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();
}
}

View File

@@ -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();

View File

@@ -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,

View File

@@ -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() {

View File

@@ -38,7 +38,6 @@ class PhoneStatusBarViewControllerTest : SysuiTestCase() {
@Before
fun setUp() {
MockitoAnnotations.initMocks(this)
view = PhoneStatusBarView(mContext, null)
controller = PhoneStatusBarViewController(view, commandQueue)
}

View File

@@ -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,