Merge "Change icon mappings in MobileSignalController"
This commit is contained in:
@@ -26,6 +26,7 @@ import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.os.Message;
|
||||
import android.provider.Settings.Global;
|
||||
import android.telephony.Annotation;
|
||||
import android.telephony.CellSignalStrength;
|
||||
import android.telephony.CellSignalStrengthCdma;
|
||||
import android.telephony.NetworkRegistrationInfo;
|
||||
@@ -38,7 +39,6 @@ import android.telephony.TelephonyManager;
|
||||
import android.text.Html;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.util.SparseArray;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.internal.telephony.TelephonyIntents;
|
||||
@@ -54,7 +54,9 @@ import com.android.systemui.statusbar.policy.NetworkControllerImpl.SubscriptionD
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import java.util.BitSet;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
@@ -77,12 +79,14 @@ public class MobileSignalController extends SignalController<
|
||||
final SubscriptionInfo mSubscriptionInfo;
|
||||
|
||||
// @VisibleForDemoMode
|
||||
final SparseArray<MobileIconGroup> mNetworkToIconLookup;
|
||||
final Map<String, MobileIconGroup> mNetworkToIconLookup;
|
||||
|
||||
// Since some pieces of the phone state are interdependent we store it locally,
|
||||
// this could potentially become part of MobileState for simplification/complication
|
||||
// of code.
|
||||
private int mDataNetType = TelephonyManager.NETWORK_TYPE_UNKNOWN;
|
||||
private boolean mCA = false;
|
||||
private boolean mCAPlus = false;
|
||||
private int mDataState = TelephonyManager.DATA_DISCONNECTED;
|
||||
private ServiceState mServiceState;
|
||||
private SignalStrength mSignalStrength;
|
||||
@@ -93,9 +97,6 @@ public class MobileSignalController extends SignalController<
|
||||
boolean mInflateSignalStrengths = false;
|
||||
@VisibleForTesting
|
||||
boolean mIsShowingIconGracefully = false;
|
||||
// Some specific carriers have 5GE network which is special LTE CA network.
|
||||
private static final int NETWORK_TYPE_LTE_CA_5GE =
|
||||
TelephonyManager.getAllNetworkTypes().length + 1;
|
||||
|
||||
// TODO: Reduce number of vars passed in, if we have the NetworkController, probably don't
|
||||
// need listener lists anymore.
|
||||
@@ -106,7 +107,7 @@ public class MobileSignalController extends SignalController<
|
||||
super("MobileSignalController(" + info.getSubscriptionId() + ")", context,
|
||||
NetworkCapabilities.TRANSPORT_CELLULAR, callbackHandler,
|
||||
networkController);
|
||||
mNetworkToIconLookup = new SparseArray<>();
|
||||
mNetworkToIconLookup = new HashMap<>();
|
||||
mConfig = config;
|
||||
mPhone = phone;
|
||||
mDefaults = defaults;
|
||||
@@ -210,29 +211,38 @@ public class MobileSignalController extends SignalController<
|
||||
private void mapIconSets() {
|
||||
mNetworkToIconLookup.clear();
|
||||
|
||||
mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_EVDO_0, TelephonyIcons.THREE_G);
|
||||
mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_EVDO_A, TelephonyIcons.THREE_G);
|
||||
mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_EVDO_B, TelephonyIcons.THREE_G);
|
||||
mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_EHRPD, TelephonyIcons.THREE_G);
|
||||
mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_UMTS, TelephonyIcons.THREE_G);
|
||||
mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_TD_SCDMA, TelephonyIcons.THREE_G);
|
||||
mNetworkToIconLookup.put(toIconKey(TelephonyManager.NETWORK_TYPE_EVDO_0),
|
||||
TelephonyIcons.THREE_G);
|
||||
mNetworkToIconLookup.put(toIconKey(TelephonyManager.NETWORK_TYPE_EVDO_A),
|
||||
TelephonyIcons.THREE_G);
|
||||
mNetworkToIconLookup.put(toIconKey(TelephonyManager.NETWORK_TYPE_EVDO_B),
|
||||
TelephonyIcons.THREE_G);
|
||||
mNetworkToIconLookup.put(toIconKey(TelephonyManager.NETWORK_TYPE_EHRPD),
|
||||
TelephonyIcons.THREE_G);
|
||||
mNetworkToIconLookup.put(toIconKey(TelephonyManager.NETWORK_TYPE_UMTS),
|
||||
TelephonyIcons.THREE_G);
|
||||
mNetworkToIconLookup.put(toIconKey(TelephonyManager.NETWORK_TYPE_TD_SCDMA),
|
||||
TelephonyIcons.THREE_G);
|
||||
|
||||
if (!mConfig.showAtLeast3G) {
|
||||
mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_UNKNOWN,
|
||||
mNetworkToIconLookup.put(toIconKey(TelephonyManager.NETWORK_TYPE_UNKNOWN),
|
||||
TelephonyIcons.UNKNOWN);
|
||||
mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_EDGE, TelephonyIcons.E);
|
||||
mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_CDMA, TelephonyIcons.ONE_X);
|
||||
mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_1xRTT, TelephonyIcons.ONE_X);
|
||||
mNetworkToIconLookup.put(toIconKey(TelephonyManager.NETWORK_TYPE_EDGE),
|
||||
TelephonyIcons.E);
|
||||
mNetworkToIconLookup.put(toIconKey(TelephonyManager.NETWORK_TYPE_CDMA),
|
||||
TelephonyIcons.ONE_X);
|
||||
mNetworkToIconLookup.put(toIconKey(TelephonyManager.NETWORK_TYPE_1xRTT),
|
||||
TelephonyIcons.ONE_X);
|
||||
|
||||
mDefaultIcons = TelephonyIcons.G;
|
||||
} else {
|
||||
mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_UNKNOWN,
|
||||
mNetworkToIconLookup.put(toIconKey(TelephonyManager.NETWORK_TYPE_UNKNOWN),
|
||||
TelephonyIcons.THREE_G);
|
||||
mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_EDGE,
|
||||
mNetworkToIconLookup.put(toIconKey(TelephonyManager.NETWORK_TYPE_EDGE),
|
||||
TelephonyIcons.THREE_G);
|
||||
mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_CDMA,
|
||||
mNetworkToIconLookup.put(toIconKey(TelephonyManager.NETWORK_TYPE_CDMA),
|
||||
TelephonyIcons.THREE_G);
|
||||
mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_1xRTT,
|
||||
mNetworkToIconLookup.put(toIconKey(TelephonyManager.NETWORK_TYPE_1xRTT),
|
||||
TelephonyIcons.THREE_G);
|
||||
mDefaultIcons = TelephonyIcons.THREE_G;
|
||||
}
|
||||
@@ -247,33 +257,59 @@ public class MobileSignalController extends SignalController<
|
||||
hPlusGroup = TelephonyIcons.H_PLUS;
|
||||
}
|
||||
|
||||
mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_HSDPA, hGroup);
|
||||
mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_HSUPA, hGroup);
|
||||
mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_HSPA, hGroup);
|
||||
mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_HSPAP, hPlusGroup);
|
||||
mNetworkToIconLookup.put(toIconKey(TelephonyManager.NETWORK_TYPE_HSDPA), hGroup);
|
||||
mNetworkToIconLookup.put(toIconKey(TelephonyManager.NETWORK_TYPE_HSUPA), hGroup);
|
||||
mNetworkToIconLookup.put(toIconKey(TelephonyManager.NETWORK_TYPE_HSPA), hGroup);
|
||||
mNetworkToIconLookup.put(toIconKey(TelephonyManager.NETWORK_TYPE_HSPAP), hPlusGroup);
|
||||
|
||||
if (mConfig.show4gForLte) {
|
||||
mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_LTE, TelephonyIcons.FOUR_G);
|
||||
mNetworkToIconLookup.put(toIconKey(TelephonyManager.NETWORK_TYPE_LTE),
|
||||
TelephonyIcons.FOUR_G);
|
||||
if (mConfig.hideLtePlus) {
|
||||
mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_LTE_CA,
|
||||
mNetworkToIconLookup.put(toIconKeyCA(TelephonyManager.NETWORK_TYPE_LTE),
|
||||
TelephonyIcons.FOUR_G);
|
||||
} else {
|
||||
mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_LTE_CA,
|
||||
mNetworkToIconLookup.put(toIconKeyCA(TelephonyManager.NETWORK_TYPE_LTE),
|
||||
TelephonyIcons.FOUR_G_PLUS);
|
||||
}
|
||||
} else {
|
||||
mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_LTE, TelephonyIcons.LTE);
|
||||
mNetworkToIconLookup.put(toIconKey(TelephonyManager.NETWORK_TYPE_LTE),
|
||||
TelephonyIcons.LTE);
|
||||
if (mConfig.hideLtePlus) {
|
||||
mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_LTE_CA,
|
||||
mNetworkToIconLookup.put(toIconKeyCA(TelephonyManager.NETWORK_TYPE_LTE),
|
||||
TelephonyIcons.LTE);
|
||||
} else {
|
||||
mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_LTE_CA,
|
||||
mNetworkToIconLookup.put(toIconKeyCA(TelephonyManager.NETWORK_TYPE_LTE),
|
||||
TelephonyIcons.LTE_PLUS);
|
||||
}
|
||||
}
|
||||
mNetworkToIconLookup.put(NETWORK_TYPE_LTE_CA_5GE,
|
||||
mNetworkToIconLookup.put(toIconKeyCAPlus(TelephonyManager.NETWORK_TYPE_LTE),
|
||||
TelephonyIcons.LTE_CA_5G_E);
|
||||
mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_IWLAN, TelephonyIcons.WFC);
|
||||
mNetworkToIconLookup.put(toIconKey(TelephonyManager.NETWORK_TYPE_IWLAN),
|
||||
TelephonyIcons.WFC);
|
||||
}
|
||||
|
||||
private String getIconKey() {
|
||||
if (mCA) {
|
||||
return toIconKeyCA(mDataNetType);
|
||||
} else if (mCAPlus) {
|
||||
return toIconKeyCAPlus(mDataNetType);
|
||||
} else {
|
||||
return toIconKey(mDataNetType);
|
||||
}
|
||||
}
|
||||
|
||||
// Some specific carriers have 5GE network which is special CA network.
|
||||
private String toIconKeyCAPlus(@Annotation.NetworkType int networkType) {
|
||||
return toIconKeyCA(networkType) + "_Plus";
|
||||
}
|
||||
|
||||
private String toIconKeyCA(@Annotation.NetworkType int networkType) {
|
||||
return toIconKey(networkType) + "_CA";
|
||||
}
|
||||
|
||||
private String toIconKey(@Annotation.NetworkType int networkType) {
|
||||
return Integer.toString(networkType);
|
||||
}
|
||||
|
||||
private void updateInflateSignalStrength() {
|
||||
@@ -527,10 +563,11 @@ public class MobileSignalController extends SignalController<
|
||||
nr5GIconGroup = adjustNr5GIconGroupByDisplayGraceTime(nr5GIconGroup);
|
||||
}
|
||||
|
||||
String iconKey = getIconKey();
|
||||
if (nr5GIconGroup != null) {
|
||||
mCurrentState.iconGroup = nr5GIconGroup;
|
||||
} else if (mNetworkToIconLookup.indexOfKey(mDataNetType) >= 0) {
|
||||
mCurrentState.iconGroup = mNetworkToIconLookup.get(mDataNetType);
|
||||
} else if (mNetworkToIconLookup.get(iconKey) != null) {
|
||||
mCurrentState.iconGroup = mNetworkToIconLookup.get(iconKey);
|
||||
} else {
|
||||
mCurrentState.iconGroup = mDefaultIcons;
|
||||
}
|
||||
@@ -683,6 +720,8 @@ public class MobileSignalController extends SignalController<
|
||||
pw.println(" mSignalStrength=" + mSignalStrength + ",");
|
||||
pw.println(" mDataState=" + mDataState + ",");
|
||||
pw.println(" mDataNetType=" + mDataNetType + ",");
|
||||
pw.println(" mCA=" + mCA + ",");
|
||||
pw.println(" mCAPlus=" + mCAPlus + ",");
|
||||
pw.println(" mInflateSignalStrengths=" + mInflateSignalStrengths + ",");
|
||||
pw.println(" isDataDisabled=" + isDataDisabled() + ",");
|
||||
pw.println(" mIsShowingIconGracefully=" + mIsShowingIconGracefully + ",");
|
||||
@@ -733,11 +772,13 @@ public class MobileSignalController extends SignalController<
|
||||
|
||||
private void updateDataNetType(int networkType) {
|
||||
mDataNetType = networkType;
|
||||
mCA = false;
|
||||
mCAPlus = false;
|
||||
if (mDataNetType == TelephonyManager.NETWORK_TYPE_LTE) {
|
||||
if (isCarrierSpecificDataIcon()) {
|
||||
mDataNetType = NETWORK_TYPE_LTE_CA_5GE;
|
||||
mCAPlus = true;
|
||||
} else if (mServiceState != null && mServiceState.isUsingCarrierAggregation()) {
|
||||
mDataNetType = TelephonyManager.NETWORK_TYPE_LTE_CA;
|
||||
mCA = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user