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

Commit ee04543d authored by Cheuksan Wang's avatar Cheuksan Wang
Browse files

Send and download MMS via content provider instead of PDU bytes.

Change-Id: Ib5a93d07799c9e14fea8be820c6bd4bc7ae8be3a
parent cde5bb45
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -25739,6 +25739,8 @@ package android.provider {
  public static final class Telephony.Mms.Intents {
    field public static final java.lang.String CONTENT_CHANGED_ACTION = "android.intent.action.CONTENT_CHANGED";
    field public static final java.lang.String DELETED_CONTENTS = "deleted_contents";
    field public static final java.lang.String EXTRA_MMS_CONTENT_URI = "android.provider.Telephony.extra.MMS_CONTENT_URI";
    field public static final java.lang.String EXTRA_MMS_LOCATION_URL = "android.provider.Telephony.extra.MMS_LOCATION_URL";
    field public static final java.lang.String MMS_DOWNLOAD_ACTION = "android.provider.Telephony.MMS_DOWNLOAD";
    field public static final java.lang.String MMS_SEND_ACTION = "android.provider.Telephony.MMS_SEND";
  }
@@ -28864,16 +28866,16 @@ package android.telephony {
  public final class SmsManager {
    method public java.util.ArrayList<java.lang.String> divideMessage(java.lang.String);
    method public void downloadMultimediaMessage(java.lang.String, android.net.Uri, android.os.Bundle, android.app.PendingIntent);
    method public void downloadMultimediaMessage(android.content.Context, java.lang.String, android.net.Uri, android.os.Bundle, android.app.PendingIntent);
    method public android.os.Bundle getCarrierConfigValues();
    method public static android.telephony.SmsManager getDefault();
    method public void injectSmsPdu(byte[], java.lang.String, android.app.PendingIntent);
    method public void sendDataMessage(java.lang.String, java.lang.String, short, byte[], android.app.PendingIntent, android.app.PendingIntent);
    method public void sendMultimediaMessage(android.net.Uri, java.lang.String, android.os.Bundle, android.app.PendingIntent);
    method public void sendMultimediaMessage(android.content.Context, android.net.Uri, java.lang.String, android.os.Bundle, android.app.PendingIntent);
    method public void sendMultipartTextMessage(java.lang.String, java.lang.String, java.util.ArrayList<java.lang.String>, java.util.ArrayList<android.app.PendingIntent>, java.util.ArrayList<android.app.PendingIntent>);
    method public void sendTextMessage(java.lang.String, java.lang.String, java.lang.String, android.app.PendingIntent, android.app.PendingIntent);
    method public void updateMmsDownloadStatus(int, byte[]);
    method public void updateMmsSendStatus(int, boolean);
    method public void updateMmsDownloadStatus(android.content.Context, int, int, android.net.Uri);
    method public void updateMmsSendStatus(android.content.Context, int, byte[], int, android.net.Uri);
    method public void updateSmsSendStatus(int, boolean);
    field public static final java.lang.String EXTRA_MMS_DATA = "android.telephony.extra.MMS_DATA";
    field public static final java.lang.String MMS_CONFIG_ALIAS_ENABLED = "aliasEnabled";
@@ -28908,6 +28910,7 @@ package android.telephony {
    field public static final int MMS_ERROR_HTTP_FAILURE = 4; // 0x4
    field public static final int MMS_ERROR_INVALID_APN = 2; // 0x2
    field public static final int MMS_ERROR_IO_ERROR = 5; // 0x5
    field public static final int MMS_ERROR_RETRY = 6; // 0x6
    field public static final int MMS_ERROR_UNABLE_CONNECT_MMS = 3; // 0x3
    field public static final int MMS_ERROR_UNSPECIFIED = 1; // 0x1
    field public static final int RESULT_ERROR_GENERIC_FAILURE = 1; // 0x1
+5 −4
Original line number Diff line number Diff line
@@ -219,15 +219,16 @@ public class MmsServiceBroker extends SystemService {
        }

        @Override
        public void updateMmsSendStatus(int messageRef, boolean success) throws RemoteException {
        public void updateMmsSendStatus(int messageRef, byte[] pdu, int status)
                throws RemoteException {
            enforceCarrierPrivilege();
            getServiceGuarded().updateMmsSendStatus(messageRef, success);
            getServiceGuarded().updateMmsSendStatus(messageRef, pdu, status);
        }

        @Override
        public void updateMmsDownloadStatus(int messageRef, byte[] pdu) throws RemoteException {
        public void updateMmsDownloadStatus(int messageRef, int status) throws RemoteException {
            enforceCarrierPrivilege();
            getServiceGuarded().updateMmsDownloadStatus(messageRef, pdu);
            getServiceGuarded().updateMmsDownloadStatus(messageRef, status);
        }

        @Override
+22 −9
Original line number Diff line number Diff line
@@ -62,24 +62,37 @@ interface IMms {

    /**
     * Update the status of a pending (send-by-IP) MMS message handled by the carrier app.
     * If the carrier app fails to send this message, it would be resent via carrier network.
     * If the carrier app fails to send this message, it may be resent via carrier network
     * depending on the status code.
     *
     * The caller should have carrier privileges.
     * @see android.telephony.TelephonyManager.hasCarrierPrivileges
     *
     * @param messageRef the reference number of the MMS message.
     * @param success True if and only if the message was sent successfully. If its value is
     *  false, this message should be resent via carrier network
     * @param pdu non-empty (contains the SendConf PDU) if the message was sent successfully,
     *   otherwise, this param should be null.
     * @param status send status. It can be Activity.RESULT_OK or one of the MMS error codes.
     *   If status is Activity.RESULT_OK, the MMS was sent successfully.
     *   If status is MMS_ERROR_RETRY, this message would be resent via carrier
     *   network. The message will not be resent for other MMS error statuses.
     */
    void updateMmsSendStatus(int messageRef, boolean success);
    void updateMmsSendStatus(int messageRef, in byte[] pdu, in int status);

    /**
     * Update the status of a pending (download-by-IP) MMS message handled by the carrier app.
     * If the carrier app fails to download this message, it would be re-downloaded via carrier
     * network.
     * If the carrier app fails to download this message, it may be re-downloaded via carrier
     * network depending on the status code.
     *
     * The caller should have carrier privileges.
     * @see android.telephony.TelephonyManager.hasCarrierPrivileges
     *
     * @param messageRef the reference number of the MMS message.
     * @param pdu non-empty if downloaded successfully, otherwise, it is empty and the message
     *  will be downloaded via carrier network
     * @param status download status.  It can be Activity.RESULT_OK or one of the MMS error codes.
     *   If status is Activity.RESULT_OK, the MMS was downloaded successfully.
     *   If status is MMS_ERROR_RETRY, this message would be re-downloaded via carrier
     *   network. The message will not be re-downloaded for other MMS error statuses.
     */
    void updateMmsDownloadStatus(int messageRef, in byte[] pdu);
    void updateMmsDownloadStatus(int messageRef, in int status);

    /**
     * Get carrier-dependent configuration values.