1f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati/* 2f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger * Copyright (C) 2018 The Android Open Source Project 3f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati * 4f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati * Licensed under the Apache License, Version 2.0 (the "License"); 5f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati * you may not use this file except in compliance with the License. 6f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati * You may obtain a copy of the License at 7f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati * 8f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati * http://www.apache.org/licenses/LICENSE-2.0 9f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati * 10f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati * Unless required by applicable law or agreed to in writing, software 11f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati * distributed under the License is distributed on an "AS IS" BASIS, 12f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati * See the License for the specific language governing permissions and 14f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger * limitations under the License 15f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati */ 16f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati 17f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebingerpackage android.telephony.ims; 18f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati 19f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebingerimport android.annotation.SystemApi; 20f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapatiimport android.net.Uri; 21f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapatiimport android.os.Parcel; 22f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapatiimport android.os.Parcelable; 23c96b5e087382a2a530e9c8cf8f2e1f8dbfc439c5Tyler Gunnimport android.telecom.Log; 24f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapatiimport android.telephony.Rlog; 25f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati 26f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati/* 27f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati * This file contains all the api's through which 28f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati * information received in Dialog Event Package can be 29f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati * queried 30f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati */ 31f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati 32f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati/** 3365314501f43a55b987852b2442061196978429e6Anju Mathapati * Parcelable object to handle MultiEndpoint Dialog Information 34f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati * @hide 35f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati */ 36f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger@SystemApi 37f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebingerpublic final class ImsExternalCallState implements Parcelable { 38f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati 39f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati private static final String TAG = "ImsExternalCallState"; 40f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati 41f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati // Dialog States 42f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati public static final int CALL_STATE_CONFIRMED = 1; 43f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati public static final int CALL_STATE_TERMINATED = 2; 44f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati // Dialog Id 4565314501f43a55b987852b2442061196978429e6Anju Mathapati private int mCallId; 46f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati // Number 4765314501f43a55b987852b2442061196978429e6Anju Mathapati private Uri mAddress; 4865314501f43a55b987852b2442061196978429e6Anju Mathapati private boolean mIsPullable; 49f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati // CALL_STATE_CONFIRMED / CALL_STATE_TERMINATED 5065314501f43a55b987852b2442061196978429e6Anju Mathapati private int mCallState; 51f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati // ImsCallProfile#CALL_TYPE_* 5265314501f43a55b987852b2442061196978429e6Anju Mathapati private int mCallType; 5365314501f43a55b987852b2442061196978429e6Anju Mathapati private boolean mIsHeld; 54f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati 55f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger /** @hide */ 56f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati public ImsExternalCallState() { 57f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati } 58f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati 59f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger /** @hide */ 6065314501f43a55b987852b2442061196978429e6Anju Mathapati public ImsExternalCallState(int callId, Uri address, boolean isPullable, int callState, 6165314501f43a55b987852b2442061196978429e6Anju Mathapati int callType, boolean isCallheld) { 6265314501f43a55b987852b2442061196978429e6Anju Mathapati mCallId = callId; 6365314501f43a55b987852b2442061196978429e6Anju Mathapati mAddress = address; 6465314501f43a55b987852b2442061196978429e6Anju Mathapati mIsPullable = isPullable; 6565314501f43a55b987852b2442061196978429e6Anju Mathapati mCallState = callState; 6665314501f43a55b987852b2442061196978429e6Anju Mathapati mCallType = callType; 6765314501f43a55b987852b2442061196978429e6Anju Mathapati mIsHeld = isCallheld; 6865314501f43a55b987852b2442061196978429e6Anju Mathapati Rlog.d(TAG, "ImsExternalCallState = " + this); 6965314501f43a55b987852b2442061196978429e6Anju Mathapati } 7065314501f43a55b987852b2442061196978429e6Anju Mathapati 71f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger /** @hide */ 72f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati public ImsExternalCallState(Parcel in) { 73f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati mCallId = in.readInt(); 74f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati ClassLoader classLoader = ImsExternalCallState.class.getClassLoader(); 75f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati mAddress = in.readParcelable(classLoader); 76f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati mIsPullable = (in.readInt() != 0); 77f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati mCallState = in.readInt(); 78f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati mCallType = in.readInt(); 79f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati mIsHeld = (in.readInt() != 0); 8065314501f43a55b987852b2442061196978429e6Anju Mathapati Rlog.d(TAG, "ImsExternalCallState const = " + this); 81f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati } 82f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati 83f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati @Override 84f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati public int describeContents() { 85f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati return 0; 86f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati } 87f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati 88f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati @Override 89f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati public void writeToParcel(Parcel out, int flags) { 90f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati out.writeInt(mCallId); 91f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati out.writeParcelable(mAddress, 0); 92f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati out.writeInt(mIsPullable ? 1 : 0); 93f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati out.writeInt(mCallState); 94f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati out.writeInt(mCallType); 95f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati out.writeInt(mIsHeld ? 1 : 0); 9665314501f43a55b987852b2442061196978429e6Anju Mathapati Rlog.d(TAG, "ImsExternalCallState writeToParcel = " + out.toString()); 97f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati } 98f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati 99f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati public static final Parcelable.Creator<ImsExternalCallState> CREATOR = 100f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati new Parcelable.Creator<ImsExternalCallState>() { 101f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati @Override 102f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati public ImsExternalCallState createFromParcel(Parcel in) { 103f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati return new ImsExternalCallState(in); 104f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati } 105f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati 106f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati @Override 107f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati public ImsExternalCallState[] newArray(int size) { 108f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati return new ImsExternalCallState[size]; 109f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati } 110f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati }; 111f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati 112f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati public int getCallId() { 113f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati return mCallId; 114f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati } 115f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati 116f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati public Uri getAddress() { 117f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati return mAddress; 118f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati } 119f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati 120f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati public boolean isCallPullable() { 121f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati return mIsPullable; 122f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati } 123f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati 124f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati public int getCallState() { 125f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati return mCallState; 126f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati } 127f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati 128f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati public int getCallType() { 129f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati return mCallType; 130f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati } 131f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati 132f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati public boolean isCallHeld() { 133f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati return mIsHeld; 134f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati } 135f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati 136f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati @Override 137f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati public String toString() { 138f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati return "ImsExternalCallState { mCallId = " + mCallId + 139c96b5e087382a2a530e9c8cf8f2e1f8dbfc439c5Tyler Gunn ", mAddress = " + Log.pii(mAddress) + 140f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati ", mIsPullable = " + mIsPullable + 141f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati ", mCallState = " + mCallState + 142f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati ", mCallType = " + mCallType + 143f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati ", mIsHeld = " + mIsHeld + "}"; 144f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati } 145f604fc33c699b9f91315588ea4d6c6cd3b09a372Anju Mathapati} 146