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:
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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() {
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user