[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);
     }
 
     /**