5/N Move KeyguardUpdateMonitor to OperatorNameViewController.
Bug: 196625757 Test: manual Change-Id: Ib9181eeac5eda86b3a2701b08bbde21bdffe56fc
This commit is contained in:
@@ -15,32 +15,18 @@
|
|||||||
package com.android.systemui.statusbar;
|
package com.android.systemui.statusbar;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
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 java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/** Shows the operator name */
|
/** Shows the operator name */
|
||||||
public class OperatorNameView extends TextView {
|
public class OperatorNameView extends TextView {
|
||||||
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);
|
||||||
}
|
}
|
||||||
@@ -53,24 +39,12 @@ public class OperatorNameView extends TextView {
|
|||||||
super(context, attrs, defStyle);
|
super(context, attrs, defStyle);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onAttachedToWindow() {
|
|
||||||
super.onAttachedToWindow();
|
|
||||||
mKeyguardUpdateMonitor = Dependency.get(KeyguardUpdateMonitor.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onDetachedFromWindow() {
|
|
||||||
super.onDetachedFromWindow();
|
|
||||||
mKeyguardUpdateMonitor.removeCallback(mCallback);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void setDemoMode(boolean demoMode) {
|
void setDemoMode(boolean demoMode) {
|
||||||
mDemoMode = demoMode;
|
mDemoMode = demoMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
void update(boolean showOperatorName, boolean hasMobile) {
|
void update(boolean showOperatorName, boolean hasMobile,
|
||||||
|
List<OperatorNameViewController.SubInfo> subs) {
|
||||||
setVisibility(showOperatorName ? VISIBLE : GONE);
|
setVisibility(showOperatorName ? VISIBLE : GONE);
|
||||||
|
|
||||||
boolean airplaneMode = WirelessUtils.isAirplaneModeOn(mContext);
|
boolean airplaneMode = WirelessUtils.isAirplaneModeOn(mContext);
|
||||||
@@ -81,22 +55,19 @@ public class OperatorNameView extends TextView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,15 +17,22 @@
|
|||||||
package com.android.systemui.statusbar;
|
package com.android.systemui.statusbar;
|
||||||
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.telephony.ServiceState;
|
||||||
|
import android.telephony.SubscriptionInfo;
|
||||||
import android.telephony.TelephonyManager;
|
import android.telephony.TelephonyManager;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
|
import com.android.keyguard.KeyguardUpdateMonitor;
|
||||||
|
import com.android.keyguard.KeyguardUpdateMonitorCallback;
|
||||||
import com.android.systemui.demomode.DemoModeCommandReceiver;
|
import com.android.systemui.demomode.DemoModeCommandReceiver;
|
||||||
import com.android.systemui.plugins.DarkIconDispatcher;
|
import com.android.systemui.plugins.DarkIconDispatcher;
|
||||||
import com.android.systemui.statusbar.policy.NetworkController;
|
import com.android.systemui.statusbar.policy.NetworkController;
|
||||||
import com.android.systemui.tuner.TunerService;
|
import com.android.systemui.tuner.TunerService;
|
||||||
import com.android.systemui.util.ViewController;
|
import com.android.systemui.util.ViewController;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
/** Controller for {@link OperatorNameView}. */
|
/** Controller for {@link OperatorNameView}. */
|
||||||
@@ -36,17 +43,20 @@ public class OperatorNameViewController extends ViewController<OperatorNameView>
|
|||||||
private final NetworkController mNetworkController;
|
private final NetworkController mNetworkController;
|
||||||
private final TunerService mTunerService;
|
private final TunerService mTunerService;
|
||||||
private final TelephonyManager mTelephonyManager;
|
private final TelephonyManager mTelephonyManager;
|
||||||
|
private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
|
||||||
|
|
||||||
private OperatorNameViewController(OperatorNameView view,
|
private OperatorNameViewController(OperatorNameView view,
|
||||||
DarkIconDispatcher darkIconDispatcher,
|
DarkIconDispatcher darkIconDispatcher,
|
||||||
NetworkController networkController,
|
NetworkController networkController,
|
||||||
TunerService tunerService,
|
TunerService tunerService,
|
||||||
TelephonyManager telephonyManager) {
|
TelephonyManager telephonyManager,
|
||||||
|
KeyguardUpdateMonitor keyguardUpdateMonitor) {
|
||||||
super(view);
|
super(view);
|
||||||
mDarkIconDispatcher = darkIconDispatcher;
|
mDarkIconDispatcher = darkIconDispatcher;
|
||||||
mNetworkController = networkController;
|
mNetworkController = networkController;
|
||||||
mTunerService = tunerService;
|
mTunerService = tunerService;
|
||||||
mTelephonyManager = telephonyManager;
|
mTelephonyManager = telephonyManager;
|
||||||
|
mKeyguardUpdateMonitor = keyguardUpdateMonitor;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -54,6 +64,7 @@ public class OperatorNameViewController extends ViewController<OperatorNameView>
|
|||||||
mDarkIconDispatcher.addDarkReceiver(mDarkReceiver);
|
mDarkIconDispatcher.addDarkReceiver(mDarkReceiver);
|
||||||
mNetworkController.addCallback(mSignalCallback);
|
mNetworkController.addCallback(mSignalCallback);
|
||||||
mTunerService.addTunable(mTunable, KEY_SHOW_OPERATOR_NAME);
|
mTunerService.addTunable(mTunable, KEY_SHOW_OPERATOR_NAME);
|
||||||
|
mKeyguardUpdateMonitor.registerCallback(mKeyguardUpdateMonitorCallback);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -61,11 +72,28 @@ public class OperatorNameViewController extends ViewController<OperatorNameView>
|
|||||||
mDarkIconDispatcher.removeDarkReceiver(mDarkReceiver);
|
mDarkIconDispatcher.removeDarkReceiver(mDarkReceiver);
|
||||||
mNetworkController.removeCallback(mSignalCallback);
|
mNetworkController.removeCallback(mSignalCallback);
|
||||||
mTunerService.removeTunable(mTunable);
|
mTunerService.removeTunable(mTunable);
|
||||||
|
mKeyguardUpdateMonitor.removeCallback(mKeyguardUpdateMonitorCallback);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void update() {
|
private void update() {
|
||||||
mView.update(mTunerService.getValue(KEY_SHOW_OPERATOR_NAME, 1) != 0,
|
mView.update(mTunerService.getValue(KEY_SHOW_OPERATOR_NAME, 1) != 0,
|
||||||
mTelephonyManager.isDataCapable());
|
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}. */
|
/** Factory for constructing an {@link OperatorNameViewController}. */
|
||||||
@@ -74,20 +102,23 @@ public class OperatorNameViewController extends ViewController<OperatorNameView>
|
|||||||
private final NetworkController mNetworkController;
|
private final NetworkController mNetworkController;
|
||||||
private final TunerService mTunerService;
|
private final TunerService mTunerService;
|
||||||
private final TelephonyManager mTelephonyManager;
|
private final TelephonyManager mTelephonyManager;
|
||||||
|
private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public Factory(DarkIconDispatcher darkIconDispatcher, NetworkController networkController,
|
public Factory(DarkIconDispatcher darkIconDispatcher, NetworkController networkController,
|
||||||
TunerService tunerService, TelephonyManager telephonyManager) {
|
TunerService tunerService, TelephonyManager telephonyManager,
|
||||||
|
KeyguardUpdateMonitor keyguardUpdateMonitor) {
|
||||||
mDarkIconDispatcher = darkIconDispatcher;
|
mDarkIconDispatcher = darkIconDispatcher;
|
||||||
mNetworkController = networkController;
|
mNetworkController = networkController;
|
||||||
mTunerService = tunerService;
|
mTunerService = tunerService;
|
||||||
mTelephonyManager = telephonyManager;
|
mTelephonyManager = telephonyManager;
|
||||||
|
mKeyguardUpdateMonitor = keyguardUpdateMonitor;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Create an {@link OperatorNameViewController}. */
|
/** Create an {@link OperatorNameViewController}. */
|
||||||
public OperatorNameViewController create(OperatorNameView view) {
|
public OperatorNameViewController create(OperatorNameView view) {
|
||||||
return new OperatorNameViewController(view, mDarkIconDispatcher, mNetworkController,
|
return new OperatorNameViewController(view, mDarkIconDispatcher, mNetworkController,
|
||||||
mTunerService, mTelephonyManager);
|
mTunerService, mTelephonyManager, mKeyguardUpdateMonitor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -114,6 +145,15 @@ public class OperatorNameViewController extends ViewController<OperatorNameView>
|
|||||||
|
|
||||||
private final TunerService.Tunable mTunable = (key, newValue) -> 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?
|
// TODO: do we even register this anywhere?
|
||||||
private final DemoModeCommandReceiver mDemoModeCommandReceiver = new DemoModeCommandReceiver() {
|
private final DemoModeCommandReceiver mDemoModeCommandReceiver = new DemoModeCommandReceiver() {
|
||||||
@Override
|
@Override
|
||||||
@@ -132,4 +172,30 @@ public class OperatorNameViewController extends ViewController<OperatorNameView>
|
|||||||
mView.setText(args.getString("name"));
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user