Loading src/java/com/android/internal/telephony/ServiceStateTracker.java +16 −6 Original line number Diff line number Diff line Loading @@ -1090,15 +1090,25 @@ public abstract class ServiceStateTracker extends Handler { } } /** * Check if device is non-roaming and always on home network. * * @param b carrier config bundle obtained from CarrierConfigManager * @return true if network is always on home network, false otherwise * @see CarrierConfigManager */ protected final boolean alwaysOnHomeNetwork(BaseBundle b) { return b.getBoolean(CarrierConfigManager.KEY_FORCE_HOME_NETWORK_BOOL); } /** * Check if the network identifier has membership in the set of * network identifiers stored in the carrier config bundle. * * @param b a carrier config bundle object * @param b carrier config bundle obtained from CarrierConfigManager * @param network The network identifier to check network existence in bundle * @param key The key to index into the bundle presenting a string array of * networks to check membership * * @return true if network has membership in bundle networks, false otherwise * @see CarrierConfigManager */ Loading @@ -1111,19 +1121,19 @@ public abstract class ServiceStateTracker extends Handler { return false; } protected boolean isRoamingInGsmNetwork(BaseBundle b, String network) { protected final boolean isRoamingInGsmNetwork(BaseBundle b, String network) { return isInNetwork(b, network, CarrierConfigManager.KEY_GSM_ROAMING_NETWORKS_STRING_ARRAY); } protected boolean isNonRoamingInGsmNetwork(BaseBundle b, String network) { protected final boolean isNonRoamingInGsmNetwork(BaseBundle b, String network) { return isInNetwork(b, network, CarrierConfigManager.KEY_GSM_NONROAMING_NETWORKS_STRING_ARRAY); } protected boolean isRoamingInCdmaNetwork(BaseBundle b, String network) { protected final boolean isRoamingInCdmaNetwork(BaseBundle b, String network) { return isInNetwork(b, network, CarrierConfigManager.KEY_CDMA_ROAMING_NETWORKS_STRING_ARRAY); } protected boolean isNonRoamingInCdmaNetwork(BaseBundle b, String network) { protected final boolean isNonRoamingInCdmaNetwork(BaseBundle b, String network) { return isInNetwork(b, network, CarrierConfigManager.KEY_CDMA_NONROAMING_NETWORKS_STRING_ARRAY); } } src/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java +19 −8 Original line number Diff line number Diff line Loading @@ -1120,21 +1120,19 @@ public class CdmaServiceStateTracker extends ServiceStateTracker { PersistableBundle b = configLoader.getConfigForSubId(mPhone.getSubId()); String systemId = Integer.toString(mNewSS.getSystemId()); if (isNonRoamingInGsmNetwork(b, mNewSS.getOperatorNumeric()) if (alwaysOnHomeNetwork(b)) { log("updateRoamingState: carrier config override always on home network"); setRoamingOff(); } else if (isNonRoamingInGsmNetwork(b, mNewSS.getOperatorNumeric()) || isNonRoamingInCdmaNetwork(b, systemId)) { log("updateRoamingState: carrier config override set non-roaming:" + mNewSS.getOperatorNumeric() + ", " + systemId); mNewSS.setVoiceRoaming(false); mNewSS.setDataRoaming(false); mNewSS.setCdmaEriIconIndex(EriInfo.ROAMING_INDICATOR_OFF); setRoamingOff(); } else if (isRoamingInGsmNetwork(b, mNewSS.getOperatorNumeric()) || isRoamingInCdmaNetwork(b, systemId)) { log("updateRoamingState: carrier config override set roaming:" + mNewSS.getOperatorNumeric() + ", " + systemId); mNewSS.setVoiceRoaming(true); mNewSS.setDataRoaming(true); mNewSS.setCdmaEriIconIndex(EriInfo.ROAMING_INDICATOR_ON); mNewSS.setCdmaEriIconMode(EriInfo.ROAMING_ICON_MODE_NORMAL); setRoamingOn(); } } catch (RemoteException e) { loge("updateRoamingState: unable to access carrier config service"); Loading @@ -1149,6 +1147,19 @@ public class CdmaServiceStateTracker extends ServiceStateTracker { } } private void setRoamingOn() { mNewSS.setVoiceRoaming(true); mNewSS.setDataRoaming(true); mNewSS.setCdmaEriIconIndex(EriInfo.ROAMING_INDICATOR_ON); mNewSS.setCdmaEriIconMode(EriInfo.ROAMING_ICON_MODE_NORMAL); } private void setRoamingOff() { mNewSS.setVoiceRoaming(false); mNewSS.setDataRoaming(false); mNewSS.setCdmaEriIconIndex(EriInfo.ROAMING_INDICATOR_OFF); } protected void pollStateDone() { if (DBG) log("pollStateDone: cdma oldSS=[" + mSS + "] newSS=[" + mNewSS + "]"); Loading src/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java +4 −1 Original line number Diff line number Diff line Loading @@ -880,7 +880,10 @@ final class GsmServiceStateTracker extends ServiceStateTracker { try { PersistableBundle b = configLoader.getConfigForSubId(mPhone.getSubId()); if (isNonRoamingInGsmNetwork(b, mNewSS.getOperatorNumeric())) { if (alwaysOnHomeNetwork(b)) { log("updateRoamingState: carrier config override always on home network"); roaming = false; } else if (isNonRoamingInGsmNetwork(b, mNewSS.getOperatorNumeric())) { log("updateRoamingState: carrier config override set non roaming:" + mNewSS.getOperatorNumeric()); roaming = false; Loading Loading
src/java/com/android/internal/telephony/ServiceStateTracker.java +16 −6 Original line number Diff line number Diff line Loading @@ -1090,15 +1090,25 @@ public abstract class ServiceStateTracker extends Handler { } } /** * Check if device is non-roaming and always on home network. * * @param b carrier config bundle obtained from CarrierConfigManager * @return true if network is always on home network, false otherwise * @see CarrierConfigManager */ protected final boolean alwaysOnHomeNetwork(BaseBundle b) { return b.getBoolean(CarrierConfigManager.KEY_FORCE_HOME_NETWORK_BOOL); } /** * Check if the network identifier has membership in the set of * network identifiers stored in the carrier config bundle. * * @param b a carrier config bundle object * @param b carrier config bundle obtained from CarrierConfigManager * @param network The network identifier to check network existence in bundle * @param key The key to index into the bundle presenting a string array of * networks to check membership * * @return true if network has membership in bundle networks, false otherwise * @see CarrierConfigManager */ Loading @@ -1111,19 +1121,19 @@ public abstract class ServiceStateTracker extends Handler { return false; } protected boolean isRoamingInGsmNetwork(BaseBundle b, String network) { protected final boolean isRoamingInGsmNetwork(BaseBundle b, String network) { return isInNetwork(b, network, CarrierConfigManager.KEY_GSM_ROAMING_NETWORKS_STRING_ARRAY); } protected boolean isNonRoamingInGsmNetwork(BaseBundle b, String network) { protected final boolean isNonRoamingInGsmNetwork(BaseBundle b, String network) { return isInNetwork(b, network, CarrierConfigManager.KEY_GSM_NONROAMING_NETWORKS_STRING_ARRAY); } protected boolean isRoamingInCdmaNetwork(BaseBundle b, String network) { protected final boolean isRoamingInCdmaNetwork(BaseBundle b, String network) { return isInNetwork(b, network, CarrierConfigManager.KEY_CDMA_ROAMING_NETWORKS_STRING_ARRAY); } protected boolean isNonRoamingInCdmaNetwork(BaseBundle b, String network) { protected final boolean isNonRoamingInCdmaNetwork(BaseBundle b, String network) { return isInNetwork(b, network, CarrierConfigManager.KEY_CDMA_NONROAMING_NETWORKS_STRING_ARRAY); } }
src/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java +19 −8 Original line number Diff line number Diff line Loading @@ -1120,21 +1120,19 @@ public class CdmaServiceStateTracker extends ServiceStateTracker { PersistableBundle b = configLoader.getConfigForSubId(mPhone.getSubId()); String systemId = Integer.toString(mNewSS.getSystemId()); if (isNonRoamingInGsmNetwork(b, mNewSS.getOperatorNumeric()) if (alwaysOnHomeNetwork(b)) { log("updateRoamingState: carrier config override always on home network"); setRoamingOff(); } else if (isNonRoamingInGsmNetwork(b, mNewSS.getOperatorNumeric()) || isNonRoamingInCdmaNetwork(b, systemId)) { log("updateRoamingState: carrier config override set non-roaming:" + mNewSS.getOperatorNumeric() + ", " + systemId); mNewSS.setVoiceRoaming(false); mNewSS.setDataRoaming(false); mNewSS.setCdmaEriIconIndex(EriInfo.ROAMING_INDICATOR_OFF); setRoamingOff(); } else if (isRoamingInGsmNetwork(b, mNewSS.getOperatorNumeric()) || isRoamingInCdmaNetwork(b, systemId)) { log("updateRoamingState: carrier config override set roaming:" + mNewSS.getOperatorNumeric() + ", " + systemId); mNewSS.setVoiceRoaming(true); mNewSS.setDataRoaming(true); mNewSS.setCdmaEriIconIndex(EriInfo.ROAMING_INDICATOR_ON); mNewSS.setCdmaEriIconMode(EriInfo.ROAMING_ICON_MODE_NORMAL); setRoamingOn(); } } catch (RemoteException e) { loge("updateRoamingState: unable to access carrier config service"); Loading @@ -1149,6 +1147,19 @@ public class CdmaServiceStateTracker extends ServiceStateTracker { } } private void setRoamingOn() { mNewSS.setVoiceRoaming(true); mNewSS.setDataRoaming(true); mNewSS.setCdmaEriIconIndex(EriInfo.ROAMING_INDICATOR_ON); mNewSS.setCdmaEriIconMode(EriInfo.ROAMING_ICON_MODE_NORMAL); } private void setRoamingOff() { mNewSS.setVoiceRoaming(false); mNewSS.setDataRoaming(false); mNewSS.setCdmaEriIconIndex(EriInfo.ROAMING_INDICATOR_OFF); } protected void pollStateDone() { if (DBG) log("pollStateDone: cdma oldSS=[" + mSS + "] newSS=[" + mNewSS + "]"); Loading
src/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java +4 −1 Original line number Diff line number Diff line Loading @@ -880,7 +880,10 @@ final class GsmServiceStateTracker extends ServiceStateTracker { try { PersistableBundle b = configLoader.getConfigForSubId(mPhone.getSubId()); if (isNonRoamingInGsmNetwork(b, mNewSS.getOperatorNumeric())) { if (alwaysOnHomeNetwork(b)) { log("updateRoamingState: carrier config override always on home network"); roaming = false; } else if (isNonRoamingInGsmNetwork(b, mNewSS.getOperatorNumeric())) { log("updateRoamingState: carrier config override set non roaming:" + mNewSS.getOperatorNumeric()); roaming = false; Loading