Merge "Revert "improve mism support for phonestatelistner""

am: 6eab01bf59

Change-Id: I4c54c362aedaf680fd59a10cf4d792910ba8a04c
This commit is contained in:
Jayachandran Chinnakkannu
2019-03-28 11:20:18 -07:00
committed by android-build-merger
2 changed files with 17 additions and 27 deletions

View File

@@ -627,11 +627,6 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
r.callingPackage = callingPackage;
r.callerUid = Binder.getCallingUid();
r.callerPid = Binder.getCallingPid();
if (r.subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID && r.subId != subId) {
throw new IllegalArgumentException(
"PhoneStateListener cannot concurrently listen on multiple " +
"subscriptions. Previously registered on subId: " + r.subId);
}
// Legacy applications pass SubscriptionManager.DEFAULT_SUB_ID,
// force all illegal subId to SubscriptionManager.DEFAULT_SUB_ID
if (!SubscriptionManager.isValidSubscriptionId(subId)) {

View File

@@ -4755,22 +4755,18 @@ public class TelephonyManager {
* Registers a listener object to receive notification of changes
* in specified telephony states.
* <p>
* To register a listener, pass a {@link PhoneStateListener} and specify at least one telephony
* state of interest in the events argument.
* To register a listener, pass a {@link PhoneStateListener}
* and specify at least one telephony state of interest in
* the events argument.
*
* At registration, and when a specified telephony state changes, the telephony manager invokes
* the appropriate callback method on the listener object and passes the current (updated)
* values.
* At registration, and when a specified telephony state
* changes, the telephony manager invokes the appropriate
* callback method on the listener object and passes the
* current (updated) values.
* <p>
* To un-register a listener, pass the listener object and set the events argument to
* To unregister a listener, pass the listener object and set the
* events argument to
* {@link PhoneStateListener#LISTEN_NONE LISTEN_NONE} (0).
*
* If this TelephonyManager object has been created with {@link #createForSubscriptionId},
* applies to the given subId. Otherwise, applies to
* {@link SubscriptionManager#getDefaultSubscriptionId()}. To listen events for multiple subIds,
* pass a separate listener object to each TelephonyManager object created with
* {@link #createForSubscriptionId}.
*
* Note: if you call this method while in the middle of a binder transaction, you <b>must</b>
* call {@link android.os.Binder#clearCallingIdentity()} before calling this method. A
* {@link SecurityException} will be thrown otherwise.
@@ -4785,18 +4781,17 @@ public class TelephonyManager {
if (mContext == null) return;
try {
boolean notifyNow = (getITelephony() != null);
// If the listener has not explicitly set the subId (for example, created with the
// default constructor), replace the subId so it will listen to the account the
// telephony manager is created with.
if (listener.mSubId == null) {
listener.mSubId = mSubId;
}
ITelephonyRegistry registry = getTelephonyRegistry();
if (registry != null) {
// listen to the subId the telephony manager is created with. Ignore subId in
// PhoneStateListener.
registry.listenForSubscriber(mSubId, getOpPackageName(),
registry.listenForSubscriber(listener.mSubId, getOpPackageName(),
listener.callback, events, notifyNow);
// TODO: remove this once we remove PhoneStateListener constructor with subId.
if (events == PhoneStateListener.LISTEN_NONE) {
listener.mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
} else {
listener.mSubId = mSubId;
}
} else {
Rlog.w(TAG, "telephony registry not ready.");
}