1c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela/* 2c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * Copyright (C) 2014 The Android Open Source Project 3c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * 4c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * Licensed under the Apache License, Version 2.0 (the "License"); 5c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * you may not use this file except in compliance with the License. 6c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * You may obtain a copy of the License at 7c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * 8c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * http://www.apache.org/licenses/LICENSE-2.0 9c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * 10c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * Unless required by applicable law or agreed to in writing, software 11c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * distributed under the License is distributed on an "AS IS" BASIS, 12c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * See the License for the specific language governing permissions and 14c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * limitations under the License. 15c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela */ 16c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 17c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuelapackage android.telephony; 18c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 19c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuelaimport android.os.Bundle; 20c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuelaimport android.os.Parcel; 21c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuelaimport android.os.Parcelable; 22c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuelaimport android.telephony.Rlog; 23c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuelaimport android.telephony.DisconnectCause; 24c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuelaimport android.telephony.PreciseDisconnectCause; 25c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 26c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela/** 27c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * Contains precise call state and call fail causes generated by the 28c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * framework and the RIL. 29c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * 30c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * The following call information is included in returned PreciseCallState: 31c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * 32c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * <ul> 33c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * <li>Ringing call state. 34c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * <li>Foreground call state. 35c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * <li>Background call state. 36c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * <li>Disconnect cause; generated by the framework. 37c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * <li>Precise disconnect cause; generated by the RIL. 38c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * </ul> 39c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * 40c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @hide 41c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela */ 42c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuelapublic class PreciseCallState implements Parcelable { 43c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 44c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** Call state is not valid (Not received a call state). */ 45c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public static final int PRECISE_CALL_STATE_NOT_VALID = -1; 46c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** Call state: No activity. */ 47c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public static final int PRECISE_CALL_STATE_IDLE = 0; 48c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** Call state: Active. */ 49c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public static final int PRECISE_CALL_STATE_ACTIVE = 1; 50c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** Call state: On hold. */ 51c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public static final int PRECISE_CALL_STATE_HOLDING = 2; 52c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** Call state: Dialing. */ 53c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public static final int PRECISE_CALL_STATE_DIALING = 3; 54c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** Call state: Alerting. */ 55c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public static final int PRECISE_CALL_STATE_ALERTING = 4; 56c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** Call state: Incoming. */ 57c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public static final int PRECISE_CALL_STATE_INCOMING = 5; 58c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** Call state: Waiting. */ 59c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public static final int PRECISE_CALL_STATE_WAITING = 6; 60c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** Call state: Disconnected. */ 61c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public static final int PRECISE_CALL_STATE_DISCONNECTED = 7; 62c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** Call state: Disconnecting. */ 63c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public static final int PRECISE_CALL_STATE_DISCONNECTING = 8; 64c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 65c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela private int mRingingCallState = PRECISE_CALL_STATE_NOT_VALID; 66c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela private int mForegroundCallState = PRECISE_CALL_STATE_NOT_VALID; 67c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela private int mBackgroundCallState = PRECISE_CALL_STATE_NOT_VALID; 68c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela private int mDisconnectCause = DisconnectCause.NOT_VALID; 69c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela private int mPreciseDisconnectCause = PreciseDisconnectCause.NOT_VALID; 70c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 71c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** 72c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * Constructor 73c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * 74c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @hide 75c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela */ 76c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public PreciseCallState(int ringingCall, int foregroundCall, int backgroundCall, 77c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela int disconnectCause, int preciseDisconnectCause) { 78c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela mRingingCallState = ringingCall; 79c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela mForegroundCallState = foregroundCall; 80c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela mBackgroundCallState = backgroundCall; 81c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela mDisconnectCause = disconnectCause; 82c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela mPreciseDisconnectCause = preciseDisconnectCause; 83c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 84c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 85c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** 86c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * Empty Constructor 87c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * 88c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @hide 89c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela */ 90c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public PreciseCallState() { 91c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 92c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 93c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** 94c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * Construct a PreciseCallState object from the given parcel. 95c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela */ 96c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela private PreciseCallState(Parcel in) { 97c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela mRingingCallState = in.readInt(); 98c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela mForegroundCallState = in.readInt(); 99c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela mBackgroundCallState = in.readInt(); 100c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela mDisconnectCause = in.readInt(); 101c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela mPreciseDisconnectCause = in.readInt(); 102c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 103c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 104c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** 105c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * Get precise ringing call state 106c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * 107c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_NOT_VALID 108c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_IDLE 109c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_ACTIVE 110c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_HOLDING 111c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_DIALING 112c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_ALERTING 113c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_INCOMING 114c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_WAITING 115c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_DISCONNECTED 116c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_DISCONNECTING 117c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela */ 118c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public int getRingingCallState() { 119c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela return mRingingCallState; 120c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 121c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 122c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** 123c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * Get precise foreground call state 124c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * 125c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_NOT_VALID 126c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_IDLE 127c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_ACTIVE 128c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_HOLDING 129c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_DIALING 130c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_ALERTING 131c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_INCOMING 132c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_WAITING 133c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_DISCONNECTED 134c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_DISCONNECTING 135c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela */ 136c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public int getForegroundCallState() { 137c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela return mForegroundCallState; 138c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 139c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 140c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** 141c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * Get precise background call state 142c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * 143c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_NOT_VALID 144c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_IDLE 145c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_ACTIVE 146c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_HOLDING 147c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_DIALING 148c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_ALERTING 149c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_INCOMING 150c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_WAITING 151c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_DISCONNECTED 152c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_DISCONNECTING 153c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela */ 154c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public int getBackgroundCallState() { 155c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela return mBackgroundCallState; 156c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 157c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 158c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** 159c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * Get disconnect cause generated by the framework 160c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * 161c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#NOT_VALID 162c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#NOT_DISCONNECTED 163c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#INCOMING_MISSED 164c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#NORMAL 165c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#LOCAL 166c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#BUSY 167c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#CONGESTION 168c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#MMI 169c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#INVALID_NUMBER 170c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#NUMBER_UNREACHABLE 171c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#SERVER_UNREACHABLE 172c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#INVALID_CREDENTIALS 173c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#OUT_OF_NETWORK 174c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#SERVER_ERROR 175c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#TIMED_OUT 176c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#LOST_SIGNAL 177c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#LIMIT_EXCEEDED 178c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#INCOMING_REJECTED 179c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#POWER_OFF 180c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#OUT_OF_SERVICE 181c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#ICC_ERROR 182c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#CALL_BARRED 183c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#FDN_BLOCKED 184c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#CS_RESTRICTED 185c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#CS_RESTRICTED_NORMAL 186c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#CS_RESTRICTED_EMERGENCY 187c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#UNOBTAINABLE_NUMBER 188c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#CDMA_LOCKED_UNTIL_POWER_CYCLE 189c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#CDMA_DROP 190c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#CDMA_INTERCEPT 191c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#CDMA_REORDER 192c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#CDMA_SO_REJECT 193c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#CDMA_RETRY_ORDER 194c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#CDMA_ACCESS_FAILURE 195c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#CDMA_PREEMPTED 196c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#CDMA_NOT_EMERGENCY 197c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#CDMA_ACCESS_BLOCKED 198c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#ERROR_UNSPECIFIED 199c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela */ 200c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public int getDisconnectCause() { 201c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela return mDisconnectCause; 202c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 203c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 204c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** 205c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * Get disconnect cause generated by the RIL 206c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * 207c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#NOT_VALID 208c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#NO_DISCONNECT_CAUSE_AVAILABLE 209c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#UNOBTAINABLE_NUMBER 210c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#NORMAL 211c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#BUSY 212c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#NUMBER_CHANGED 213c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#STATUS_ENQUIRY 214c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#NORMAL_UNSPECIFIED 215c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#NO_CIRCUIT_AVAIL 216c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#TEMPORARY_FAILURE 217c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#SWITCHING_CONGESTION 218c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#CHANNEL_NOT_AVAIL 219c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#QOS_NOT_AVAIL 220c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#BEARER_NOT_AVAIL 221c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#ACM_LIMIT_EXCEEDED 222c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#CALL_BARRED 223c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#FDN_BLOCKED 224c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#IMSI_UNKNOWN_IN_VLR 225c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#IMEI_NOT_ACCEPTED 226c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#CDMA_LOCKED_UNTIL_POWER_CYCLE 227c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#CDMA_DROP 228c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#CDMA_INTERCEPT 229c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#CDMA_REORDER 230c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#CDMA_SO_REJECT 231c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#CDMA_RETRY_ORDER 232c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#CDMA_ACCESS_FAILURE 233c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#CDMA_PREEMPTED 234c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#CDMA_NOT_EMERGENCY 235c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#CDMA_ACCESS_BLOCKED 236c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#ERROR_UNSPECIFIED 237c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela */ 238c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public int getPreciseDisconnectCause() { 239c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela return mPreciseDisconnectCause; 240c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 241c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 242c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela @Override 243c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public int describeContents() { 244c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela return 0; 245c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 246c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 247c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela @Override 248c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public void writeToParcel(Parcel out, int flags) { 249c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela out.writeInt(mRingingCallState); 250c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela out.writeInt(mForegroundCallState); 251c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela out.writeInt(mBackgroundCallState); 252c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela out.writeInt(mDisconnectCause); 253c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela out.writeInt(mPreciseDisconnectCause); 254c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 255c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 256c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public static final Parcelable.Creator<PreciseCallState> CREATOR 257c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela = new Parcelable.Creator<PreciseCallState>() { 258c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 259c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public PreciseCallState createFromParcel(Parcel in) { 260c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela return new PreciseCallState(in); 261c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 262c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 263c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public PreciseCallState[] newArray(int size) { 264c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela return new PreciseCallState[size]; 265c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 266c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela }; 267c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 268c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela @Override 269c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public int hashCode() { 270c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela final int prime = 31; 271c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela int result = 1; 272c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela result = prime * result + mRingingCallState; 273c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela result = prime * result + mForegroundCallState; 274c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela result = prime * result + mBackgroundCallState; 275c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela result = prime * result + mDisconnectCause; 276c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela result = prime * result + mPreciseDisconnectCause; 277c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela return result; 278c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 279c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 280c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela @Override 281c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public boolean equals(Object obj) { 282c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela if (this == obj) { 283c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela return true; 284c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 285c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela if (obj == null) { 286c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela return false; 287c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 288c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela if (getClass() != obj.getClass()) { 289c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela return false; 290c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 291c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela PreciseCallState other = (PreciseCallState) obj; 292c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela return (mRingingCallState != other.mRingingCallState && 293c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela mForegroundCallState != other.mForegroundCallState && 294c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela mBackgroundCallState != other.mBackgroundCallState && 295c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela mDisconnectCause != other.mDisconnectCause && 296c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela mPreciseDisconnectCause != other.mPreciseDisconnectCause); 297c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 298c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 299c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela @Override 300c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public String toString() { 301c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela StringBuffer sb = new StringBuffer(); 302c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 303c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela sb.append("Ringing call state: " + mRingingCallState); 304c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela sb.append(", Foreground call state: " + mForegroundCallState); 305c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela sb.append(", Background call state: " + mBackgroundCallState); 306c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela sb.append(", Disconnect cause: " + mDisconnectCause); 307c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela sb.append(", Precise disconnect cause: " + mPreciseDisconnectCause); 308c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 309c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela return sb.toString(); 310c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 311c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela} 312