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

Commit 6d61157c authored by Tom Taylor's avatar Tom Taylor
Browse files

Add phone type to the sms send result intent

The sms receive path has had the phone type for years. Make the
send path include the same information. Also fix various logging
messages that weren't writing the cross-stack message id in the
correct format.

Bugs: 202524687,200308280
Test: Manually tested this by sending SMSs with a default SMS app and
examining the extras on the received send status intent.

Change-Id: I93fef5dfe3789abedd9958012d347c2d98a6f181
parent 24a79958
Loading
Loading
Loading
Loading
+42 −29
Original line number Diff line number Diff line
@@ -524,7 +524,8 @@ public abstract class SMSDispatcher extends Handler {
                            runnable -> runnable.run(),
                            mSenderCallback);
                } catch (RuntimeException e) {
                    Rlog.e(TAG, "DataSmsSender::onServiceReady: Exception sending the SMS: " + e
                    Rlog.e(TAG, "DataSmsSender::onServiceReady: Exception sending the SMS: "
                            + e
                            + " " + SmsController.formatCrossStackMessageId(mTracker.mMessageId));
                    onSendComplete(CarrierMessagingService.SEND_STATUS_RETRY_ON_CARRIER_NETWORK);
                }
@@ -628,8 +629,9 @@ public abstract class SMSDispatcher extends Handler {
                                                          null /* exception*/)));
                break;
            case CarrierMessagingService.SEND_STATUS_ERROR:
                Rlog.d(TAG, "processSendSmsResponse: Sending SMS by CarrierMessagingService failed."
                        + " " + SmsController.formatCrossStackMessageId(tracker.mMessageId));
                Rlog.d(TAG, "processSendSmsResponse: Sending SMS by CarrierMessagingService"
                        + " failed. "
                        + SmsController.formatCrossStackMessageId(tracker.mMessageId));
                sendMessage(obtainMessage(EVENT_SEND_SMS_COMPLETE,
                        new AsyncResult(tracker, smsResponse,
                                new CommandException(CommandException.Error.GENERIC_FAILURE))));
@@ -1248,7 +1250,7 @@ public abstract class SMSDispatcher extends Handler {
                         String callingPkg, boolean persistMessage, int priority,
                         boolean expectMore, int validityPeriod, boolean isForVvm,
                         long messageId) {
        Rlog.d(TAG, "sendText id: " + messageId);
        Rlog.d(TAG, "sendText id: " + SmsController.formatCrossStackMessageId(messageId));
        SmsMessageBase.SubmitPduBase pdu = getSubmitPdu(
                scAddr, destAddr, text, (deliveryIntent != null), null, priority, validityPeriod);
        if (pdu != null) {
@@ -1261,8 +1263,8 @@ public abstract class SMSDispatcher extends Handler {
                sendSubmitPdu(tracker);
            }
        } else {
            Rlog.e(TAG, "SmsDispatcher.sendText(): getSubmitPdu() returned null" + " id: "
                    + messageId);
            Rlog.e(TAG, "SmsDispatcher.sendText(): getSubmitPdu() returned null "
                    + SmsController.formatCrossStackMessageId(messageId));
            triggerSentIntentForFailure(sentIntent);
        }
    }
@@ -1502,13 +1504,14 @@ public abstract class SMSDispatcher extends Handler {
        String carrierPackage = getCarrierAppPackageName();
        if (carrierPackage != null) {
            Rlog.d(TAG, "Found carrier package " + carrierPackage
                    + " id: " + getMultiTrackermessageId(trackers));
                    + " "
                    + SmsController.formatCrossStackMessageId(getMultiTrackermessageId(trackers)));
            MultipartSmsSender smsSender = new MultipartSmsSender(parts, trackers);
            smsSender.sendSmsByCarrierApp(carrierPackage,
                    new MultipartSmsSenderCallback(smsSender));
        } else {
            Rlog.v(TAG, "No carrier package. "
                    + " id: " + getMultiTrackermessageId(trackers));
                    + SmsController.formatCrossStackMessageId(getMultiTrackermessageId(trackers)));
            sendSubmitPdu(trackers);
        }
    }
@@ -1561,7 +1564,7 @@ public abstract class SMSDispatcher extends Handler {
                        messageId);
            } else {
                Rlog.e(TAG, "CdmaSMSDispatcher.getNewSubmitPduTracker(): getSubmitPdu() returned "
                        + "null" + " id: " + messageId);
                        + "null " + SmsController.formatCrossStackMessageId(messageId));
                return null;
            }
        } else {
@@ -1580,7 +1583,7 @@ public abstract class SMSDispatcher extends Handler {
                        messageId);
            } else {
                Rlog.e(TAG, "GsmSMSDispatcher.getNewSubmitPduTracker(): getSubmitPdu() returned "
                        + "null" + " id: " + messageId);
                        + "null " + SmsController.formatCrossStackMessageId(messageId));
                return null;
            }
        }
@@ -1692,7 +1695,8 @@ public abstract class SMSDispatcher extends Handler {
                                    PackageManager.GET_SIGNATURES);
                } catch (PackageManager.NameNotFoundException e) {
                    Rlog.e(TAG, "Can't get calling app package info: refusing to send SMS "
                            + " id: " + getMultiTrackermessageId(trackers));
                            + SmsController.formatCrossStackMessageId(
                                    getMultiTrackermessageId(trackers)));
                    error = SmsManager.RESULT_ERROR_GENERIC_FAILURE;
                }
            }
