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