From 9b206fc7ad5f4183e20fa2b81144977f4afc14dc Mon Sep 17 00:00:00 2001 From: Megha Patil Date: Thu, 10 Nov 2022 06:37:37 +0000 Subject: [PATCH] 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) --- core/api/test-current.txt | 2 + .../java/android/telephony/SmsManager.java | 37 +++++++++++++++++++ .../com/android/internal/telephony/ISms.aidl | 19 ++++++++++ .../internal/telephony/ISmsImplBase.java | 10 +++++ 4 files changed, 68 insertions(+) diff --git a/core/api/test-current.txt b/core/api/test-current.txt index 43d4530cbf1d0..56a71bd72fb1f 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -2633,6 +2633,8 @@ package android.telephony { 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 1f301c1b2279d..d1f19ee0f1e6a 100644 --- a/telephony/java/android/telephony/SmsManager.java +++ b/telephony/java/android/telephony/SmsManager.java @@ -3125,6 +3125,43 @@ public final class SmsManager { } } + /** + * 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 9ec3c6716a296..0e23f364134cc 100644 --- a/telephony/java/com/android/internal/telephony/ISms.aidl +++ b/telephony/java/com/android/internal/telephony/ISms.aidl @@ -529,6 +529,25 @@ interface ISms { String createAppSpecificSmsTokenWithPackageInfo( 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. * diff --git a/telephony/java/com/android/internal/telephony/ISmsImplBase.java b/telephony/java/com/android/internal/telephony/ISmsImplBase.java index c361d5bec0974..6864556882037 100644 --- a/telephony/java/com/android/internal/telephony/ISmsImplBase.java +++ b/telephony/java/com/android/internal/telephony/ISmsImplBase.java @@ -191,6 +191,16 @@ public class ISmsImplBase extends ISms.Stub { throw new UnsupportedOperationException(); } + @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) {