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

Commit cc193bd4 authored by Joseph Pirozzo's avatar Joseph Pirozzo
Browse files

MAP Client support incomming MMS

Add support for incomming MMS messages by leveraging the already
existing parser.

Bug: 119750641
Test: atest MapClientStateMachineTest
Change-Id: Iad3806e39fa11b520f7bcc3b33426f0a65779530
(cherry picked from commit f3965e7d)

Merged-In: Iad3806e39fa11b520f7bcc3b33426f0a65779530
Change-Id: I54d1399350a5e3d89f51625dde101a1cc9129c06
parent ec62a031
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -58,6 +58,7 @@ import android.util.Log;
import com.android.bluetooth.BluetoothMetricsProto;
import com.android.bluetooth.btservice.MetricsLogger;
import com.android.bluetooth.btservice.ProfileService;
import com.android.bluetooth.map.BluetoothMapbMessageMime;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.IState;
import com.android.internal.util.State;
@@ -345,7 +346,9 @@ final class MceStateMachine extends StateMachine {
    void setDefaultMessageType(SdpMasRecord sdpMasRecord) {
        int supportedMessageTypes = sdpMasRecord.getSupportedMessageTypes();
        synchronized (mDefaultMessageType) {
            if ((supportedMessageTypes & SdpMasRecord.MessageType.SMS_CDMA) > 0) {
            if ((supportedMessageTypes & SdpMasRecord.MessageType.MMS) > 0) {
                mDefaultMessageType = Bmessage.Type.MMS;
            } else if ((supportedMessageTypes & SdpMasRecord.MessageType.SMS_CDMA) > 0) {
                mDefaultMessageType = Bmessage.Type.SMS_CDMA;
            } else if ((supportedMessageTypes & SdpMasRecord.MessageType.SMS_GSM) > 0) {
                mDefaultMessageType = Bmessage.Type.SMS_GSM;
@@ -666,6 +669,7 @@ final class MceStateMachine extends StateMachine {
            switch (message.getType()) {
                case SMS_CDMA:
                case SMS_GSM:
                case MMS:
                    if (DBG) {
                        Log.d(TAG, "Body: " + message.getBodyContent());
                    }
@@ -706,6 +710,12 @@ final class MceStateMachine extends StateMachine {
                        intent.putExtra(BluetoothMapClient.EXTRA_SENDER_CONTACT_NAME,
                                originator.getDisplayName());
                    }
                    if (message.getType() == Bmessage.Type.MMS) {
                        BluetoothMapbMessageMime mmsBmessage = new BluetoothMapbMessageMime();
                        mmsBmessage.parseMsgPart(message.getBodyContent());
                        intent.putExtra(android.content.Intent.EXTRA_TEXT,
                                mmsBmessage.getMessageAsText());
                    }
                    // Only send to the current default SMS app if one exists
                    String defaultMessagingPackage = Telephony.Sms.getDefaultSmsPackage(mService);
                    if (defaultMessagingPackage != null) {
@@ -713,8 +723,6 @@ final class MceStateMachine extends StateMachine {
                    }
                    mService.sendBroadcast(intent, android.Manifest.permission.RECEIVE_SMS);
                    break;

                case MMS:
                case EMAIL:
                default:
                    Log.e(TAG, "Received unhandled type" + message.getType().toString());