@@ -1744,7 +1748,8 @@ public abstract class SMSDispatcher extends Handler {
                        mTelephonyManager.getSimCountryIsoForPhone(mPhone.getPhoneId());
                if (simCountryIso == null || simCountryIso.length() != 2) {
                    Rlog.e(TAG, "Can't get SIM country Iso: trying network country Iso "
                            + " id: " + getMultiTrackermessageId(trackers));
                            + SmsController.formatCrossStackMessageId(
                                    getMultiTrackermessageId(trackers)));
                    simCountryIso =
                            mTelephonyManager.getNetworkCountryIso(mPhone.getPhoneId());
                }
@@ -1759,7 +1764,8 @@ public abstract class SMSDispatcher extends Handler {
                        mTelephonyManager.getNetworkCountryIso(mPhone.getPhoneId());
                if (networkCountryIso == null || networkCountryIso.length() != 2) {
                    Rlog.e(TAG, "Can't get Network country Iso: trying SIM country Iso "
                            + " id: " + getMultiTrackermessageId(trackers));
                            + SmsController.formatCrossStackMessageId(
                                    getMultiTrackermessageId(trackers)));
                    networkCountryIso =
                            mTelephonyManager.getSimCountryIsoForPhone(mPhone.getPhoneId());
                }
@@ -1782,7 +1788,8 @@ public abstract class SMSDispatcher extends Handler {
            // Do not allow any premium sms during SuW
            if (Settings.Global.getInt(mResolver, Settings.Global.DEVICE_PROVISIONED, 0) == 0) {
                Rlog.e(TAG, "Can't send premium sms during Setup Wizard "
                        + " id: " + getMultiTrackermessageId(trackers));
                        + SmsController.formatCrossStackMessageId(
                                getMultiTrackermessageId(trackers)));
                return false;
            }

@@ -1799,12 +1806,14 @@ public abstract class SMSDispatcher extends Handler {
            switch (premiumSmsPermission) {
                case SmsUsageMonitor.PREMIUM_SMS_PERMISSION_ALWAYS_ALLOW:
                    Rlog.d(TAG, "User approved this app to send to premium SMS "
                            + " id: " + getMultiTrackermessageId(trackers));
                            + SmsController.formatCrossStackMessageId(
                                    getMultiTrackermessageId(trackers)));
                    return true;

                case SmsUsageMonitor.PREMIUM_SMS_PERMISSION_NEVER_ALLOW:
                    Rlog.w(TAG, "User denied this app from sending to premium SMS "
                            + " id: " + getMultiTrackermessageId(trackers));
                            + SmsController.formatCrossStackMessageId(
                                    getMultiTrackermessageId(trackers)));
                    Message msg = obtainMessage(EVENT_SENDING_NOT_ALLOWED, trackers);
                    sendMessage(msg);
                    return false;   // reject this message
@@ -1836,7 +1845,7 @@ public abstract class SMSDispatcher extends Handler {
        if (mPendingTrackerCount >= MO_MSG_QUEUE_LIMIT) {
            // Deny sending message when the queue limit is reached.
            Rlog.e(TAG, "Denied because queue limit reached "
                    + " id: " + getMultiTrackermessageId(trackers));
                    + SmsController.formatCrossStackMessageId(getMultiTrackermessageId(trackers)));
            handleSmsTrackersFailure(
                    trackers, SmsManager.RESULT_ERROR_LIMIT_EXCEEDED, NO_ERROR_CODE);
            return true;
@@ -1979,7 +1988,7 @@ public abstract class SMSDispatcher extends Handler {
            mSmsDispatchersController.sendRetrySms(tracker);
        } else {
            Rlog.e(TAG, mSmsDispatchersController + " is null. Retry failed "
                    + " " + SmsController.formatCrossStackMessageId(tracker.mMessageId));
                    + SmsController.formatCrossStackMessageId(tracker.mMessageId));
        }
    }

@@ -2273,10 +2282,12 @@ public abstract class SMSDispatcher extends Handler {
                        // with the one they passed to SmsManager.
                        fillIn.putExtra(MESSAGE_ID_EXTRA, mMessageId);
                    }
                    fillIn.putExtra("format", mFormat);
                    fillIn.putExtra("ims", mUsesImsServiceForIms);
                    mSentIntent.send(context, error, fillIn);
                } catch (CanceledException ex) {
                    Rlog.e(TAG, "Failed to send result "
                            + " " + SmsController.formatCrossStackMessageId(mMessageId));
                            + SmsController.formatCrossStackMessageId(mMessageId));
                }
            }
            reportAnomaly(error, errorCode);
@@ -2339,6 +2350,8 @@ public abstract class SMSDispatcher extends Handler {
                        // Is multipart and last part
                        fillIn.putExtra(SEND_NEXT_MSG_EXTRA, true);
                    }
                    fillIn.putExtra("format", mFormat);
                    fillIn.putExtra("ims", mUsesImsServiceForIms);
                    mSentIntent.send(context, Activity.RESULT_OK, fillIn);
                } catch (CanceledException ex) {
                    Rlog.e(TAG, "Failed to send result");