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

Commit ed7eead2 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Add isMobileDataEnabled in TelephonyManager."

parents 2f37060e ffbaa9de
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -40732,11 +40732,12 @@ package android.telephony {
    method public java.lang.String iccTransmitApduBasicChannel(int, int, int, int, int, java.lang.String);
    method public java.lang.String iccTransmitApduLogicalChannel(int, int, int, int, int, int, java.lang.String);
    method public boolean isConcurrentVoiceAndDataSupported();
    method public boolean isDataEnabled();
    method public deprecated boolean isDataEnabled();
    method public boolean isHearingAidCompatibilitySupported();
    method public boolean isNetworkRoaming();
    method public boolean isSmsCapable();
    method public deprecated boolean isTtyModeSupported();
    method public boolean isUserMobileDataEnabled();
    method public boolean isVoiceCapable();
    method public boolean isVoicemailVibrationEnabled(android.telecom.PhoneAccountHandle);
    method public boolean isWorldPhone();
@@ -40746,12 +40747,13 @@ package android.telephony {
    method public java.lang.String sendEnvelopeWithStatus(java.lang.String);
    method public void sendUssdRequest(java.lang.String, android.telephony.TelephonyManager.UssdResponseCallback, android.os.Handler);
    method public void sendVisualVoicemailSms(java.lang.String, int, java.lang.String, android.app.PendingIntent);
    method public void setDataEnabled(boolean);
    method public deprecated void setDataEnabled(boolean);
    method public boolean setLine1NumberForDisplay(java.lang.String, java.lang.String);
    method public void setNetworkSelectionModeAutomatic();
    method public boolean setNetworkSelectionModeManual(java.lang.String, boolean);
    method public boolean setOperatorBrandOverride(java.lang.String);
    method public boolean setPreferredNetworkTypeToGlobal();
    method public void setUserMobileDataEnabled(boolean);
    method public void setVisualVoicemailSmsFilterSettings(android.telephony.VisualVoicemailSmsFilterSettings);
    method public boolean setVoiceMailNumber(java.lang.String, java.lang.String);
    method public deprecated void setVoicemailRingtoneUri(android.telecom.PhoneAccountHandle, android.net.Uri);
+1 −1
Original line number Diff line number Diff line
@@ -4039,7 +4039,7 @@ package android.telephony {
    method public deprecated boolean isVisualVoicemailEnabled(android.telecom.PhoneAccountHandle);
    method public boolean needsOtaServiceProvisioning();
    method public int setAllowedCarriers(int, java.util.List<android.service.carrier.CarrierIdentifier>);
    method public void setDataEnabled(int, boolean);
    method public deprecated void setDataEnabled(int, boolean);
    method public boolean setRadio(boolean);
    method public boolean setRadioPower(boolean);
    method public deprecated void setVisualVoicemailEnabled(android.telecom.PhoneAccountHandle, boolean);
+1 −1
Original line number Diff line number Diff line
@@ -1794,7 +1794,7 @@ public class ConnectivityManager {
                ITelephony it = ITelephony.Stub.asInterface(b);
                int subId = SubscriptionManager.getDefaultDataSubscriptionId();
                Log.d("ConnectivityManager", "getMobileDataEnabled()+ subId=" + subId);
                boolean retVal = it.getDataEnabled(subId);
                boolean retVal = it.isUserDataEnabled(subId);
                Log.d("ConnectivityManager", "getMobileDataEnabled()- subId=" + subId
                        + " retVal=" + retVal);
                return retVal;
+116 −27
Original line number Diff line number Diff line
@@ -5676,39 +5676,38 @@ public class TelephonyManager {
     * @param enable Whether to enable mobile data.
     *
     * @see #hasCarrierPrivileges
     * @deprecated use {@link #setUserMobileDataEnabled(boolean)} instead.
     */
    @Deprecated
    @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
    public void setDataEnabled(boolean enable) {
        setDataEnabled(getSubId(SubscriptionManager.getDefaultDataSubscriptionId()), enable);
        setUserMobileDataEnabled(enable);
    }

    /** @hide */
    /**
     * @hide
     * @deprecated use {@link #setUserMobileDataEnabled(boolean)} instead.
    */
    @SystemApi
    @Deprecated
    @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
    public void setDataEnabled(int subId, boolean enable) {
        try {
            Log.d(TAG, "setDataEnabled: enabled=" + enable);
            ITelephony telephony = getITelephony();
            if (telephony != null)
                telephony.setDataEnabled(subId, enable);
        } catch (RemoteException e) {
            Log.e(TAG, "Error calling ITelephony#setDataEnabled", e);
        }
        setUserMobileDataEnabled(subId, enable);
    }


    /**
     * @deprecated use {@link #isDataEnabled()} instead.
     * @deprecated use {@link #isUserMobileDataEnabled()} instead.
     * @hide
     */
    @SystemApi
    @Deprecated
    public boolean getDataEnabled() {
        return isDataEnabled();
        return isUserMobileDataEnabled();
    }

    /**
     * Returns whether mobile data is enabled or not.
     * Returns whether mobile data is enabled or not per user setting. There are other factors
     * that could disable mobile data, but they are not considered here.
     *
     * If this object has been created with {@link #createForSubscriptionId}, applies to the given
     * subId. Otherwise, applies to {@link SubscriptionManager#getDefaultDataSubscriptionId()}
@@ -5725,28 +5724,21 @@ public class TelephonyManager {
     * @return true if mobile data is enabled.
     *
     * @see #hasCarrierPrivileges
     * @deprecated use {@link #isUserMobileDataEnabled()} instead.
     */
    @SuppressWarnings("deprecation")
    @Deprecated
    public boolean isDataEnabled() {
        return getDataEnabled(getSubId(SubscriptionManager.getDefaultDataSubscriptionId()));
        return isUserMobileDataEnabled();
    }

    /**
     * @deprecated use {@link #isDataEnabled(int)} instead.
     * @deprecated use {@link #isUserMobileDataEnabled()} instead.
     * @hide
     */
    @Deprecated
    @SystemApi
    public boolean getDataEnabled(int subId) {
        boolean retVal = false;
        try {
            ITelephony telephony = getITelephony();
            if (telephony != null)
                retVal = telephony.getDataEnabled(subId);
        } catch (RemoteException e) {
            Log.e(TAG, "Error calling ITelephony#getDataEnabled", e);
        } catch (NullPointerException e) {
        }
        return retVal;
        return isUserMobileDataEnabled(subId);
    }

    /** @hide */
@@ -6898,4 +6890,101 @@ public class TelephonyManager {
        }
        return null;
    }

    /**
     * Turns mobile data on or off.
     * If the {@link TelephonyManager} object has been created with
     * {@link #createForSubscriptionId}, this API applies to the given subId.
     * Otherwise, it applies to {@link SubscriptionManager#getDefaultDataSubscriptionId()}
     *
     * <p>Requires Permission:
     *     {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE} or that the
     *     calling app has carrier privileges.
     *
     * @param enable Whether to enable mobile data.
     *
     * @see #hasCarrierPrivileges
     */
    @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
    public void setUserMobileDataEnabled(boolean enable) {
        setUserMobileDataEnabled(
                getSubId(SubscriptionManager.getDefaultDataSubscriptionId()), enable);
    }

    /**
     * Returns whether mobile data is enabled or not per user setting. There are other factors
     * that could disable mobile data, but they are not considered here.
     *
     * If this object has been created with {@link #createForSubscriptionId}, applies to the given
     * subId. Otherwise, applies to {@link SubscriptionManager#getDefaultDataSubscriptionId()}
     *
     * <p>Requires one of the following permissions:
     * {@link android.Manifest.permission#ACCESS_NETWORK_STATE ACCESS_NETWORK_STATE},
     * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE}, or that the
     * calling app has carrier privileges.
     *
     * <p>Note that this does not take into account any data restrictions that may be present on the
     * calling app. Such restrictions may be inspected with
     * {@link ConnectivityManager#getRestrictBackgroundStatus}.
     *
     * @return true if mobile data is enabled.
     *
     * @see #hasCarrierPrivileges
     */
    @RequiresPermission(anyOf = {
            android.Manifest.permission.ACCESS_NETWORK_STATE,
            android.Manifest.permission.MODIFY_PHONE_STATE
    })
    public boolean isUserMobileDataEnabled() {
        return isUserMobileDataEnabled(
                getSubId(SubscriptionManager.getDefaultDataSubscriptionId()));
    }

    /**
     * @hide
     * Unlike isUserMobileDataEnabled, this API also evaluates carrierDataEnabled,
     * policyDataEnabled etc to give a final decision.
     */
    public boolean isMobileDataEnabled() {
        boolean retVal = false;
        try {
            int subId = getSubId(SubscriptionManager.getDefaultDataSubscriptionId());
            ITelephony telephony = getITelephony();
            if (telephony != null)
                retVal = telephony.isDataEnabled(subId);
        } catch (RemoteException e) {
            Log.e(TAG, "Error calling ITelephony#isDataEnabled", e);
        } catch (NullPointerException e) {
        }
        return retVal;
    }

    /**
     * Utility class of {@link #isUserMobileDataEnabled()};
     */
    private boolean isUserMobileDataEnabled(int subId) {
        boolean retVal = false;
        try {
            ITelephony telephony = getITelephony();
            if (telephony != null)
                retVal = telephony.isUserDataEnabled(subId);
        } catch (RemoteException e) {
            Log.e(TAG, "Error calling ITelephony#isUserDataEnabled", e);
        } catch (NullPointerException e) {
        }
        return retVal;
    }

    /** Utility method of {@link #setUserMobileDataEnabled(boolean)} */
    @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
    private void setUserMobileDataEnabled(int subId, boolean enable) {
        try {
            Log.d(TAG, "setUserMobileDataEnabled: enabled=" + enable);
            ITelephony telephony = getITelephony();
            if (telephony != null)
                telephony.setUserDataEnabled(subId, enable);
        } catch (RemoteException e) {
            Log.e(TAG, "Error calling ITelephony#setUserDataEnabled", e);
        }
    }
}
+20 −1
Original line number Diff line number Diff line
@@ -870,15 +870,34 @@ interface ITelephony {
     *
     * @param enable true to turn on, else false
     */
    void setDataEnabled(int subId, boolean enable);
    void setUserDataEnabled(int subId, boolean enable);

    /**
     * Get the user enabled state of Mobile Data.
     *
     * TODO: remove and use isUserDataEnabled.
     * This can't be removed now because some vendor codes
     * calls through ITelephony directly while they should
     * use TelephonyManager.
     *
     * @return true on enabled
     */
    boolean getDataEnabled(int subId);

    /**
     * Get the user enabled state of Mobile Data.
     *
     * @return true on enabled
     */
    boolean isUserDataEnabled(int subId);

    /**
     * Get the overall enabled state of Mobile Data.
     *
     * @return true on enabled
     */
    boolean isDataEnabled(int subId);

    /**
     * Get P-CSCF address from PCO after data connection is established or modified.
     * @param apnType the apnType, "ims" for IMS APN, "emergency" for EMERGENCY APN