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