Merge "Cache ITelephony service."

This commit is contained in:
Amit Mahajan
2020-11-03 06:58:25 +00:00
committed by Gerrit Code Review

View File

@@ -304,6 +304,8 @@ public class TelephonyManager {
/** @hide */ /** @hide */
private static boolean sServiceHandleCacheEnabled = true; private static boolean sServiceHandleCacheEnabled = true;
@GuardedBy("sCacheLock")
private static ITelephony sITelephony;
@GuardedBy("sCacheLock") @GuardedBy("sCacheLock")
private static IPhoneSubInfo sIPhoneSubInfo; private static IPhoneSubInfo sIPhoneSubInfo;
@GuardedBy("sCacheLock") @GuardedBy("sCacheLock")
@@ -4185,7 +4187,7 @@ public class TelephonyManager {
} }
} }
/** /**
* @param keyAvailability bitmask that defines the availabilty of keys for a type. * @param keyAvailability bitmask that defines the availabilty of keys for a type.
* @param keyType the key type which is being checked. (WLAN, EPDG) * @param keyType the key type which is being checked. (WLAN, EPDG)
* @return true if the digit at position keyType is 1, else false. * @return true if the digit at position keyType is 1, else false.
@@ -5504,13 +5506,39 @@ public class TelephonyManager {
} }
} }
/** /**
* @hide * @hide
*/ */
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P) @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
private ITelephony getITelephony() { private ITelephony getITelephony() {
return ITelephony.Stub.asInterface(TelephonyFrameworkInitializer // Keeps cache disabled until test fixes are checked into AOSP.
.getTelephonyServiceManager().getTelephonyServiceRegisterer().get()); if (!sServiceHandleCacheEnabled) {
return ITelephony.Stub.asInterface(
TelephonyFrameworkInitializer
.getTelephonyServiceManager()
.getTelephonyServiceRegisterer()
.get());
}
if (sITelephony == null) {
ITelephony temp = ITelephony.Stub.asInterface(
TelephonyFrameworkInitializer
.getTelephonyServiceManager()
.getTelephonyServiceRegisterer()
.get());
synchronized (sCacheLock) {
if (sITelephony == null && temp != null) {
try {
sITelephony = temp;
sITelephony.asBinder().linkToDeath(sServiceDeath, 0);
} catch (Exception e) {
// something has gone horribly wrong
sITelephony = null;
}
}
}
}
return sITelephony;
} }
private IOns getIOns() { private IOns getIOns() {
@@ -13444,6 +13472,10 @@ public class TelephonyManager {
*/ */
private static void resetServiceCache() { private static void resetServiceCache() {
synchronized (sCacheLock) { synchronized (sCacheLock) {
if (sITelephony != null) {
sITelephony.asBinder().unlinkToDeath(sServiceDeath, 0);
sITelephony = null;
}
if (sISub != null) { if (sISub != null) {
sISub.asBinder().unlinkToDeath(sServiceDeath, 0); sISub.asBinder().unlinkToDeath(sServiceDeath, 0);
sISub = null; sISub = null;
@@ -13460,9 +13492,9 @@ public class TelephonyManager {
} }
} }
/** /**
* @hide * @hide
*/ */
static IPhoneSubInfo getSubscriberInfoService() { static IPhoneSubInfo getSubscriberInfoService() {
// Keeps cache disabled until test fixes are checked into AOSP. // Keeps cache disabled until test fixes are checked into AOSP.
if (!sServiceHandleCacheEnabled) { if (!sServiceHandleCacheEnabled) {