Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d33f8a1e authored by Jack Yu's avatar Jack Yu
Browse files

Set country code even when device is not registered on network

Extends the functionality of getNetworkCountryIso to support
no SIM/no service case. When no SIM/no service, it returns
the country code of nearby network (unregistered but cell info
is available to the device).

Test: Manual
Bug: 64335394
Merged-In: Ia32cbc9df9b9adf5d7c24c8b90be20063a94a514
Change-Id: Ia32cbc9df9b9adf5d7c24c8b90be20063a94a514
(cherry picked from commit ac36896f)
parent 03cdc95f
Loading
Loading
Loading
Loading
+9 −35
Original line number Diff line number Diff line
@@ -1810,24 +1810,23 @@ public class TelephonyManager {
    }

    /**
     * Returns the ISO country code equivalent of the current registered
     * operator's MCC (Mobile Country Code).
     * Returns the ISO country code equivalent of the MCC (Mobile Country Code) of the current
     * registered operator, or nearby cell information if not registered.
     * .
     * <p>
     * Availability: Only when user is registered to a network. Result may be
     * unreliable on CDMA networks (use {@link #getPhoneType()} to determine if
     * on a CDMA network).
     * Note: Result may be unreliable on CDMA networks (use {@link #getPhoneType()} to determine
     * if on a CDMA network).
     */
    public String getNetworkCountryIso() {
        return getNetworkCountryIsoForPhone(getPhoneId());
    }

    /**
     * Returns the ISO country code equivalent of the current registered
     * operator's MCC (Mobile Country Code) of a subscription.
     * Returns the ISO country code equivalent of the MCC (Mobile Country Code) of the current
     * registered operator, or nearby cell information if not registered.
     * <p>
     * Availability: Only when user is registered to a network. Result may be
     * unreliable on CDMA networks (use {@link #getPhoneType()} to determine if
     * on a CDMA network).
     * Note: Result may be unreliable on CDMA networks (use {@link #getPhoneType()} to determine
     * if on a CDMA network).
     *
     * @param subId for which Network CountryIso is returned
     * @hide
@@ -7027,31 +7026,6 @@ public class TelephonyManager {
        }
    }

    /**
     * Set the ISO country code equivalent of the current registered
     * operator's MCC (Mobile Country Code).
     * @param iso the ISO country code equivalent of the current registered
     * @hide
     */
    public void setNetworkCountryIso(String iso) {
        int phoneId = getPhoneId();
        setNetworkCountryIsoForPhone(phoneId, iso);
    }

    /**
     * Set the ISO country code equivalent of the current registered
     * operator's MCC (Mobile Country Code).
     * @param phoneId which phone you want to set
     * @param iso the ISO country code equivalent of the current registered
     * @hide
     */
    public void setNetworkCountryIsoForPhone(int phoneId, String iso) {
        if (SubscriptionManager.isValidPhoneId(phoneId)) {
            setTelephonyProperty(phoneId,
                    TelephonyProperties.PROPERTY_OPERATOR_ISO_COUNTRY, iso);
        }
    }

    /**
     * Set the network type currently in use on the device for data transmission.
     *