aboutsummaryrefslogtreecommitdiff
path: root/v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowSmsManager.java
diff options
context:
space:
mode:
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.java89
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;
+ }
+ }
+}