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.HotspotController;
import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.statusbar.policy.LocationController; 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.NextAlarmController;
import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler; import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler;
import com.android.systemui.statusbar.policy.RotationLockController; import com.android.systemui.statusbar.policy.RotationLockController;
@@ -244,7 +243,6 @@ public class Dependency {
@Inject Lazy<BluetoothController> mBluetoothController; @Inject Lazy<BluetoothController> mBluetoothController;
@Inject Lazy<LocationController> mLocationController; @Inject Lazy<LocationController> mLocationController;
@Inject Lazy<RotationLockController> mRotationLockController; @Inject Lazy<RotationLockController> mRotationLockController;
@Inject Lazy<NetworkController> mNetworkController;
@Inject Lazy<ZenModeController> mZenModeController; @Inject Lazy<ZenModeController> mZenModeController;
@Inject Lazy<HotspotController> mHotspotController; @Inject Lazy<HotspotController> mHotspotController;
@Inject Lazy<CastController> mCastController; @Inject Lazy<CastController> mCastController;
@@ -389,8 +387,6 @@ public class Dependency {
mProviders.put(RotationLockController.class, mRotationLockController::get); mProviders.put(RotationLockController.class, mRotationLockController::get);
mProviders.put(NetworkController.class, mNetworkController::get);
mProviders.put(ZenModeController.class, mZenModeController::get); mProviders.put(ZenModeController.class, mZenModeController::get);
mProviders.put(HotspotController.class, mHotspotController::get); mProviders.put(HotspotController.class, mHotspotController::get);

View File

@@ -15,46 +15,18 @@
package com.android.systemui.statusbar; package com.android.systemui.statusbar;
import android.content.Context; 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.text.TextUtils;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.widget.TextView; import android.widget.TextView;
import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.keyguard.KeyguardUpdateMonitorCallback;
import com.android.settingslib.WirelessUtils; 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; import java.util.List;
/** Shows the operator name */ /** Shows the operator name */
public class OperatorNameView extends TextView implements DemoModeCommandReceiver, DarkReceiver, public class OperatorNameView extends TextView {
SignalCallback, Tunable {
private static final String KEY_SHOW_OPERATOR_NAME = "show_operator_name";
private KeyguardUpdateMonitor mKeyguardUpdateMonitor;
private boolean mDemoMode; private boolean mDemoMode;
private final KeyguardUpdateMonitorCallback mCallback = new KeyguardUpdateMonitorCallback() {
@Override
public void onRefreshCarrierInfo() {
updateText();
}
};
public OperatorNameView(Context context) { public OperatorNameView(Context context) {
this(context, null); this(context, null);
} }
@@ -67,62 +39,14 @@ public class OperatorNameView extends TextView implements DemoModeCommandReceive
super(context, attrs, defStyle); super(context, attrs, defStyle);
} }
@Override void setDemoMode(boolean demoMode) {
protected void onAttachedToWindow() { mDemoMode = demoMode;
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);
} }
@Override void update(boolean showOperatorName, boolean hasMobile,
protected void onDetachedFromWindow() { List<OperatorNameViewController.SubInfo> subs) {
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;
setVisibility(showOperatorName ? VISIBLE : GONE); setVisibility(showOperatorName ? VISIBLE : GONE);
boolean hasMobile = mContext.getSystemService(TelephonyManager.class).isDataCapable();
boolean airplaneMode = WirelessUtils.isAirplaneModeOn(mContext); boolean airplaneMode = WirelessUtils.isAirplaneModeOn(mContext);
if (!hasMobile || airplaneMode) { if (!hasMobile || airplaneMode) {
setText(null); setText(null);
@@ -131,22 +55,19 @@ public class OperatorNameView extends TextView implements DemoModeCommandReceive
} }
if (!mDemoMode) { if (!mDemoMode) {
updateText(); updateText(subs);
} }
} }
private void updateText() { void updateText(List<OperatorNameViewController.SubInfo> subs) {
CharSequence displayText = null; CharSequence displayText = null;
List<SubscriptionInfo> subs = mKeyguardUpdateMonitor.getFilteredSubscriptionInfo(false);
final int N = subs.size(); final int N = subs.size();
for (int i = 0; i < N; i++) { for (int i = 0; i < N; i++) {
int subId = subs.get(i).getSubscriptionId(); OperatorNameViewController.SubInfo subInfo = subs.get(i);
int simState = mKeyguardUpdateMonitor.getSimState(subId);
CharSequence carrierName = subs.get(i).getCarrierName(); CharSequence carrierName = subs.get(i).getCarrierName();
if (!TextUtils.isEmpty(carrierName) && simState == TelephonyManager.SIM_STATE_READY) { if (!TextUtils.isEmpty(carrierName) && subInfo.simReady()) {
ServiceState ss = mKeyguardUpdateMonitor.getServiceState(subId); if (subInfo.stateInService()) {
if (ss != null && ss.getState() == ServiceState.STATE_IN_SERVICE) { displayText = subInfo.getCarrierName();
displayText = carrierName;
break; 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.flags.FeatureFlags;
import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.CommandQueue; 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.StatusBarState;
import com.android.systemui.statusbar.events.SystemStatusAnimationCallback; import com.android.systemui.statusbar.events.SystemStatusAnimationCallback;
import com.android.systemui.statusbar.events.SystemStatusAnimationScheduler; import com.android.systemui.statusbar.events.SystemStatusAnimationScheduler;
@@ -90,8 +92,8 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
private int mDisabled2; private int mDisabled2;
private Lazy<Optional<StatusBar>> mStatusBarOptionalLazy; private Lazy<Optional<StatusBar>> mStatusBarOptionalLazy;
private DarkIconManager mDarkIconManager; private DarkIconManager mDarkIconManager;
private View mOperatorNameFrame;
private final CommandQueue mCommandQueue; private final CommandQueue mCommandQueue;
private final OperatorNameViewController.Factory mOperatorNameViewControllerFactory;
private final OngoingCallController mOngoingCallController; private final OngoingCallController mOngoingCallController;
private final SystemStatusAnimationScheduler mAnimationScheduler; private final SystemStatusAnimationScheduler mAnimationScheduler;
private final StatusBarLocationPublisher mLocationPublisher; private final StatusBarLocationPublisher mLocationPublisher;
@@ -114,6 +116,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
disable(getContext().getDisplayId(), mDisabled1, mDisabled2, animate); disable(getContext().getDisplayId(), mDisabled1, mDisabled2, animate);
} }
}; };
private OperatorNameViewController mOperatorNameViewController;
@Inject @Inject
public CollapsedStatusBarFragment( public CollapsedStatusBarFragment(
@@ -127,7 +130,8 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
KeyguardStateController keyguardStateController, KeyguardStateController keyguardStateController,
NetworkController networkController, NetworkController networkController,
StatusBarStateController statusBarStateController, StatusBarStateController statusBarStateController,
CommandQueue commandQueue CommandQueue commandQueue,
OperatorNameViewController.Factory operatorNameViewControllerFactory
) { ) {
mOngoingCallController = ongoingCallController; mOngoingCallController = ongoingCallController;
mAnimationScheduler = animationScheduler; mAnimationScheduler = animationScheduler;
@@ -140,6 +144,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
mNetworkController = networkController; mNetworkController = networkController;
mStatusBarStateController = statusBarStateController; mStatusBarStateController = statusBarStateController;
mCommandQueue = commandQueue; mCommandQueue = commandQueue;
mOperatorNameViewControllerFactory = operatorNameViewControllerFactory;
} }
@Override @Override
@@ -411,14 +416,14 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
} }
public void hideOperatorName(boolean animate) { public void hideOperatorName(boolean animate) {
if (mOperatorNameFrame != null) { if (mOperatorNameViewController != null) {
animateHide(mOperatorNameFrame, animate); animateHide(mOperatorNameViewController.getView(), animate);
} }
} }
public void showOperatorName(boolean animate) { public void showOperatorName(boolean animate) {
if (mOperatorNameFrame != null) { if (mOperatorNameViewController != null) {
animateShow(mOperatorNameFrame, animate); animateShow(mOperatorNameViewController.getView(), animate);
} }
} }
@@ -495,7 +500,9 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
private void initOperatorName() { private void initOperatorName() {
if (getResources().getBoolean(R.bool.config_showOperatorNameInStatusBar)) { if (getResources().getBoolean(R.bool.config_showOperatorNameInStatusBar)) {
ViewStub stub = mStatusBar.findViewById(R.id.operator_name); 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.NotificationShadeWindowController;
import com.android.systemui.statusbar.NotificationShelfController; import com.android.systemui.statusbar.NotificationShelfController;
import com.android.systemui.statusbar.NotificationViewHierarchyManager; import com.android.systemui.statusbar.NotificationViewHierarchyManager;
import com.android.systemui.statusbar.OperatorNameViewController;
import com.android.systemui.statusbar.PowerButtonReveal; import com.android.systemui.statusbar.PowerButtonReveal;
import com.android.systemui.statusbar.PulseExpansionHandler; import com.android.systemui.statusbar.PulseExpansionHandler;
import com.android.systemui.statusbar.StatusBarState; import com.android.systemui.statusbar.StatusBarState;
@@ -523,6 +524,7 @@ public class StatusBar extends SystemUI implements
// settings // settings
private QSPanelController mQSPanelController; private QSPanelController mQSPanelController;
private final OperatorNameViewController.Factory mOperatorNameViewControllerFactory;
KeyguardIndicationController mKeyguardIndicationController; KeyguardIndicationController mKeyguardIndicationController;
private View mReportRejectedTouch; private View mReportRejectedTouch;
@@ -862,6 +864,7 @@ public class StatusBar extends SystemUI implements
KeyguardDismissUtil keyguardDismissUtil, KeyguardDismissUtil keyguardDismissUtil,
ExtensionController extensionController, ExtensionController extensionController,
UserInfoControllerImpl userInfoControllerImpl, UserInfoControllerImpl userInfoControllerImpl,
OperatorNameViewController.Factory operatorNameViewControllerFactory,
PhoneStatusBarPolicy phoneStatusBarPolicy, PhoneStatusBarPolicy phoneStatusBarPolicy,
KeyguardIndicationController keyguardIndicationController, KeyguardIndicationController keyguardIndicationController,
DemoModeController demoModeController, DemoModeController demoModeController,
@@ -892,6 +895,7 @@ public class StatusBar extends SystemUI implements
mKeyguardBypassController = keyguardBypassController; mKeyguardBypassController = keyguardBypassController;
mKeyguardStateController = keyguardStateController; mKeyguardStateController = keyguardStateController;
mHeadsUpManager = headsUpManagerPhone; mHeadsUpManager = headsUpManagerPhone;
mOperatorNameViewControllerFactory = operatorNameViewControllerFactory;
mKeyguardIndicationController = keyguardIndicationController; mKeyguardIndicationController = keyguardIndicationController;
mStatusBarTouchableRegionManager = statusBarTouchableRegionManager; mStatusBarTouchableRegionManager = statusBarTouchableRegionManager;
mDynamicPrivacyController = dynamicPrivacyController; mDynamicPrivacyController = dynamicPrivacyController;
@@ -1282,7 +1286,8 @@ public class StatusBar extends SystemUI implements
mKeyguardStateController, mKeyguardStateController,
mNetworkController, mNetworkController,
mStatusBarStateController, mStatusBarStateController,
mCommandQueue mCommandQueue,
mOperatorNameViewControllerFactory
), ),
CollapsedStatusBarFragment.TAG) CollapsedStatusBarFragment.TAG)
.commit(); .commit();

View File

@@ -55,6 +55,7 @@ import com.android.systemui.statusbar.NotificationRemoteInputManager;
import com.android.systemui.statusbar.NotificationShadeDepthController; import com.android.systemui.statusbar.NotificationShadeDepthController;
import com.android.systemui.statusbar.NotificationShadeWindowController; import com.android.systemui.statusbar.NotificationShadeWindowController;
import com.android.systemui.statusbar.NotificationViewHierarchyManager; import com.android.systemui.statusbar.NotificationViewHierarchyManager;
import com.android.systemui.statusbar.OperatorNameViewController;
import com.android.systemui.statusbar.PulseExpansionHandler; import com.android.systemui.statusbar.PulseExpansionHandler;
import com.android.systemui.statusbar.SuperStatusBarViewFactory; import com.android.systemui.statusbar.SuperStatusBarViewFactory;
import com.android.systemui.statusbar.SysuiStatusBarStateController; 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.NetworkController;
import com.android.systemui.statusbar.policy.UserInfoControllerImpl; import com.android.systemui.statusbar.policy.UserInfoControllerImpl;
import com.android.systemui.statusbar.policy.UserSwitcherController; import com.android.systemui.statusbar.policy.UserSwitcherController;
import com.android.systemui.unfold.UnfoldLightRevealOverlayAnimation;
import com.android.systemui.tuner.TunerService; import com.android.systemui.tuner.TunerService;
import com.android.systemui.unfold.UnfoldLightRevealOverlayAnimation;
import com.android.systemui.volume.VolumeComponent; import com.android.systemui.volume.VolumeComponent;
import com.android.systemui.wmshell.BubblesManager; import com.android.systemui.wmshell.BubblesManager;
import com.android.unfold.config.UnfoldTransitionConfig; import com.android.unfold.config.UnfoldTransitionConfig;
@@ -199,6 +200,7 @@ public interface StatusBarPhoneModule {
KeyguardDismissUtil keyguardDismissUtil, KeyguardDismissUtil keyguardDismissUtil,
ExtensionController extensionController, ExtensionController extensionController,
UserInfoControllerImpl userInfoControllerImpl, UserInfoControllerImpl userInfoControllerImpl,
OperatorNameViewController.Factory operatorNameViewControllerFactory,
PhoneStatusBarPolicy phoneStatusBarPolicy, PhoneStatusBarPolicy phoneStatusBarPolicy,
KeyguardIndicationController keyguardIndicationController, KeyguardIndicationController keyguardIndicationController,
DemoModeController demoModeController, DemoModeController demoModeController,
@@ -288,6 +290,7 @@ public interface StatusBarPhoneModule {
keyguardDismissUtil, keyguardDismissUtil,
extensionController, extensionController,
userInfoControllerImpl, userInfoControllerImpl,
operatorNameViewControllerFactory,
phoneStatusBarPolicy, phoneStatusBarPolicy,
keyguardIndicationController, keyguardIndicationController,
demoModeController, demoModeController,

View File

@@ -17,6 +17,7 @@ package com.android.systemui.statusbar.phone;
import static android.view.Display.DEFAULT_DISPLAY; import static android.view.Display.DEFAULT_DISPLAY;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Matchers.eq; import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.atLeast; import static org.mockito.Mockito.atLeast;
import static org.mockito.Mockito.mock; 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.flags.FeatureFlags;
import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.OperatorNameViewController;
import com.android.systemui.statusbar.events.SystemStatusAnimationScheduler; import com.android.systemui.statusbar.events.SystemStatusAnimationScheduler;
import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallController; import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallController;
import com.android.systemui.statusbar.policy.KeyguardStateController; 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 StatusBar mStatusBar = mock(StatusBar.class);
private final CommandQueue mCommandQueue = mock(CommandQueue.class); private final CommandQueue mCommandQueue = mock(CommandQueue.class);
private OperatorNameViewController.Factory mOperatorNameViewControllerFactory;
private OperatorNameViewController mOperatorNameViewController;
public CollapsedStatusBarFragmentTest() { public CollapsedStatusBarFragmentTest() {
super(CollapsedStatusBarFragment.class); super(CollapsedStatusBarFragment.class);
@@ -241,6 +245,11 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {
mNetworkController = mock(NetworkController.class); mNetworkController = mock(NetworkController.class);
mStatusBarStateController = mock(StatusBarStateController.class); mStatusBarStateController = mock(StatusBarStateController.class);
mKeyguardStateController = mock(KeyguardStateController.class); mKeyguardStateController = mock(KeyguardStateController.class);
mOperatorNameViewController = mock(OperatorNameViewController.class);
mOperatorNameViewControllerFactory = mock(OperatorNameViewController.Factory.class);
when(mOperatorNameViewControllerFactory.create(any()))
.thenReturn(mOperatorNameViewController);
setUpNotificationIconAreaController(); setUpNotificationIconAreaController();
return new CollapsedStatusBarFragment( return new CollapsedStatusBarFragment(
mOngoingCallController, mOngoingCallController,
@@ -253,7 +262,8 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {
mKeyguardStateController, mKeyguardStateController,
mNetworkController, mNetworkController,
mStatusBarStateController, mStatusBarStateController,
mCommandQueue); mCommandQueue,
mOperatorNameViewControllerFactory);
} }
private void setUpNotificationIconAreaController() { private void setUpNotificationIconAreaController() {

View File

@@ -38,7 +38,6 @@ class PhoneStatusBarViewControllerTest : SysuiTestCase() {
@Before @Before
fun setUp() { fun setUp() {
MockitoAnnotations.initMocks(this) MockitoAnnotations.initMocks(this)
view = PhoneStatusBarView(mContext, null) view = PhoneStatusBarView(mContext, null)
controller = PhoneStatusBarViewController(view, commandQueue) 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.NotificationShadeDepthController;
import com.android.systemui.statusbar.NotificationShadeWindowController; import com.android.systemui.statusbar.NotificationShadeWindowController;
import com.android.systemui.statusbar.NotificationViewHierarchyManager; import com.android.systemui.statusbar.NotificationViewHierarchyManager;
import com.android.systemui.statusbar.OperatorNameViewController;
import com.android.systemui.statusbar.PulseExpansionHandler; import com.android.systemui.statusbar.PulseExpansionHandler;
import com.android.systemui.statusbar.StatusBarState; import com.android.systemui.statusbar.StatusBarState;
import com.android.systemui.statusbar.StatusBarStateControllerImpl; 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.NetworkController;
import com.android.systemui.statusbar.policy.UserInfoControllerImpl; import com.android.systemui.statusbar.policy.UserInfoControllerImpl;
import com.android.systemui.statusbar.policy.UserSwitcherController; import com.android.systemui.statusbar.policy.UserSwitcherController;
import com.android.systemui.unfold.UnfoldLightRevealOverlayAnimation;
import com.android.systemui.tuner.TunerService; import com.android.systemui.tuner.TunerService;
import com.android.systemui.unfold.UnfoldLightRevealOverlayAnimation;
import com.android.systemui.util.concurrency.FakeExecutor; import com.android.systemui.util.concurrency.FakeExecutor;
import com.android.systemui.util.time.FakeSystemClock; import com.android.systemui.util.time.FakeSystemClock;
import com.android.systemui.volume.VolumeComponent; import com.android.systemui.volume.VolumeComponent;
@@ -267,6 +268,8 @@ public class StatusBarTest extends SysuiTestCase {
@Mock private UnlockedScreenOffAnimationController mUnlockedScreenOffAnimationController; @Mock private UnlockedScreenOffAnimationController mUnlockedScreenOffAnimationController;
@Mock private TunerService mTunerService; @Mock private TunerService mTunerService;
@Mock private StartingSurface mStartingSurface; @Mock private StartingSurface mStartingSurface;
@Mock private OperatorNameViewController mOperatorNameViewController;
@Mock private OperatorNameViewController.Factory mOperatorNameViewControllerFactory;
private ShadeController mShadeController; private ShadeController mShadeController;
private FakeExecutor mUiBgExecutor = new FakeExecutor(new FakeSystemClock()); private FakeExecutor mUiBgExecutor = new FakeExecutor(new FakeSystemClock());
private InitController mInitController = new InitController(); private InitController mInitController = new InitController();
@@ -345,6 +348,9 @@ public class StatusBarTest extends SysuiTestCase {
mStatusBarKeyguardViewManager, mContext.getSystemService(WindowManager.class), mStatusBarKeyguardViewManager, mContext.getSystemService(WindowManager.class),
() -> Optional.of(mStatusBar), () -> mAssistManager, Optional.of(mBubbles)); () -> Optional.of(mStatusBar), () -> mAssistManager, Optional.of(mBubbles));
when(mOperatorNameViewControllerFactory.create(any()))
.thenReturn(mOperatorNameViewController);
mStatusBar = new StatusBar( mStatusBar = new StatusBar(
mContext, mContext,
mNotificationsController, mNotificationsController,
@@ -413,6 +419,7 @@ public class StatusBarTest extends SysuiTestCase {
mKeyguardDismissUtil, mKeyguardDismissUtil,
mExtensionController, mExtensionController,
mUserInfoControllerImpl, mUserInfoControllerImpl,
mOperatorNameViewControllerFactory,
mPhoneStatusBarPolicy, mPhoneStatusBarPolicy,
mKeyguardIndicationController, mKeyguardIndicationController,
mDemoModeController, mDemoModeController,