Loading src/java/com/android/internal/telephony/SmsController.java +127 −0 Original line number Diff line number Diff line Loading @@ -27,9 +27,12 @@ import android.app.AppOpsManager; import android.app.PendingIntent; import android.content.Context; import android.net.Uri; import android.os.BaseBundle; import android.os.Binder; import android.os.Bundle; import android.os.ServiceManager; import android.provider.Telephony.Sms.Intents; import android.telephony.CarrierConfigManager; import android.telephony.Rlog; import android.telephony.SmsManager; import android.telephony.SubscriptionInfo; Loading Loading @@ -498,6 +501,130 @@ public class SmsController extends ISmsImplBase { } } @Override public Bundle getCarrierConfigValuesForSubscriber(int subId) { final long identity = Binder.clearCallingIdentity(); try { final CarrierConfigManager configManager = (CarrierConfigManager) mContext.getSystemService(Context.CARRIER_CONFIG_SERVICE); return getMmsConfig(configManager.getConfigForSubId(subId)); } finally { Binder.restoreCallingIdentity(identity); } } /** * Filters a bundle to only contain MMS config variables. * * This is for use with bundles returned by CarrierConfigManager which contain MMS config and * unrelated config. It is assumed that all MMS_CONFIG_* keys are present in the supplied * bundle. * * @param config a Bundle that contains MMS config variables and possibly more. * @return a new Bundle that only contains the MMS_CONFIG_* keys defined in SmsManager. */ private static Bundle getMmsConfig(BaseBundle config) { Bundle filtered = new Bundle(); filtered.putBoolean( SmsManager.MMS_CONFIG_APPEND_TRANSACTION_ID, config.getBoolean(SmsManager.MMS_CONFIG_APPEND_TRANSACTION_ID)); filtered.putBoolean( SmsManager.MMS_CONFIG_MMS_ENABLED, config.getBoolean(SmsManager.MMS_CONFIG_MMS_ENABLED)); filtered.putBoolean( SmsManager.MMS_CONFIG_GROUP_MMS_ENABLED, config.getBoolean(SmsManager.MMS_CONFIG_GROUP_MMS_ENABLED)); filtered.putBoolean( SmsManager.MMS_CONFIG_NOTIFY_WAP_MMSC_ENABLED, config.getBoolean(SmsManager.MMS_CONFIG_NOTIFY_WAP_MMSC_ENABLED)); filtered.putBoolean( SmsManager.MMS_CONFIG_ALIAS_ENABLED, config.getBoolean(SmsManager.MMS_CONFIG_ALIAS_ENABLED)); filtered.putBoolean( SmsManager.MMS_CONFIG_ALLOW_ATTACH_AUDIO, config.getBoolean(SmsManager.MMS_CONFIG_ALLOW_ATTACH_AUDIO)); filtered.putBoolean( SmsManager.MMS_CONFIG_MULTIPART_SMS_ENABLED, config.getBoolean(SmsManager.MMS_CONFIG_MULTIPART_SMS_ENABLED)); filtered.putBoolean( SmsManager.MMS_CONFIG_SMS_DELIVERY_REPORT_ENABLED, config.getBoolean(SmsManager.MMS_CONFIG_SMS_DELIVERY_REPORT_ENABLED)); filtered.putBoolean( SmsManager.MMS_CONFIG_SUPPORT_MMS_CONTENT_DISPOSITION, config.getBoolean(SmsManager.MMS_CONFIG_SUPPORT_MMS_CONTENT_DISPOSITION)); filtered.putBoolean( SmsManager.MMS_CONFIG_SEND_MULTIPART_SMS_AS_SEPARATE_MESSAGES, config.getBoolean(SmsManager.MMS_CONFIG_SEND_MULTIPART_SMS_AS_SEPARATE_MESSAGES)); filtered.putBoolean( SmsManager.MMS_CONFIG_MMS_READ_REPORT_ENABLED, config.getBoolean(SmsManager.MMS_CONFIG_MMS_READ_REPORT_ENABLED)); filtered.putBoolean( SmsManager.MMS_CONFIG_MMS_DELIVERY_REPORT_ENABLED, config.getBoolean(SmsManager.MMS_CONFIG_MMS_DELIVERY_REPORT_ENABLED)); filtered.putBoolean( SmsManager.MMS_CONFIG_CLOSE_CONNECTION, config.getBoolean(SmsManager.MMS_CONFIG_CLOSE_CONNECTION)); filtered.putInt( SmsManager.MMS_CONFIG_MAX_MESSAGE_SIZE, config.getInt(SmsManager.MMS_CONFIG_MAX_MESSAGE_SIZE)); filtered.putInt( SmsManager.MMS_CONFIG_MAX_IMAGE_WIDTH, config.getInt(SmsManager.MMS_CONFIG_MAX_IMAGE_WIDTH)); filtered.putInt( SmsManager.MMS_CONFIG_MAX_IMAGE_HEIGHT, config.getInt(SmsManager.MMS_CONFIG_MAX_IMAGE_HEIGHT)); filtered.putInt( SmsManager.MMS_CONFIG_RECIPIENT_LIMIT, config.getInt(SmsManager.MMS_CONFIG_RECIPIENT_LIMIT)); filtered.putInt( SmsManager.MMS_CONFIG_ALIAS_MIN_CHARS, config.getInt(SmsManager.MMS_CONFIG_ALIAS_MIN_CHARS)); filtered.putInt( SmsManager.MMS_CONFIG_ALIAS_MAX_CHARS, config.getInt(SmsManager.MMS_CONFIG_ALIAS_MAX_CHARS)); filtered.putInt( SmsManager.MMS_CONFIG_SMS_TO_MMS_TEXT_THRESHOLD, config.getInt(SmsManager.MMS_CONFIG_SMS_TO_MMS_TEXT_THRESHOLD)); filtered.putInt( SmsManager.MMS_CONFIG_SMS_TO_MMS_TEXT_LENGTH_THRESHOLD, config.getInt(SmsManager.MMS_CONFIG_SMS_TO_MMS_TEXT_LENGTH_THRESHOLD)); filtered.putInt( SmsManager.MMS_CONFIG_MESSAGE_TEXT_MAX_SIZE, config.getInt(SmsManager.MMS_CONFIG_MESSAGE_TEXT_MAX_SIZE)); filtered.putInt( SmsManager.MMS_CONFIG_SUBJECT_MAX_LENGTH, config.getInt(SmsManager.MMS_CONFIG_SUBJECT_MAX_LENGTH)); filtered.putInt( SmsManager.MMS_CONFIG_HTTP_SOCKET_TIMEOUT, config.getInt(SmsManager.MMS_CONFIG_HTTP_SOCKET_TIMEOUT)); filtered.putString( SmsManager.MMS_CONFIG_UA_PROF_TAG_NAME, config.getString(SmsManager.MMS_CONFIG_UA_PROF_TAG_NAME)); filtered.putString( SmsManager.MMS_CONFIG_USER_AGENT, config.getString(SmsManager.MMS_CONFIG_USER_AGENT)); filtered.putString( SmsManager.MMS_CONFIG_UA_PROF_URL, config.getString(SmsManager.MMS_CONFIG_UA_PROF_URL)); filtered.putString( SmsManager.MMS_CONFIG_HTTP_PARAMS, config.getString(SmsManager.MMS_CONFIG_HTTP_PARAMS)); filtered.putString( SmsManager.MMS_CONFIG_EMAIL_GATEWAY_NUMBER, config.getString(SmsManager.MMS_CONFIG_EMAIL_GATEWAY_NUMBER)); filtered.putString( SmsManager.MMS_CONFIG_NAI_SUFFIX, config.getString(SmsManager.MMS_CONFIG_NAI_SUFFIX)); filtered.putBoolean( SmsManager.MMS_CONFIG_SHOW_CELL_BROADCAST_APP_LINKS, config.getBoolean(SmsManager.MMS_CONFIG_SHOW_CELL_BROADCAST_APP_LINKS)); filtered.putBoolean( SmsManager.MMS_CONFIG_SUPPORT_HTTP_CHARSET_HEADER, config.getBoolean(SmsManager.MMS_CONFIG_SUPPORT_HTTP_CHARSET_HEADER)); return filtered; } @Override public String createAppSpecificSmsTokenWithPackageInfo( int subId, String callingPkg, String prefixes, PendingIntent intent) { Loading tests/telephonytests/src/com/android/internal/telephony/WapPushOverSmsTest.java +4 −4 Original line number Diff line number Diff line Loading @@ -45,7 +45,7 @@ import org.mockito.Mock; public class WapPushOverSmsTest extends TelephonyTest { @Mock protected IMms.Stub mIMmsStub; protected ISms.Stub mISmsStub; private WapPushOverSms mWapPushOverSmsUT; Loading @@ -55,8 +55,8 @@ public class WapPushOverSmsTest extends TelephonyTest { // Note that this replaces only cached services in ServiceManager. If a service is not found // in the cache, a real instance is used. mServiceManagerMockedServices.put("imms", mIMmsStub); doReturn(mIMmsStub).when(mIMmsStub).queryLocalInterface(anyString()); mServiceManagerMockedServices.put("isms", mISmsStub); doReturn(mISmsStub).when(mISmsStub).queryLocalInterface(anyString()); mWapPushOverSmsUT = new WapPushOverSms(mContext); } Loading Loading @@ -118,7 +118,7 @@ public class WapPushOverSmsTest extends TelephonyTest { @Test @SmallTest public void testDispatchWapPduFromBlockedNumber_noIntentsDispatched() throws Exception { when(mIMmsStub.getCarrierConfigValues(anyInt())).thenReturn(new Bundle()); when(mISmsStub.getCarrierConfigValuesForSubscriber(anyInt())).thenReturn(new Bundle()); mFakeBlockedNumberContentProvider.mBlockedNumbers.add("16178269168"); Loading Loading
src/java/com/android/internal/telephony/SmsController.java +127 −0 Original line number Diff line number Diff line Loading @@ -27,9 +27,12 @@ import android.app.AppOpsManager; import android.app.PendingIntent; import android.content.Context; import android.net.Uri; import android.os.BaseBundle; import android.os.Binder; import android.os.Bundle; import android.os.ServiceManager; import android.provider.Telephony.Sms.Intents; import android.telephony.CarrierConfigManager; import android.telephony.Rlog; import android.telephony.SmsManager; import android.telephony.SubscriptionInfo; Loading Loading @@ -498,6 +501,130 @@ public class SmsController extends ISmsImplBase { } } @Override public Bundle getCarrierConfigValuesForSubscriber(int subId) { final long identity = Binder.clearCallingIdentity(); try { final CarrierConfigManager configManager = (CarrierConfigManager) mContext.getSystemService(Context.CARRIER_CONFIG_SERVICE); return getMmsConfig(configManager.getConfigForSubId(subId)); } finally { Binder.restoreCallingIdentity(identity); } } /** * Filters a bundle to only contain MMS config variables. * * This is for use with bundles returned by CarrierConfigManager which contain MMS config and * unrelated config. It is assumed that all MMS_CONFIG_* keys are present in the supplied * bundle. * * @param config a Bundle that contains MMS config variables and possibly more. * @return a new Bundle that only contains the MMS_CONFIG_* keys defined in SmsManager. */ private static Bundle getMmsConfig(BaseBundle config) { Bundle filtered = new Bundle(); filtered.putBoolean( SmsManager.MMS_CONFIG_APPEND_TRANSACTION_ID, config.getBoolean(SmsManager.MMS_CONFIG_APPEND_TRANSACTION_ID)); filtered.putBoolean( SmsManager.MMS_CONFIG_MMS_ENABLED, config.getBoolean(SmsManager.MMS_CONFIG_MMS_ENABLED)); filtered.putBoolean( SmsManager.MMS_CONFIG_GROUP_MMS_ENABLED, config.getBoolean(SmsManager.MMS_CONFIG_GROUP_MMS_ENABLED)); filtered.putBoolean( SmsManager.MMS_CONFIG_NOTIFY_WAP_MMSC_ENABLED, config.getBoolean(SmsManager.MMS_CONFIG_NOTIFY_WAP_MMSC_ENABLED)); filtered.putBoolean( SmsManager.MMS_CONFIG_ALIAS_ENABLED, config.getBoolean(SmsManager.MMS_CONFIG_ALIAS_ENABLED)); filtered.putBoolean( SmsManager.MMS_CONFIG_ALLOW_ATTACH_AUDIO, config.getBoolean(SmsManager.MMS_CONFIG_ALLOW_ATTACH_AUDIO)); filtered.putBoolean( SmsManager.MMS_CONFIG_MULTIPART_SMS_ENABLED, config.getBoolean(SmsManager.MMS_CONFIG_MULTIPART_SMS_ENABLED)); filtered.putBoolean( SmsManager.MMS_CONFIG_SMS_DELIVERY_REPORT_ENABLED, config.getBoolean(SmsManager.MMS_CONFIG_SMS_DELIVERY_REPORT_ENABLED)); filtered.putBoolean( SmsManager.MMS_CONFIG_SUPPORT_MMS_CONTENT_DISPOSITION, config.getBoolean(SmsManager.MMS_CONFIG_SUPPORT_MMS_CONTENT_DISPOSITION)); filtered.putBoolean( SmsManager.MMS_CONFIG_SEND_MULTIPART_SMS_AS_SEPARATE_MESSAGES, config.getBoolean(SmsManager.MMS_CONFIG_SEND_MULTIPART_SMS_AS_SEPARATE_MESSAGES)); filtered.putBoolean( SmsManager.MMS_CONFIG_MMS_READ_REPORT_ENABLED, config.getBoolean(SmsManager.MMS_CONFIG_MMS_READ_REPORT_ENABLED)); filtered.putBoolean( SmsManager.MMS_CONFIG_MMS_DELIVERY_REPORT_ENABLED, config.getBoolean(SmsManager.MMS_CONFIG_MMS_DELIVERY_REPORT_ENABLED)); filtered.putBoolean( SmsManager.MMS_CONFIG_CLOSE_CONNECTION, config.getBoolean(SmsManager.MMS_CONFIG_CLOSE_CONNECTION)); filtered.putInt( SmsManager.MMS_CONFIG_MAX_MESSAGE_SIZE, config.getInt(SmsManager.MMS_CONFIG_MAX_MESSAGE_SIZE)); filtered.putInt( SmsManager.MMS_CONFIG_MAX_IMAGE_WIDTH, config.getInt(SmsManager.MMS_CONFIG_MAX_IMAGE_WIDTH)); filtered.putInt( SmsManager.MMS_CONFIG_MAX_IMAGE_HEIGHT, config.getInt(SmsManager.MMS_CONFIG_MAX_IMAGE_HEIGHT)); filtered.putInt( SmsManager.MMS_CONFIG_RECIPIENT_LIMIT, config.getInt(SmsManager.MMS_CONFIG_RECIPIENT_LIMIT)); filtered.putInt( SmsManager.MMS_CONFIG_ALIAS_MIN_CHARS, config.getInt(SmsManager.MMS_CONFIG_ALIAS_MIN_CHARS)); filtered.putInt( SmsManager.MMS_CONFIG_ALIAS_MAX_CHARS, config.getInt(SmsManager.MMS_CONFIG_ALIAS_MAX_CHARS)); filtered.putInt( SmsManager.MMS_CONFIG_SMS_TO_MMS_TEXT_THRESHOLD, config.getInt(SmsManager.MMS_CONFIG_SMS_TO_MMS_TEXT_THRESHOLD)); filtered.putInt( SmsManager.MMS_CONFIG_SMS_TO_MMS_TEXT_LENGTH_THRESHOLD, config.getInt(SmsManager.MMS_CONFIG_SMS_TO_MMS_TEXT_LENGTH_THRESHOLD)); filtered.putInt( SmsManager.MMS_CONFIG_MESSAGE_TEXT_MAX_SIZE, config.getInt(SmsManager.MMS_CONFIG_MESSAGE_TEXT_MAX_SIZE)); filtered.putInt( SmsManager.MMS_CONFIG_SUBJECT_MAX_LENGTH, config.getInt(SmsManager.MMS_CONFIG_SUBJECT_MAX_LENGTH)); filtered.putInt( SmsManager.MMS_CONFIG_HTTP_SOCKET_TIMEOUT, config.getInt(SmsManager.MMS_CONFIG_HTTP_SOCKET_TIMEOUT)); filtered.putString( SmsManager.MMS_CONFIG_UA_PROF_TAG_NAME, config.getString(SmsManager.MMS_CONFIG_UA_PROF_TAG_NAME)); filtered.putString( SmsManager.MMS_CONFIG_USER_AGENT, config.getString(SmsManager.MMS_CONFIG_USER_AGENT)); filtered.putString( SmsManager.MMS_CONFIG_UA_PROF_URL, config.getString(SmsManager.MMS_CONFIG_UA_PROF_URL)); filtered.putString( SmsManager.MMS_CONFIG_HTTP_PARAMS, config.getString(SmsManager.MMS_CONFIG_HTTP_PARAMS)); filtered.putString( SmsManager.MMS_CONFIG_EMAIL_GATEWAY_NUMBER, config.getString(SmsManager.MMS_CONFIG_EMAIL_GATEWAY_NUMBER)); filtered.putString( SmsManager.MMS_CONFIG_NAI_SUFFIX, config.getString(SmsManager.MMS_CONFIG_NAI_SUFFIX)); filtered.putBoolean( SmsManager.MMS_CONFIG_SHOW_CELL_BROADCAST_APP_LINKS, config.getBoolean(SmsManager.MMS_CONFIG_SHOW_CELL_BROADCAST_APP_LINKS)); filtered.putBoolean( SmsManager.MMS_CONFIG_SUPPORT_HTTP_CHARSET_HEADER, config.getBoolean(SmsManager.MMS_CONFIG_SUPPORT_HTTP_CHARSET_HEADER)); return filtered; } @Override public String createAppSpecificSmsTokenWithPackageInfo( int subId, String callingPkg, String prefixes, PendingIntent intent) { Loading
tests/telephonytests/src/com/android/internal/telephony/WapPushOverSmsTest.java +4 −4 Original line number Diff line number Diff line Loading @@ -45,7 +45,7 @@ import org.mockito.Mock; public class WapPushOverSmsTest extends TelephonyTest { @Mock protected IMms.Stub mIMmsStub; protected ISms.Stub mISmsStub; private WapPushOverSms mWapPushOverSmsUT; Loading @@ -55,8 +55,8 @@ public class WapPushOverSmsTest extends TelephonyTest { // Note that this replaces only cached services in ServiceManager. If a service is not found // in the cache, a real instance is used. mServiceManagerMockedServices.put("imms", mIMmsStub); doReturn(mIMmsStub).when(mIMmsStub).queryLocalInterface(anyString()); mServiceManagerMockedServices.put("isms", mISmsStub); doReturn(mISmsStub).when(mISmsStub).queryLocalInterface(anyString()); mWapPushOverSmsUT = new WapPushOverSms(mContext); } Loading Loading @@ -118,7 +118,7 @@ public class WapPushOverSmsTest extends TelephonyTest { @Test @SmallTest public void testDispatchWapPduFromBlockedNumber_noIntentsDispatched() throws Exception { when(mIMmsStub.getCarrierConfigValues(anyInt())).thenReturn(new Bundle()); when(mISmsStub.getCarrierConfigValuesForSubscriber(anyInt())).thenReturn(new Bundle()); mFakeBlockedNumberContentProvider.mBlockedNumbers.add("16178269168"); Loading