summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jack Yu <jackyu@google.com> 2017-09-21 23:48:29 -0700
committer Jack Yu <jackyu@google.com> 2017-09-25 10:29:56 -0700
commite4e5dabe8ce2ffc8fd99b1899f8ce3536cecab3e (patch)
tree541f4cc7f781385ef7368b102f29649f92e21a0f
parenta7bf2a21d99b5044af3262d806509153899777e5 (diff)
Fixed that telephony registry service reference incorrectly assigned
The reference to telephony registry service was assigned prior telephony registry service was ready. Fixed by casting the binder every time when we use it. Test: Manual Bug: 65593241 Merged-In: Ib234cdfd93130f7af44ef79271b106fffb8ebad5 Change-Id: Ib234cdfd93130f7af44ef79271b106fffb8ebad5 (cherry picked from commit 66420e258a97e864985530ae7a1e208c978dbc7a)
-rw-r--r--telephony/java/android/telephony/TelephonyManager.java23
1 files changed, 12 insertions, 11 deletions
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index 4d6e1e434d92..b9429b9014f7 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -106,8 +106,6 @@ public class TelephonyManager {
public static final String MODEM_ACTIVITY_RESULT_KEY =
BatteryStats.RESULT_RECEIVER_CONTROLLER_KEY;
- private static ITelephonyRegistry sRegistry;
-
/**
* The allowed states of Wi-Fi calling.
*
@@ -178,11 +176,6 @@ public class TelephonyManager {
mContext = context;
}
mSubscriptionManager = SubscriptionManager.from(mContext);
-
- if (sRegistry == null) {
- sRegistry = ITelephonyRegistry.Stub.asInterface(ServiceManager.getService(
- "telephony.registry"));
- }
}
/** @hide */
@@ -3453,6 +3446,10 @@ public class TelephonyManager {
return ITelecomService.Stub.asInterface(ServiceManager.getService(Context.TELECOM_SERVICE));
}
+ private ITelephonyRegistry getTelephonyRegistry() {
+ return ITelephonyRegistry.Stub.asInterface(ServiceManager.getService("telephony.registry"));
+ }
+
//
//
// PhoneStateListener
@@ -3492,12 +3489,16 @@ public class TelephonyManager {
if (listener.mSubId == null) {
listener.mSubId = mSubId;
}
- sRegistry.listenForSubscriber(listener.mSubId, getOpPackageName(),
- listener.callback, events, notifyNow);
+
+ ITelephonyRegistry registry = getTelephonyRegistry();
+ if (registry != null) {
+ registry.listenForSubscriber(listener.mSubId, getOpPackageName(),
+ listener.callback, events, notifyNow);
+ } else {
+ Rlog.w(TAG, "telephony registry not ready.");
+ }
} catch (RemoteException ex) {
// system process dead
- } catch (NullPointerException ex) {
- // system process dead
}
}