From 106065c542499a2a234b96d4ba1d1618c2164e80 Mon Sep 17 00:00:00 2001 From: Nagendra Prasad Nagarle Basavaraju Date: Wed, 31 May 2023 08:57:12 +0000 Subject: [PATCH] [Telphony Fix] Update notifyDataActivityForSubscriber() Update notifyDataActivityForSubscriber() method for phone id support Bug: 284258406 Test: atest TelephonyRegistryTests & atest DefaultPhoneNotifierTests Test: Device validation b/285299825 & b/285295292 Change-Id: Iec80d3fb24b555aa6c7bdf6c594fbe86eeb73cb9 --- .../telephony/TelephonyRegistryManager.java | 7 +++++-- .../internal/telephony/ITelephonyRegistry.aidl | 4 +--- .../com/android/server/TelephonyRegistry.java | 18 +++++++++++------- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/core/java/android/telephony/TelephonyRegistryManager.java b/core/java/android/telephony/TelephonyRegistryManager.java index 434b1c76113ff..e2c5539141a40 100644 --- a/core/java/android/telephony/TelephonyRegistryManager.java +++ b/core/java/android/telephony/TelephonyRegistryManager.java @@ -490,13 +490,16 @@ public class TelephonyRegistryManager { /** * Notify changes to activity state changes on certain subscription. * + * @param slotIndex for which data activity changed. Can be derived from subId except + * when subId is invalid. * @param subId for which data activity state changed. * @param dataActivityType indicates the latest data activity type e.g, {@link * TelephonyManager#DATA_ACTIVITY_IN} */ - public void notifyDataActivityChanged(int subId, @DataActivityType int dataActivityType) { + public void notifyDataActivityChanged(int slotIndex, int subId, + @DataActivityType int dataActivityType) { try { - sRegistry.notifyDataActivityForSubscriber(subId, dataActivityType); + sRegistry.notifyDataActivityForSubscriber(slotIndex, subId, dataActivityType); } catch (RemoteException ex) { // system process is dead throw ex.rethrowFromSystemServer(); diff --git a/core/java/com/android/internal/telephony/ITelephonyRegistry.aidl b/core/java/com/android/internal/telephony/ITelephonyRegistry.aidl index 8a02dd62dd2d6..dadeb2b74c7d4 100644 --- a/core/java/com/android/internal/telephony/ITelephonyRegistry.aidl +++ b/core/java/com/android/internal/telephony/ITelephonyRegistry.aidl @@ -60,9 +60,7 @@ interface ITelephonyRegistry { @UnsupportedAppUsage(maxTargetSdk = 28) void notifyCallForwardingChanged(boolean cfi); void notifyCallForwardingChangedForSubscriber(in int subId, boolean cfi); - @UnsupportedAppUsage(maxTargetSdk = 28) - void notifyDataActivity(int state); - void notifyDataActivityForSubscriber(in int subId, int state); + void notifyDataActivityForSubscriber(int phoneId, int subId, int state); void notifyDataConnectionForSubscriber( int phoneId, int subId, in PreciseDataConnectionState preciseState); // Uses CellIdentity which is Parcelable here; will convert to CellLocation in client. diff --git a/services/core/java/com/android/server/TelephonyRegistry.java b/services/core/java/com/android/server/TelephonyRegistry.java index a641e85ad44d8..c718d392a6109 100644 --- a/services/core/java/com/android/server/TelephonyRegistry.java +++ b/services/core/java/com/android/server/TelephonyRegistry.java @@ -2093,20 +2093,24 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { } } - public void notifyDataActivity(int state) { - notifyDataActivityForSubscriber(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID, state); - } - - public void notifyDataActivityForSubscriber(int subId, int state) { + /** + * Send a notification to registrants about the data activity state. + * + * @param phoneId the phoneId carrying the data connection + * @param subId the subscriptionId for the data connection + * @param state indicates the latest data activity type + * e.g.,{@link TelephonyManager#DATA_ACTIVITY_IN} + * + */ + public void notifyDataActivityForSubscriber(int phoneId, int subId, int state) { if (!checkNotifyPermission("notifyDataActivity()" )) { return; } - int phoneId = getPhoneIdFromSubId(subId); + synchronized (mRecords) { if (validatePhoneId(phoneId)) { mDataActivity[phoneId] = state; for (Record r : mRecords) { - // Notify by correct subId. if (r.matchTelephonyCallbackEvent( TelephonyCallback.EVENT_DATA_ACTIVITY_CHANGED) && idMatch(r, subId, phoneId)) {