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

Commit 247d78fb authored by Megha Patil's avatar Megha Patil Committed by Android (Google) Code Review
Browse files

Merge "Handling of Memory Not Full Event from SmsStorageMonitor"

parents 9203ba4d 14d817c1
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -447,6 +447,20 @@ public class ImsSmsDispatcher extends SMSDispatcher {
        return SMSDispatcherUtil.calculateLength(isCdmaMo(), messageBody, use7bitOnly);
    }

    /**
     * Send the Memory Available Event to the ImsService
     */
    public void onMemoryAvailable() {
        logd("onMemoryAvailable ");
        int token = mNextToken.incrementAndGet();
        try {
            logd("onMemoryAvailable: token = " + token);
            getImsManager().onMemoryAvailable(token);
        } catch (ImsException e) {
            loge("onMemoryAvailable failed: " + e.getMessage());
        }
    }

    @Override
    public void sendSms(SmsTracker tracker) {
        logd("sendSms: "
+22 −0
Original line number Diff line number Diff line
@@ -409,6 +409,11 @@ public class SmsDispatchersController extends Handler {
        injectSmsPdu(msg, format, callback, false /* ignoreClass */, isOverIms, 0 /* unused */);
    }

    @VisibleForTesting
    public void setImsSmsDispatcher(ImsSmsDispatcher imsSmsDispatcher) {
        mImsSmsDispatcher = imsSmsDispatcher;
    }

    /**
     * Inject an SMS PDU into the android platform.
     *
@@ -573,6 +578,23 @@ public class SmsDispatchersController extends Handler {
        dispatcher.sendSms(tracker);
    }

    /**
     * Memory Available Event
     * @param result callback message
     */
    public void reportSmsMemoryStatus(Message result) {
        Rlog.d(TAG, "reportSmsMemoryStatus: ");
        try {
            mImsSmsDispatcher.onMemoryAvailable();
            AsyncResult.forMessage(result, null, null);
            result.sendToTarget();
        } catch (Exception e) {
            Rlog.e(TAG, "reportSmsMemoryStatus Failed ", e);
            AsyncResult.forMessage(result, null, e);
            result.sendToTarget();
        }
    }

    /**
     * SMS over IMS is supported if IMS is registered and SMS is supported on IMS.
     *
+13 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.res.Resources;
import android.os.AsyncResult;
import android.os.Build;
import android.os.Handler;
@@ -212,6 +213,18 @@ public class SmsStorageMonitor extends Handler {

    private void sendMemoryStatusReport(boolean isAvailable) {
        mIsWaitingResponse = true;
        Resources r = mContext.getResources();
        if (r.getBoolean(com.android.internal.R.bool.config_smma_notification_supported_over_ims)) {
            IccSmsInterfaceManager smsIfcMngr = mPhone.getIccSmsInterfaceManager();
            if (smsIfcMngr != null) {
                Rlog.d(TAG, "sendMemoryStatusReport: smsIfcMngr is available");
                if (smsIfcMngr.mDispatchersController.isIms() && isAvailable) {
                    smsIfcMngr.mDispatchersController.reportSmsMemoryStatus(
                            obtainMessage(EVENT_REPORT_MEMORY_STATUS_DONE));
                    return;
                }
            }
        }
        mCi.reportSmsMemoryStatus(isAvailable, obtainMessage(EVENT_REPORT_MEMORY_STATUS_DONE));
    }