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

Commit 6b943d5d authored by Malcolm Chen's avatar Malcolm Chen Committed by android-build-merger
Browse files

Merge "Add isMobileDataEnabled in TelephonyManager."

am: ed7eead2

Change-Id: I851529bc4b5507ffa04c07a840aeba6eb3c7f94b
parents ed673edb ed7eead2
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