Adding Test API to send Memory Status Event For CTS
- Send memory status to SmsStorageMonitor
- Bug: b/255881498
Test: atest CtsTelephonyTestCases:ImsServiceTest
Change-Id: Ifc32053af59c81193b8a47a1ef7d4a839ecfcbf7
(cherry picked from commit 4700b7e73d03cd4fcb29a1956ec453c1af79184a)
diff --git a/core/api/test-current.txt b/core/api/test-current.txt
index 43d4530..56a71bd 100644
--- a/core/api/test-current.txt
+++ b/core/api/test-current.txt
@@ -2633,6 +2633,8 @@
public final class SmsManager {
method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public int checkSmsShortCodeDestination(String, String);
+ method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void clearStorageMonitorMemoryStatusOverride();
+ method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setStorageMonitorMemoryStatusOverride(boolean);
field public static final int SMS_CATEGORY_FREE_SHORT_CODE = 1; // 0x1
field public static final int SMS_CATEGORY_NOT_SHORT_CODE = 0; // 0x0
field public static final int SMS_CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE = 3; // 0x3
diff --git a/telephony/java/android/telephony/SmsManager.java b/telephony/java/android/telephony/SmsManager.java
index 1f301c1..d1f19ee 100644
--- a/telephony/java/android/telephony/SmsManager.java
+++ b/telephony/java/android/telephony/SmsManager.java
@@ -3125,6 +3125,43 @@
}
}
+ /**
+ * Set Storage Availability in SmsStorageMonitor
+ * @param storageAvailable storage availability to be set true or false
+ * @hide
+ */
+ @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
+ @TestApi
+ public void setStorageMonitorMemoryStatusOverride(boolean storageAvailable) {
+ try {
+ ISms iccISms = getISmsServiceOrThrow();
+ if (iccISms != null) {
+ iccISms.setStorageMonitorMemoryStatusOverride(getSubscriptionId(),
+ storageAvailable);
+ }
+ } catch (RemoteException ex) {
+ ex.rethrowFromSystemServer();
+ }
+ }
+
+ /**
+ * Clear the memory status override set by
+ * {@link #setStorageMonitorMemoryStatusOverride(boolean)}
+ * @hide
+ */
+ @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
+ @TestApi
+ public void clearStorageMonitorMemoryStatusOverride() {
+ try {
+ ISms iccISms = getISmsServiceOrThrow();
+ if (iccISms != null) {
+ iccISms.clearStorageMonitorMemoryStatusOverride(getSubscriptionId());
+ }
+ } catch (RemoteException ex) {
+ ex.rethrowFromSystemServer();
+ }
+ }
+
/** @hide */
@Retention(RetentionPolicy.SOURCE)
@IntDef(prefix = {"SMS_CATEGORY_"},
diff --git a/telephony/java/com/android/internal/telephony/ISms.aidl b/telephony/java/com/android/internal/telephony/ISms.aidl
index 9ec3c67..0e23f36 100644
--- a/telephony/java/com/android/internal/telephony/ISms.aidl
+++ b/telephony/java/com/android/internal/telephony/ISms.aidl
@@ -530,6 +530,25 @@
int subId, String callingPkg, String prefixes, in PendingIntent intent);
/**
+ * set Memory Status in SmsStorageMonitor
+ *
+ * @param subId the subscription Id.
+ * @param callingPackage the package name of the calling app.
+ * @param isStorageAvailable sets StorageAvailable to false or true
+ * for testing behaviour of SmsStorageMonitor
+ */
+ void setStorageMonitorMemoryStatusOverride(int subId, boolean isStorageAvailable);
+
+ /**
+ * reset Memory Status change made by TestApi setStorageMonitorMemoryStatusOverride
+ * in SmsStorageMonitor
+ *
+ * @param subId the subscription Id.
+ * @param callingPackage the package name of the calling app.
+ */
+ void clearStorageMonitorMemoryStatusOverride(int subId);
+
+ /**
* Check if the destination is a possible premium short code.
*
* @param destAddress the destination address to test for possible short code
diff --git a/telephony/java/com/android/internal/telephony/ISmsImplBase.java b/telephony/java/com/android/internal/telephony/ISmsImplBase.java
index c361d5b..6864556 100644
--- a/telephony/java/com/android/internal/telephony/ISmsImplBase.java
+++ b/telephony/java/com/android/internal/telephony/ISmsImplBase.java
@@ -192,6 +192,16 @@
}
@Override
+ public void setStorageMonitorMemoryStatusOverride(int subId, boolean storageAvailable) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void clearStorageMonitorMemoryStatusOverride(int subId) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
public int checkSmsShortCodeDestination(int subid, String callingPackage,
String callingFeatureId, String destAddress, String countryIso) {
throw new UnsupportedOperationException();