Loading src/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java +19 −1 Original line number Diff line number Diff line Loading @@ -746,7 +746,8 @@ final class GsmServiceStateTracker extends ServiceStateTracker { * agreements and MVNO's. */ boolean roaming = (mGsmRoaming || mDataRoaming); if ((mGsmRoaming && isSameNamedOperators(mNewSS)) if ((mGsmRoaming && isSameNamedOperators(mNewSS) && !isSameNamedOperatorConsideredRoaming(mNewSS)) || isOperatorConsideredNonRoaming(mNewSS)) { roaming = false; } Loading Loading @@ -1372,6 +1373,23 @@ final class GsmServiceStateTracker extends ServiceStateTracker { return false; } private boolean isSameNamedOperatorConsideredRoaming(ServiceState s) { String operatorNumeric = s.getOperatorNumeric(); String[] numericArray = mPhone.getContext().getResources().getStringArray( com.android.internal.R.array.config_sameNamedOperatorConsideredRoaming); if (numericArray.length == 0 || operatorNumeric == null) return false; for (String numeric : numericArray) { if (operatorNumeric.startsWith(numeric)) return true; else return false; } return false; } /** * @return The current GPRS state. IN_SERVICE is the same as "attached" * and OUT_OF_SERVICE is the same as detached. Loading Loading
src/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java +19 −1 Original line number Diff line number Diff line Loading @@ -746,7 +746,8 @@ final class GsmServiceStateTracker extends ServiceStateTracker { * agreements and MVNO's. */ boolean roaming = (mGsmRoaming || mDataRoaming); if ((mGsmRoaming && isSameNamedOperators(mNewSS)) if ((mGsmRoaming && isSameNamedOperators(mNewSS) && !isSameNamedOperatorConsideredRoaming(mNewSS)) || isOperatorConsideredNonRoaming(mNewSS)) { roaming = false; } Loading Loading @@ -1372,6 +1373,23 @@ final class GsmServiceStateTracker extends ServiceStateTracker { return false; } private boolean isSameNamedOperatorConsideredRoaming(ServiceState s) { String operatorNumeric = s.getOperatorNumeric(); String[] numericArray = mPhone.getContext().getResources().getStringArray( com.android.internal.R.array.config_sameNamedOperatorConsideredRoaming); if (numericArray.length == 0 || operatorNumeric == null) return false; for (String numeric : numericArray) { if (operatorNumeric.startsWith(numeric)) return true; else return false; } return false; } /** * @return The current GPRS state. IN_SERVICE is the same as "attached" * and OUT_OF_SERVICE is the same as detached. Loading