Merge "Add carrier config support to operator name in statusbar" into tm-dev am: 32e1fa353b
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17201785 Change-Id: If5779ea46274d10651835bfbf200592b8ce9ac5e Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -65,6 +65,7 @@ import android.safetycenter.SafetyCenterManager;
|
||||
import android.service.dreams.DreamService;
|
||||
import android.service.dreams.IDreamManager;
|
||||
import android.telecom.TelecomManager;
|
||||
import android.telephony.CarrierConfigManager;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.view.CrossWindowBlurListeners;
|
||||
@@ -450,6 +451,12 @@ public class FrameworkServicesModule {
|
||||
return context.getSystemService(OverlayManager.class);
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
static CarrierConfigManager provideCarrierConfigManager(Context context) {
|
||||
return context.getSystemService(CarrierConfigManager.class);
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
static WindowManager provideWindowManager(Context context) {
|
||||
|
||||
@@ -21,8 +21,6 @@ import android.widget.TextView;
|
||||
|
||||
import com.android.settingslib.WirelessUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/** Shows the operator name */
|
||||
public class OperatorNameView extends TextView {
|
||||
private boolean mDemoMode;
|
||||
@@ -43,8 +41,10 @@ public class OperatorNameView extends TextView {
|
||||
mDemoMode = demoMode;
|
||||
}
|
||||
|
||||
void update(boolean showOperatorName, boolean hasMobile,
|
||||
List<OperatorNameViewController.SubInfo> subs) {
|
||||
void update(boolean showOperatorName,
|
||||
boolean hasMobile,
|
||||
OperatorNameViewController.SubInfo sub
|
||||
) {
|
||||
setVisibility(showOperatorName ? VISIBLE : GONE);
|
||||
|
||||
boolean airplaneMode = WirelessUtils.isAirplaneModeOn(mContext);
|
||||
@@ -55,24 +55,21 @@ public class OperatorNameView extends TextView {
|
||||
}
|
||||
|
||||
if (!mDemoMode) {
|
||||
updateText(subs);
|
||||
updateText(sub);
|
||||
}
|
||||
}
|
||||
|
||||
void updateText(List<OperatorNameViewController.SubInfo> subs) {
|
||||
void updateText(OperatorNameViewController.SubInfo subInfo) {
|
||||
CharSequence carrierName = null;
|
||||
CharSequence displayText = null;
|
||||
final int N = subs.size();
|
||||
for (int i = 0; i < N; i++) {
|
||||
OperatorNameViewController.SubInfo subInfo = subs.get(i);
|
||||
CharSequence carrierName = subs.get(i).getCarrierName();
|
||||
if (!TextUtils.isEmpty(carrierName) && subInfo.simReady()) {
|
||||
if (subInfo.stateInService()) {
|
||||
displayText = subInfo.getCarrierName();
|
||||
break;
|
||||
}
|
||||
if (subInfo != null) {
|
||||
carrierName = subInfo.getCarrierName();
|
||||
}
|
||||
if (!TextUtils.isEmpty(carrierName) && subInfo.simReady()) {
|
||||
if (subInfo.stateInService()) {
|
||||
displayText = carrierName;
|
||||
}
|
||||
}
|
||||
|
||||
setText(displayText);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import android.annotation.NonNull;
|
||||
import android.os.Bundle;
|
||||
import android.telephony.ServiceState;
|
||||
import android.telephony.SubscriptionInfo;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.view.View;
|
||||
|
||||
@@ -30,12 +31,11 @@ import com.android.systemui.plugins.DarkIconDispatcher;
|
||||
import com.android.systemui.statusbar.connectivity.IconState;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController;
|
||||
import com.android.systemui.statusbar.connectivity.SignalCallback;
|
||||
import com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment;
|
||||
import com.android.systemui.tuner.TunerService;
|
||||
import com.android.systemui.util.CarrierConfigTracker;
|
||||
import com.android.systemui.util.ViewController;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
/** Controller for {@link OperatorNameView}. */
|
||||
@@ -47,19 +47,22 @@ public class OperatorNameViewController extends ViewController<OperatorNameView>
|
||||
private final TunerService mTunerService;
|
||||
private final TelephonyManager mTelephonyManager;
|
||||
private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
|
||||
private final CarrierConfigTracker mCarrierConfigTracker;
|
||||
|
||||
private OperatorNameViewController(OperatorNameView view,
|
||||
DarkIconDispatcher darkIconDispatcher,
|
||||
NetworkController networkController,
|
||||
TunerService tunerService,
|
||||
TelephonyManager telephonyManager,
|
||||
KeyguardUpdateMonitor keyguardUpdateMonitor) {
|
||||
KeyguardUpdateMonitor keyguardUpdateMonitor,
|
||||
CarrierConfigTracker carrierConfigTracker) {
|
||||
super(view);
|
||||
mDarkIconDispatcher = darkIconDispatcher;
|
||||
mNetworkController = networkController;
|
||||
mTunerService = tunerService;
|
||||
mTelephonyManager = telephonyManager;
|
||||
mKeyguardUpdateMonitor = keyguardUpdateMonitor;
|
||||
mCarrierConfigTracker = carrierConfigTracker;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -79,24 +82,22 @@ public class OperatorNameViewController extends ViewController<OperatorNameView>
|
||||
}
|
||||
|
||||
private void update() {
|
||||
mView.update(mTunerService.getValue(KEY_SHOW_OPERATOR_NAME, 1) != 0,
|
||||
mTelephonyManager.isDataCapable(), getSubInfos());
|
||||
SubInfo defaultSubInfo = getDefaultSubInfo();
|
||||
boolean showOperatorName =
|
||||
mCarrierConfigTracker
|
||||
.getShowOperatorNameInStatusBarConfig(defaultSubInfo.getSubId())
|
||||
&& (mTunerService.getValue(KEY_SHOW_OPERATOR_NAME, 1) != 0);
|
||||
mView.update(showOperatorName, mTelephonyManager.isDataCapable(), getDefaultSubInfo());
|
||||
}
|
||||
|
||||
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;
|
||||
private SubInfo getDefaultSubInfo() {
|
||||
int defaultSubId = SubscriptionManager.getDefaultDataSubscriptionId();
|
||||
SubscriptionInfo sI = mKeyguardUpdateMonitor.getSubscriptionInfoForSubId(defaultSubId);
|
||||
return new SubInfo(
|
||||
sI.getSubscriptionId(),
|
||||
sI.getCarrierName(),
|
||||
mKeyguardUpdateMonitor.getSimState(defaultSubId),
|
||||
mKeyguardUpdateMonitor.getServiceState(defaultSubId));
|
||||
}
|
||||
|
||||
/** Factory for constructing an {@link OperatorNameViewController}. */
|
||||
@@ -106,22 +107,32 @@ public class OperatorNameViewController extends ViewController<OperatorNameView>
|
||||
private final TunerService mTunerService;
|
||||
private final TelephonyManager mTelephonyManager;
|
||||
private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
|
||||
private final CarrierConfigTracker mCarrierConfigTracker;
|
||||
|
||||
@Inject
|
||||
public Factory(DarkIconDispatcher darkIconDispatcher, NetworkController networkController,
|
||||
TunerService tunerService, TelephonyManager telephonyManager,
|
||||
KeyguardUpdateMonitor keyguardUpdateMonitor) {
|
||||
public Factory(DarkIconDispatcher darkIconDispatcher,
|
||||
NetworkController networkController,
|
||||
TunerService tunerService,
|
||||
TelephonyManager telephonyManager,
|
||||
KeyguardUpdateMonitor keyguardUpdateMonitor,
|
||||
CarrierConfigTracker carrierConfigTracker) {
|
||||
mDarkIconDispatcher = darkIconDispatcher;
|
||||
mNetworkController = networkController;
|
||||
mTunerService = tunerService;
|
||||
mTelephonyManager = telephonyManager;
|
||||
mKeyguardUpdateMonitor = keyguardUpdateMonitor;
|
||||
mCarrierConfigTracker = carrierConfigTracker;
|
||||
}
|
||||
|
||||
/** Create an {@link OperatorNameViewController}. */
|
||||
public OperatorNameViewController create(OperatorNameView view) {
|
||||
return new OperatorNameViewController(view, mDarkIconDispatcher, mNetworkController,
|
||||
mTunerService, mTelephonyManager, mKeyguardUpdateMonitor);
|
||||
return new OperatorNameViewController(view,
|
||||
mDarkIconDispatcher,
|
||||
mNetworkController,
|
||||
mTunerService,
|
||||
mTelephonyManager,
|
||||
mKeyguardUpdateMonitor,
|
||||
mCarrierConfigTracker);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -152,7 +163,7 @@ public class OperatorNameViewController extends ViewController<OperatorNameView>
|
||||
new KeyguardUpdateMonitorCallback() {
|
||||
@Override
|
||||
public void onRefreshCarrierInfo() {
|
||||
mView.updateText(getSubInfos());
|
||||
mView.updateText(getDefaultSubInfo());
|
||||
}
|
||||
};
|
||||
|
||||
@@ -176,17 +187,26 @@ public class OperatorNameViewController extends ViewController<OperatorNameView>
|
||||
};
|
||||
|
||||
static class SubInfo {
|
||||
private final int mSubId;
|
||||
private final CharSequence mCarrierName;
|
||||
private final int mSimState;
|
||||
private final ServiceState mServiceState;
|
||||
|
||||
private SubInfo(CharSequence carrierName,
|
||||
int simState, ServiceState serviceState) {
|
||||
private SubInfo(
|
||||
int subId,
|
||||
CharSequence carrierName,
|
||||
int simState,
|
||||
ServiceState serviceState) {
|
||||
mSubId = subId;
|
||||
mCarrierName = carrierName;
|
||||
mSimState = simState;
|
||||
mServiceState = serviceState;
|
||||
}
|
||||
|
||||
int getSubId() {
|
||||
return mSubId;
|
||||
}
|
||||
|
||||
boolean simReady() {
|
||||
return mSimState == TelephonyManager.SIM_STATE_READY;
|
||||
}
|
||||
|
||||
@@ -61,6 +61,7 @@ import com.android.systemui.statusbar.policy.BatteryController;
|
||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
import com.android.systemui.tuner.TunerService;
|
||||
import com.android.systemui.util.CarrierConfigTracker;
|
||||
import com.android.systemui.util.settings.SecureSettings;
|
||||
|
||||
import java.util.concurrent.Executor;
|
||||
@@ -263,6 +264,7 @@ public abstract class StatusBarViewModule {
|
||||
NetworkController networkController,
|
||||
StatusBarStateController statusBarStateController,
|
||||
CommandQueue commandQueue,
|
||||
CarrierConfigTracker carrierConfigTracker,
|
||||
CollapsedStatusBarFragmentLogger collapsedStatusBarFragmentLogger,
|
||||
OperatorNameViewController.Factory operatorNameViewControllerFactory,
|
||||
SecureSettings secureSettings,
|
||||
@@ -282,6 +284,7 @@ public abstract class StatusBarViewModule {
|
||||
networkController,
|
||||
statusBarStateController,
|
||||
commandQueue,
|
||||
carrierConfigTracker,
|
||||
collapsedStatusBarFragmentLogger,
|
||||
operatorNameViewControllerFactory,
|
||||
secureSettings,
|
||||
|
||||
@@ -32,6 +32,7 @@ import android.database.ContentObserver;
|
||||
import android.os.Bundle;
|
||||
import android.os.Parcelable;
|
||||
import android.provider.Settings;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.util.SparseArray;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
@@ -69,6 +70,9 @@ import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallListener;
|
||||
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
|
||||
import com.android.systemui.statusbar.policy.EncryptionHelper;
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
import com.android.systemui.util.CarrierConfigTracker;
|
||||
import com.android.systemui.util.CarrierConfigTracker.CarrierConfigChangedListener;
|
||||
import com.android.systemui.util.CarrierConfigTracker.DefaultDataSubscriptionChangedListener;
|
||||
import com.android.systemui.util.settings.SecureSettings;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -115,6 +119,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
||||
private final NotificationIconAreaController mNotificationIconAreaController;
|
||||
private final PanelExpansionStateManager mPanelExpansionStateManager;
|
||||
private final StatusBarIconController mStatusBarIconController;
|
||||
private final CarrierConfigTracker mCarrierConfigTracker;
|
||||
private final StatusBarHideIconsForBouncerManager mStatusBarHideIconsForBouncerManager;
|
||||
private final SecureSettings mSecureSettings;
|
||||
private final Executor mMainExecutor;
|
||||
@@ -137,6 +142,28 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
||||
private OperatorNameViewController mOperatorNameViewController;
|
||||
private StatusBarSystemEventAnimator mSystemEventAnimator;
|
||||
|
||||
private final CarrierConfigChangedListener mCarrierConfigCallback =
|
||||
new CarrierConfigChangedListener() {
|
||||
@Override
|
||||
public void onCarrierConfigChanged() {
|
||||
if (mOperatorNameViewController == null) {
|
||||
initOperatorName();
|
||||
} else {
|
||||
// Already initialized, KeyguardUpdateMonitorCallback will handle the update
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
private final DefaultDataSubscriptionChangedListener mDefaultDataListener =
|
||||
new DefaultDataSubscriptionChangedListener() {
|
||||
@Override
|
||||
public void onDefaultSubscriptionChanged(int subId) {
|
||||
if (mOperatorNameViewController == null) {
|
||||
initOperatorName();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@SuppressLint("ValidFragment")
|
||||
public CollapsedStatusBarFragment(
|
||||
StatusBarFragmentComponent.Factory statusBarFragmentComponentFactory,
|
||||
@@ -153,6 +180,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
||||
NetworkController networkController,
|
||||
StatusBarStateController statusBarStateController,
|
||||
CommandQueue commandQueue,
|
||||
CarrierConfigTracker carrierConfigTracker,
|
||||
CollapsedStatusBarFragmentLogger collapsedStatusBarFragmentLogger,
|
||||
OperatorNameViewController.Factory operatorNameViewControllerFactory,
|
||||
SecureSettings secureSettings,
|
||||
@@ -172,6 +200,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
||||
mNetworkController = networkController;
|
||||
mStatusBarStateController = statusBarStateController;
|
||||
mCommandQueue = commandQueue;
|
||||
mCarrierConfigTracker = carrierConfigTracker;
|
||||
mCollapsedStatusBarFragmentLogger = collapsedStatusBarFragmentLogger;
|
||||
mOperatorNameViewControllerFactory = operatorNameViewControllerFactory;
|
||||
mSecureSettings = secureSettings;
|
||||
@@ -212,6 +241,8 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
||||
initNotificationIconArea();
|
||||
mSystemEventAnimator =
|
||||
new StatusBarSystemEventAnimator(mSystemIconArea, getResources());
|
||||
mCarrierConfigTracker.addCallback(mCarrierConfigCallback);
|
||||
mCarrierConfigTracker.addDefaultDataSubscriptionChangedListener(mDefaultDataListener);
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
@@ -283,6 +314,8 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
||||
if (mNetworkController.hasEmergencyCryptKeeperText()) {
|
||||
mNetworkController.removeCallback(mSignalCallback);
|
||||
}
|
||||
mCarrierConfigTracker.removeCallback(mCarrierConfigCallback);
|
||||
mCarrierConfigTracker.removeDataSubscriptionChangedListener(mDefaultDataListener);
|
||||
}
|
||||
|
||||
/** Initializes views related to the notification icon area. */
|
||||
@@ -569,11 +602,16 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
||||
}
|
||||
|
||||
private void initOperatorName() {
|
||||
if (getResources().getBoolean(R.bool.config_showOperatorNameInStatusBar)) {
|
||||
int subId = SubscriptionManager.getDefaultDataSubscriptionId();
|
||||
if (mCarrierConfigTracker.getShowOperatorNameInStatusBarConfig(subId)) {
|
||||
ViewStub stub = mStatusBar.findViewById(R.id.operator_name);
|
||||
mOperatorNameViewController =
|
||||
mOperatorNameViewControllerFactory.create((OperatorNameView) stub.inflate());
|
||||
mOperatorNameViewController.init();
|
||||
// This view should not be visible on lock-screen
|
||||
if (mKeyguardStateController.isShowing()) {
|
||||
hideOperatorName(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -23,43 +23,73 @@ import android.content.IntentFilter;
|
||||
import android.os.PersistableBundle;
|
||||
import android.telephony.CarrierConfigManager;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.util.ArraySet;
|
||||
import android.util.SparseBooleanArray;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.android.internal.telephony.TelephonyIntents;
|
||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.statusbar.policy.CallbackController;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
/**
|
||||
* Tracks the Carrier Config values.
|
||||
* Tracks CarrierConfigs for each subId, as well as the default configuration. CarrierConfigurations
|
||||
* do not trigger a device configuration event, so any UI that relies on carrier configurations must
|
||||
* register with the tracker to get proper updates.
|
||||
*
|
||||
* The tracker also listens for `TelephonyIntents.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED`
|
||||
*
|
||||
* @see CarrierConfigChangedListener to listen for updates
|
||||
*/
|
||||
@SysUISingleton
|
||||
public class CarrierConfigTracker extends BroadcastReceiver {
|
||||
public class CarrierConfigTracker
|
||||
extends BroadcastReceiver
|
||||
implements CallbackController<CarrierConfigTracker.CarrierConfigChangedListener> {
|
||||
private final SparseBooleanArray mCallStrengthConfigs = new SparseBooleanArray();
|
||||
private final SparseBooleanArray mNoCallingConfigs = new SparseBooleanArray();
|
||||
private final SparseBooleanArray mCarrierProvisionsWifiMergedNetworks =
|
||||
new SparseBooleanArray();
|
||||
private final SparseBooleanArray mShowOperatorNameConfigs = new SparseBooleanArray();
|
||||
private final CarrierConfigManager mCarrierConfigManager;
|
||||
private final Set<CarrierConfigChangedListener> mListeners = new ArraySet<>();
|
||||
private final Set<DefaultDataSubscriptionChangedListener> mDataListeners =
|
||||
new ArraySet<>();
|
||||
private boolean mDefaultCallStrengthConfigLoaded;
|
||||
private boolean mDefaultCallStrengthConfig;
|
||||
private boolean mDefaultNoCallingConfigLoaded;
|
||||
private boolean mDefaultNoCallingConfig;
|
||||
private boolean mDefaultCarrierProvisionsWifiMergedNetworksLoaded;
|
||||
private boolean mDefaultCarrierProvisionsWifiMergedNetworks;
|
||||
private boolean mDefaultShowOperatorNameConfigLoaded;
|
||||
private boolean mDefaultShowOperatorNameConfig;
|
||||
|
||||
@Inject
|
||||
public CarrierConfigTracker(Context context, BroadcastDispatcher broadcastDispatcher) {
|
||||
mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class);
|
||||
broadcastDispatcher.registerReceiver(
|
||||
this, new IntentFilter(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED));
|
||||
public CarrierConfigTracker(
|
||||
CarrierConfigManager carrierConfigManager,
|
||||
BroadcastDispatcher broadcastDispatcher) {
|
||||
mCarrierConfigManager = carrierConfigManager;
|
||||
IntentFilter filter = new IntentFilter();
|
||||
filter.addAction(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED);
|
||||
filter.addAction(TelephonyIntents.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED);
|
||||
broadcastDispatcher.registerReceiver(this, filter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
if (!CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED.equals(intent.getAction())) {
|
||||
return;
|
||||
String action = intent.getAction();
|
||||
if (CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED.equals(action)) {
|
||||
updateFromNewCarrierConfig(intent);
|
||||
} else if (TelephonyIntents.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED.equals(action)) {
|
||||
updateDefaultDataSubscription(intent);
|
||||
}
|
||||
}
|
||||
|
||||
private void updateFromNewCarrierConfig(Intent intent) {
|
||||
final int subId = intent.getIntExtra(
|
||||
CarrierConfigManager.EXTRA_SUBSCRIPTION_INDEX,
|
||||
SubscriptionManager.INVALID_SUBSCRIPTION_ID);
|
||||
@@ -84,6 +114,29 @@ public class CarrierConfigTracker extends BroadcastReceiver {
|
||||
mCarrierProvisionsWifiMergedNetworks.put(subId, config.getBoolean(
|
||||
CarrierConfigManager.KEY_CARRIER_PROVISIONS_WIFI_MERGED_NETWORKS_BOOL));
|
||||
}
|
||||
synchronized (mShowOperatorNameConfigs) {
|
||||
mShowOperatorNameConfigs.put(subId, config.getBoolean(
|
||||
CarrierConfigManager.KEY_SHOW_OPERATOR_NAME_IN_STATUSBAR_BOOL));
|
||||
}
|
||||
|
||||
notifyCarrierConfigChanged();
|
||||
}
|
||||
|
||||
private void updateDefaultDataSubscription(Intent intent) {
|
||||
int subId = intent.getIntExtra(SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX, -1);
|
||||
notifyDefaultDataSubscriptionChanged(subId);
|
||||
}
|
||||
|
||||
private void notifyCarrierConfigChanged() {
|
||||
for (CarrierConfigChangedListener l : mListeners) {
|
||||
l.onCarrierConfigChanged();
|
||||
}
|
||||
}
|
||||
|
||||
private void notifyDefaultDataSubscriptionChanged(int subId) {
|
||||
for (DefaultDataSubscriptionChangedListener l : mDataListeners) {
|
||||
l.onDefaultSubscriptionChanged(subId);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -139,4 +192,73 @@ public class CarrierConfigTracker extends BroadcastReceiver {
|
||||
}
|
||||
return mDefaultCarrierProvisionsWifiMergedNetworks;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the KEY_SHOW_OPERATOR_NAME_IN_STATUSBAR_BOOL value for the default config
|
||||
*/
|
||||
public boolean getShowOperatorNameInStatusBarConfigDefault() {
|
||||
if (!mDefaultShowOperatorNameConfigLoaded) {
|
||||
mDefaultShowOperatorNameConfig = CarrierConfigManager.getDefaultConfig().getBoolean(
|
||||
CarrierConfigManager.KEY_SHOW_OPERATOR_NAME_IN_STATUSBAR_BOOL);
|
||||
mDefaultShowOperatorNameConfigLoaded = true;
|
||||
}
|
||||
|
||||
return mDefaultShowOperatorNameConfig;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the KEY_SHOW_OPERATOR_NAME_IN_STATUSBAR_BOOL value for the given subId, or the
|
||||
* default value if no override exists
|
||||
*
|
||||
* @param subId the subscription id for which to query the config
|
||||
*/
|
||||
public boolean getShowOperatorNameInStatusBarConfig(int subId) {
|
||||
if (mShowOperatorNameConfigs.indexOfKey(subId) >= 0) {
|
||||
return mShowOperatorNameConfigs.get(subId);
|
||||
} else {
|
||||
return getShowOperatorNameInStatusBarConfigDefault();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addCallback(@NonNull CarrierConfigChangedListener listener) {
|
||||
mListeners.add(listener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeCallback(@NonNull CarrierConfigChangedListener listener) {
|
||||
mListeners.remove(listener);
|
||||
}
|
||||
|
||||
/** */
|
||||
public void addDefaultDataSubscriptionChangedListener(
|
||||
@NonNull DefaultDataSubscriptionChangedListener listener) {
|
||||
mDataListeners.add(listener);
|
||||
}
|
||||
|
||||
/** */
|
||||
public void removeDataSubscriptionChangedListener(
|
||||
DefaultDataSubscriptionChangedListener listener) {
|
||||
mDataListeners.remove(listener);
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when carrier config changes
|
||||
*/
|
||||
public interface CarrierConfigChangedListener {
|
||||
/** */
|
||||
void onCarrierConfigChanged();
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when the default data subscription changes. Listeners may want to query
|
||||
* subId-dependent configuration values when this event happens
|
||||
*/
|
||||
public interface DefaultDataSubscriptionChangedListener {
|
||||
/**
|
||||
* @param subId the new default data subscription id per
|
||||
* {@link SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX}
|
||||
*/
|
||||
void onDefaultSubscriptionChanged(int subId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,6 +59,7 @@ import com.android.systemui.statusbar.phone.fragment.dagger.StatusBarFragmentCom
|
||||
import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallController;
|
||||
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
import com.android.systemui.util.CarrierConfigTracker;
|
||||
import com.android.systemui.util.concurrency.FakeExecutor;
|
||||
import com.android.systemui.util.settings.SecureSettings;
|
||||
import com.android.systemui.util.time.FakeSystemClock;
|
||||
@@ -90,6 +91,7 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {
|
||||
private OperatorNameViewController mOperatorNameViewController;
|
||||
private SecureSettings mSecureSettings;
|
||||
private FakeExecutor mExecutor = new FakeExecutor(new FakeSystemClock());
|
||||
private final CarrierConfigTracker mCarrierConfigTracker = mock(CarrierConfigTracker.class);
|
||||
|
||||
@Mock
|
||||
private StatusBarFragmentComponent.Factory mStatusBarFragmentComponentFactory;
|
||||
@@ -373,6 +375,7 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {
|
||||
mNetworkController,
|
||||
mStatusBarStateController,
|
||||
mCommandQueue,
|
||||
mCarrierConfigTracker,
|
||||
new CollapsedStatusBarFragmentLogger(
|
||||
new LogBuffer("TEST", 1, 1, mock(LogcatEchoTracker.class)),
|
||||
new DisableFlagsLogger()
|
||||
|
||||
@@ -1958,6 +1958,13 @@ public class CarrierConfigManager {
|
||||
public static final String KEY_NR_ADVANCED_THRESHOLD_BANDWIDTH_KHZ_INT =
|
||||
"nr_advanced_threshold_bandwidth_khz_int";
|
||||
|
||||
/**
|
||||
* Boolean indicating if operator name should be shown in the status bar
|
||||
* @hide
|
||||
*/
|
||||
public static final String KEY_SHOW_OPERATOR_NAME_IN_STATUSBAR_BOOL =
|
||||
"show_operator_name_in_statusbar_bool";
|
||||
|
||||
/**
|
||||
* The string is used to filter redundant string from PLMN Network Name that's supplied by
|
||||
* specific carrier.
|
||||
@@ -8913,6 +8920,7 @@ public class CarrierConfigManager {
|
||||
sDefaults.putStringArray(KEY_SUPPORT_TDSCDMA_ROAMING_NETWORKS_STRING_ARRAY, null);
|
||||
sDefaults.putBoolean(KEY_WORLD_MODE_ENABLED_BOOL, false);
|
||||
sDefaults.putString(KEY_CARRIER_SETTINGS_ACTIVITY_COMPONENT_NAME_STRING, "");
|
||||
sDefaults.putBoolean(KEY_SHOW_OPERATOR_NAME_IN_STATUSBAR_BOOL, false);
|
||||
sDefaults.putBoolean(KEY_CARRIER_CONFIG_APPLIED_BOOL, false);
|
||||
sDefaults.putBoolean(KEY_CHECK_PRICING_WITH_CARRIER_FOR_DATA_ROAMING_BOOL, false);
|
||||
sDefaults.putBoolean(KEY_SHOW_DATA_CONNECTED_ROAMING_NOTIFICATION_BOOL, false);
|
||||
|
||||
Reference in New Issue
Block a user