diff options
Diffstat (limited to 'v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowSmsManager.java')
-rw-r--r-- | v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowSmsManager.java | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowSmsManager.java b/v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowSmsManager.java new file mode 100644 index 000000000..3c4cca763 --- /dev/null +++ b/v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowSmsManager.java @@ -0,0 +1,89 @@ +package com.xtremelabs.robolectric.shadows; + +import android.app.PendingIntent; +import android.telephony.SmsManager; +import android.text.TextUtils; + +import com.xtremelabs.robolectric.Robolectric; +import com.xtremelabs.robolectric.internal.Implementation; +import com.xtremelabs.robolectric.internal.Implements; +import com.xtremelabs.robolectric.internal.RealObject; + +@Implements(SmsManager.class) +public class ShadowSmsManager { + + @RealObject + private static SmsManager realManager = Robolectric.newInstanceOf(SmsManager.class); + + private TextSmsParams lastTextSmsParams = null; + + @Implementation + public static SmsManager getDefault() { + return realManager; + } + + @Implementation + public void sendTextMessage( + String destinationAddress, String scAddress, String text, + PendingIntent sentIntent, PendingIntent deliveryIntent) { + + if (TextUtils.isEmpty(destinationAddress)) + throw new IllegalArgumentException("Invalid destinationAddress"); + + if (TextUtils.isEmpty(text)) + throw new IllegalArgumentException("Invalid message body"); + + lastTextSmsParams = new TextSmsParams( + destinationAddress, + scAddress, + text, + sentIntent, + deliveryIntent ); + } + + public TextSmsParams getLastSentTextMessageParams() { + return lastTextSmsParams; + } + + public void clearLastSentTextMessageParams() { + lastTextSmsParams = null; + } + + public class TextSmsParams { + private String destinationAddress; + private String scAddress; + private String text; + private PendingIntent sentIntent; + private PendingIntent deliveryIntent; + + public TextSmsParams( + String destinationAddress, String scAddress, String text, + PendingIntent sentIntent, PendingIntent deliveryIntent) { + this.destinationAddress = destinationAddress; + this.scAddress = scAddress; + this.text = text; + this.sentIntent = sentIntent; + this.deliveryIntent = deliveryIntent; + } + + public String getDestinationAddress() { + return destinationAddress; + } + + public String getScAddress() { + return scAddress; + } + + public String getText() { + return text; + } + + public PendingIntent getSentIntent() { + return sentIntent; + } + + public PendingIntent getDeliveryIntent() { + return deliveryIntent; + } + } +} |