13efec46bd0d61f590dbffe5c91cb2580b98628feDavepackage com.xtremelabs.robolectric.shadows; 23efec46bd0d61f590dbffe5c91cb2580b98628feDave 33efec46bd0d61f590dbffe5c91cb2580b98628feDaveimport android.app.PendingIntent; 43efec46bd0d61f590dbffe5c91cb2580b98628feDaveimport android.telephony.SmsManager; 53efec46bd0d61f590dbffe5c91cb2580b98628feDaveimport android.text.TextUtils; 63efec46bd0d61f590dbffe5c91cb2580b98628feDave 73efec46bd0d61f590dbffe5c91cb2580b98628feDaveimport com.xtremelabs.robolectric.Robolectric; 83efec46bd0d61f590dbffe5c91cb2580b98628feDaveimport com.xtremelabs.robolectric.internal.Implementation; 93efec46bd0d61f590dbffe5c91cb2580b98628feDaveimport com.xtremelabs.robolectric.internal.Implements; 103efec46bd0d61f590dbffe5c91cb2580b98628feDaveimport com.xtremelabs.robolectric.internal.RealObject; 113efec46bd0d61f590dbffe5c91cb2580b98628feDave 123efec46bd0d61f590dbffe5c91cb2580b98628feDave@Implements(SmsManager.class) 133efec46bd0d61f590dbffe5c91cb2580b98628feDavepublic class ShadowSmsManager { 143efec46bd0d61f590dbffe5c91cb2580b98628feDave 153efec46bd0d61f590dbffe5c91cb2580b98628feDave @RealObject 163efec46bd0d61f590dbffe5c91cb2580b98628feDave private static SmsManager realManager = Robolectric.newInstanceOf(SmsManager.class); 173efec46bd0d61f590dbffe5c91cb2580b98628feDave 183efec46bd0d61f590dbffe5c91cb2580b98628feDave private TextSmsParams lastTextSmsParams = null; 193efec46bd0d61f590dbffe5c91cb2580b98628feDave 203efec46bd0d61f590dbffe5c91cb2580b98628feDave @Implementation 213efec46bd0d61f590dbffe5c91cb2580b98628feDave public static SmsManager getDefault() { 223efec46bd0d61f590dbffe5c91cb2580b98628feDave return realManager; 233efec46bd0d61f590dbffe5c91cb2580b98628feDave } 243efec46bd0d61f590dbffe5c91cb2580b98628feDave 253efec46bd0d61f590dbffe5c91cb2580b98628feDave @Implementation 263efec46bd0d61f590dbffe5c91cb2580b98628feDave public void sendTextMessage( 273efec46bd0d61f590dbffe5c91cb2580b98628feDave String destinationAddress, String scAddress, String text, 283efec46bd0d61f590dbffe5c91cb2580b98628feDave PendingIntent sentIntent, PendingIntent deliveryIntent) { 29bb5121c7a91b66822e491283cf4dc6062058cb47Dave 303efec46bd0d61f590dbffe5c91cb2580b98628feDave if (TextUtils.isEmpty(destinationAddress)) 313efec46bd0d61f590dbffe5c91cb2580b98628feDave throw new IllegalArgumentException("Invalid destinationAddress"); 323efec46bd0d61f590dbffe5c91cb2580b98628feDave 333efec46bd0d61f590dbffe5c91cb2580b98628feDave if (TextUtils.isEmpty(text)) 343efec46bd0d61f590dbffe5c91cb2580b98628feDave throw new IllegalArgumentException("Invalid message body"); 353efec46bd0d61f590dbffe5c91cb2580b98628feDave 363efec46bd0d61f590dbffe5c91cb2580b98628feDave lastTextSmsParams = new TextSmsParams( 373efec46bd0d61f590dbffe5c91cb2580b98628feDave destinationAddress, 383efec46bd0d61f590dbffe5c91cb2580b98628feDave scAddress, 393efec46bd0d61f590dbffe5c91cb2580b98628feDave text, 403efec46bd0d61f590dbffe5c91cb2580b98628feDave sentIntent, 413efec46bd0d61f590dbffe5c91cb2580b98628feDave deliveryIntent ); 423efec46bd0d61f590dbffe5c91cb2580b98628feDave } 433efec46bd0d61f590dbffe5c91cb2580b98628feDave 443efec46bd0d61f590dbffe5c91cb2580b98628feDave public TextSmsParams getLastSentTextMessageParams() { 453efec46bd0d61f590dbffe5c91cb2580b98628feDave return lastTextSmsParams; 463efec46bd0d61f590dbffe5c91cb2580b98628feDave } 47bb5121c7a91b66822e491283cf4dc6062058cb47Dave 48bb5121c7a91b66822e491283cf4dc6062058cb47Dave public void clearLastSentTextMessageParams() { 49bb5121c7a91b66822e491283cf4dc6062058cb47Dave lastTextSmsParams = null; 50bb5121c7a91b66822e491283cf4dc6062058cb47Dave } 513efec46bd0d61f590dbffe5c91cb2580b98628feDave 523efec46bd0d61f590dbffe5c91cb2580b98628feDave public class TextSmsParams { 533efec46bd0d61f590dbffe5c91cb2580b98628feDave private String destinationAddress; 543efec46bd0d61f590dbffe5c91cb2580b98628feDave private String scAddress; 553efec46bd0d61f590dbffe5c91cb2580b98628feDave private String text; 563efec46bd0d61f590dbffe5c91cb2580b98628feDave private PendingIntent sentIntent; 573efec46bd0d61f590dbffe5c91cb2580b98628feDave private PendingIntent deliveryIntent; 583efec46bd0d61f590dbffe5c91cb2580b98628feDave 593efec46bd0d61f590dbffe5c91cb2580b98628feDave public TextSmsParams( 603efec46bd0d61f590dbffe5c91cb2580b98628feDave String destinationAddress, String scAddress, String text, 613efec46bd0d61f590dbffe5c91cb2580b98628feDave PendingIntent sentIntent, PendingIntent deliveryIntent) { 623efec46bd0d61f590dbffe5c91cb2580b98628feDave this.destinationAddress = destinationAddress; 633efec46bd0d61f590dbffe5c91cb2580b98628feDave this.scAddress = scAddress; 643efec46bd0d61f590dbffe5c91cb2580b98628feDave this.text = text; 653efec46bd0d61f590dbffe5c91cb2580b98628feDave this.sentIntent = sentIntent; 663efec46bd0d61f590dbffe5c91cb2580b98628feDave this.deliveryIntent = deliveryIntent; 673efec46bd0d61f590dbffe5c91cb2580b98628feDave } 683efec46bd0d61f590dbffe5c91cb2580b98628feDave 693efec46bd0d61f590dbffe5c91cb2580b98628feDave public String getDestinationAddress() { 703efec46bd0d61f590dbffe5c91cb2580b98628feDave return destinationAddress; 713efec46bd0d61f590dbffe5c91cb2580b98628feDave } 723efec46bd0d61f590dbffe5c91cb2580b98628feDave 733efec46bd0d61f590dbffe5c91cb2580b98628feDave public String getScAddress() { 743efec46bd0d61f590dbffe5c91cb2580b98628feDave return scAddress; 753efec46bd0d61f590dbffe5c91cb2580b98628feDave } 763efec46bd0d61f590dbffe5c91cb2580b98628feDave 773efec46bd0d61f590dbffe5c91cb2580b98628feDave public String getText() { 783efec46bd0d61f590dbffe5c91cb2580b98628feDave return text; 793efec46bd0d61f590dbffe5c91cb2580b98628feDave } 803efec46bd0d61f590dbffe5c91cb2580b98628feDave 813efec46bd0d61f590dbffe5c91cb2580b98628feDave public PendingIntent getSentIntent() { 823efec46bd0d61f590dbffe5c91cb2580b98628feDave return sentIntent; 833efec46bd0d61f590dbffe5c91cb2580b98628feDave } 843efec46bd0d61f590dbffe5c91cb2580b98628feDave 853efec46bd0d61f590dbffe5c91cb2580b98628feDave public PendingIntent getDeliveryIntent() { 863efec46bd0d61f590dbffe5c91cb2580b98628feDave return deliveryIntent; 873efec46bd0d61f590dbffe5c91cb2580b98628feDave } 883efec46bd0d61f590dbffe5c91cb2580b98628feDave } 893efec46bd0d61f590dbffe5c91cb2580b98628feDave} 90