[Telephony] Handling to cache the instance of BinderCacheManager when
createForSubscriptionId is called
Bug: b/237248121
Test: (TMUS) Calling Dial, Receive, Messaging Send, receive, airplane on/off
Change-Id: I4aeeb621246fe49ade21d36d3d0aa94fe4f69ea3
diff --git a/telephony/java/android/telephony/ims/ImsMmTelManager.java b/telephony/java/android/telephony/ims/ImsMmTelManager.java
index 5bae1ad..a6ccb22 100644
--- a/telephony/java/android/telephony/ims/ImsMmTelManager.java
+++ b/telephony/java/android/telephony/ims/ImsMmTelManager.java
@@ -223,6 +223,10 @@
private final int mSubId;
private final BinderCacheManager<ITelephony> mBinderCache;
+ // Cache Telephony Binder interfaces, one cache per process.
+ private static final BinderCacheManager<ITelephony> sTelephonyCache =
+ new BinderCacheManager<>(ImsMmTelManager::getITelephonyInterface);
+
/**
* Create an instance of {@link ImsMmTelManager} for the subscription id specified.
*
@@ -251,8 +255,7 @@
throw new IllegalArgumentException("Invalid subscription ID");
}
- return new ImsMmTelManager(subId, new BinderCacheManager<>(
- ImsMmTelManager::getITelephonyInterface));
+ return new ImsMmTelManager(subId, sTelephonyCache);
}
/**