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

Commit 999da5e3 authored by Sumit Pundir's avatar Sumit Pundir
Browse files

Merge remote-tracking branch 'moezbhatti/master' into sprint_edinburgh

parents 91ae722c af2f694b
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import android.os.Binder;
import android.os.Bundle;
import android.provider.Telephony;
import android.text.TextUtils;

import com.android.mms.service_alt.exception.MmsHttpException;
import com.google.android.mms.MmsException;
import com.google.android.mms.pdu_alt.GenericPdu;
@@ -37,6 +38,7 @@ import com.google.android.mms.pdu_alt.RetrieveConf;
import com.google.android.mms.util_alt.SqliteWrapper;
import com.klinker.android.send_message.BroadcastUtils;
import com.klinker.android.send_message.Transaction;

import timber.log.Timber;

/**
@@ -176,6 +178,10 @@ public class DownloadRequest extends MmsRequest {
            // Update some of the properties of the message
            final ContentValues values = new ContentValues();
            values.put(Telephony.Mms.DATE, System.currentTimeMillis() / 1000L);
            try {
                values.put(Telephony.Mms.DATE_SENT, retrieveConf.getDate());
            } catch (Exception ignored) {
            }
            values.put(Telephony.Mms.READ, 0);
            values.put(Telephony.Mms.SEEN, 0);
            if (!TextUtils.isEmpty(creator)) {
+7 −3
Original line number Diff line number Diff line
@@ -18,6 +18,8 @@ import android.text.TextUtils;
import com.android.mms.MmsConfig;
import com.klinker.android.send_message.BroadcastUtils;
import com.klinker.android.send_message.MmsReceivedReceiver;
import com.klinker.android.send_message.SmsManagerFactory;

import timber.log.Timber;

import java.io.File;
@@ -41,7 +43,7 @@ public class DownloadManager {

    }

    public void downloadMultimediaMessage(final Context context, final String location, Uri uri, boolean byPush) {
    public void downloadMultimediaMessage(final Context context, final String location, Uri uri, boolean byPush, int subscriptionId) {
        if (location == null || mMap.get(location) != null) {
            return;
        }
@@ -73,15 +75,17 @@ public class DownloadManager {
        final PendingIntent pendingIntent = PendingIntent.getBroadcast(
                context, 0, download, PendingIntent.FLAG_CANCEL_CURRENT);

        final SmsManager smsManager = SmsManagerFactory.INSTANCE.createSmsManager(subscriptionId);
        Bundle configOverrides = new Bundle();
        String httpParams = MmsConfig.getHttpParams();
        if (!TextUtils.isEmpty(httpParams)) {
            configOverrides.putString(SmsManager.MMS_CONFIG_HTTP_PARAMS, httpParams);
        } else {
            configOverrides = smsManager.getCarrierConfigValues();
        }

        grantUriPermission(context, contentUri);
        SmsManager.getDefault().downloadMultimediaMessage(context,
                location, contentUri, configOverrides, pendingIntent);
        smsManager.downloadMultimediaMessage(context, location, contentUri, configOverrides, pendingIntent);
    }

    private void grantUriPermission(Context context, Uri contentUri) {
+18 −4
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import android.provider.Telephony.Mms;
import android.provider.Telephony.Mms.Inbox;
import android.provider.Telephony.Threads;
import android.telephony.TelephonyManager;

import com.android.mms.MmsConfig;
import com.android.mms.util.DownloadManager;
import com.google.android.mms.MmsException;
@@ -38,13 +39,20 @@ import com.google.android.mms.pdu_alt.PduComposer;
import com.google.android.mms.pdu_alt.PduHeaders;
import com.google.android.mms.pdu_alt.PduParser;
import com.google.android.mms.pdu_alt.PduPersister;
import com.google.android.mms.pdu_alt.RetrieveConf;
import com.klinker.android.send_message.BroadcastUtils;
import timber.log.Timber;

import java.io.IOException;

import static com.android.mms.transaction.TransactionState.*;
import static com.google.android.mms.pdu_alt.PduHeaders.*;
import timber.log.Timber;

import static com.android.mms.transaction.TransactionState.FAILED;
import static com.android.mms.transaction.TransactionState.INITIALIZED;
import static com.android.mms.transaction.TransactionState.SUCCESS;
import static com.google.android.mms.pdu_alt.PduHeaders.MESSAGE_TYPE_RETRIEVE_CONF;
import static com.google.android.mms.pdu_alt.PduHeaders.STATUS_DEFERRED;
import static com.google.android.mms.pdu_alt.PduHeaders.STATUS_RETRIEVED;
import static com.google.android.mms.pdu_alt.PduHeaders.STATUS_UNRECOGNIZED;

/**
 * The NotificationTransaction is responsible for handling multimedia
@@ -180,9 +188,15 @@ public class NotificationTransaction extends Transaction implements Runnable {
                    Uri uri = p.persist(pdu, Inbox.CONTENT_URI, true,
                            true, null);

                    RetrieveConf retrieveConf = (RetrieveConf) pdu;

                    // Use local time instead of PDU time
                    ContentValues values = new ContentValues(1);
                    ContentValues values = new ContentValues(2);
                    values.put(Mms.DATE, System.currentTimeMillis() / 1000L);
                    try {
                        values.put(Mms.DATE_SENT, retrieveConf.getDate());
                    } catch (Exception ignored) {
                    }
                    SqliteWrapper.update(mContext, mContext.getContentResolver(),
                            uri, values, null, null);

+9 −3
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import android.net.Uri;
import android.os.AsyncTask;
import android.provider.Telephony.Mms;
import android.provider.Telephony.Mms.Inbox;

import com.android.mms.MmsConfig;
import com.google.android.mms.ContentType;
import com.google.android.mms.MmsException;
@@ -38,16 +39,20 @@ import com.google.android.mms.pdu_alt.PduHeaders;
import com.google.android.mms.pdu_alt.PduParser;
import com.google.android.mms.pdu_alt.PduPersister;
import com.google.android.mms.pdu_alt.ReadOrigInd;
import timber.log.Timber;
import com.klinker.android.send_message.Utils;

import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

import timber.log.Timber;

import static android.provider.Telephony.Sms.Intents.WAP_PUSH_DELIVER_ACTION;
import static android.provider.Telephony.Sms.Intents.WAP_PUSH_RECEIVED_ACTION;
import static com.google.android.mms.pdu_alt.PduHeaders.*;
import static com.google.android.mms.pdu_alt.PduHeaders.MESSAGE_TYPE_DELIVERY_IND;
import static com.google.android.mms.pdu_alt.PduHeaders.MESSAGE_TYPE_NOTIFICATION_IND;
import static com.google.android.mms.pdu_alt.PduHeaders.MESSAGE_TYPE_READ_ORIG_IND;

/**
 * Receives Intent.WAP_PUSH_RECEIVED_ACTION intents and starts the
@@ -141,7 +146,8 @@ public class PushReceiver extends BroadcastReceiver {
                                downloadedUrls.add(location);
                            }

                            DownloadManager.getInstance().downloadMultimediaMessage(mContext, location, uri, true);
                            int subId = intent.getIntExtra("subscription", Utils.getDefaultSubscriptionId());
                            DownloadManager.getInstance().downloadMultimediaMessage(mContext, location, uri, true, subId);
                        } else {
                            Timber.v("Skip downloading duplicate message: " + new String(nInd.getContentLocation()));
                        }
+8 −2
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.net.Uri;
import android.provider.Telephony.Mms;
import android.provider.Telephony.Mms.Inbox;
import android.text.TextUtils;

import com.android.mms.MmsConfig;
import com.android.mms.util.DownloadManager;
import com.google.android.mms.MmsException;
@@ -35,10 +36,11 @@ import com.google.android.mms.pdu_alt.PduParser;
import com.google.android.mms.pdu_alt.PduPersister;
import com.google.android.mms.pdu_alt.RetrieveConf;
import com.klinker.android.send_message.Utils;
import timber.log.Timber;

import java.io.IOException;

import timber.log.Timber;

/**
 * The RetrieveTransaction is responsible for retrieving multimedia
 * messages (M-Retrieve.conf) from the MMSC server.  It:
@@ -155,8 +157,12 @@ public class RetrieveTransaction extends Transaction implements Runnable {
                            true, null);

                    // Use local time instead of PDU time
                    ContentValues values = new ContentValues(2);
                    ContentValues values = new ContentValues(3);
                    values.put(Mms.DATE, System.currentTimeMillis() / 1000L);
                    try {
                        values.put(Mms.DATE_SENT, retrieveConf.getDate());
                    } catch (Exception ignored) {
                    }
                    values.put(Mms.MESSAGE_SIZE, resp.length);
                    SqliteWrapper.update(mContext, mContext.getContentResolver(),
                            msgUri, values, null, null);
Loading