diff options
author | Brad Ebinger <breadley@google.com> | 2020-09-30 17:25:39 +0000 |
---|---|---|
committer | Brad Ebinger <breadley@google.com> | 2020-09-30 17:31:59 +0000 |
commit | bdd15379d2e5bea0e39f560f87ea0d85ccb37cbf (patch) | |
tree | 81ae91cff0be4379da98c52fbb83401ff70760f7 /telephony/java/com | |
parent | 19bdbabb809f4888f53e8b8350b0f938290c7494 (diff) |
Revert "Clean up IMS based interfaces to use a push model instea..."
Revert "Move IMS to a listener type model instead of a poll model"
Revert "Push Binder updates when ImsFeatures change"
Revert submission 1425374-ims_poll
Reason for revert: b/169729036, ANR in phone process
Reverted Changes:
I1d6dd2dfd:Move to a push model of querying ImsFeature Binder...
Ie3982c245:Move IMS to a listener type model instead of a pol...
I8b9ded0f4:Push Binder updates when ImsFeatures change
Ia9f7ae3db:Clean up IMS based interfaces to use a push model ...
Merged-In: I7ef3c07021a79e809d2c8b30ed2422372eae962d
Change-Id: I7ef3c07021a79e809d2c8b30ed2422372eae962d
Diffstat (limited to 'telephony/java/com')
4 files changed, 17 insertions, 206 deletions
diff --git a/telephony/java/com/android/ims/ImsFeatureContainer.aidl b/telephony/java/com/android/ims/ImsFeatureContainer.aidl deleted file mode 100644 index 9706f20c59ca..000000000000 --- a/telephony/java/com/android/ims/ImsFeatureContainer.aidl +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright (C) 2020 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.ims; - -parcelable ImsFeatureContainer;
\ No newline at end of file diff --git a/telephony/java/com/android/ims/ImsFeatureContainer.java b/telephony/java/com/android/ims/ImsFeatureContainer.java deleted file mode 100644 index b259679ea1bf..000000000000 --- a/telephony/java/com/android/ims/ImsFeatureContainer.java +++ /dev/null @@ -1,172 +0,0 @@ -/* - * Copyright (C) 2020 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.ims; - -import android.annotation.NonNull; -import android.os.IBinder; -import android.os.Parcel; -import android.os.Parcelable; -import android.telephony.ims.ImsService; -import android.telephony.ims.aidl.IImsConfig; -import android.telephony.ims.aidl.IImsRegistration; -import android.telephony.ims.feature.ImsFeature; - -import java.util.Objects; - -/** - * Contains an IBinder linking to the appropriate ImsFeature as well as the associated - * interfaces. - * @hide - */ -public final class ImsFeatureContainer implements Parcelable { - /** - * ImsFeature that is being tracked. - */ - public final IBinder imsFeature; - - /** - * IImsConfig interface that should be associated with the ImsFeature. - */ - public final android.telephony.ims.aidl.IImsConfig imsConfig; - - /** - * IImsRegistration interface that should be associated with this ImsFeature. - */ - public final IImsRegistration imsRegistration; - - /** - * State of the feature that is being tracked. - */ - private @ImsFeature.ImsState int mState = ImsFeature.STATE_UNAVAILABLE; - - /** - * Capabilities of this ImsService. - */ - private @ImsService.ImsServiceCapability long mCapabilities; - /** - * Contains the ImsFeature IBinder as well as the ImsService interfaces associated with - * that feature. - * @param iFace IBinder connection to the ImsFeature. - * @param iConfig IImsConfig interface associated with the ImsFeature. - * @param iReg IImsRegistration interface associated with the ImsFeature - * @param initialCaps The initial capabilities that the ImsService supports. - */ - public ImsFeatureContainer(@NonNull IBinder iFace, @NonNull IImsConfig iConfig, - @NonNull IImsRegistration iReg, long initialCaps) { - imsFeature = iFace; - imsConfig = iConfig; - imsRegistration = iReg; - mCapabilities = initialCaps; - } - - /** - * Create an ImsFeatureContainer from a Parcel. - */ - private ImsFeatureContainer(Parcel in) { - imsFeature = in.readStrongBinder(); - imsConfig = IImsConfig.Stub.asInterface(in.readStrongBinder()); - imsRegistration = IImsRegistration.Stub.asInterface(in.readStrongBinder()); - mState = in.readInt(); - mCapabilities = in.readLong(); - } - - /** - * @return the capabilties that are associated with the ImsService that this ImsFeature - * belongs to. - */ - public @ImsService.ImsServiceCapability long getCapabilities() { - return mCapabilities; - } - - /** - * Update the capabilities that are associated with the ImsService that this ImsFeature - * belongs to. - */ - public void setCapabilities(@ImsService.ImsServiceCapability long caps) { - mCapabilities = caps; - } - - /** - * @return The state of the ImsFeature. - */ - public @ImsFeature.ImsState int getState() { - return mState; - } - - /** - * Set the state that is associated with the ImsService that this ImsFeature - * belongs to. - */ - public void setState(@ImsFeature.ImsState int state) { - mState = state; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - ImsFeatureContainer that = (ImsFeatureContainer) o; - return imsFeature.equals(that.imsFeature) && - imsConfig.equals(that.imsConfig) && - imsRegistration.equals(that.imsRegistration) && - mState == that.getState() && - mCapabilities == that.getCapabilities(); - } - - @Override - public int hashCode() { - return Objects.hash(imsFeature, imsConfig, imsRegistration, mState, mCapabilities); - } - - @Override - public String toString() { - return "FeatureContainer{" + - "imsFeature=" + imsFeature + - ", imsConfig=" + imsConfig + - ", imsRegistration=" + imsRegistration + - ", state=" + ImsFeature.STATE_LOG_MAP.get(mState) + - ", capabilities = " + ImsService.getCapabilitiesString(mCapabilities) + - '}'; - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeStrongBinder(imsFeature); - dest.writeStrongInterface(imsConfig); - dest.writeStrongInterface(imsRegistration); - dest.writeInt(mState); - dest.writeLong(mCapabilities); - } - - - public static final Creator<ImsFeatureContainer> CREATOR = new Creator<ImsFeatureContainer>() { - @Override - public ImsFeatureContainer createFromParcel(Parcel source) { - return new ImsFeatureContainer(source); - } - - @Override - public ImsFeatureContainer[] newArray(int size) { - return new ImsFeatureContainer[size]; - } - }; -} diff --git a/telephony/java/com/android/ims/internal/IImsServiceFeatureCallback.aidl b/telephony/java/com/android/ims/internal/IImsServiceFeatureCallback.aidl index f5f67bd36ec3..9a9cf5325310 100644 --- a/telephony/java/com/android/ims/internal/IImsServiceFeatureCallback.aidl +++ b/telephony/java/com/android/ims/internal/IImsServiceFeatureCallback.aidl @@ -16,18 +16,13 @@ package com.android.ims.internal; -import com.android.ims.ImsFeatureContainer; /** - * Interface from ImsResolver to FeatureConnections. - * Callback to FeatureConnections when a feature's status changes. + * Interface from ImsResolver to ImsServiceProxy in ImsManager. + * Callback to ImsManager when a feature changes in the ImsServiceController. * {@hide} */ oneway interface IImsServiceFeatureCallback { - void imsFeatureCreated(in ImsFeatureContainer feature); - // Reason defined in FeatureConnector.UnavailableReason - void imsFeatureRemoved(int reason); - // Status defined in ImsFeature.ImsState. - void imsStatusChanged(int status); - //Capabilities defined in ImsService.ImsServiceCapability - void updateCapabilities(long capabilities); + void imsFeatureCreated(int slotId, int feature); + void imsFeatureRemoved(int slotId, int feature); + void imsStatusChanged(int slotId, int feature, int status); }
\ No newline at end of file diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl index 815ec68b2c4d..ae1b5c1b50bd 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -828,15 +828,22 @@ interface ITelephony { * as well as registering the MmTelFeature for callbacks using the IImsServiceFeatureCallback * interface. */ - void registerMmTelFeatureCallback(int slotId, in IImsServiceFeatureCallback callback, - boolean oneShot); + IImsMmTelFeature getMmTelFeatureAndListen(int slotId, in IImsServiceFeatureCallback callback); + + /** + * Get IImsRcsFeature binder from ImsResolver that corresponds to the subId and RCS feature + * as well as registering the RcsFeature for callbacks using the IImsServiceFeatureCallback + * interface. + */ + IImsRcsFeature getRcsFeatureAndListen(int slotId, in IImsServiceFeatureCallback callback); /** * Unregister a callback that was previously registered through - * {@link #registerMmTelFeatureCallback}. This should always be called when the callback is no - * longer being used. + * {@link #getMmTelFeatureAndListen} or {@link #getRcsFeatureAndListen}. This should always be + * called when the callback is no longer being used. */ - void unregisterImsFeatureCallback(in IImsServiceFeatureCallback callback); + void unregisterImsFeatureCallback(int slotId, int featureType, + in IImsServiceFeatureCallback callback); /** * Returns the IImsRegistration associated with the slot and feature specified. |