From 81513212f03e15ded31e85e86ee2a61bbae99fcb Mon Sep 17 00:00:00 2001 From: donaldahn Date: Thu, 21 Jul 2022 03:33:36 +0000 Subject: [PATCH] [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 --- telephony/java/android/telephony/ims/ImsMmTelManager.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/telephony/java/android/telephony/ims/ImsMmTelManager.java b/telephony/java/android/telephony/ims/ImsMmTelManager.java index 5bae1ad72d938..a6ccb220d74e4 100644 --- a/telephony/java/android/telephony/ims/ImsMmTelManager.java +++ b/telephony/java/android/telephony/ims/ImsMmTelManager.java @@ -223,6 +223,10 @@ public class ImsMmTelManager implements RegistrationManager { private final int mSubId; private final BinderCacheManager mBinderCache; + // Cache Telephony Binder interfaces, one cache per process. + private static final BinderCacheManager sTelephonyCache = + new BinderCacheManager<>(ImsMmTelManager::getITelephonyInterface); + /** * Create an instance of {@link ImsMmTelManager} for the subscription id specified. * @@ -251,8 +255,7 @@ public class ImsMmTelManager implements RegistrationManager { throw new IllegalArgumentException("Invalid subscription ID"); } - return new ImsMmTelManager(subId, new BinderCacheManager<>( - ImsMmTelManager::getITelephonyInterface)); + return new ImsMmTelManager(subId, sTelephonyCache); } /**