summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPrerepa Viswanadham <dham@google.com>2015-05-01 11:44:08 -0700
committerPrerepa Viswanadham <dham@google.com>2015-05-01 11:44:08 -0700
commitf530063c0d23a722b2ad3706a9de92e02e5ee442 (patch)
treee626842213579735bb5af3f693ca990b4b53ddee
parenta167df730849cbd6fc23b4dce7a80d4268e90095 (diff)
parent2dbe575f14c52e817658ff66e1a60f8764938af6 (diff)
downloadandroid_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.java35
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