Merge "Cache ITelephony service."
This commit is contained in:
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user