diff options
author | Prerepa Viswanadham <dham@google.com> | 2015-05-01 11:44:08 -0700 |
---|---|---|
committer | Prerepa Viswanadham <dham@google.com> | 2015-05-01 11:44:08 -0700 |
commit | f530063c0d23a722b2ad3706a9de92e02e5ee442 (patch) | |
tree | e626842213579735bb5af3f693ca990b4b53ddee | |
parent | a167df730849cbd6fc23b4dce7a80d4268e90095 (diff) | |
parent | 2dbe575f14c52e817658ff66e1a60f8764938af6 (diff) | |
download | android_packages_services_Mms-f530063c0d23a722b2ad3706a9de92e02e5ee442.tar.gz android_packages_services_Mms-f530063c0d23a722b2ad3706a9de92e02e5ee442.tar.bz2 android_packages_services_Mms-f530063c0d23a722b2ad3706a9de92e02e5ee442.zip |
Merge commit '2dbe575' into master_merge
-rw-r--r-- | src/com/android/mms/service/MmsService.java | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/com/android/mms/service/MmsService.java b/src/com/android/mms/service/MmsService.java index eb6065f..dd01f30 100644 --- a/src/com/android/mms/service/MmsService.java +++ b/src/com/android/mms/service/MmsService.java @@ -161,8 +161,16 @@ public class MmsService extends Service implements MmsRequest.RequestManager { throws RemoteException { Log.d(TAG, "sendMessage"); enforceSystemUid(); + // Make sure the subId is correct subId = checkSubId(subId); + + // Make sure the subId is active + if (!isActiveSubId(subId)) { + sendErrorInPendingIntent(sentIntent); + return; + } + final SendRequest request = new SendRequest(MmsService.this, subId, contentUri, locationUrl, sentIntent, callingPkg, configOverrides); @@ -182,8 +190,16 @@ public class MmsService extends Service implements MmsRequest.RequestManager { PendingIntent downloadedIntent) throws RemoteException { Log.d(TAG, "downloadMessage: " + MmsHttpClient.redactUrlForNonVerbose(locationUrl)); enforceSystemUid(); + // Make sure the subId is correct subId = checkSubId(subId); + + // Make sure the subId is active + if (!isActiveSubId(subId)) { + sendErrorInPendingIntent(downloadedIntent); + return; + } + final DownloadRequest request = new DownloadRequest(MmsService.this, subId, locationUrl, contentUri, downloadedIntent, callingPkg, configOverrides); final String carrierMessagingServicePackage = @@ -335,6 +351,25 @@ public class MmsService extends Service implements MmsRequest.RequestManager { Log.d(TAG, "getAutoPersisting"); return getAutoPersistingPref(); } + + /* + * @return true if the subId is active. + */ + private boolean isActiveSubId(int subId) { + return SubscriptionManager.from(MmsService.this).isActiveSubId(subId); + } + + /* + * Calls the pending intent with <code>MMS_ERROR_NO_DATA_NETWORK</code>. + */ + private void sendErrorInPendingIntent(@Nullable PendingIntent intent) { + if (intent != null) { + try { + intent.send(SmsManager.MMS_ERROR_NO_DATA_NETWORK); + } catch (PendingIntent.CanceledException ex) { + } + } + } }; @Override |